Pelatihan teks ke teks yang nyaman untuk transformator
pip install t2t-tunerMembutuhkan Pytorch: Ikuti instruksi instalasi Pytorch atau gunakan wadah Pytorch.
Berdasarkan perpustakaan Huggingface Transformers yang indah. Diuji jenis model T5 dan GPT. Secara teori, ini harus bekerja dengan model lain yang mendukung AutomodelForSeq2seqlm atau AutomodelForCausallm juga.
Pelatih di perpustakaan ini di sini adalah antarmuka tingkat yang lebih tinggi untuk bekerja berdasarkan run_translation.py dari HuggingFace untuk tugas pembuatan teks-ke-teks. Saya memutuskan saya ingin antarmuka yang lebih nyaman untuk pelatihan dan inferencing, bersama dengan akses ke hal -hal seperti pemeriksaan gradien dan model paralel agar sesuai dengan model yang lebih besar - ini sudah ada di perpustakaan Huggingface tetapi tidak diekspos dalam skrip. Saya juga menambahkan dalam beberapa fitur yang saya inginkan (tuning cepat, ringkasan model), mengintegrasikannya dengan pelatihan LM autoregresif dan membungkusnya sebagai perpustakaan tunggal yang dapat diinstal PIP.
import t2t
trainer_arguments = t2t . TrainerArguments ( model_name_or_path = "t5-small" ,
train_file = YOUR_DATASET )
trainer = t2t . Trainer ( arguments = trainer_arguments )
# train without validation
trainer . train ( valid = False )Untuk contoh yang lebih konkret, lihat buku catatan yang ditautkan di bawah ini:
Pelatihan SEQ2SEQ
{ "translation" : { "s" : " TEXT " , "t" : " LABEL " }}TrainingArguments.source_id dan TrainingArguments.target_id (default ke s dan t ).TrainingArguments.prefix .Pelatihan LM Autoregresif
Bagian ini akan menguraikan cara melatih model bahasa besar (> 1 parameter BIL) pada pengaturan yang relatif sederhana.
Beberapa catatan untuk konfigurasi yang dilaporkan di bawah ini:
TrainerArguments.gradient_checkpointing ).trainer.freeze(embeddings=True) ).TrainingArguments.gradient_accumulation_steps ) untuk menebus ukuran batch yang lebih besar jika diperlukan. Ukuran batch yang dilaporkan tanpa akumulasi gradien.Beberapa konfigurasi GPT yang diuji untuk dapat melatih pada kartu RTX 3090 (24GB) tunggal (tanpa kecepatan deep):
| Model | Params | Presisi | Pengoptimal | Inputlen | Batchsize | Lainnya |
|---|---|---|---|---|---|---|
| gpt2 | 1.5b | FP16 | Adafactor | 128 | 4 | Tidak ada |
| gpt2 | 1.5b | FP16 | Adafactor | 512 | 1 | Tidak ada |
| gpt2 | 1.5b | FP16 | Adafactor | 1024 | 4 | GradcheckPoint |
| GPT-NEO | 1.3b | FP16 | Adafactor | 1024 | 1 | Tidak ada |
| GPT-NEO | 1.3b | FP16 | Adafactor | 2048 | 4 | GradcheckPoint |
| GPT-NEO | 2.7b | FP16 | Adafactor | 2048 | 4 | Gradcheckpoint, freezeembeds |
Beberapa konfigurasi T5 yang diuji untuk dapat melatih pada kartu RTX 3090 (24GB) tunggal (tanpa kecepatan deep):
| Model | Params | Presisi | Pengoptimal | Seq2seqlen | Batchsize | Lainnya |
|---|---|---|---|---|---|---|
| T5 | 3b | FP32 | Adafactor | 128-> 128 | 1 | Freezeembeds |
| T5 | 3b | FP32 | Adafactor | 128-> 128 | 1 | GradcheckPoint |
| T5 | 3b | FP32 | Adafactor | 128-> 128 | 128 | Gradcheckpoint, freezeembeds |
| T5 | 3b | FP32 | Adafactor | 512-> 512 | 32 | Gradcheckpoint, freezeembeds |
Model paralelisme untuk model T5-11B
Menggunakan pustaka ini, Anda juga dapat menyempurnakan pos pemeriksaan T5-11B dengan cukup mudah (node tunggal) dengan pengaturan berikut (tanpa kecepatan deep):

Perhatikan bahwa tergantung pada sistem Anda, waktu pemuatan untuk pos pemeriksaan (46GB) bisa sangat lama. Anda akan membutuhkan CPU RAM yang cukup (setidaknya ~ 90GB) untuk memuatnya dengan sukses.
Onnx RT bekerja dengan beberapa model (belum T5, belum) dan dapat memberikan peningkatan kecepatan kecil.
Instal ORT, lalu atur TrainingArguments.torch_ort=True
pip install torch-ort -f https://onnxruntimepackages.z14.web.core.windows.net/onnxruntime_stable_torch190.cu111.html
python -m torch_ort.configurePaket bangunan
python3 -m pip install --upgrade build twine
python3 -m build
python3 -m twine upload dist/ * Perpustakaan ini dikembangkan sebagai proyek pribadi untuk saya gunakan sendiri. Jangan ragu untuk membayar atau menggunakannya untuk tujuan Anda sendiri juga. Saya tidak akan bertanggung jawab atas kecelakaan apa pun yang terjadi sebagai akibat dari penggunaan perpustakaan ini.
Catatan untuk kartu 3090 FE, jika kipas Anda mencapai 100%, itu berarti suhu VRAM Anda tinggi (> 100 derajat C). Pelatihan selama berjam -jam pada suhu ini secara teori seharusnya baik -baik saja, tetapi jika Anda menginginkan ketenangan pikiran (seperti saya), Anda dapat menurunkan batas daya menimbulkan dampak kecil pada kecepatan pelatihan. Selama penggemar Anda tidak pernah mencapai 100%, suhu VRAM Anda seharusnya baik. Misalnya, untuk menurunkan batas daya menjadi 300W (dari 350W):
sudo nvidia-smi -pl 300