Memeriksa contoh dan apa yang diwakili loss
Mulailah dengan menampilkan beberapa entri yang telah ditransformasi beserta targetnya. Periksa pemotongan, padding, mask, dan label yang benar-benar diteruskan ke fungsi loss. Pada generasi, sebuah instruksi dapat hadir di dalam input tanpa harus berkontribusi pada tujuan yang sama dengan jawaban. Untuk klasifikasi, kesalahan pencocokan antara nomor dan kelas dapat membuat loss tetap dapat dihitung sekaligus melatih tugas yang salah.
Isolasi subset yang sangat kecil untuk memeriksa mekanisme, bukan untuk mengumumkan generalisasi. Bisakah sebuah loop mempelajari contoh-contoh ini, menghasilkan nilai yang finit, dan menemukan kembali pengenal yang benar? Jika gagal, penyewaan yang lama tidak menyelesaikan diagnosis. Selanjutnya, pisahkan pelatihan, validasi, dan pengujian berdasarkan unit yang mencegah kebocoran: percakapan, pasien, dokumen sumber, atau periode sesuai proyek Anda.
Melewati gerbang pemeriksaan di setiap fase
Pilot harus melewati seluruh operasi kampanye. Langkah pertama yang mengalokasikan state optimizer dapat berbeda dari langkah-langkah berikutnya. Evaluasi pada sekuens yang lebih panjang dapat menghasilkan puncak terbesar. Sebuah checkpoint atau ekspor juga dapat membutuhkan memori dan waktu. Karena itu, jangan menyimpulkan hanya dari pemuatan bobot.
Simpan satu baris per fase dengan parameter input, penghitung memori, durasi terukur, dan putusan. Di PyTorch, penghitung tensor yang dialokasikan dan memori yang dicadangkan oleh alokator itu berbeda; keduanya tidak dijumlahkan. Catat setiap GPU dengan batas pengukuran yang sama. Folder memori menyediakan rincian baseline, sinkronisasi, dan puncak absolut.
| Fase | Verifikasi | Jika pemeriksaan gagal |
|---|---|---|
| Data | Pengenal, target, panjang, dan mask | Perbaiki dataset atau transformasi |
| Pass maju dan loss | Dimensi yang diharapkan, loss finit | Periksa batch yang diperkecil dan nilainya |
| Pass mundur | Gradien yang diharapkan, nilai finit | Periksa graf, presisi, dan normalisasi |
| Pembaruan | Parameter yang ditargetkan berubah, langkah terhitung | Periksa optimizer dan akumulasi |
| Validasi | Mode evaluasi, output lengkap | Pisahkan pengaturannya dari pengaturan pelatihan |
| Pemulihan | Progres dan state dipulihkan | Perbaiki checkpoint sebelum rangkaian |
Sumber teknis: PyTorch — penghitung dan manajemen memori
Menghitung contoh per pembaruan
Microbatch diproses selama satu pass. Akumulasi menggabungkan beberapa pass sebelum satu pembaruan. Dalam contoh dengan satu GPU, dua contoh per microbatch dan delapan akumulasi menghasilkan enam belas contoh per pembaruan lengkap. Dengan 3.200 contoh yang dilalui satu kali dan tanpa batch yang tidak lengkap, ini berarti 200 pembaruan. Perhitungan ini tidak memprediksi durasi maupun kualitas.
Menetapkan jumlah pembaruan dan mengubah batch dapat mengubah jumlah contoh yang dilihat. Menetapkan epoch dapat mengubah jumlah pembaruan. Pilih apa yang harus dipertahankan oleh perbandingan Anda dan catat kuantitas lainnya. Pada beberapa replika data, penghitungan mencakup jumlahnya; paralelisme model tidak secara otomatis mengalikan batch efektif. Batch akhir dan sekuens dengan panjang berbeda memerlukan normalisasi yang konsisten.
Sumber teknis: PyTorch — akumulasi dan presisi campuran
Mengubah memori tanpa kehilangan pertanyaan eksperimental
Jika pilot melampaui memori, identifikasi fase dan input yang menjadi penyebabnya. Microbatch yang diperkecil dapat mengurangi aktivasi; panjang maksimum yang lebih kecil dapat menghilangkan bagian tugas yang penting. Akumulasi dengan sendirinya tidak membebaskan bobot atau state optimizer. Jangan sajikan kasus yang berhasil setelah pemotongan sebagai eksperimen yang sama jika output yang diharapkan telah berubah.
Checkpointing aktivasi menyimpan lebih sedikit hasil antara dan menghitungnya ulang selama pass mundur. Bandingkan memori dan durasi di dalam loop Anda. Presisi campuran memilih format untuk operasi tertentu; pengaturan penskalaan gradien dan waktu pembaruannya harus sesuai dengan batch efektif. Catat perubahan ini sebagai varian dan pastikan bahwa perubahan tersebut mempertahankan tujuan kualitas.
Sumber teknis: PyTorch — checkpointing aktivasi · PyTorch — aturan AMP
Contoh: membandingkan tiga laju pembelajaran
Siapkan kontrol dengan 0,0001 dan dua varian ilustratif pada 0,00005 dan 0,0002. Nilai-nilai ini bukan rekomendasi untuk model Anda: nilainya berfungsi untuk menulis rencana. Pertahankan arsitektur, data, batch efektif, dan anggaran 200 pembaruan tetap sama dalam kasus yang disederhanakan ini. Tentukan sebelum uji frekuensi validasi dan penyebab penghentian.
Simpan kurva loss, titik validasi, dan prediksi yang diperlukan untuk analisis. Jika suatu varian divergen, barisnya tetap ada dalam rekap. Peluncuran ulang dengan batch lain menerima pengenal baru dan tidak menggantikan kegagalan secara diam-diam. Jika selisih kualitas kecil, metode pada seed menjelaskan cara membandingkan beberapa uji tanpa hanya menyimpan yang terbaik.
Melanjutkan pelatihan, lalu meninjau ulang keluaran
Penyimpanan bobot memungkinkan beberapa penggunaan inferensi; melanjutkan pelatihan juga harus menemukan kembali status yang relevan dan kemajuannya. Panduan PyTorch khususnya membedakan model dan optimizer. Uji pelanjutan lebih awal dalam proses baru, dengan elemen yang diperlukan untuk loop Anda, lalu periksa langkah, laju pembelajaran, dan kesinambungan data.
Pada penutupan, muat kembali artefak yang ditujukan untuk evaluasi dan jalankan ulang masukan kontrol. Arsipkan model atau adaptor, konfigurasi, revisi, metrik mentah, dan instruksi. Jangan memuat file yang asal-usulnya tidak diketahui hanya untuk memeriksa isinya: gunakan artefak yang Anda ketahui asal-usulnya dan aturan deserialisasi di lingkungan Anda.
Sumber teknis: PyTorch — bobot dan checkpoint pelanjutan
Beralih dari pilot ke sewa yang sesuai
Lembar pilihan Anda mengumpulkan memori per GPU, dimensi maksimum, presisi, microbatch, akumulasi, strategi distribusi, dan hasil yang diharapkan. Konfigurasi dengan memori yang cukup hanya dipilih setelah sistem perangkat lunak diperiksa. Preferensi PyTorch saat pemesanan menggambarkan persiapan yang diinginkan; ini tidak menjamin model Anda atau semua ekstensinya.
Selanjutnya, atur varian prioritas dalam paket 3, 7, atau 30 hari sambil menyisakan waktu untuk evaluasi dan ekspor. Tidak ada durasi yang memaksakan jenis pelatihan. Buku catatan dapat menyimpan keputusan dan observasi yang dimasukkan, sementara cadangan Anda menyimpan file-nya. Kampanye yang berhasil menghasilkan kesimpulan yang dapat dibaca ulang, bahkan ketika kontrol tetap menjadi pilihan terbaik.
Pertanyaan praktis
Bisakah saya mengukur hanya dengan forward pass?
Tidak: kampanye pelatihan juga harus mencakup backward pass, pembaruan, validasi, dan penyimpanan. Puncak dapat muncul di fase lain atau pada masukan yang lebih panjang.
Apakah batch efektif yang sama menjamin hasil yang sama?
Tidak. Penghitungan yang sama tidak menjamin operasi numerik, statistik batch, atau lintasan pembelajaran yang sama. Periksa implementasi, normalisasi, dan kualitas dengan protokol yang dipilih.
Mengapa menyimpan pelatihan yang divergen?
Ini menunjukkan batas penyetelan dan telah menghabiskan sumber daya. Pengenal, penyebab penghentian, dan parameternya mencegah pengulangan uji yang sama atau penyajian hanya hasil yang menguntungkan.