Optimizer’ı neden baştan seçiyoruz?
Bir sinir ağı eğitilirken her adımda ağırlıklar biraz değişir. Hangi yöne ve ne kadar değişeceğine optimizer karar verir. AdamW ve son dönemde popüler olan Muon buna örnek. Öğrenme hızı (learning rate), momentum gibi ayarları da eğitim başlamadan seçeriz.
Sorun şu: Seçim bir kez yapılıyor ve eğitim bitene kadar değişmiyor. Model yarı yolda veriyi ezberlemeye başlarsa ya da kayıp (loss) aniden zıplarsa optimizer buna tepki veremiyor. Aynı tarifi uygulamaya devam ediyor. İnsan ancak sonradan bakıp ayarları değiştirerek yeniden başlatabiliyor.
OPAL ne yapıyor?
Xingjian Bai, Jia-Hao Liang, Jayden Teoh ve Vincent Sitzmann’ın Reactive Optimizers çalışması bu kalıbı kırmayı deniyor. Fikir: Optimizer’ın içine bir kodlama ajanı koymak. Ekibin açık kaynak kütüphanesi OPAL (“OPtimizer with an Agent in the Loop”) PyTorch’taki mevcut optimizer’ını sarıyor. Ajan olarak varsayılan seçenek Claude Code; yazarlar deneylerde Claude Opus 5.5 kullanmış.
Ajan iki dosya yazıp düzenliyor. Birincisi, her adımda çalışan güncelleme kuralı. İkincisi, eğitimden istediği istatistikleri toplayan bir analiz programı: gradyan büyüklükleri, ağırlıklara göre adım boyu, art arda gelen gradyanların ne kadar benzediği, doğrulama skorları. Bunlara bakıp öğrenme hızını değiştirebiliyor, AdamW’den Muon’a geçebiliyor, momentum ya da kırpma eşiğini ayarlayabiliyor, ağırlıkların ortalamasını tutabiliyor. Ama model, veri, kayıp fonksiyonu ve değerlendirme kısmına dokunmaması isteniyor. Ajan hiçbir şeyi değiştirmediği sürece eğitim, sarmalanmamış hâliyle bit bit aynı.
Bozuk etiket deneyi
En anlaşılır deney aşırı öğrenme (overfitting) üzerine. CIFAR-10’daki küçük görsellerle bir ResNet-18 eğitiliyor ama eğitim görsellerinin %10’unun etiketi bilerek yanlış. Normal tarifle eğitilen model sonunda bu yanlış etiketlerin hepsini ezberliyor: Kamyon diye etiketlenmiş kedi fotoğrafına “kamyon” diyor. Makaleye göre OPAL’lı çalıştırmada bu oran %3,7’de kaldı. Test doğruluğu %73,5’ten %78,6’ya çıktı.
Better Stack bu deneyi tek bir H100’de kendisi tekrarladı. Videoya göre sonuçlar yakın: Sabit tarif %74,4, ajanlı çalıştırma %79,1. 4.500 yanlış etiketin sabit model hepsini, ajanlı model yalnızca 250’sini tekrarladı. Asıl ilginç kısım ajanın notları. Claude önce “overfitting” diye not düşüyor, ardından birkaç fikri deniyor ve hepsi başarısız oluyor. Sonunda büyük ve gürültülü adımlarla ilerleyip ağırlıkların ortalamasını tutmaya, en sonda da o ortalamaya atlamaya karar veriyor. Hatta bir noktada kendi açıklamasının yanlış olduğunu not edip yine de devam ediyor.
Sihir değil: Bilinen bir teknik
Videonun dürüstçe belirttiği gibi, Claude’un vardığı çözüm yeni değil. 2018’de yayımlanan stochastic weight averaging (SWA) tam olarak buna yakın: Eğitimin son kısmında ağırlıkların ortalamasını almak. Yazarlar da ajansız, sabit bir ortalama tarifini denemiş ve %77,5 almış. Yani kazancın büyük kısmı ortalamadan geliyor. Ajanın katkısı, bu tekniği tek bir çalıştırmanın içinde kendi başına bulup ayarlaması.
Diğer deneylerde de iyileşme var: Görsel üreten LightningDiT modelinde FID skoru 2,18’den 1,83’e indi (düşük daha iyi). Ama zaten çok iyi ayarlanmış, kısa eğitimlerde kazanç küçük kalıyor.
Bedeli ne?
- Zaman: Eğitim ajanı beklerse süre 1,3 ile 4,4 kat uzuyor. Ajan düşünürken eğitim devam ederse ek yük %1 ile %14 arası.
- Para: LightningDiT’teki yaklaşık 100 kararın token maliyeti 6,42 dolar; aynı çalıştırmanın GPU maliyeti yaklaşık 510 dolar.
- Tekrarlanabilirlik: Ajanın kararları her seferinde farklı olabilir. Deneylerin çoğu yalnızca bir kez koşulmuş.
Sonuç olarak OPAL, optimizer’ı “baştan seçilen bir ayar” yerine “çalışırken hata ayıklanabilen bir yazılım” gibi ele alıyor. Büyük modellerde ve tekrarlı denemelerde aynı sonucu verip vermeyeceği henüz belli değil.
Düşün
- Bir ajan eğitim sırasında doğrulama skorlarına bakarak karar veriyorsa, doğrulama setine de dolaylı olarak “uyum sağlamış” olmaz mı? Test setini ayrı tutmak bu yüzden neden önemli?
- Ajanın kararlarını not olarak okuyabilmek, sonucu tekrar üretemesen bile neden değerli olabilir?
Videoyu izle
Kaynaklar (4, İngilizce)
- Better Stack: Did Claude Just Fix AI Overfitting? (OPAL) (video) (yeni sekmede açılır)
- Bai, Liang, Teoh, Sitzmann: Reactive Optimizers (proje sayfası) (yeni sekmede açılır)
- GitHub: xingjian-bai/opal (yeni sekmede açılır)
- Izmailov ve ark.: Averaging Weights Leads to Wider Optima and Better Generalization (SWA, 2018) (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.