Ada dua jenis beban kerja pelatihan:
- terikat komputasi
- tidak menghitung terikat
Pelatihan terikat dengan komputasi dibatasi oleh jumlah waktu yang dapat Anda habiskan untuk pelatihan, bukan oleh jumlah data pelatihan yang Anda miliki atau beberapa faktor lainnya. Dengan kata lain, waktu pelatihan yang "optimal" selalu "selama Anda dapat". Jika Anda bagaimanapun dapat berlatih lebih lama atau lebih efisien, kerugian pelatihan akan turun. (Dengan penyesuaian yang tepat, kerugian validasi juga akan berkurang.)
Mempercepat pelatihan terikat komputasi sama dengan meningkatkan pelatihan. Meskipun demikian, hanya karena beban kerja terbatas pada komputasi, bukan berarti pelatihan berlangsung lebih lama atau lebih cepat adalah satu-satunya cara untuk meningkatkan hasil.
Jika pelatihan tidak terikat dengan komputasi, Anda dapat berlatih selama yang diinginkan. Namun, melatih model lebih lama mungkin tidak terlalu membantu atau bahkan menyebabkan overover. Saat pelatihan tidak terikat komputasi:
- Anda dapat melatih ke kerugian pelatihan yang sangat rendah, hingga pelatihan tambahan mungkin sedikit mengurangi kerugian pelatihan, tetapi tidak secara signifikan mengurangi kerugian validasi.
- Anda dapat menyesuaikan dengan lebih mudah, terutama saat menyesuaikan jadwal peluruhan kecepatan pembelajaran, karena memiliki interaksi yang sangat kuat dengan anggaran pelatihan. Sebaliknya, mendapatkan kerugian pelatihan yang rendah pada pelatihan terikat komputasi mungkin memerlukan jadwal peluruhan kecepatan pembelajaran yang disesuaikan dengan kesempurnaan.
Terlepas dari apakah beban kerja tertentu terikat dengan komputasi atau tidak, metode yang meningkatkan varians gradien (di seluruh batch) biasanya memperlambat progres pelatihan, sehingga dapat meningkatkan jumlah langkah pelatihan yang diperlukan untuk mencapai kerugian validasi tertentu. Salah satu hal berikut dapat menyebabkan varian gradien yang tinggi:
- Menggunakan ukuran batch yang lebih kecil.
- Menambahkan augmentasi data.
- Menambahkan beberapa jenis regularisasi (misalnya, regularisasi dengan dropout).
Tentukan durasi pelatihan saat pelatihan tidak terikat dengan komputasi
Sasaran Anda: Melatih cukup lama agar model dapat mencapai hasil terbaik tanpa membuang langkah-langkah pelatihan.
Sasaran utama Anda adalah memastikan bahwa Anda berlatih cukup lama agar model dapat mencapai hasil terbaik, tanpa membuang langkah-langkah pelatihan yang tidak perlu. Jika ragu, sebaiknya Anda tidak berlatih lebih lama. Metrik evaluasi Anda (misalnya, presisi, recall, AUC, atau F1) tidak boleh menurun saat pelatihan dilakukan lebih lama, dengan asumsi Anda menggunakan pemilihan checkpoint retrospektif dengan benar dan Anda cukup sering melakukan checkpoint.
Jangan pernah menyesuaikan angka max_train_steps
dalam studi. Sebagai gantinya, pilih nilai dan
gunakan nilai yang sama untuk semua uji coba. Dari uji coba ini, rencanakan langkah pelatihan yang ditemukan oleh titik pemeriksaan retrospektif untuk menyaring pilihan max_train_steps
.
Misalnya, jika langkah terbaik selalu selama 10% pertama pelatihan, jumlah maksimum langkah akan terlalu tinggi.
Atau, jika langkah terbaik konsisten di 25% terakhir pelatihan,
Anda mungkin mendapatkan manfaat dari pelatihan yang lebih lama dan menyesuaikan jadwal peluruhan.
Jumlah langkah pelatihan yang ideal dapat berubah saat arsitektur atau data berubah (misalnya, menambahkan augmentasi data).
Bagian berikutnya menjelaskan cara memilih nilai kandidat awal untuk
max_train_steps
berdasarkan jumlah langkah yang diperlukan untuk "sangat sesuai"
dengan set pelatihan menggunakan kecepatan pembelajaran yang konstan.
Anda dapat mengurangi max_train_steps
jika proses pelatihannya meningkat: misalnya, dengan pengoptimal yang disesuaikan atau jadwal kecepatan pembelajaran yang lebih baik.
Algoritme untuk memilih kandidat awal untuk max_train_steps menggunakan sweep kecepatan pembelajaran
Anda dapat memilih kandidat awal untuk max_train_steps
dengan
algoritme sweep kecepatan pembelajaran. Algoritme berikut mengasumsikan bahwa Anda tidak hanya dapat
cocok dengan set pelatihan, tetapi juga
melakukannya menggunakan jadwal kecepatan pembelajaran yang konstan.
- Jika memungkinkan untuk sangat sesuai dengan seluruh set pelatihan,
harus ada konfigurasi (dengan nilai
max_train_steps
) yang sangat cocok dengan set pelatihan. Temukan konfigurasi tersebut dan gunakan nilainya darimax_train_steps
sebagai titik awalN
. - Jalankan sweep kecepatan pembelajaran konstan (yaitu, lakukan penelusuran petak kecepatan pembelajaran)
tanpa augmentasi data dan tanpa regularisasi tempat setiap uji coba berlatih untuk langkah-langkah
N
. Jumlah langkah yang diperlukan untuk uji coba tercepat dalam sweep kecepatan pembelajaran guna mencapai performa pelatihan yang sempurna harus menjadi tebakan awal Anda untukmax_train_steps
.
CATATAN: Ruang penelusuran yang buruk dapat menyebabkan penipuan pada diri sendiri.
Misalnya, jika semua kecepatan pembelajaran dalam studi terlalu kecil, Anda mungkin
salah menyimpulkan bahwa nilai max_train_steps
yang sangat besar diperlukan.
Setidaknya, pastikan kecepatan pembelajaran yang optimal dalam studi tidak
melampaui batas ruang penelusuran.
Menentukan durasi pelatihan saat pelatihan terikat dengan komputasi
Dalam beberapa kasus, kerugian pelatihan terus meningkat tanpa batas, sehingga kesabaran dan resource komputasi Anda menjadi faktor yang membatasi. Namun, apakah Anda harus melatih selama bisa? Belum tentu. Pertimbangkan hal berikut:
- Anda mungkin dapat melakukan penyesuaian secara lebih efektif dengan menjalankan eksperimen dalam jumlah yang lebih sedikit, dengan mempertahankan "durasi produksi" terpanjang untuk model yang ingin Anda luncurkan.
- Karena waktu pelatihan untuk uji coba mendekati batas kesabaran, penyesuaian eksperimen menjadi lebih relevan untuk calon peluncuran calon Anda, tetapi Anda dapat menyelesaikan lebih sedikit.
- Anda mungkin bisa menjawab banyak pertanyaan sambil hanya melatih sekitar 10% dari durasi produksi. Namun, kesimpulan Anda pada batas waktu ini mungkin tidak berlaku untuk eksperimen pada 20% dari durasi produksi, apalagi 100%.
Melakukan penyesuaian selama beberapa tahap dengan batas langkah pelatihan per uji coba yang meningkat merupakan pendekatan yang logis. Anda dapat berlari sebanyak mungkin, tetapi biasanya 1-3 ronde yang paling praktis. Pada dasarnya, cobalah untuk mendapatkan pemahaman sebanyak mungkin tentang uji coba menggunakan uji coba dengan waktu penyelesaian yang sangat cepat, dan pilih hal berikut:
- Menyesuaikan ketelitian.
- Relevansi dengan iklan final dan terpanjang.
Setelah batas waktu per uji coba tertentu menghasilkan insight yang berguna, tingkatkan waktu pelatihan dan lanjutkan penyesuaian, periksa kembali kesimpulan Anda dari operasi yang lebih singkat sesuai kebutuhan. Sebagai titik awal, sebaiknya lakukan dua langkah penyesuaian:
- Ronde 1: Durasi yang lebih singkat berjalan untuk menemukan hiperparameter model dan pengoptimal yang baik.
- Putaran 2: Durasi sangat sedikit berjalan pada poin hyperparameter yang baik untuk mendapatkan model akhir.
Pertanyaan terbesar yang berlanjut dari Putaran 1 ke Putaran 2 adalah:
Bagaimana cara menyesuaikan jadwal peluruhan kecepatan pembelajaran.
Salah satu jebakan umum saat menyesuaikan jadwal kecepatan pembelajaran di antara putaran adalah menggunakan semua langkah pelatihan tambahan dengan kecepatan pembelajaran yang terlalu kecil.
Putaran 1: banyak latihan singkat
Sayangnya, tidak ada jaminan bahwa hyperparameter yang baik yang ditemukan dalam pelatihan singkat dan tidak lengkap tetap menjadi pilihan yang baik saat Anda meningkatkan durasi pelatihan secara signifikan. Namun, untuk beberapa hyperparameter, pilihan yang tepat sering kali berkorelasi cukup agar Putaran 1 berguna. Apa nilai hyperparameter yang ditemukan dalam operasi yang lebih singkat yang berhasil ditransfer ke pelatihan yang lebih lama? Kami tidak tahu; kami membutuhkan lebih banyak riset. Namun, berdasarkan yang kita ketahui sejauh ini, berikut adalah kecurigaan kami dalam menurunkan kemungkinan transfer:
- Sangat mungkin untuk ditransfer. Ketidakstabilan pelatihan awal dapat diatasi pada putaran pertama penyesuaian menggunakan jumlah langkah pelatihan yang lebih sedikit.
Hyperparameter berikut adalah yang paling mungkin untuk ditransfer:
- Durasi pemanasan
- Inisialisasi
- Kemungkinan ditransfer. Kemenangan dramatis dalam arsitektur model biasanya ditransfer, tetapi banyak contoh kontra yang mungkin.
- Transfer mungkin dilakukan. Hyperparameter berikut mungkin ditransfer:
- Algoritma pengoptimalan dan hyperparameter akan ditransfer secara "longgar".
- Pembesaran data.
- Regularisasi. Jika tidak mungkin pas dengan set pelatihan, model tersebut mungkin berada dalam rezim dengan regularisasi mungkin tidak akan banyak membantu.
- Kemungkinan tidak mentransfer. Jadwal kecepatan pembelajaran kemungkinan besar tidak akan ditransfer. Pelatihan Model Bahasa Besar Komputasi Optimal menunjukkan bahwa bahkan peluruhan jadwal transfer, tetapi kami tidak yakin ini benar secara umum. Misalnya, menyesuaikan peluruhan kuadrat pada sejumlah kecil langkah pelatihan, lalu memperluas ke jumlah yang besar menyebabkan sebagian besar pelatihan terjadi pada langkah yang terlalu kecil. Anda kemungkinan dapat melakukan "cukup baik" dengan sebagian besar jadwal dalam batas anggaran pelatihan ekstrem, tetapi Anda kemungkinan akan melihat peningkatan performa yang signifikan jika disesuaikan. Memahami Bias Horison Singkat dalam Pengoptimalan Meta Stokastik menjelaskan bahaya mencoba memilih kecepatan pembelajaran secara miopis.
Putaran 2: lebih sedikit lari, tetapi durasi lebih lama
Jalankan konfigurasi hyperparameter terbaik dari Putaran 1.
Spesifikasi: 🤖 Gunakan langkah-langkah tambahan untuk memperpanjang periode pelatihan
dengan kecepatan pembelajaran yang tinggi. Misalnya, jika Anda menggunakan jadwal linear,
pastikan panjang peluruhan tetap dari Putaran 1 dan perpanjang periode
konstanta lr
di awal. Untuk peluruhan kosinus, pertahankan lr
dasar
dari Putaran 1 dan perluas max_train_steps
seperti yang dijelaskan dalam
Melatih Model Bahasa Besar
Komputasi Optimal.
Babak pelatihan tambahan mungkin cocok untuk tim yang meliputi semua hal berikut:
- Pemodelan yang sangat matang
- Menyesuaikan pipeline
- Pelatihan produksi yang sangat lama dan mahal
Namun, latihan pelatihan tambahan sering kali tidak produktif.
Kami telah menjelaskan cara mentransfer dari 1 ke Putaran 2. Jika Anda tidak peduli dengan waktu analisis dan jika menggunakan resource komputasi secara efisien merupakan masalah utama Anda, sebaiknya lalu tingkatkan durasi pelatihan secara eksponensial (dan dengan demikian waktu menyeluruh untuk menyelesaikan studi) di berbagai tahap penyesuaian:
- Di setiap putaran, secara sistematis pastikan pilihan Anda terus memberikan hasil yang baik.
- Masukkan ide baru melalui pipeline yang secara bertahap akan menurunkannya menggunakan eksperimen yang berjalan lama dari Langkah i ke Langkah i+1.