Knowledge Distillation
Bilgi damıtmanın, zekayı büyük öğretmenlerden kompakt öğrencilere nasıl aktardığını öğren. Hızlı ve verimli uç dağıtım için Ultralytics YOLO26'yı optimize et.
Bilgi damıtma, "öğrenci" olarak adlandırılan kompakt bir sinir ağının, "öğretmen" olarak bilinen daha büyük ve daha karmaşık bir ağın davranışını ve performansını kopyalamak üzere eğitildiği machine learning alanında gelişmiş bir tekniktir. Bu sürecin birincil amacı, geliştiricilerin ağır mimarilerin tahmin yeteneklerini kaynak kısıtlı donanımlarda dağıtıma uygun hafif modellere aktarmasına olanak tanıyan model optimization sürecidir. Öğretmenin tahminlerinde kodlanan zengin bilgileri yakalayarak öğrenci model, yalnızca ham veriler üzerinde eğitilmesine kıyasla genellikle çok daha yüksek accuracy elde eder ve yüksek performans ile verimlilik arasındaki boşluğu etkili bir şekilde kapatır.
Bilgi Aktarımının Mekanizması#
Geleneksel supervised learning yönteminde modeller, bir görüntünün kesin olarak kategorize edildiği (ör. %100 "köpek" ve %0 "kedi") training data içerisindeki "sert etiketler" kullanılarak eğitilir. Bununla birlikte, önceden eğitilmiş bir öğretmen modeli, tüm sınıflara olasılıklar atayan bir softmax function aracılığıyla bir çıktı üretir. Bu olasılık dağılımları "yumuşak etiketler" veya "karanlık bilgi" olarak bilinir.
Örneğin, bir öğretmen modeli bir kurt görüntüsünü analiz ettiğinde %90 kurt, %9 köpek ve %1 kedi tahmininde bulunabilir. Bu dağılım, kurdun bir köpekle görsel özellikleri paylaştığını, yani sert bir etiketin göz ardı ettiği bağlamı ortaya koyar. Damıtma sürecinde öğrenci, tahminlerini öğretmenin yumuşak etiketleriyle hizalamak için Kullback-Leibler divergence gibi bir loss function değerini en aza indirir. Geoffrey Hinton's research tarafından popülerleştirilen bu yöntem, öğrencinin daha iyi genelleme yapmasına yardımcı olur ve daha küçük veri setlerindeki overfitting durumunu azaltır.
Gerçek Dünya Uygulamaları#
Bilgi damıtma, hesaplama kaynaklarının kıt olduğu ancak yüksek performansın vazgeçilmez olduğu sektörlerde çok önemlidir.
- **Uç Yapay Zeka ve Mobil Görü: ** Akıllı telefonlarda veya IoT cihazlarında karmaşık object detection görevlerini çalıştırmak, düşük inference latency değerine sahip modeller gerektirir. Mühendisler, devasa ağları YOLO26 gibi mobil dostu mimarilere (özellikle nano veya küçük varyantlara) damıtarak dönüştürür. Bu, face recognition veya artırılmış gerçeklik filtreleri gibi gerçek zamanlı uygulamaların battery life tüketmeden sorunsuz bir şekilde çalışmasını sağlar.
- **Doğal Dil İşleme (NLP): ** Modern large language models (LLMs) çalıştırmak için devasa GPU kümelerine ihtiyaç duyar. Damıtma, geliştiricilerin temel language modeling yeteneklerini koruyan bu modellerin daha küçük ve daha hızlı versiyonlarını oluşturmasına olanak tanır. Bu, standart tüketici donanımında veya daha basit bulut örneklerinde duyarlı chatbots ve sanal asistanlar dağıtmayı mümkün kılar.
İlgili Optimizasyon Terimlerini Ayırt Etme#
Bilgi damıtmayı diğer sıkıştırma stratejilerinden ayırt etmek önemlidir, çünkü bunlar modelleri temelden farklı şekillerde değiştirirler.
- **Transfer Learning: ** Bu teknik, geniş bir benchmark dataset üzerinde önceden eğitilmiş bir modeli alıp bunu yeni ve spesifik bir göreve uyarlamayı (ör. tıbbi anomalileri tespit etmek için genel bir görüntü sınıflandırıcısını fine-tuning yapmayı) içerir. Aksine damıtma, alanı değiştirmek yerine aynı bilgiyi daha küçük bir biçimde sıkıştırmaya odaklanır.
- **Model Pruning: ** Budama, mevcut eğitilmiş bir ağı seyrek hale getirmek için gereksiz bağlantıları veya nöronları fiziksel olarak kaldırır. Damıtma ise tipik olarak öğretmenin rehberliğini kullanarak sıfırdan tamamen ayrı, daha küçük bir öğrenci mimarisi eğitilmesini içerir.
- **Model Quantization: ** Niceleme, bellekten tasarruf etmek ve hesaplamayı hızlandırmak için bir modelin ağırlıklarının hassasiyetini (ör. 32-bit kayan noktalı sayıdan 8-bit tamsayılara) azaltır. Bu genellikle TensorRT veya OpenVINO gibi motorlarla uyumlu olan model deployment sürecindeki son adımdır ve maksimum verimlilik için damıtma ile birleştirilebilir.
Bir Öğrenci Model Uygulama#
Pratik bir iş akışında, öğrenci olarak hizmet verecek hafif bir mimariyi ilk olarak seçersiniz. Ultralytics Platform, veri setlerini yönetmek ve bu verimli modellerin eğitim deneyimlerini takip etmek için kullanılabilir. Aşağıda, uç dağıtımı ve öğrenci ağı olarak hizmet verme açısından ideal olan kompakt bir YOLO26 modelini başlatma örneği verilmiştir:
from ultralytics import YOLO
# Load a lightweight YOLO26 nano model (acts as the student)
# The 'n' suffix denotes the nano version, optimized for speed
student_model = YOLO("yolo26n.pt")
# Train the model on a dataset
# In a custom distillation loop, the loss would be influenced by a teacher model
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)





