Bilgi Damıtma ve Model Küçültme
Bilgi damıtma, çok büyük bir öğretici modelin bilgilerini daha küçük bir öğrenci modele aktararak, uygun bir boyutta, kolayca dağıtılabilir bir model elde etmeyi amaçlayan bir yaklaşımdır. Bu yöntem, genellikle öğretici modelin doğruluğuna yakın bir başarı ile sonuçlanmayı hedefler. Bilgi damıtma, ön eğitim süreçlerinde popülerlik kazanmışken, denetimli ince ayar (SFT) aşamasında bu yöntemi uygulamak için daha az kaynak bulunmaktadır.
NVIDIA’nın Çözümü: NeMo-Aligner
NVIDIA NeMo-Aligner, denetimli ince ayar sırasında bilgi damıtma kullanarak, daha az veriyle daha yüksek doğruluk sağlayan bir uygulama geliştirmiştir (Tablo 1).
Eğitim Hedefi | Eğitim Adımları | MMLU (5-örnek) | MMLU (0-örnek) | HumanEval (0-örnek) | MBPP (0-örnek) | GSM8K (0-örnek) | MATH (0-örnek) |
SFT kaybı | 600,000 | 65.3 | 56.9 | 64.6 | 71.7 | 84.2 | 30.12 |
KD + SFT kaybı | 420,000 | 65.3 | 57.3 | 70.1 | 73.3 | 85.2 | 35.84 |
KD + SFT kaybı | 600,000 | 65.3 | 57.6 | 72 | 73.8 | 84.8 | 36.6 |
Tablo 1’de, bilgi damıtma ile ince ayar yapılması, standart metodun gerektirdiği adımlara kıyasla daha az eğitim adımında daha iyi sonuçlar verdiğini göstermektedir. Bu uygulama, bir matematik ve kod veri seti kullanılarak gerçekleştirilmiştir. Bilgi damıtma yönteminin kullanıldığı model, tüm matematik ve kodla ilgili değerlendirme kriterlerinde standart modele göre daha iyi sonuçlar elde etmiştir.
NeMo-Aligner ile Bilgi Damıtma
Dışarıdan büyük bir modelden bilgi transfer etmenin birkaç yolu vardır. En yaygın yöntem, öğretici modelin sentetik veri üretiminde kullanılmasıdır ki bu yönteme KD-SDG adını veriyoruz. Üretilen sentetik veriler, öğrenci modelini ince ayar yapmak için kullanılmaktadır.
Bunun yanı sıra, öğrencinin öğreticinin çıktı logitlerini eşleştirmek üzere eğitildiği bir yaklaşım mevcuttur. Bu yöntem, “Bir Sinir Ağında Bilgi Damıtma” başlığı altında tanıtılmıştır ve buna KD-logit denir.
Bu yöntem, sınıflar arasında benzerlik ve farklılık bilgisine dayalı daha bilgilendirici bir gradient sinyali sağlar. Bu bilgiye koyu bilgi (dark knowledge) denir. Daha fazla bilgi için, Koyu Bilgi başlıklı makaleye göz atabilirsiniz.
Bu yazıda ve NeMo-Aligner’da, SFT sırasında KD-logit uygulamasına odaklanıyoruz.
NeMo-Aligner’ın KD-Logit İşlem Basamakları
NeMo-Aligner’ın çevrimdışı KD-logit süreci şu ana adımlardan oluşur:
- Öğretici modelin, eğitim verileri üzerinde tahminler yaptığı bir ön işleme adımı. Öğretici modelin logitleri, eğitim verilerine eklenir.
- Öğrencinin, kendi logitlerini öğreticinin logitlerine eşleştirecek şekilde eğitildiği bir eğitim adımı.
Öğreticinin logitlerinin önceden kaydedilmesi yalnızca bir kez yapılmalıdır. Bu yaklaşım, öğreticinin sürekli olarak logit hesaplamasının gerekliliğine kıyasla bazı avantajlar sunar:
- Hafıza Tasarrufu: Hem öğretici hem de öğrenci modeli aynı anda GPU’da yüklemek zorunda kalmazsınız.
- Daha Hızlı Eğitim: Eğitim sırasında öğreticinin tahmin yapması için beklemek zorunda kalmazsınız.
Ancak, öğreticinin tüm logitlerini diske kaydetmek oldukça fazla bellek kullanabilir. Bellekten tasarruf sağlamak için, yalnızca öğreticinin en yüksek K logitlerini diske kaydettik; burada K, pratiğe bağlı olarak seçilecek bir hiperparametredir.
Büyüyen K değeri, öğrencinin öğreticiden daha fazla detaylı bilgi öğrenmesini sağlar, ancak bellek baskısını artırır. Pratikte, K genellikle 100 civarında seçilmektedir ki bu da tipik bir kelime hazinesinin boyutundan çok daha küçüktür.
Öğreticinin logitleri veri setine eklendikten sonra, öğrenci bu logitlere eşleştirilerek eğitilmektedir. Somut olarak, bilgi damıtma kaybı fonksiyonu, K öğrenci ve öğretici logitleri arasındaki ileri-KL sapmasıdır:
Bu kayıp fonksiyonu, nihai eğitim hedefini elde etmek için vanilla SFT çapraz entropi kaybı fonksiyonu ile birleştirilir. Burada , SFT kayıp teriminin KD kayıp terimi ile karşılaştırıldığında ne kadar güçlü olacağını kontrol eder:
Sonuçlar ve Değerlendirme
Tablo 1, bilgi damıtma hedefi kullanarak ince ayar yapılan bir modelin, vanilla SFT modeline göre daha yüksek doğruluk sağladığını ve daha az eğitim token’i kullanıldığını göstermektedir. SFT için yapılan deneylerde, temel Nemotron-4 15B öğrenci modeli ile ince ayar yapılmış Nemotron-4 340B öğretici modeli kullanılmıştır.
SFT için kullanılan veri seti, aşağıdaki makalelerde tarif edilen teknikler kullanılarak oluşturulmuştur:
- Matematik veri seti: OpenMathInstruct-2: AI’nin Matematik için Hızlandırılması (Nemotron-4 340B kullanılarak, Llama-3.1-405B-Instruct yerine)
- Kod veri seti: Genetic Instruct: Büyük Dil Modelleri için Kodlanma Talimatlarını Ölçeklendirme
Hem matematik hem de kod verilerinin birleşimi, sentetik veri üretimi kullanılarak oluşturulmuştur. Bu deneylerde ve
alınmıştır.
Aynı eğitim adımları sayısı ile, bilgi damıtma ve SFT hedefini birlikte kullanan model, yedi değerlendirme kriterinden altısında SFT temel modelinden daha iyi performans göstermiştir. Özellikle, HumanEval, MBPP ve MATH gibi değerlendirme kriterlerinde önemli iyileşme gözlemlenmiştir; bu kriterler, kodlama ve matematiksel akıl yürütme becerilerini ölçmektedir. MMLU ise, çeşitli dil anlama görevlerini değerlendirdiği için, KD ile ince ayar yapılmış model, sıfır-örnek durumunda en az temel model kadar iyi sonuç vermekte, beş-örnek durumunda ise temel modelden daha yüksek bir başarı sergilemektedir.
Yalnızca %70 eğitim token’i ile, KD ile ince ayar yapılmış Nemotron-4 modelinin, aynı altı değerlendirme kriterinde vanilla SFT modeline göre daha iyi sonuçlar elde ettiği görülmektedir.
Sonuç ve Gelecek Yönelimler
Bu sonuçların iki önemli sonucu vardır. İlk olarak, bilgi damıtmanın ince ayar yapılmış modellerin doğruluğunu artırmak için kullanılabileceğini göstermiş olduk. Bu, verilerin kıt olduğu ortamlarda, iyi bir doğruluk elde etmek için daha az eğitim token’ine ihtiyaç duyulması açısından oldukça faydalıdır.
İkincisi, KD-logit’in SDG verinizle birlikte kullanılarak toplu faydalar elde edilebileceğini gösterdik.
Daha fazla bilgi için, NeMo-Aligner’da SFT eğitimine bilgi damıtmayı eklemek hakkında Denetimli İnce Ayar (SFT) ile Bilgi Damıtma makalesine göz atabilirsiniz.