Transformers documentation
Mulai Cepat
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:
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.
Tempelkan User Access Token Anda ke dalam notebook_login saat diminta untuk masuk.
from huggingface_hub import notebook_login
notebook_login()Pastikan paket huggingface_hub[cli] terpasang dan jalankan perintah di bawah ini. Tempelkan User Access Token Anda saat diminta untuk masuk.
hf auth login
Install PyTorch.
# remove ! if installing from the CLI
!pip install torchLalu, 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 timmKeterampilan 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.
/plugin marketplace add huggingface/skills /plugin install hf-cli@huggingface/skills
codex plugin marketplace add huggingface/skills
Lalu jalankan /plugins di Codex dan pasang skill dari repositori 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.
| Kelas | Deskripsi |
|---|---|
| PreTrainedConfig | Berkas yang menentukan atribut model, seperti jumlah kepala perhatian atau ukuran kosakata. |
| PreTrainedModel | Model (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). |
| Preprocessor | Kelas 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 dalamtorch.float32secara 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.
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'}]Gunakan Accelerator untuk mendeteksi secara otomatis akselerator yang tersedia untuk inferensi.
from transformers import pipeline
from accelerate import Accelerator
device = Accelerator().device
pipeline = pipeline("image-segmentation", model="facebook/detr-resnet-50-panoptic", device=device)Lewatkan sebuah gambar - URL atau path lokal ke gambar - ke Pipeline.

segments = pipeline("https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png")
segments[0]["label"]
'bird'
segments[1]["label"]
'bird'Gunakan Accelerator untuk mendeteksi secara otomatis akselerator yang tersedia untuk inferensi.
from transformers import pipeline
from accelerate import Accelerator
device = Accelerator().device
pipeline = pipeline("automatic-speech-recognition", model="openai/whisper-large-v3", device=device)Lewatkan file audio ke Pipeline.
pipeline("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/1.flac")
{'text': ' He hoped there would be stew for dinner, turnips and carrots and bruised potatoes and fat mutton pieces to be ladled out in thick, peppered flour-fatten sauce.'}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!