Dua Masalah di Kedua Ujung Pelatihan [BLOCK_TYPE SECTION/STEP]
Masalah Langkah Awal: Bobot Segar Tidak Dapat Mengambil Langkah Besar
[BLOCK_TYPE SECTION/STEP]Pada langkah 0, setiap bobot dimulai sebagai angka acak kecil yang diambil dari distribusi mendekati nol. Aktivasi tetap mendekati nol. Gradien hampir tidak membawa informasi tentang solusi akhir. Terapkan laju pembelajaran puncak pada gradien tersebut & model melompat jauh dari inisialisasi ke arah yang tidak mengkodekan struktur bermakna. [BLOCK_TYPE SECTION/STEP]
[BLOCK_TYPE SECTION/STEP]
ANDREA-120M v1 melakukan kesalahan ini. Tanpa warmup. Langkah 1 menggunakan lr = 0.0003 pada bobot yang baru diinisialisasi. Hasil: model mendarat di basin parameter yang buruk dalam beberapa ratus langkah. Angka loss terlihat wajar; sampel menghasilkan loop pengulangan pada langkah 80K & tidak pernah pulih.
Masalah Langkah Akhir: Langkah Besar Tidak Dapat Menghaluskan Solusi
Pada langkah ke-100K, model telah mempelajari struktur kasar. Gradien kini membawa sinyal halus: token mana yang bobotnya perlu sedikit penyesuaian, head attention mana yang perlu sedikit penyeimbangan ulang. Menerapkan learning rate puncak pada tahap ini akan melewati setiap penyesuaian halus, berayun-ayun di sekitar optimum tanpa pernah menetap.
Dua masalah, ujung-ujung yang berlawanan dari pelatihan. Satu jadwal, dua wilayah: naikkan secara perlahan, turunkan secara halus.
Linear Warmup: 2000 Langkah Pertama
Rumus
ANDREA-120M v2 menggunakan linear warmup selama 2000 langkah:
lr(t) = lr_scheduled(t) * min(1, (t + 1) / warmup_steps)
di mana t adalah nomor langkah (0-indexed), warmup_steps = 2000, & lr_scheduled(t) adalah nilai yang akan diberikan oleh jadwal cosine jika mengabaikan warmup.
Membaca rumus:
- Pada t = 0: lr = lr_scheduled(0) min(1, 1/2000) = lr_scheduled(0) 0.0005. Langkah pertama sangat kecil.
- Pada t = 1000: lr = lr_scheduled(1000) min(1, 1001/2000) = lr_scheduled(1000) 0.5. Setengah kekuatan.
- Pada t = 2000: lr = lr_scheduled(2000) min(1, 2001/2000) = lr_scheduled(2000) 1.0. Kekuatan penuh.
- Pada t > 2000: clamp menjaga pengali tetap 1, warmup tidak lagi memengaruhi apa pun, cosine decay mengambil alih sepenuhnya.
Ramp linear dari nol memberi model 2000 langkah untuk membentuk representasi kasar sebelum AdamW & gradient clipping melihat pembaruan kekuatan penuh. Pada langkah 2000, bobot sudah cukup bergeser sehingga lr puncak tidak lagi mendorongnya ke basin yang buruk.
Menghitung LR Selama Warmup
Peluruhan Kosinus Setelah Warmup
Kurva
Setelah warmup berakhir pada langkah 2000, learning rate mengikuti kurva kosinus dari puncak turun ke nol selama langkah yang tersisa:
lr(t) = lr_min + (lr_peak - lr_min) 0.5 (1 + cos(pi * progress))
di mana progress = (t - warmup_steps) / (total_steps - warmup_steps). Saat progress = 0 (baru melewati warmup), cos(0) = 1, lr = peak. Saat progress = 1 (langkah terakhir), cos(pi) = -1, lr = lr_min (biasanya 0 atau nilai kecil sebagai batas bawah).
Mengapa Cosine, Bukan Linear atau Eksponensial?
Cosine decay dimulai lambat (kurva hampir datar di dekat puncak), mempercepat di tengah, lalu melambat lagi mendekati nol. Ada tiga manfaat:
1. Plateau di dekat puncak. Langkah awal setelah warmup masih mendapatkan lr yang hampir penuh, sehingga model memiliki periode panjang dengan learning rate tinggi untuk membangun representasi.
2. Transisi halus di tengah. Tidak ada lonjakan tiba-tiba yang harus diserap oleh AdamW.
3. Plateau mendekati nol. Langkah-langkah akhir mendapatkan lr yang sangat kecil untuk pemolesan halus, mirip dengan simulated annealing.
ANDREA-120M dilatih selama total 200K langkah; 198K di antaranya berada di wilayah cosine decay setelah 2000-langkah warmup.
Warm Restart ANDREA-12M pada Langkah 25K
The Plateau
ANDREA-12M dilatih selama 60K langkah dengan cosine decay dari puncak lr = 0.0004. Sekitar langkah 22K, loss mencapai plateau pada EMA ~2.4. Cosine decay telah menurunkan lr hingga ~0.00015. Bandit terus memberikan data yang beragam; model berhenti meningkat.
Diagnosis: lr telah meluruh terlalu jauh sehingga model tidak dapat keluar dari basin saat ini. Data Hermes akan segera masuk ke dalam kurikulum (langkah 25K), membawa 590K percakapan baru. Model membutuhkan energi untuk menyerap guncangan data tersebut.
The Restart
Pada langkah 25K, jadwal menjalankan warm restart: lonjakan lr dari 0.00015 (telah meluruh) kembali ke 0.0004 (puncak awal), lalu melanjutkan cosine decay selama langkah-langkah yang tersisa.
Loshchilov & Hutter (2017) menamai teknik ini "SGDR" (stochastic gradient descent with warm restarts). Intuisinya: lr yang tinggi menambahkan energi kinetik yang cukup untuk keluar dari basin lokal & menjelajahi basin-basin tetangga; cosine decay selanjutnya akan mendinginkan kembali ke dalam basin yang lebih baik.
Outcome. Loss EMA turun dari 2.40 menjadi 2.10 selama 10K langkah berikutnya setelah restart. Model dirilis pada langkah 43.6K dengan SMMA loss 2.0, menunjukkan struktur giliran Q&A yang koheren.
ANDREA-120M v2 memilih untuk TIDAK menggunakan warm restart: dengan 200K langkah yang tersedia & jumlah parameter yang jauh lebih besar, penurunan monoton yang mulus menghasilkan konvergensi yang lebih stabil. Restart paling efektif ketika pelatihan singkat & plateau bertepatan dengan pergeseran data yang diketahui.
Mendiagnosis Kegagalan v1
Pilihan Jadwal dalam Praktik
Aktivitas Terkait
Tiga saudara yang terhubung ke jadwal LR:
- Aktivitas 10: AdamW. Warmup memberi waktu bagi koreksi bias AdamW untuk stabil. Tanpa warmup, amplifikasi 10x pada langkah 1 akan mengalikan segala noise yang dibawa gradien; dengan warmup, pengali tersebut mengenai sinyal yang sebenarnya.
- Aktivitas 12: Gradient clipping. Clipping membatasi norma L2 gradien pada 1.0 SEBELUM AdamW. Warmup meredam lr; clipping meredam g. Bersama-sama mereka menjaga langkah awal tetap aman bahkan pada kurikulum yang rawan guncangan.
- Aktivitas 22: Checkpointing. Warm restart memerlukan pemuatan state optimizer (m, v, penghitung langkah) dari checkpoint, lalu mengubah schedule di tengah pelatihan. Restart ANDREA-12M pada langkah 25K menunjukkan hal ini; dibutuhkan dua percobaan untuk mendapatkan logika pemuatan state yang benar.
Schedule, optimizer, & clipping membentuk segitiga stabilitas. Hilangkan satu titik, dan ANDREA akan mengulangi keruntuhan v1-nya.