Transformers documentation

Mulai Cepat

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Mulai Cepat

Transformers dirancang agar cepat dan mudah digunakan sehingga semua orang dapat mulai belajar atau membangun dengan model transformer.

Jumlah abstraksi yang berhadapan langsung dengan pengguna dibatasi hanya menjadi tiga kelas untuk menginstansiasi model, dan dua API untuk inferensi atau pelatihan. Panduan cepat ini memperkenalkan Anda ke fitur-fitur utama Transformers dan menunjukkan cara:

  • memuat model terlatih
  • jalankan inferensi dengan Pipeline
  • melakukan fine-tuning model dengan Trainer

Persiapan

Untuk memulai, kami merekomendasikan membuat akun Hugging Face. Akun memungkinkan Anda untuk meng-host dan mengakses model, dataset, dan Spaces dengan kontrol versi di Hub Hugging Face, sebuah platform kolaboratif untuk penemuan dan pembangunan.

Buat User Access Token dan masuk ke akun Anda.

notebook
CLI

Tempelkan User Access Token Anda ke dalam notebook_login saat diminta untuk masuk.

from huggingface_hub import notebook_login

notebook_login()

Install PyTorch.

# remove ! if installing from the CLI
!pip install torch

Lalu, instal versi terbaru dari Transformers dan beberapa pustaka tambahan dari ekosistem Hugging Face untuk mengakses dataset dan model visi, mengevaluasi pelatihan, serta mengoptimalkan pelatihan untuk model besar.

# remove ! if installing from the CLI
!pip install -U transformers datasets evaluate accelerate timm

Keterampilan agen

Hugging Face Skills mengajarkan agen coding Anda cara bekerja dengan Transformers. Alih-alih menulis skrip pelatihan sendiri, minta agen Anda untuk melakukan fine-tuning pada model visi dan biarkan skill tersebut membimbingnya.

Claude Code
Codex
/plugin marketplace add huggingface/skills
/plugin install hf-cli@huggingface/skills

Lihat panduan Instalasi untuk platform yang didukung lainnya seperti Cursor dan Gemini.

Setelah sebuah skill diinstal, sertakan skill tersebut dalam instruksi Anda kepada coding agent.

Use the HF Trainer skill to fine-tune RT-DETRv2 on [Lekim89/sportsmot](https://huggingface.co/datasets/Lekim89/sportsmot) for basketball player tracking.

Model terlatih

Setiap model pretrained mewarisi dari tiga kelas dasar.

KelasDeskripsi
PreTrainedConfigBerkas yang menentukan atribut model, seperti jumlah kepala perhatian atau ukuran kosakata.
PreTrainedModelModel (atau arsitektur) yang didefinisikan oleh atribut model dari file konfigurasi. Model pretrained hanya mengembalikan hidden states mentah. Untuk tugas tertentu, gunakan model head yang sesuai untuk mengonversi hidden states mentah menjadi hasil yang bermakna (misalnya, LlamaModel versus LlamaForCausalLM).
PreprocessorKelas untuk mengonversi input mentah (teks, gambar, audio, multimodal) menjadi input numerik bagi model. Sebagai contoh, PreTrainedTokenizer mengonversi teks menjadi tensor dan ImageProcessingMixin mengonversi piksel menjadi tensor.

Kami merekomendasikan penggunaan API AutoClass untuk memuat model dan preprocessor karena API ini secara otomatis menyimpulkan arsitektur yang sesuai untuk setiap tugas dan framework machine learning berdasarkan nama atau path ke bobot pretrained dan file konfigurasi.

Gunakan from_pretrained() untuk memuat bobot dan file konfigurasi dari Hub ke dalam kelas model dan preprocessor.

Saat Anda memuat model, konfigurasikan parameter berikut untuk memastikan model dimuat secara optimal.

  • device_map="auto" secara otomatis mengalokasikan bobot model ke perangkat tercepat Anda terlebih dahulu.
  • dtype="auto" langsung menginisialisasi bobot model dalam tipe data tempat bobot tersebut disimpan, yang dapat membantu menghindari pemuatan bobot dua kali (PyTorch memuat bobot dalam torch.float32 secara default).
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf", dtype="auto", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b-hf")

Tokenisasi teks dan kembalikan tensor PyTorch dengan tokenizer. Pindahkan input yang telah ditokenisasi ke perangkat yang sama dengan model sebelum menjalankan inferensi agar model dapat memprosesnya.

model_inputs = tokenizer(["The secret to baking a good cake is "], return_tensors="pt").to(model.device)

Model sekarang siap untuk inferensi atau pelatihan.

Untuk inferensi, lewati input yang sudah ditokenisasi ke generate() untuk menghasilkan teks. Dekode kembali token id menjadi teks dengan batch_decode().

generated_ids = model.generate(**model_inputs, max_length=30)
tokenizer.batch_decode(generated_ids)[0]
'<s> The secret to baking a good cake is 100% in the preparation. There are so many recipes out there,'

Lewati ke bagian Trainer untuk mempelajari cara melakukan fine-tuning pada model.

Pipeline

Kelas Pipeline adalah cara paling praktis untuk menjalankan inferensi dengan model terlatih. Kelas ini mendukung banyak tugas, seperti generasi teks, segmentasi gambar, pengenalan ucapan otomatis, penjawab pertanyaan dokumen, dan lainnya.

Lihat referensi API Pipeline untuk daftar lengkap tugas yang tersedia.

Buat objek Pipeline dan pilih tugas. Secara default, Pipeline mengunduh dan meng-cache model pretrained default untuk tugas tertentu. Sampaikan nama model ke parameter model untuk memilih model tertentu.

generasi teks
segmentasi gambar
pengenalan ucapan otomatis

Gunakan Accelerator untuk mendeteksi secara otomatis akselerator yang tersedia untuk inferensi.

from transformers import pipeline
from accelerate import Accelerator

device = Accelerator().device

pipe = pipeline("text-generation", model="meta-llama/Llama-2-7b-hf", device=device)

Prompt Pipeline dengan beberapa teks awal untuk menghasilkan lebih banyak teks.

pipe("The secret to baking a good cake is ", max_length=50)
[{'generated_text': 'The secret to baking a good cake is 100% in the batter. The secret to a great cake is the icing.\nThis is why we’ve created the best buttercream frosting reci'}]

Trainer

Trainer adalah loop pelatihan dan evaluasi lengkap untuk model PyTorch. Komponen ini menyederhanakan banyak boilerplate yang biasanya terlibat dalam penulisan loop pelatihan secara manual, sehingga Anda dapat memulai pelatihan lebih cepat dan berfokus pada pilihan desain pelatihan. Anda hanya membutuhkan model, dataset, preprocessor, dan data collator untuk membangun batch data dari dataset.

Gunakan kelas TrainingArguments untuk menyesuaikan proses pelatihan. Kelas ini menyediakan banyak opsi untuk pelatihan, evaluasi, dan lainnya. Eksperimenlah dengan hiperparameter dan fitur pelatihan seperti batch size, learning rate, mixed precision, torch.compile, dan lainnya untuk memenuhi kebutuhan pelatihan Anda. Anda juga dapat menggunakan parameter pelatihan default untuk dengan cepat menghasilkan baseline.

Muat model, tokenizer, dan dataset untuk pelatihan.

from transformers import AutoModelForSequenceClassification, AutoTokenizer
from datasets import load_dataset

model = AutoModelForSequenceClassification.from_pretrained("distilbert/distilbert-base-uncased")
tokenizer = AutoTokenizer.from_pretrained("distilbert/distilbert-base-uncased")
dataset = load_dataset("cornell-movie-review-data/rotten_tomatoes")

Buat fungsi untuk melakukan tokenisasi teks dan mengonversinya menjadi tensor PyTorch. Terapkan fungsi ini ke seluruh dataset dengan metode map.

def tokenize_dataset(dataset):
    return tokenizer(dataset["text"])
dataset = dataset.map(tokenize_dataset, batched=True)

Muat data collator untuk membuat batch data dan lewati tokenizer ke dalamnya.

from transformers import DataCollatorWithPadding

data_collator = DataCollatorWithPadding(tokenizer=tokenizer)

Selanjutnya, atur TrainingArguments dengan fitur pelatihan dan hiperparameter.

from transformers import TrainingArguments

training_args = TrainingArguments(
    output_dir="distilbert-rotten-tomatoes",
    learning_rate=2e-5,
    per_device_train_batch_size=8,
    per_device_eval_batch_size=8,
    num_train_epochs=2,
    push_to_hub=True,
)

Terakhir, lewati semua komponen terpisah ini ke Trainer dan panggil train() untuk memulai.

from transformers import Trainer

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset["train"],
    eval_dataset=dataset["test"],
    processing_class=tokenizer,
    data_collator=data_collator,
)

trainer.train()

Bagikan model dan tokenizer Anda ke Hub dengan push_to_hub().

trainer.push_to_hub()

Selamat, Anda baru saja melatih model pertama Anda dengan Transformers!

Langkah selanjutnya

Sekarang bahwa Anda memiliki pemahaman yang lebih baik tentang Transformers dan apa yang ditawarkannya, saatnya untuk terus menjelajahi dan mempelajari hal yang paling menarik minat Anda.

  • Kelas dasar: Pelajari lebih lanjut tentang kelas konfigurasi, model, dan processor. Hal ini akan membantu Anda memahami cara membuat dan menyesuaikan model, memproses pra-berbagai jenis input (audio, gambar, multimodal), serta cara membagikan model Anda.
  • Inferensi: Jelajahi Pipeline lebih lanjut, inferensi dan percakapan dengan LLM, agen, serta cara mengoptimalkan inferensi dengan framework machine learning dan perangkat keras Anda.
  • Pelatihan: Pelajari Trainer secara lebih detail, serta pelatihan terdistribusi dan optimasi pelatihan pada perangkat keras tertentu.
  • Kuantisasi: Kurangi kebutuhan memori dan penyimpanan dengan kuantisasi serta percepat inferensi dengan merepresentasikan bobot menggunakan lebih sedikit bit.
  • Sumber daya: Mencari resep end-to-end untuk cara melatih dan melakukan inferensi dengan model untuk tugas tertentu? Lihat resep tugasnya!
Update on GitHub