Knowledge Distillation: Büyük Modellerin Bilgisini Küçük Modellere Aktarmak

Büyük dil ve görüntü modelleri etkileyici sonuçlar üretir; ancak çoğu zaman pahalı, yavaş ve cihaz üzerinde çalıştırılamayacak kadar hantaldırlar. Knowledge Distillation (bilgi damıtma), büyük bir öğretmen modelin öğrendiği davranışları daha küçük bir öğrenci modele aktararak bu sorunu hedefler. Amaç öğretmeni birebir kopyalamak değil, onun karar verme ipuçlarını sıkıştırılmış bir biçimde öğrencide yaşatmaktır. ``

Klasik denetimli öğrenmede model, örneğin bir görselin yalnızca “kedi” olduğunu öğrenir. Oysa güçlü bir öğretmen model, tahmin dağılımında çok daha zengin bir mesaj taşır: Görselin %85 olasılıkla kedi, %10 tilki ve %3 köpek olabileceğini söyleyebilir. “Tilki” olasılığının sıfır olmaması, örneklerin görsel olarak hangi yönlerden benzeştiğini öğrenciye anlatan değerli bir sinyaldir. Distillation’ın temel fikri tam olarak bu yumuşak hedefleri kullanmaktır.

Öğretmen, öğrenci ve sıcaklık

Öğretmen modelin logits adı verilen ham çıktılarını $z_i$ ile gösterelim. Normal softmax olasılığı şöyledir:

\[p_i = \frac{e^{z_i}}{\sum_j e^{z_j}}\]

Distillation sırasında bir sıcaklık parametresi $T$ eklenir:

\[p_i^{(T)} = \frac{e^{z_i/T}}{\sum_j e^{z_j/T}}\]

$T > 1$ olduğunda olasılık dağılımı yumuşar; yani öğretmenin ikinci ve üçüncü tercihleri daha görünür hâle gelir. Öğrenci, hem gerçek etiketlerden hem de öğretmenin bu yumuşatılmış tahminlerinden öğrenir. Yaygın toplam kayıp fonksiyonu aşağıdaki fikre dayanır:

\[\mathcal{L} = \alpha \mathcal{L}_{CE}(y, s) + (1-\alpha)T^2\mathcal{L}_{KL}(p_t^{(T)}, p_s^{(T)})\]

Burada $\mathcal{L}{CE}$ gerçek etiketler için çapraz entropi kaybını, $\mathcal{L}{KL}$ ise öğrenci ve öğretmen dağılımları arasındaki KL ayrışımını temsil eder. $\alpha$, iki öğrenme kaynağı arasındaki denge düğmesidir. $T^2$ çarpanı da sıcaklık nedeniyle ölçeklenen gradyanları dengelemeye yardımcı olur.

Yaklaşım Eğitim sinyali Güçlü yanı Sınırlaması
Normal eğitim Sert, tek doğru etiket Basit kurulum Sınıflar arası benzerliği kaçırır
Knowledge Distillation Etiket + öğretmen dağılımı Küçük modelde daha iyi doğruluk Önceden eğitilmiş öğretmen gerekir
Quantization Sayısal hassasiyeti azaltma Bellek ve hız kazancı Tek başına bilgiyi iyileştirmez

knowledge-distillation-buyuk-48

Basit bir PyTorch iskeleti

Aşağıdaki örnek, öğrenci kaybının nasıl hesaplandığını gösterir. Öğretmen parametreleri güncellenmez; onun görevi yalnızca rehberlik etmektir.

import torch.nn.functional as F

T = 4.0
alpha = 0.3

teacher.eval()
for x, labels in train_loader:
    with torch.no_grad():
        teacher_logits = teacher(x)

    student_logits = student(x)

    hard_loss = F.cross_entropy(student_logits, labels)
    soft_loss = F.kl_div(
        F.log_softmax(student_logits / T, dim=1),
        F.softmax(teacher_logits / T, dim=1),
        reduction="batchmean"
    ) * (T * T)

    loss = alpha * hard_loss + (1 - alpha) * soft_loss
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

Bu kodda hard_loss, öğrencinin sınavın resmi cevap anahtarından öğrenmesidir. soft_loss ise öğretmenin “bu soru biraz da şu seçeneğe benziyor” şeklindeki deneyim aktarımıdır. Pratikte $T$ için 2–8, $\alpha$ için 0.1–0.5 aralığıyla denemeler yapmak iyi bir başlangıçtır.

Senaryo Öğretmen Öğrenci Beklenen fayda
Mobil görüntü sınıflandırma ResNet/ViT Large MobileNet Daha düşük gecikme
Çağrı merkezi NLP Büyük Transformer Küçük Transformer Daha ucuz çıkarım
Edge cihaz Bulut modeli Quantize edilmiş öğrenci Çevrimdışı kullanım

Distillation sihirli bir küçültme düğmesi değildir: Öğrenci çok küçükse öğretmenin bilgisini taşıyacak kapasite bulamaz; öğretmen hatalıysa öğrenci de bu hataları miras alabilir. Buna rağmen doğru mimari, veri ve hiperparametrelerle kullanıldığında, üretim ortamında doğruluk-hız-maliyet üçgenini oldukça akıllıca dengeler.

Yorumlar