Transformers documentation
Filsafat
Filsafat
Transformers adalah pustaka yang mengutamakan PyTorch. Pustaka ini menyediakan model-model yang setia terhadap makalah aslinya, mudah digunakan, dan mudah dimodifikasi.
Artikel yang lebih panjang dan mendalam, lengkap dengan contoh, visualisasi, dan linimasa, tersedia di sini sebagai referensi utama kami.
Filsafat kami berkembang melalui praktik. Berikut adalah prinsip-prinsip kami yang saat ini stabil.
Untuk siapa pustaka ini
- Peneliti dan pendidik yang mengeksplorasi atau memperluas arsitektur model.
- Praktisi yang melakukan fine-tuning, evaluasi, atau penyajian model.
- Insinyur yang menginginkan model terlatih sebelumnya yang “langsung berfungsi” dengan API yang dapat diprediksi.
Yang dapat Anda harapkan
Tiga kelas inti diperlukan untuk setiap model: configuration, models, dan kelas pra-pemrosesan. Tokenizers menangani NLP, image processors menangani gambar, video processors menangani video, feature extractors menangani audio, dan processors menangani input multimodal.
Semua kelas ini dapat diinisialisasi dengan cara yang sederhana dan seragam dari instance pretrained menggunakan metode
from_pretrained()yang umum, yang mengunduh (jika diperlukan), meng-cache, dan memuat instance kelas terkait beserta data asosiasinya (hiperparameter konfigurasi, kosakata tokenizer, parameter processor, dan bobot model) dari checkpoint pretrained yang disediakan di Hugging Face Hub atau dari checkpoint yang Anda simpan sendiri.Di atas ketiga kelas dasar tersebut, pustaka menyediakan dua API: pipeline() untuk menggunakan model secara cepat untuk inferensi pada tugas tertentu, dan Trainer untuk melatih atau melakukan fine-tuning model PyTorch secara cepat.
Prinsip-prinsip inti
Prinsip-prinsip berikut telah mengkristal seiring waktu dan diuraikan secara rinci dalam artikel blog filosofi baru kami. Prinsip-prinsip ini memandu keputusan maintainer saat meninjau PR dan kontribusi.
- Sumber Kebenaran. Implementasi harus setia terhadap hasil resmi dan perilaku yang dimaksud.
- Satu Model, Satu File. Logika inferensi/pelatihan inti terlihat dari atas ke bawah di file model yang dibaca pengguna.
- Kode adalah Produk. Optimalkan untuk kemudahan membaca dan membandingkan diff. Utamakan nama yang eksplisit daripada indirection yang rumit.
- Standarkan, Jangan Abstraksi. Simpan perilaku spesifik model di dalam model. Gunakan antarmuka bersama hanya untuk infrastruktur generik.
- DRY* (Ulangi jika membantu pengguna). File pemodelan untuk pengguna akhir tetap mandiri. Infrastruktur dipisahkan.
- API Pengguna Minimal. Sedikit jalur kode, kwargs yang dapat diprediksi, dan metode yang stabil.
- Kompatibilitas Mundur. Antarmuka publik tidak boleh rusak. Artefak Hub lama harus tetap berfungsi.
- Permukaan Publik yang Konsisten. Penamaan, output, dan diagnostik opsional diselaraskan dan diuji.
Kelas utama
Kelas konfigurasi menyimpan hiperparameter yang diperlukan untuk membangun model. Ini mencakup jumlah lapisan dan ukuran tersembunyi. Anda tidak selalu perlu menginstansiasikan kelas ini secara manual. Saat menggunakan model pretrained tanpa modifikasi, pembuatan model akan secara otomatis menginstansiasikan konfigurasinya.
Kelas model adalah model PyTorch (torch.nn.Module), yang dibungkus oleh minimal satu PreTrainedModel.
Transformers modular. Kontributor menulis shard
modular_*.pykecil yang menyatakan penggunaan ulang dari komponen yang sudah ada. Perpustakaan ini secara otomatis memperluas shard tersebut menjadi filemodeling_*.pyyang terlihat, yang dibaca/di-debug oleh pengguna. Maintainer meninjau shard tersebut; pengguna memodifikasi file yang sudah diperluas. Hal ini mempertahankan prinsip “One Model, One File” tanpa pergeseran boilerplate. Lihat dokumentasi kontribusi untuk informasi lebih lanjut.Kelas preprocessing mengubah data mentah menjadi format yang diterima oleh model. Tokenizer menyimpan kosakata untuk setiap model dan menyediakan metode untuk mengodekan dan mendekodekan string menjadi daftar indeks embedding token. Image processors memproses prapengolahan input visual, video processors memproses prapengolahan input video, feature extractors memproses prapengolahan input audio, dan processors memproses prapengolahan input multimodal.
Semua kelas ini dapat diinstansiasi dari instance pretrained, disimpan secara lokal, dan dibagikan di Hub dengan tiga metode:
from_pretrained()memungkinkan Anda untuk menginstansiasi model, konfigurasi, dan kelas pra-pemrosesan dari versi terlatih sebelumnya, baik yang disediakan oleh pustaka itu sendiri (model yang didukung dapat ditemukan di Model Hub) maupun yang disimpan secara lokal (atau di server) oleh pengguna.save_pretrained()memungkinkan Anda menyimpan model, konfigurasi, dan kelas preprocessing secara lokal sehingga dapat dimuat ulang menggunakanfrom_pretrained().push_to_hub()memungkinkan Anda membagikan model, konfigurasi, dan kelas pra-pemrosesan ke Hub, sehingga mudah diakses oleh semua orang.