350M Modeli 100 GRPO Adımında Yapılandırılmış Çıktıda Nasıl Geliştirilir? — yapay zeka haberi
newspaper Haber edit_note yapayzekasozluk.tr Haber Masası schedule 6 Eylül 2026 · 16:30 timer 4 dk okuma

350M Modeli 100 GRPO Adımında Yapılandırılmış Çıktıda Nasıl Geliştirilir?

HuggingFace kaynaklı bu rehber, 350M parametrelik küçük bir dil modelinin (LFM2.5-350M) GRPO ile ince ayar yapılarak IFStruct şema uyumluluk skorunu %22.6'dan %29.7'ye çıkarabileceğini gösteriyor. Yalnızca 500 örnek ve 100 adım ile elde edilen bu iyileşme, modelin JSON çıktı başarısını %18'den %31.9'a taşıyor ve daha büyük modellerle arasındaki farkı kapatıyor.

Giriş: Yapılandırılmış Çıktı Neden Önemli?

Büyük dil modelleri (LLM) için yapılandırılmış çıktı (structured output), gerçek dünyada en sık karşılaşılan görevlerden biri. Ancak çoğu kıyaslama, bu beceriyi genel akıl yürütme veya bilgi çıkarma skorlarına dahil eder ve ayrıca ölçmez. Oysa bir modelin istenen formatta ve şemada geçerli, ayrıştırılabilir çıktı üretip üretmediği — yani şema uyumluluğu (schema compliance) — onun bir alt sisteme bağlanıp bağlanamayacağını belirler. Bu yazıda, küçük bir modelin göreve özel ince ayar ile nasıl daha güvenilir hale getirilebileceğini ve çok daha büyük modellerin seviyesine nasıl yaklaşabileceğini adım adım göreceğiz.

Temel Model ve Kıyaslama

Öncelikle, temel model olarak LiquidAI'nin LFM2.5-350M modelini ele alıyoruz. Bu model, IFStruct kıyaslamasında %21.1'lik bir skor rapor ediyor. IFStruct, LLM çıktılarının geçerliliğini ve şema uyumluluğunu test eden açık kaynaklı bir kıyaslama. Veri seti Hugging Face'te LiquidAI/ifstruct-v1.0 olarak mevcut. Çalışmayı yeniden üretmek için modeli llama.cpp ile yerel olarak sunuyoruz (örneğin, Apple M5 Max ve 36 GB birleşik belleğe sahip bir MacBook Pro). BF16 GGUF formatını kullanarak başlatılan sunucu, OpenAI uyumlu bir API sunuyor. Ardından 2000 örnekle yapılan değerlendirmede temel model %22.6'lık bir genel başarı elde ediyor. Bu, rapor edilen %21.1'e yakın bir değer ve aynı sunucu yığını üzerinde karşılaştırma için temel oluşturuyor.

İnce Ayar ve GRPO

İnce ayar için nvidia/Nemotron-RL-instruction_following-structured_outputs veri setinden yaklaşık 500 örnek kullanıyoruz. Bu veri seti, her bir istemi hedef JSON Şeması ve beklenen alan sayısıyla eşleştiriyor. Nemotron veri dağılımı IFStruct değerlendirmesinden farklı olduğu için, iki boşluğu kapatmak adına istemleri çeşitlendiriyoruz: %40'ına kod bloğu içinde çıktı döndürme talimatı ekliyoruz, ayrı bir %20'lik kısmı ise üst düzey dizi görevlerine dönüştürüyoruz (şema bir diziye sarılıp öğe sayısı zorunluluğu ekleniyor). Model, LoRA adaptörü ile ince ayar yapılıyor. LFM2.5 hibrit dikkat/evrişim mimarisi kullandığından, hedef modüller LFM'ye özgü olarak seçiliyor: q_proj, k_proj, v_proj, out_proj, in_proj, w1, w2, w3. Bu, modelin yaklaşık %1.66'sına denk gelen ~6M parametreyi eğitiyor.

Ödül Fonksiyonları ve Eğitim

Eğitimde üç ödül fonksiyonu tanımlanıyor ve her biri [0,1] aralığında puan veriyor:

  • json_format_reward: Çıktı ayrıştırılabilir mi ve istenen formda mı? İstenen form (kod bloğu veya ham) için 1.0, yanlış ama ayrıştırılabilir form için 0.2, ayrıştırılamaz için 0.0.
  • field_count_reward: Nesne beklenen üst düzey alan sayısına sahip mi? Tam eşleşme 1.0, sapma ile doğrusal azalma.
  • schema_validation_reward: Çıktı satırdaki JSON Şemasına uyuyor mu? Her kısıtlama ihlali sayılır ve gerekli anahtar kapsamına göre kısmi puan verilir.

Bu üç ödül, ağırlıklı toplam olarak birleştirilir: reward_weights=[1.0, 0.5, 2.0]. Eğitim, 100 adım boyunca sürer ve her istem grubu için 8 farklı tamamlama (generation) üretilir. Sıcaklık 1.1, KL cezası beta=0.01 olarak ayarlanır. Eğitim boyunca tüm ödül bileşenlerinin arttığı, KL sapmasının ısınma sonrası sıfırdan yükseldiği ve kesilmiş tamamlama oranının sıfıra yakın kaldığı gözlemlenir. Eğitim sonunda LoRA adaptörü ana ağırlıklarla birleştirilir ve tek bir kontrol noktası olarak kaydedilir.

Sonuçlar ve Karşılaştırma

İnce ayar sonrası model, GGUF formatına dönüştürülür ve aynı llama.cpp sunucusu üzerinde IFStruct değerlendirmesi tekrarlanır. Sonuçlar oldukça çarpıcı:

  • Genel başarı %22.6'dan %29.7'ye yükselir.
  • JSON formatındaki başarı %18.0'den %31.9'a çıkar (neredeyse 14 puanlık artış).
  • YAML formatındaki başarı ise %27.2'den %27.5'e ancak hafif bir artış gösterir.
  • Üst düzey yapıda, sarmalayıcı anahtar (wrapper key) ve çıplak liste (bare list) başarıları sırasıyla %28.5'ten %29.7'ye ve %16.6'dan %29.7'ye yükselir.

Bu iyileşmeler, eğitimin hedeflediği alanlarda yoğunlaşır: JSON çıktıları ve çıplak liste formatı. YAML'daki değişim minimaldir çünkü eğitim verisi ağırlıklı olarak JSON içerir. Ayrıca, ince ayar sonrası hata türlerinde de değişiklikler görülür: 'required field missing' hataları azalırken, 'wrong item count' ve 'type mismatch' gibi hatalar artar. Bu, modelin şema uyumluluğunu artırdığını ancak bazı alanlarda hâlâ zorlandığını gösterir.

Neden Önemli?

Bu çalışma, küçük modellerin göreve özel ince ayar ile ne kadar etkili olabileceğini gösteriyor. 350M parametreli bir model, yalnızca 500 örnek ve 100 GRPO adımı ile IFStruct'ta %22.6'dan %29.7'ye çıkabiliyor. Bu, Qwen3.5-2B'nin %33.15'lik skoruna oldukça yakın bir değer. Türkiye'deki yapay zeka geliştiricileri için bu, büyük modellere erişimi olmayan veya maliyet kısıtı yaşayan ekiplerin, kendi görevlerine özel küçük modelleri eğiterek benzer başarılar elde edebileceği anlamına geliyor. Ayrıca, şema uyumluluğu gibi kritik bir becerinin, ucuz ve hedefli bir ödül sinyali ile geliştirilebileceğini gösteriyor. Bu yaklaşım, kaynak kısıtlı ortamlarda çalışan sistemler için pratik bir çözüm sunuyor ve daha büyük modellere olan bağımlılığı azaltıyor.

link Kaynak: HuggingFace
tag GRPO tag ince ayar tag yapılandırılmış çıktı tag IFStruct tag LFM2.5 tag LoRA

İlgili Terimler

8 terim