Apa itu knowledge distillation?
Knowledge distillation melatih model kecil, yaitu student, untuk meniru output model terlatih yang lebih besar, yaitu teacher. Selain belajar dari hard label, student belajar dari seluruh distribusi probabilitas teacher atas kelas atau token. Probabilitas itu menunjukkan jawaban salah mana yang hampir benar, dan student menangkap struktur tersebut dengan parameter yang jauh lebih sedikit.
Banyak model ringkas untuk serving dibuat dengan distilasi. DistilBERT adalah BERT hasil distilasi, model 2B dan 9B pada Gemma 2 dilatih dengan distribusi dari teacher yang lebih besar, dan banyak model chat dan reasoning terbuka berukuran kecil di-fine-tune pada teks yang ditulis model lebih besar. Student yang lebih kecil membaca lebih sedikit byte per token yang dihasilkan, jadi jawabannya lebih cepat dan biayanya lebih murah, dan ia muat di ponsel dan laptop yang tidak sanggup menampung teacher.
Ide utama
- Student belajar mencocokkan probabilitas output teacher yang lebih besar, bukan hanya hard label.
- Probabilitas kecil teacher pada kelas yang salah menunjukkan kelas mana yang mirip, informasi yang dibuang label one-hot.
- Membagi logit dengan temperature T di atas 1 melunakkan kedua distribusi sehingga probabilitas kecil itu memengaruhi training.
- Loss mencampur α·T²·KL ke teacher dengan (1 − α) cross-entropy pada label asli; T² menjaga gradient soft agar tidak mengecil ketika T naik.
- Soft target berperan sebagai regularizer, jadi student yang dilatih dengannya tidak terlalu overfit ketika data berlabel sedikit.
- Untuk LLM, distilasi berkisar dari mencocokkan logit per token milik teacher sampai fine-tuning pada teks buatan teacher.
Pertanyaan umum
Bagaimana cara melakukan distilasi pada model sendiri?
Pilih teacher terlatih dan student yang lebih kecil, lalu jalankan teacher pada input training dan simpan probabilitas atau logit output-nya. Latih student dengan loss α·T²·KL ke teacher ditambah (1 − α) cross-entropy pada label asli, sambil menyetel temperature T dan weight α pada validation set. Kalau akses ke teacher hanya berupa teks, seperti kebanyakan model API, lakukan fine-tuning student pada teks yang dihasilkan teacher.
Apa bedanya knowledge distillation dengan quantization dan pruning?
Quantization menyimpan weight yang sama dengan bit lebih sedikit, dan pruning membuang weight atau seluruh head dari model terlatih. Keduanya mempertahankan arsitektur aslinya. Distilasi melatih arsitektur terpisah yang lebih kecil, dari nol atau dari checkpoint yang lebih kecil, dengan teacher sebagai sumber target. Ketiganya sering digabung, misalnya student hasil distilasi yang kemudian di-quantize ke 4 bit.
Bisakah student lebih baik daripada teacher-nya?
Kadang bisa. Ketika student seukuran teacher, seperti pada born-again network, skornya sering sedikit lebih tinggi karena soft target berperan sebagai regularizer yang kuat. Student yang jauh lebih kecil biasanya tetap di bawah teacher, tetapi jauh di atas model kecil yang sama jika dilatih dengan label saja.
Apakah student harus punya arsitektur atau tokenizer yang sama dengan teacher?
Arsitekturnya boleh berbeda sepenuhnya, karena yang dicocokkan hanya output. Distilasi logit memang butuh ruang output yang sama: untuk LLM, artinya vocabulary yang sama, sehingga setiap probabilitas token teacher punya token pasangan di student. Sequence-level distillation hanya butuh teks, jadi bisa dipakai lintas tokenizer dan keluarga model.
Bolehkah melatih model dengan output model lain?
Tergantung lisensi atau ketentuan layanan teacher. Beberapa penyedia API komersial melarang pemakaian output mereka untuk membangun model pesaing, sedangkan banyak lisensi open-weight mengizinkan distilasi, kadang dengan syarat penamaan atau atribusi. Periksa lisensi spesifiknya sebelum memakai output model sebagai data training.
Penjelasan terkait
- Softmax, Logit, dan Temperature · Mengubah skor mentah menjadi probabilitas
- KL Divergence · Mengukur seberapa berbeda dua distribusi
- Loss Function · Cara network mengukur kesalahannya
- BERT dan Masked Language Modeling · Sembunyikan satu kata, prediksi dari dua sisi: cara BERT mempelajari representasi bidirectional yang dalam
- Quantization · Mengecilkan weight model menjadi 8 dan 4 bit
- Sampling: Temperature, Top-k, dan Top-p · Cara model bahasa memilih token berikutnya
Referensi
- Hinton, Vinyals & Dean (2015), "Distilling the Knowledge in a Neural Network"
- Kim & Rush (2016), "Sequence-Level Knowledge Distillation"
- Sanh et al. (2019), "DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter"
- Gemma Team (2024), "Gemma 2: Improving Open Language Models at a Practical Size"
- DeepSeek-AI (2025), "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning"
Terakhir diperbarui