Ada dua jenis beban kerja pelatihan:
- terikat komputasi
- tidak terikat komputasi
Pelatihan terikat komputasi dibatasi oleh jumlah waktu yang dapat Anda luangkan untuk pelatihan, bukan oleh jumlah data pelatihan yang Anda miliki atau faktor lainnya. Dengan kata lain, waktu pelatihan "optimal" selalu "selama yang Anda mampu". Jika Anda dapat berlatih lebih lama atau lebih efisien, kerugian pelatihan akan menurun. (Dengan penyesuaian yang tepat, kerugian validasi juga akan berkurang.)
Mempercepat pelatihan yang terikat komputasi setara dengan meningkatkan kualitas pelatihan. Namun, hanya karena workload dibatasi oleh komputasi, tidak berarti melatih lebih lama atau lebih cepat adalah satu-satunya cara untuk meningkatkan hasil.
Jika pelatihan tidak terikat komputasi, Anda dapat melakukan pelatihan selama yang Anda inginkan. Namun, melatih model lebih lama mungkin tidak banyak membantu atau bahkan dapat menyebabkan overfitting. Jika pelatihan tidak terikat dengan komputasi:
- Anda dapat melatih hingga kerugian pelatihan yang sangat rendah, hingga pada titik di mana pelatihan tambahan dapat sedikit mengurangi kerugian pelatihan, tetapi tidak mengurangi kerugian validasi secara signifikan.
- Anda dapat melakukan penyesuaian dengan lebih mudah, terutama saat menyesuaikan jadwal peluruhan laju pembelajaran, karena jadwal tersebut memiliki interaksi yang sangat kuat dengan anggaran pelatihan. Sebaliknya, mendapatkan kerugian pelatihan yang rendah pada pelatihan yang terikat komputasi mungkin memerlukan jadwal peluruhan kecepatan pembelajaran yang disesuaikan dengan sempurna.
Terlepas dari apakah beban kerja tertentu terikat komputasi atau tidak, metode yang meningkatkan varians gradien (di seluruh batch) biasanya memperlambat progres pelatihan, dan dengan demikian dapat meningkatkan jumlah langkah pelatihan yang diperlukan untuk mencapai kerugian validasi tertentu. Salah satu dari hal berikut dapat menyebabkan varians gradien yang tinggi:
- Menggunakan ukuran batch yang lebih kecil.
- Menambahkan augmentasi data.
- Menambahkan beberapa jenis regularisasi (misalnya, regularisasi dropout).
Memutuskan durasi pelatihan saat pelatihan tidak terikat pada komputasi
Sasaran Anda: Latih cukup lama agar model mencapai hasil terbaik tanpa membuang langkah pelatihan.
Tujuan utama Anda adalah memastikan bahwa Anda melatih cukup lama agar model mencapai hasil terbaik tanpa membuang langkah pelatihan yang tidak perlu. Jika ragu, lebih baik lakukan pelatihan lebih lama. Metrik evaluasi Anda (misalnya, presisi, perolehan, AUC, atau F1) tidak boleh menurun saat pelatihan lebih lama, dengan asumsi Anda menggunakan pemilihan checkpoint retrospektif dengan benar dan Anda melakukan checkpoint yang cukup sering.
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, petakan langkah pelatihan
yang ditemukan oleh pemilihan titik pemeriksaan retrospektif untuk menyempurnakan pilihan
max_train_steps
.
Misalnya, jika langkah terbaik selalu terjadi selama 10% pertama pelatihan, maka jumlah langkah maksimum terlalu tinggi.
Atau, jika langkah terbaik secara konsisten berada di 25% terakhir pelatihan, Anda mungkin akan mendapatkan manfaat dari pelatihan yang lebih lama dan menyesuaikan kembali 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 "menyesuaikan"
set data pelatihan secara sempurna menggunakan kecepatan pemelajaran yang konstan.
max_train_steps
dapat dikurangi jika proses pelatihan meningkat dengan cara tertentu; misalnya, dengan pengoptimal yang disetel lebih baik atau jadwal kecepatan pembelajaran yang disetel lebih baik.
Algoritma untuk memilih kandidat awal untuk max_train_steps menggunakan sweep laju pembelajaran
Anda dapat memilih kandidat awal untuk max_train_steps
dengan
algoritma sapuan laju pembelajaran. Algoritma berikut mengasumsikan bahwa tidak hanya mungkin untuk menyesuaikan set pelatihan "dengan sempurna", tetapi juga melakukannya menggunakan jadwal kecepatan pembelajaran yang konstan.
- Jika seluruh set pelatihan dapat dicocokkan dengan sempurna,
maka harus ada konfigurasi (dengan beberapa nilai
max_train_steps
) yang cocok dengan set pelatihan secara sempurna. Temukan konfigurasi tersebut dan gunakan nilaimax_train_steps
sebagai titik awalN
. - Jalankan sapuan laju pembelajaran konstan (yaitu, penelusuran petak laju pembelajaran)
tanpa augmentasi data dan tanpa regularisasi di mana setiap uji coba melatih
selama
N
langkah. Jumlah langkah yang diperlukan untuk uji coba tercepat dalam penelusuran laju pembelajaran untuk mencapai performa pelatihan yang sempurna harus menjadi perkiraan awal Anda untukmax_train_steps
.
CATATAN: Ruang penelusuran yang buruk dapat menyebabkan penipuan diri sendiri.
Misalnya, jika semua kecepatan pembelajaran dalam studi terlalu kecil, Anda mungkin
secara keliru menyimpulkan bahwa nilai max_train_steps
yang sangat besar diperlukan.
Setidaknya, periksa apakah laju pembelajaran yang optimal dalam studi tidak berada di batas ruang penelusuran.
Menentukan durasi pelatihan saat pelatihan terikat komputasi
Dalam beberapa kasus, kerugian pelatihan terus meningkat tanpa batas, sehingga kesabaran dan resource komputasi Anda menjadi faktor pembatas. Namun, haruskah Anda berlatih selama Anda mampu? Belum tentu. Pertimbangkan hal berikut:
- Anda mungkin dapat melakukan penyesuaian secara lebih efektif dengan menjalankan lebih banyak eksperimen yang lebih singkat, dan mencadangkan eksperimen "durasi produksi" terpanjang untuk model yang ingin Anda luncurkan.
- Saat waktu pelatihan untuk uji coba mendekati batas kesabaran Anda, eksperimen penyesuaian menjadi lebih relevan untuk kandidat peluncuran potensial Anda, tetapi Anda dapat menyelesaikan lebih sedikit eksperimen.
- Anda mungkin dapat menjawab banyak pertanyaan hanya dengan melatih ~10% dari durasi produksi. Namun, kesimpulan Anda pada batas waktu ini mungkin tidak berlaku untuk eksperimen pada 20% durasi produksi, apalagi 100%.
Penyesuaian selama beberapa putaran dengan batas langkah pelatihan per uji coba yang meningkat adalah pendekatan yang masuk akal. Anda dapat menjalankan sebanyak mungkin putaran yang Anda inginkan, tetapi biasanya 1-3 putaran adalah yang paling praktis. Pada dasarnya, coba pahami masalah sebanyak mungkin menggunakan uji coba dengan waktu penyelesaian yang sangat cepat, dengan mengorbankan hal berikut:
- Ketelitian penyesuaian.
- Relevansi dengan lari terpanjang terakhir.
Setelah batas waktu per percobaan tertentu menghasilkan insight yang berguna, tingkatkan waktu pelatihan dan lanjutkan penyesuaian, dengan memeriksa ulang kesimpulan Anda dari proses yang lebih singkat sesuai kebutuhan. Sebagai titik awal, sebaiknya lakukan dua putaran penyesuaian:
- Putaran 1: Jalankan durasi yang lebih singkat untuk menemukan hyperparameter model dan pengoptimal yang baik.
- Putaran 2: Sedikit sekali proses yang berjalan lama pada titik hyperparameter yang baik untuk mendapatkan model akhir.
Pertanyaan terbesar yang muncul dari Babak 1 ke Babak 2 adalah:
Cara menyesuaikan jadwal peluruhan kecepatan pembelajaran.
Salah satu kesalahan 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 lari singkat
Sayangnya, tidak ada jaminan bahwa hyperparameter yang baik yang ditemukan dalam pelatihan singkat dan tidak lengkap masih merupakan pilihan yang baik saat Anda meningkatkan durasi pelatihan secara signifikan. Namun, untuk beberapa hyperparameter, pilihan yang baik sering kali cukup berkorelasi agar Putaran 1 bermanfaat. Nilai hyperparameter apa yang ditemukan dalam operasi yang lebih singkat dan berhasil ditransfer ke operasi pelatihan yang lebih panjang? Kita tidak tahu; kita memerlukan lebih banyak riset. Namun, berdasarkan apa yang kita ketahui sejauh ini, berikut kecurigaan kami dalam urutan menurun berdasarkan probabilitas penularan:
- Sangat mungkin ditransfer. Ketidakstabilan pelatihan awal dapat diselesaikan pada putaran penyesuaian pertama menggunakan jumlah langkah pelatihan yang lebih kecil.
Hyperparameter berikut kemungkinan besar akan ditransfer:
- Durasi pemanasan
- Inisialisasi
- Kemungkinan akan ditransfer. Peningkatan yang signifikan dalam arsitektur model biasanya dapat ditransfer, tetapi banyak contoh sanggahan yang mungkin terjadi.
- Mungkin akan dialihkan. Hyperparameter berikut dapat ditransfer:
- Algoritma pengoptimalan dan hyperparameter akan ditransfer secara "longgar".
- Augmentasi data.
- Regularisasi. Jika set pelatihan tidak dapat dicocokkan dengan sempurna, model mungkin berada dalam rezim yang tidak mungkin banyak membantu regularisasi.
- Kemungkinan tidak dapat ditransfer. Jadwal kecepatan pembelajaran kemungkinan tidak akan ditransfer dengan sempurna. Training Compute-Optimal Large Language Models menunjukkan bahwa jadwal peluruhan dapat ditransfer, tetapi kami tidak yakin bahwa hal ini benar secara umum. Misalnya, menyetel peluruhan sqrt pada sejumlah kecil langkah pelatihan, lalu memperluasnya ke sejumlah besar langkah menyebabkan sebagian besar pelatihan terjadi pada langkah yang terlalu kecil. Anda mungkin dapat melakukan "cukup baik" dengan sebagian besar jadwal dalam batas anggaran pelatihan ekstrem, tetapi Anda mungkin akan melihat peningkatan performa yang signifikan jika jadwal tersebut disesuaikan. Understanding Short-Horizon Bias in Stochastic Meta-Optimization menjelaskan bahaya mencoba memilih laju pembelajaran secara rabun jauh.
Putaran 2: lebih sedikit lari, tetapi durasinya lebih lama
Jalankan konfigurasi hyperparameter terbaik dari Putaran 1.
Spekulasi: 🤖 Gunakan langkah-langkah tambahan untuk memperpanjang periode pelatihan
dengan kecepatan pembelajaran yang tinggi. Misalnya, jika Anda menggunakan jadwal linear, pertahankan panjang peluruhan tetap dari Putaran 1 dan perpanjang periode lr
konstan di awal. Untuk peluruhan kosinus, pertahankan dasar lr
dari Putaran 1 dan perluas max_train_steps
seperti yang dijelaskan dalam
Melatih Model Bahasa Besar yang Optimal untuk Komputasi.
Putaran pelatihan tambahan mungkin diperlukan untuk tim dengan semua hal berikut:
- Pemodelan yang sangat matang
- Pipeline penyesuaian
- Menjalankan pelatihan produksi yang sangat panjang dan mahal
Namun, menjalankan pelatihan tambahan sering kali tidak produktif.
Kami telah menjelaskan cara melakukan transfer dari Putaran 1 ke Putaran 2. Jika Anda tidak peduli dengan waktu analisis dan jika penggunaan sumber daya komputasi yang efisien adalah perhatian utama Anda, sebaiknya tingkatkan durasi proses pelatihan secara eksponensial (dan dengan demikian waktu end-to-end untuk menyelesaikan studi) selama beberapa putaran penyesuaian yang berbeda:
- Di setiap putaran, pastikan secara sistematis bahwa pilihan Anda terus memberikan hasil yang baik.
- Salurkan ide-ide baru melalui proses yang secara progresif mengurangi risikonya menggunakan eksperimen yang berjalan semakin lama dari Langkah i ke Langkah i+1.