Model Distillation Nedir? Yapay Zeka Bilgi Damıtma Rehberi
Model distillation nedir? Model distillation (Türkçe kullanımıyla bilgi damıtma), büyük ve hesaplama açısından pahalı bir yapay zekâ modelinin (“öğretmen” model) bilgisini, çok daha küçük ve hızlı çalışan bir modele (“öğrenci” model) aktarma sürecidir. Amaç, öğrenci modelin öğretmen modelin performansına mümkün olduğunca yakın sonuçlar üretirken, çok daha az hesaplama gücü, bellek ve enerji tüketmesini sağlamaktır. 2026 itibarıyla GPT, Claude ve Gemini ailelerinin “mini”, “flash” veya “haiku” gibi adlandırılan küçük sürümlerinin büyük bölümü, bu teknik veya ona yakın yöntemlerle üretiliyor.
Bu rehberde model distillation’ın nasıl çalıştığını, hangi tekniklerin kullanıldığını, pratikte nasıl uygulanacağını ve hangi durumlarda tercih edilmesi gerektiğini uygulanabilir örneklerle ele alıyoruz. Ayrıca gerçek dünyadan örnekler, karşılaşılan yaygın hatalar, güvenlik ve telif boyutuyla ilgili riskler ile diğer model küçültme tekniklerine kıyasla artı ve eksilerini de inceleyeceğiz.
Model Distillation Nedir? Temel Tanım ve Çalışma Mantığı
Model distillation kavramı ilk olarak 2015 yılında Geoffrey Hinton ve ekibinin yayınladığı “Distilling the Knowledge in a Neural Network” makalesiyle popülerleşti. Temel fikir basit: büyük bir model bir girdiye verdiği yanıtta sadece doğru cevabı değil, o cevaba ne kadar “emin” olduğuna dair zengin bir bilgi de taşır. Bu zengin bilgi, küçük modele aktarılabilirse, küçük model çok daha az parametreyle benzer bir performans seviyesine ulaşabilir.
Teacher-Student (Öğretmen-Öğrenci) Mimarisi
Süreç iki modelle işler:
- Öğretmen model: Genellikle milyarlarca parametreye sahip, yüksek doğrulukla çalışan ama maliyetli bir model.
- Öğrenci model: Öğretmen modelden çok daha az parametreye sahip, hızlı ve ucuz çalışacak şekilde tasarlanmış model.
Eğitim sırasında öğrenci model, aynı girdileri öğretmen modele de verir ve öğretmenin ürettiği çıktıları taklit etmeye çalışır. Bu taklit süreci, sadece doğru/yanlış etiketlerle değil, öğretmenin olasılık dağılımıyla yapıldığında çok daha etkili sonuç verir.
Soft Label ve Hard Label Farkı
Geleneksel eğitimde bir modele “bu resim kedidir” gibi kesin (hard) etiketler verilir. Distillation’da ise öğretmen modelin ürettiği olasılık dağılımı (soft label) kullanılır: örneğin öğretmen model bir görüntüye “%87 kedi, %11 köpek, %2 tilki” gibi bir olasılık dağılımı üretebilir. Bu dağılım, sınıflar arasındaki ince ilişkileri de taşıdığı için öğrenci modele çok daha zengin bir öğrenme sinyali sağlar. Bu yumuşatma işlemi genellikle bir “sıcaklık” (temperature) parametresiyle kontrol edilir; sıcaklık arttıkça olasılık dağılımı daha yumuşak (daha bilgilendirici) hale gelir.
Model Distillation Neden Bu Kadar Önemli?
Büyük dil modellerinin maliyeti ve gecikme süresi, üretim ortamında en büyük engellerden biri. Model distillation bu soruna doğrudan çözüm sunuyor:
- Maliyet düşüşü: Damıtılmış bir model, öğretmen modele göre onlarca kat daha az hesaplama gücüyle çalışabilir; bu da API çağrı başına maliyeti önemli ölçüde azaltır.
- Düşük gecikme (latency): Küçük modeller daha hızlı yanıt üretir; bu özellikle gerçek zamanlı sohbet uygulamaları ve mobil entegrasyonlar için kritik.
- Cihaz üzerinde çalıştırma: Damıtılmış modeller, telefon veya kenar (edge) cihazlarda çalışacak kadar küçültülebilir. Bu konuyu daha önce Yerel Yapay Zeka Nedir? On-Device AI rehberimizde ayrıntılı olarak ele almıştık.
- Enerji verimliliği: Daha az parametre, daha az enerji tüketimi anlamına gelir; bu da büyük ölçekli dağıtımlarda operasyonel maliyeti düşürür.
Gerçek Dünyadan Örnekler: Hangi Modeller Distillation Kullanıyor?
Model distillation akademik bir kavram olmaktan çıkalı uzun zaman oldu; günümüzde birçok ticari ürünün temelinde yer alıyor.
DistilBERT: Akademik Referans Nokta
2019’da Hugging Face tarafından yayınlanan DistilBERT, alanın en sık referans verilen örneklerinden biri. Yayınlanan araştırmaya göre DistilBERT, orijinal BERT modeline kıyasla parametre sayısını yaklaşık %40 azaltırken, dil anlama görevlerinde BERT performansının yaklaşık %97’sini koruyabildiğini ve çıkarım (inference) hızının da belirgin şekilde arttığını raporluyor. Bu çalışma, distillation’ın “küçük ama neredeyse aynı derecede yetenekli” model üretme potansiyelini net biçimde ortaya koyduğu için sektörde referans alınmaya devam ediyor.
Ticari Sağlayıcıların “Mini” ve “Flash” Modelleri
Mini, Haiku veya Flash gibi adlar modelin maliyet ve ürün konumlandırmasını anlatır; yalnızca bu adlardan eğitiminde damıtma kullanıldığı sonucu çıkarılamaz. Eğitim yöntemi için sağlayıcının teknik raporu gerekir. Küçük modeli kendi görev setinizde maliyet, gecikme ve hata türleriyle karşılaştırın.
Model Distillation Türleri
Distillation tek bir yöntem değil; farklı senaryolara göre birkaç yaklaşım öne çıkıyor.
Response-Based Distillation
En yaygın kullanılan yöntem. Öğrenci model, yalnızca öğretmenin son katman çıktısını (nihai olasılık dağılımını) taklit etmeye çalışır. Uygulaması en kolay yöntem olduğu için ticari API’lerde sunulan distillation özellikleri genellikle bu yaklaşımı kullanır.
Feature-Based Distillation
Bu yöntemde öğrenci, sadece son çıktıyı değil, öğretmen modelin ara katmanlarındaki gizli temsilleri (hidden states) de taklit etmeye çalışır. Daha karmaşık bir eğitim süreci gerektirir ama genellikle daha yüksek doğruluk sağlar.
Relation-Based Distillation
Burada odak, tek bir örneğin çıktısından çok, farklı örnekler arasındaki ilişkilerin (örneğin hangi girdilerin birbirine ne kadar benzer olduğunun) öğrenciye aktarılmasıdır. Özellikle temsil öğrenme (representation learning) gerektiren görevlerde tercih edilir.
Model Distillation Nasıl Yapılır? Adım Adım Süreç
- Öğretmen modeli belirleyin: Yeterince yüksek doğruluğa sahip, kararlı bir model seçin. Ticari bir API kullanıyorsanız sağlayıcının distillation için izin verdiği modelleri kontrol edin.
- Öğrenci model mimarisini tasarlayın: Hedef donanım ve gecikme bütçenize göre parametre sayısını belirleyin (örneğin öğretmenin 1/10 ila 1/50’si).
- Eğitim verisini toplayın: Gerçek kullanım senaryolarını temsil eden, çeşitli girdilerden oluşan bir veri seti hazırlayın. Sentetik veri üretimi için öğretmen modelin kendisi de kullanılabilir.
- Öğretmenden çıktı toplayın: Her girdi için öğretmen modelin olasılık dağılımlarını (soft label) kaydedin.
- Kayıp fonksiyonunu tanımlayın: Genellikle KL diverjansı (Kullback-Leibler divergence) ile gerçek etiket kaybının ağırlıklı bir kombinasyonu kullanılır.
- Eğitimi çalıştırın ve izleyin: Öğrenci modelin doğrulama setindeki performansını öğretmenle karşılaştırarak eğitimi izleyin.
- Değerlendirme ve devreye alma: Öğrenci modeli gerçek görevlerde test edin, gecikme ve maliyet kazanımlarını ölçün, ardından üretime alın.
Hangi Araçlarla Yapılır?
Sıfırdan bir eğitim döngüsü yazmak zorunda değilsiniz. Açık kaynak ekosisteminde bu süreci kolaylaştıran birkaç olgun araç bulunuyor:
- Hugging Face Transformers + Trainer API: Özel bir kayıp fonksiyonu tanımlayarak mevcut
Trainersınıfını distillation için uyarlamak mümkün. - Hugging Face TRL: Pekiştirmeli öğrenme ve distillation iş akışlarını birleştiren yardımcı kütüphaneler sunuyor.
- TensorFlow Model Optimization Toolkit: TensorFlow ekosisteminde pruning ve quantization gibi optimizasyon araçları sunar; damıtma için ayrıca bir eğitim döngüsü gerekebilir.
- Sağlayıcı API’leri: Bazı büyük model sağlayıcıları, kendi platformları üzerinden yönetilen distillation iş akışları sunuyor; bu durumda altyapıyı kendiniz kurmanıza gerek kalmıyor.
Küçük ölçekli bir proje için hazır kütüphaneleri kullanmak, geliştirme süresini önemli ölçüde kısaltır; büyük ölçekli ve özelleştirilmiş ihtiyaçlarda ise özel eğitim döngüsü yazmak daha fazla kontrol sağlar.
Kod Örneği: PyTorch ile Basit Distillation Kaybı
Aşağıdaki örnek, bir öğrenci modelin öğretmen modelin çıktısını taklit etmesini sağlayan basitleştirilmiş bir kayıp fonksiyonunu gösteriyor:
import torch
import torch.nn.functional as F
def distillation_loss(student_logits, teacher_logits, true_labels, temperature=2.0, alpha=0.5):
# Ogretmen ve ogrenci ciktilarini sicaklikla yumusat
soft_teacher = F.softmax(teacher_logits.detach() / temperature, dim=-1)
soft_student = F.log_softmax(student_logits / temperature, dim=-1)
# KL diverjansi ile "damitma" kaybi
distill_loss = F.kl_div(
soft_student, soft_teacher, reduction="batchmean"
) * (temperature ** 2)
# Gercek etiketlerle standart kayip
hard_loss = F.cross_entropy(student_logits, true_labels)
# Iki kaybin agirlikli toplami
return alpha * distill_loss + (1 - alpha) * hard_loss
Buradaki temperature parametresi olasılık dağılımının ne kadar yumuşatılacağını, alpha ise damıtma kaybı ile gerçek etiket kaybı arasındaki dengeyi kontrol ediyor. Pratikte temperature değeri genelde 2 ile 5 arasında, alpha ise 0.3 ile 0.7 arasında denenerek en iyi sonuç bulunuyor.
API Üzerinden Distillation: Pratik Bir Örnek
Aşağıdaki alan adı, model adları ve method.type=distillation alanı varsayımsal şemadır; çalışan bir sağlayıcı API isteği değildir. Gerçek bir iş için önce öğretmen çıktılarının kullanım iznini doğrulayın, eğitim dosyasını sağlayıcının desteklediği biçimde hazırlayın ve desteklenen fine-tuning yöntemini seçin.
curl https://api.example-provider.com/v1/fine_tuning/jobs \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"training_file": "file-teacher-outputs-001",
"model": "small-base-model-v1",
"method": {
"type": "distillation",
"distillation": {
"teacher_model": "large-teacher-model-v1",
"temperature": 2.0
}
}
}'
Gerçek sağlayıcıların API alan adları ve parametre isimleri farklılık gösterebilir; bu örnek genel mantığı göstermek amacıyla sadeleştirilmiştir. Kendi kullandığınız sağlayıcının güncel API dokümantasyonunu mutlaka kontrol edin.
Model Distillation vs Diğer Küçültme Teknikleri
Distillation, bir modeli küçültmenin tek yolu değil. Quantization (niceleme) ve pruning (budama) gibi tekniklerle sıkça karıştırılıyor. Aşağıdaki tablo temel farkları özetliyor:
| Teknik | Ne Yapar | Tipik Kazanım | Zorluk Seviyesi |
|---|---|---|---|
| Distillation | Küçük modeli büyük modelin çıktılarıyla yeniden eğitir | Boyut öğrenci mimarisine bağlı; doğruluk kaybı ölçülür | Yüksek (ayrı eğitim süreci gerekir) |
| Quantization | Ağırlıkların sayısal hassasiyetini düşürür (ör. FP16 → INT8) | Boyut bit genişliğine bağlı azalır; hız donanıma bağlı | Düşük-orta (genelde eğitim sonrası uygulanır) |
| Pruning | Modeldeki önemsiz ağırlıkları veya nöronları kaldırır | Kazanç budama türüne ve sparse desteğe bağlı | Orta (yeniden eğitim gerekebilir) |
Pratikte bu üç teknik birbirini dışlamıyor; birçok üretim modeli önce distillation ile küçültülüp ardından quantization ile daha da hafifletiliyor.
Maliyet ve Performans Dengesini Nasıl Değerlendirmeli?
Bir distillation projesine başlamadan önce sorulması gereken temel soru şu: “Küçük modelin kaybettiği doğruluk, elde edilecek maliyet ve hız kazanımına değer mi?” Bu sorunun cevabı görevden göreve büyük ölçüde değişiyor.
| Kriter | Büyük Modeli Doğrudan Kullanmak | Damıtılmış Küçük Model Kullanmak |
|---|---|---|
| Geliştirme süresi | Kısa (ek eğitim gerekmez) | Uzun (veri toplama + eğitim + değerlendirme) |
| Çalışma maliyeti (istek başına) | Yüksek | Düşük |
| Gecikme süresi | Görece yüksek | Düşük |
| Karmaşık görevlerdeki doğruluk | Yüksek | Görev kapsamına göre değişken |
| Cihaz üzerinde (offline) çalıştırma | Genelde mümkün değil | Uygun mimaride mümkün |
Pratikte birçok ekip, yüksek hacimli ve tekrar eden görevleri (örneğin müşteri destek talebi sınıflandırma, basit özetleme, içerik etiketleme) damıtılmış küçük modellere devrederken, düşük hacimli ama yüksek karmaşıklık gerektiren görevleri (örneğin çok adımlı akıl yürütme, uzun bağlamlı analiz) büyük modelde tutmayı tercih ediyor. Bu karma yaklaşım, hem maliyeti kontrol altında tutmaya hem de kritik görevlerde doğruluktan ödün vermemeye yardımcı oluyor.
Sık Yapılan Hatalar ve Çözümleri
1. Sıcaklık (temperature) parametresini hiç denemeden varsayılan bırakmak
Sorun: Varsayılan veya rastgele seçilen bir sıcaklık değeri, öğrenci modelin öğretmenden yeterince bilgi almasını engelleyebilir.
Çözüm: 1, 2, 4 ve 8 gibi birkaç farklı değeri doğrulama setinde test edip en iyi sonucu veren değeri seçin.
2. Eğitim verisinin gerçek kullanım dağılımını yansıtmaması
Sorun: Öğretmenden toplanan örnekler, üretimde karşılaşılacak girdi çeşitliliğini kapsamıyorsa, öğrenci model üretimde beklenmedik hatalar verir.
Çözüm: Eğitim verisini gerçek kullanıcı loglarından veya temsil gücü yüksek senaryolardan oluşturun; tek tip veya çok dar kapsamlı veri setlerinden kaçının.
3. Sadece son katman çıktısına odaklanıp ara temsilleri göz ardı etmek
Sorun: Karmaşık görevlerde yalnızca response-based distillation yeterli doğruluğu sağlamayabilir.
Çözüm: Doğruluk yeterli değilse feature-based distillation gibi daha gelişmiş yöntemleri deneyin.
4. Değerlendirmeyi yalnızca ortalama doğrulukla yapmak
Sorun: Ortalama doğruluk iyi görünse bile, öğrenci model belirli kritik senaryolarda (ör. güvenlik, hassas içerik) öğretmenden önemli ölçüde sapabilir.
Çözüm: Genel doğruluğun yanında, kritik senaryolar için ayrı test setleri oluşturup sonuçları ayrı ayrı izleyin.
5. Lisans ve kullanım koşullarını kontrol etmemek
Sorun: Bazı sağlayıcılar, kendi modellerinin çıktılarının rakip model eğitiminde kullanılmasını hizmet şartlarında açıkça yasaklıyor.
Çözüm: Distillation için kullanacağınız öğretmen modelin hizmet şartlarını ve lisansını işe başlamadan önce mutlaka inceleyin.
6. Eğitim tamamlandıktan sonra modeli hiç yeniden değerlendirmemek
Sorun: Üretimdeki kullanım kalıpları zamanla değişir; ilk eğitimde iyi performans gösteren bir öğrenci model, aylar sonra yeni kullanım senaryolarında zayıf kalabilir.
Çözüm: Üretimdeki gerçek sorgu örneklerini periyodik olarak toplayıp modelin performansını yeniden ölçün; gerekirse eğitim verisini güncelleyip modeli yeniden damıtın.
Güvenlik ve Telif Boyutu: Yetkisiz Distillation Riski
Distillation’ın her zaman izinli ve şeffaf yapılmadığı vakalar da yaşanıyor. Anthropic’in kısa süre önce yedi firmayı, kendi izinleri olmadan Claude modelinin çıktılarını kullanarak rakip model eğittikleri gerekçesiyle ifşa ettiği Claude damıtma saldırısı haberi, bu riskin ne kadar somut olduğunu gösteriyor. Yetkisiz distillation, hem hizmet şartları ihlali hem de model sağlayıcısının iş modeline doğrudan zarar veren bir uygulama olarak değerlendiriliyor. Bu nedenle büyük API sağlayıcıları, anormal derecede yüksek hacimli ve sistematik sorgu desenlerini tespit etmek için izleme sistemleri kullanıyor.
Kendi projeniz için distillation uygularken, yalnızca kullanım şartlarının açıkça izin verdiği modelleri öğretmen olarak seçmeniz, hem hukuki hem operasyonel riskleri önemli ölçüde azaltır.
Sonuç: Model Distillation Kimin İçin Uygun?
Model distillation, özellikle yüksek hacimli, gecikmeye duyarlı veya maliyet baskısı yüksek üretim sistemleri için pratik bir çözüm sunuyor. Mobil uygulama geliştiren, gerçek zamanlı sohbet asistanı çalıştıran veya API maliyetlerini düşürmek isteyen ekipler için doğrudan fayda sağlayabilir. Öte yandan, tek seferlik veya düşük hacimli kullanım senaryolarında bu sürecin eğitim ve doğrulama maliyeti, elde edilecek kazanımı aşabilir; bu durumda doğrudan büyük modeli kullanmak veya daha basit bir fine-tuning yaklaşımı tercih etmek daha mantıklı olabilir. Karar verirken hem beklenen kazanımı hem de kendi ekibinizin eğitim altyapısını yönetme kapasitesini birlikte değerlendirmeniz öneriliyor. Küçük bir pilot proje ile başlayıp gerçek maliyet ve doğruluk kazanımlarını ölçmek, büyük ölçekli bir yatırım kararı almadan önce en güvenli yaklaşım olarak öne çıkıyor.
Sık Sorulan Sorular
Model distillation ile fine-tuning arasındaki fark nedir?
Fine-tuning, mevcut bir modeli belirli bir görev için yeniden eğitirken modelin boyutunu değiştirmez. Model distillation ise farklı (genelde çok daha küçük) bir modeli, büyük bir modelin çıktılarını taklit ederek eğitir; amaç boyut ve hız kazanımı elde etmektir.
Distillation sonrası öğrenci model her zaman öğretmenden daha mı kötü performans gösterir?
Genellikle evet, ancak fark iyi tasarlanmış bir süreçte oldukça küçük tutulabilir. Bazı dar kapsamlı görevlerde, iyi damıtılmış bir küçük model, o göreve özel olarak optimize edildiği için öğretmene çok yakın hatta belirli metriklerde ona eşdeğer sonuç verebilir.
Model distillation için ne kadar veri gerekir?
Kesin bir sayı vermek zor; görev karmaşıklığına göre değişir. Basit sınıflandırma görevleri birkaç bin örnekle iyi sonuç verebilirken, karmaşık dil görevleri için on binlerce örnek gerekebilir. En doğru yaklaşım, küçük bir veri setiyle başlayıp doğrulama performansını izleyerek kademeli artırmaktır.
Kendi modelimi distillation ile küçültmek için özel donanıma mı ihtiyacım var?
Öğretmen modelden çıktı toplama ve öğrenci modeli eğitme süreci, modelin boyutuna bağlı olarak standart bir GPU ile yapılabilir. Çok büyük öğretmen modelleri kullanıyorsanız, en azından çıktı toplama aşamasında bulut tabanlı API’lere güvenmek daha pratik olabilir.
Distillation modelin güvenlik davranışlarını da aktarır mı?
Kısmen. Öğrenci model öğretmenin genel davranış kalıplarını öğrenme eğiliminde olsa da, güvenlik ve içerik moderasyonu davranışlarının birebir aynı şekilde aktarıldığı garanti edilemez. Bu nedenle damıtılmış modellerin güvenlik testlerinin ayrıca ve bağımsız olarak yapılması öneriliyor. Özellikle üretime almadan önce, öğrenci modelin sınır durumlarda (belirsiz veya hassas sorgularda) nasıl davrandığını ayrı bir test setiyle doğrulamak, sürpriz davranışların önüne geçmenin en pratik yolu.
Kod Örneğinin Kapsamı
PyTorch örneği aynı sınıf sırasına sahip logits ile sınıflandırma içindir. Öğretmeni eval moduna alın ve çıktısını no_grad altında üretin; öğrenci kaybı öğretmenin ağırlıklarını güncellememelidir. Büyük dil modelinin yalnızca metin yanıtını veren API’si, bütün token olasılıklarını sağlamayabilir. Metin çıktılarıyla denetimli fine-tuning, tam dağılım üzerinden KL damıtmasından farklıdır.
Teknik kaynak: PyTorch — Knowledge distillation.




