LLM·3 dk okuma·

100 GRPO Adımında Daha İyi Yapılandırılmış Çıktılar İçin 350M Modelini İnce Ayarlama

Paylaş
LLMEdumints Blog

Büyük dil modellerinin (LLM) gerçek dünya yazılım sistemlerine entegrasyonunda en kritik aşama yapılandırılmış çıktı (structured output) doğruluğudur. Bir modelin geçerli, ayrıştırılabilir ve tanımlı şemaya uygun çıktı üretmesi, onun bir arka uç servisine veya veri hattına güvenle bağlanabilmesini belirler. Bu rehber, LFM2.5-350M gibi kompakt bir modeli Grup Göreli Politika Optimizasyonu (GRPO) ve Hugging Face TRL kütüphanesi ile eğiterek şema uyumluluğunu artıran düşük maliyetli ve açık bir yöntem sunar. Yaklaşık 500 örneklem ve yalnızca 100 eğitim adımıyla (ücretsiz Colab veya Kaggle GPU'larında dahi yürütülebilir), modelin IFStruct kıyaslamasındaki başarısı %22.6'dan %29.7'ye yükselmektedir. Buradaki odak, genel benchmark skorunu yeniden üretmekten ziyade, göreve özel ince ayarın (fine-tuning) küçük modelleri devasa modellerin başarımına nasıl yaklaştırabildiğini göstermektir.

Ön Koşullar (Prerequisites)

Çalışma, geliştirme sürecini optimize etmek için iki ayrı ortamda yürütülür:

  • İnce Ayar (Fine-Tuning): GPU üzerinde çalışır; eşlik eden not defteri ücretsiz Colab veya Kaggle GPU'larına göre yapılandırılmıştır.
  • Değerlendirme (Evaluation): llama.cpp aracılığıyla yerel ortamda (ör. Apple M5 Max ve 36 GB birleşik bellekli bir MacBook Pro) OpenAI uyumlu sunucu olarak çalıştırılır.

Python araç zinciri için uv, yerel sunum için llama.cpp gereklidir:

brew install llama.cpp
llama-server --version

LFM2.5-350M (Taban Model) Üzerinde IFStruct Değerlendirmesi

İnce ayar öncesinde taban modelin geçerlilik ve şema uyumunu ölçmek için Liquid4All/ifstruct kıyaslama aracı ve Hugging Face'teki LiquidAI/ifstruct-v1.0 veri kümesi kullanılır:

git clone https://github.com/Liquid4All/ifstruct.git

Model, BF16 GGUF formatında (LiquidAI/LFM2.5-350M-GGUF) llama.cpp ile yerel olarak sunulur:

llama-server \
  -hf LiquidAI/LFM2.5-350M-GGUF:BF16 \
  -c 32768 \
  -np 4 \
  -ngl 99 \
  --alias LiquidAI/LFM2.5-350M \
  --host 127.0.0.1 \
  --port 8080

Parametrelerin işlevleri şunlardır:

  • --alias: IFStruct değerlendiricisinin OpenAI uyumlu uç noktaya gönderdiği model adı.
  • -ngl 99: Kullanılabilir olduğunda tüm katmanları GPU'ya devrederek çıkarımı hızlandırır.
  • -np 4: Eşzamanlı 4 paralel isteği işleyerek kıyaslama süresini kısaltır.
  • -c 32768: Modelin işleyebileceği prompt bağlam boyutu.

Sunucu hazır olduğunda 2000 örneklem üzerinden test çalıştırılır:

uv run ifstruct-eval \
  --model LiquidAI/LFM2.5-350M \
  --base-url http://localhost:8080/v1 \
  --api-key dummy \
  --dataset data/test.jsonl \
  --results-file results/lfm2.5-350m-llamacpp-base.json

Yazılım Geliştirme Açısından Pratik Çıkarımlar

Üretim ortamlarında deterministik JSON veya şema çıktısı bekleyen mikroservis mimarileri için yüz milyarlarca parametrelik modelleri çağırmak yüksek maliyet ve gecikme yaratır. GRPO ile 100 adım gibi son derece hafif bir pekiştirmeli öğrenme döngüsünden geçirilen 350M parametrelik kompakt modeller, şema doğruluğunda dramatik bir sıçrama yaparak uç birimlerde (edge) veya düşük bütçeli sunucularda güvenilir servisler kurmayı mümkün kılar.

[Orijinal kaynağa buradan ulaşabilirsiniz.](https://huggingface.co/blog/grpo-with-trl-ifstruct)


Bu konuyu derinlemesine öğrenmek isterseniz: Structured Output ve JSON Modu modülüne göz atın.

Paylaş

Bu konuyu daha derinlemesine öğrenmek ister misin?

Edumints'teki ücretsiz kursları incele ve bugün başla.

Kurslara Göz At →