Lensa ML

Knowledge Distillation

Langkah 1 dari 6: Teacher dan Student

Model besar melatih model kecil untuk serving

Layer student22
Lebar student (d_model)2048
Setiap batang adalah satu layer; lebar batang adalah lebar modeltargetTeacher: model chat 7B32 × 4096, 6.74B, 13.5 GBStudent22 × 2048, 1.24B, 2.5 GBBatas decode batch-1 pada 1.000 GB/s (ilustrasi):teacher ≤ 74 tok/s, student ≤ 402 tok/s
Parameter student
1.24B
Weight student (fp16)
2.5 GB
Ukuran vs teacher
18%
Percepatan decode
5.4×

Student 22 layer dengan lebar 2048 punya 1,24B parameter dan 2,5 GB weight fp16, jadi yang dibaca per token 5,4× lebih sedikit daripada teacher. Pertanyaannya, seberapa banyak kualitas teacher yang bisa dipertahankan.

Geser Layer student dan Lebar student (d_model), lalu bandingkan jumlah parameternya. Lebar lebih mahal daripada kedalaman: weight attention dan FFN tumbuh seiring d², jadi memangkas lebar menjadi separuh menyusutkan tiap layer sampai sekitar seperempat. Hitungannya memakai 4d² per layer untuk attention, 3·d·ffn untuk gated FFN, dan 2·V·d untuk embedding, yang menghasilkan 6,74 miliar parameter milik teacher. Pruning dan quantization menyusutkan model terlatih tanpa mengganti modelnya. Distilasi satu-satunya metode yang melatih model baru dengan bentuk berbeda, dan bisa digabung dengan keduanya.

Langkah 2 dari 6: Dark Knowledge

Yang disampaikan soft target, tetapi tidak oleh label

Tulisan tangan: angka 2 yang bergeser ke arah 315% ke arah 3
Skala batang
gambar inputHard label: satu kelas mendapat 100%Soft target teacher pada T = 1 (logit ilustrasi)<0.1%<0.1%97%1.1%<0.1%<0.1%<0.1%1.4%0.2%<0.1%0123456789
Hard label
"2"
Teacher p(2)
97%
Teacher p(3)
1.1%
8 kelas lainnya
1.8%

Hard label hanya menyebut "2". Teacher juga menunjukkan bahwa "2" ini 1,3× lebih mirip 7 daripada 3, dan nyaris tidak mirip 0 atau 4. Pindah ke Log untuk melihat nilai-nilai kecil itu.

Geser slider Tulisan tangan dari angka 2 yang jelas ke arah 3, lalu pindahkan Skala batang ke Log untuk membaca probabilitas kecil. Hinton, Vinyals, dan Dean menyebut informasi ini dark knowledge. Soft target dengan entropy tinggi memberi lebih banyak informasi per contoh training daripada label, dan gradient-nya lebih sedikit bervariasi dari satu contoh ke contoh berikutnya. Dalam uji MNIST mereka, student yang tidak pernah melihat angka 3 saat training tetap mengklasifikasikan 98,6% angka 3 pada data uji dengan benar setelah bias untuk kelas itu dinaikkan. Ia mempelajari angka itu dari kemiripan angka-angka lain dengannya.

Langkah 3 dari 6: Temperature

Melunakkan probabilitas teacher

Temperature T4.0
softmax(z / T) dari logit ilustrasi teacher untuk "2"T = 1T = 4.000.514.0%05.6%138%212%34.2%46.3%54.4%613%77.8%84.9%9Entropymaks 3.32 bits
Entropy
2.84 bits
p(2)
38%
p(7)
13%
p(3)
12%

Membagi logit dengan 4,0 mengangkat "7" ke 13% dan "3" ke 12%, sementara "2" tetap di puncak. Entropy naik ke 2,84 bit, jadi target kini menunjukkan jawaban salah mana yang dekat.

Geser Temperature T dari 1 ke 20 dan lihat batang berisi menjauh dari garis putus-putus T = 1. Membagi setiap logit dengan T mempertahankan urutannya tetapi memperkecil jaraknya, sehingga softmax lebih merata. Student memakai T yang sama saat training dan kembali ke T = 1 saat inference. Hinton dkk. menemukan student dengan 300 unit atau lebih per layer sama baiknya pada T berapa pun di atas 8, sedangkan student 30 unit paling baik di antara 2,5 dan 4, rentang saat logit yang paling negatif lebih kecil pengaruhnya.

Langkah 4 dari 6: Distillation Loss

KL soft ditambah cross-entropy hard, dan faktor T²

Weight pada suku soft α0.70
Temperature T4.0
teacher pada Tstudent pada T (logit ilustrasi)0123456789Besar gradient suku soft vs T (α = 1, skala log)1e-31e-21e-11e0dengan T²tanpa T²15101520T
Suku soft α·T²·KL
0.860
Suku hard (1 − α)·CE
0.077
Total loss
0.937
Besar gradient soft
0.459

KL pada T = 4.0 hanya 0,0767 nat. Mengalikannya dengan T² = 16 menjaga gradient soft di 0,459; tanpa itu gradient hanya 0,0287, terlalu kecil untuk mengimbangi suku hard.

Atur α mendekati 0,7, lalu geser Temperature T. Meminimalkan KL ke teacher menghasilkan gradient yang sama dengan cross-entropy terhadap soft target, karena keduanya hanya berbeda sebesar entropy teacher, yang tidak bisa diubah student. Gradient pada logit student ke-i adalah (q_i − p_i) / T, dan selisih q_i − p_i sendiri mengecil seperti 1/T, sehingga gradient turun seperti 1/T². Hinton dkk. mendapat hasil terbaik dengan weight yang jauh lebih kecil pada suku hard. Pada T tinggi, distilasi menjadi pencocokan logit dengan squared error.

Langkah 5 dari 6: Melatih Student

Soft target vs hard label pada contoh sederhana

Titik training berlabel9
Contoh: 3 kelas, 9 titik trainingGaris: batas kelas (putus-putus: teacher)Test loss (900 titik held-out)0.40.81.2060120epoch 0hard labelsoft target
Test loss hard label
1.099
Test loss soft target
1.099
Akurasi hard label
33.3%
Akurasi soft target
33.3%

Kedua student mulai dari tebakan seragam, test loss 1,099. Tekan Putar atau Langkah untuk melatih keduanya pada 9 titik yang sama. Test loss teacher sendiri 0,458.

Tekan Putar, lalu ulangi dengan Titik training berlabel di 6 dan di 60. Kedua student adalah softmax regression pada tiga kelas Gaussian; teacher-nya adalah posterior kelas yang eksak. Dengan sedikit titik, kelas-kelasnya hampir terpisah, jadi pada hard label, gradient descent terus memperbesar weight untuk mendorong setiap probabilitas training ke 1. Soft target punya titik optimum terbatas yang bisa dicapai student. Pada MNIST, Hinton dkk. menurunkan error uji network kecil dari 146 menjadi 74 dengan menambahkan soft target pada T = 20.

Langkah 6 dari 6: Distilasi LLM

Logit, top-k, atau teks teacher

Probabilitas teacher yang disimpan per token (k)64
Token training10B
"The capital of France is" → token berikutnya dari teacher (ilustrasi)Paris96%a1.6%the1.0%located0.5%known0.3%not0.2%home0.1%one<0.1%Lyon<0.1%situated<0.1%Disimpan: 10 dari 10 yang ditampilkan, 100% dari massanyaSequence-leveltoken teacher sajaTop-k logitsk probabilitas per tokenFull logitssemua 32.000 per token
Byte per token
256
Target untuk 10B token
2.6 TB
vs ID token biasa
128×

Menyimpan 64 probabilitas teratas memakan 256 byte per token, 2,6 TB untuk 10B token. Sisanya setelah k dibuang, dan probabilitas yang disimpan dinormalisasi ulang.

Geser k dari 1 ke 32.000 dan Token training sampai 1T untuk melihat seberapa cepat target tersimpan membengkak. Kim dan Rush (2016) memperkenalkan sequence-level distillation untuk terjemahan, dengan melatih student pada hasil beam search teacher; student terbaik mereka berjalan sekitar 10 kali lebih cepat dengan sedikit penurunan kualitas. DistilBERT memakai soft target saat pretraining dan mempertahankan sekitar 97% pemahaman bahasa BERT dengan ukuran 40% lebih kecil. DeepSeek merilis enam model dense, dari 1,5B sampai 70B, yang dibuat dengan fine-tuning model Qwen dan Llama pada output DeepSeek-R1.

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

Referensi

  1. Hinton, Vinyals & Dean (2015), "Distilling the Knowledge in a Neural Network"
  2. Kim & Rush (2016), "Sequence-Level Knowledge Distillation"
  3. Sanh et al. (2019), "DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter"
  4. Gemma Team (2024), "Gemma 2: Improving Open Language Models at a Practical Size"
  5. DeepSeek-AI (2025), "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning"

Terakhir diperbarui