Ocak 2025’te DeepSeek-R1 yayınlandığında dikkatler modelin parametre sayısına değil, eğitim yöntemine kaydı. Ekip ayrı bir reward model eğitmeden, PPO’nun getirdiği critic ağı olmadan bir dil modelini akıl yürütmede eğitebilmişti. Bunun arkasında GRPO (Group Relative Policy Optimization) yatıyordu.

GRPO (Group Relative Policy Optimization), bir dil modeline aynı soruyu birden fazla kez yanıttırıp bu yanıtlar arasındaki göreli kalite farkını ödül sinyali olarak kullanan bir pekiştirmeli öğrenme algoritmasıdır. Yanıtların değeri mutlak bir ödül modeliyle değil, grubun kendi ortalamasına göre ölçülüyor. Reward model eğitme zorunluluğu ve PPO’nun değer fonksiyonu (critic) yükü bu şekilde devre dışı kalıyor.
GRPO Neden Ortaya Çıktı?
RLHF pipeline’ı, bir modeli insan tercihlerine göre hizalamanın standart yoluydu. Üç ayrı aşamadan oluşuyordu: önce denetimli ince ayar (SFT), ardından tercih verisinden reward model eğitimi, son olarak bu reward modeli kullanarak PPO döngüsü. Her aşama kendi hesaplama bütçesini gerektiriyordu.
PPO’nun en ağır yükü critic ağıydı. Bir durumun uzun vadeli değerini tahmin etmesi için, policy modeli ile aynı ölçekte ya da yakın büyüklükte bir değer fonksiyonu eğitmek gerekiyordu. 7B parametreli bir modeli PPO ile fine-tune etmek, belleğe iki büyük modeli birden yüklemeyi zorunlu kılıyordu: policy modeli ve critic.
Reward model ek bir aşama daha getiriyordu: insan annotasyon verisi toplanacak, ayrı bir model eğitilecek, bu modelin kalitesi tüm pipeline’ın tavanını belirleyecekti. Reward model belirli konularda yanılıyorsa, policy model bu hatayı istismar ederek (reward hacking) anlamsız çıktılar üretiyordu.
DeepSeek araştırmacılarının koyduğu soru şuydu: matematik ve kod gibi doğrulaması deterministik olan görevler için bu iki yük (critic ve reward model) gereksiz mi? GRPO bu soruya pratik bir yanıt verdi.
GRPO Nasıl Çalışır?
Grup Örneklemesi
GRPO, bir eğitim adımında tek yanıt değil, G adet yanıt üretir. Aynı soru, farklı örnekleme parametreleriyle G kez modele sorulur. Her yanıt farklı kalitede ve farklı uzunlukta olabilir. Tipik değerler G=4 ile G=16 arasında değişiyor; DeepSeek çalışmalarında G=8 sık kullanıldı.
Ödül Hesaplama
Her yanıt için ayrı bir ödül değeri hesaplanır. DeepSeek-R1 uygulamasında iki ödül fonksiyonu birlikte kullanıldı:
- Doğruluk ödülü: Yanıt matematiksel olarak doğruysa 1, değilse 0.
- Format ödülü: Yanıt
<think>...</think>bloğu içeriyorsa küçük bir pozitif değer.
Deterministik kurallar temel. Harici bir sinir ağı yok, yalnızca basit bir doğruluk fonksiyonu.
Avantaj Normalizasyonu
Her yanıtın ödülünü doğrudan kullanmak yerine, grup içi göreli avantaj hesaplanır:
advantage_i = (r_i - mean(r)) / (std(r) + ε)
Burada r_i i’inci yanıtın ödülü, mean(r) ve std(r) gruptaki tüm yanıtların ortalama ve standart sapması. Bu normalizasyon PPO’daki critic’in yaptığı işlevin yerini alıyor: mutlak bir “bu durum ne kadar değerli” sorusu değil, “bu yanıt grubun geri kalanına kıyasla ne kadar iyi” sorusu soruluyor.
Policy Güncellemesi
Policy güncelleme adımı PPO-clip ile benzer yapı taşıyor, ancak critic terimi yok:
L_GRPO = E[min(r_t(θ) · A, clip(r_t(θ), 1−ε, 1+ε) · A)] − β · KL(π_θ || π_ref)
Burada r_t(θ) policy-ref oranı, A normalize edilmiş avantaj, β KL ceza katsayısı. KL divergence terimi modelin referans dağılımından çok uzaklaşmasını engelliyor.
Python / trl Kodu
trl kütüphanesinde GRPOTrainer sınıfı var:
from trl import GRPOConfig, GRPOTrainer
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B")
def reward_fn(completions, prompts, **kwargs):
rewards = []
for completion in completions:
answer = extract_final_answer(completion)
rewards.append(1.0 if answer == kwargs["ground_truth"] else 0.0)
return rewards
config = GRPOConfig(
num_generations=8, # G = 8 yanıt per prompt
max_new_tokens=512,
num_train_epochs=3,
learning_rate=1e-6,
)
trainer = GRPOTrainer(
model=model,
args=config,
reward_funcs=reward_fn,
train_dataset=dataset,
tokenizer=tokenizer,
)
trainer.train()
num_generations=8 parametresi grup boyutunu belirliyor. Büyük G değerleri daha güvenilir avantaj tahmini veriyor, ancak GPU belleği buna orantılı artıyor.
PPO, DPO ve GRPO Yan Yana
Her tekniğin güçlü olduğu bağlam farklı; tablo üç yöntemi karşılaştırıyor:
| Yöntem | Critic Gereksinimi | Reward Model | Bellek Ayak İzi | Veri Türü |
|---|---|---|---|---|
| PPO | Evet | Evet | ~4× model | Tercih çiftleri + etiketler |
| DPO | Hayır | Hayır | ~2× model | Tercih çiftleri (chosen/rejected) |
| GRPO | Hayır | Opsiyonel | ~2× model | Doğrulanabilir sorular |
DPO tercih verisini doğrudan bir kayıp fonksiyonuna dönüştürüyor: mevcut (policy) ve referans modelin log-olasılıkları arasındaki fark üzerinden çalışıyor. GRPO ise tercih çifti değil, grup içi ödül sinyali kullanıyor.
Temel fark şu: DPO’da neyin iyi neyin kötü olduğunu söyleyen bir dataset gerekiyor. GRPO’da ise bir cevabın doğru olup olmadığını anlık test edebilmek yeterli. Bu fark, iki tekniğin hangi problem türüne uyduğunu doğrudan belirliyor.
Stability açısından DPO daha öngörülebilir: tek geçişlik supervised fine-tuning mantığıyla çalıştığı için hiperparametre duyarlılığı düşük. GRPO pekiştirmeli öğrenme döngüsü içerdiğinden KL katsayısı, grup boyutu ve ödül kalibrasyonu sonucu doğrudan etkiliyor.
Verifiable rewards: GRPO’nun temel varsayımı
GRPO’nun reward modelini devre dışı bırakma özelliği her görev türü için geçerli değil. Bu teknik en iyi verifiable reward senaryolarında çalışıyor: yanıtın doğruluğu kural tabanlı bir fonksiyonla test edilebiliyorsa.
Matematik görevleri bunun klasik örneği. 2 + 3x = 11 sorusunun cevabı x=3; bu deterministik ve programatik olarak kontrol edilebilir. Kod yazma görevleri de benzer şekilde çalışıyor: bir test suite’i geçiyor mu? Bu ikili sinyal LLM-as-judge ya da insan değerlendirmesine gerek bırakmıyor.
Dil kalitesi, ton, yaratıcılık gibi görevler tam tersi. Bir yanıtın “insan gibi yazılıp yazılmadığı” kurallarla ölçülemiyor; subjektif bir değerlendirme zorunlu. Bu durumda ya RLHF pipeline’ına dönmek ya da LLM-as-judge reward modeli kullanmak gerekiyor. GRPO’nun “critic yok, reward model yok” iddiası bu senaryolarda tam olarak tutmuyor.
DeepSeek-R1 tasarım olarak matematik ve kod odağını tercih etti. Bu tercih GRPO’nun tam avantaj yarattığı alana bilinçli bir hizalanmaydı.
DeepSeek-R1: GRPO Pratikte Nasıl Kullanıldı?
DeepSeek-R1 teknik raporunda iki model tanımlandı: R1-Zero ve R1.
DeepSeek-R1-Zero daha sade bir deney. SFT aşaması yok; base model doğrudan GRPO ile eğitildi. Sonuç beklenmedik bir davranışa yol açtı: model kendi başına <think> bloğu geliştirdi ve sorunu çözmeden önce bir iç monolog kurdu. Araştırmacılar buna “aha moment” adını verdi; model doğruluk ödülünü maksimize etmek amacıyla kendi kendine doğrulama stratejisi üretmişti.
R1-Zero’nun sınırlılığı dil karışıklığıydı: bazı yanıtlar Çince ve İngilizceyi aynı metin içinde birleştiriyordu.
DeepSeek-R1, bu sorunları gidermek için daha yapılandırılmış bir pipeline izledi:
- SFT cold start: Küçük bir CoT dataset ile SFT, modeli tutarlı bir
<think>formatına alıştırıyor. - GRPO round 1: Uzun akıl yürütme görevlerinde pekiştirme eğitimi.
- Rejection sampling: İyi örnekler toplanıp genel veri ile harmanlıyor.
- SFT round 2: Daha geniş görev yelpazesi için ince ayar.
- GRPO round 2: Son hizalama ve güvenlik GRPO’su.
Her GRPO aşaması bir öncekinin üstüne inşa ediyor; sonuçta tek geçişlik SFT’den belirgin şekilde ayrışan bir akıl yürütme kapasitesi çıkıyor.
Akıl yürüten modeller hakkında daha geniş bir çerçeve için o yazıya bakılabilir; burada test-time compute ve akıl yürütme stratejileri farklı model ailelerinde karşılaştırılıyor.
2025-2026 Ekosisteminde GRPO
DeepSeek-R1’in yayınlanmasının ardından GRPO, Hugging Face trl kütüphanesine GRPOTrainer olarak eklendi. Birkaç GB GPU ve kısa bir training scripti yeterli hale geldi; akademik bir teknik herkesin deneyebileceği bir forma girdi.
Hangi modeller GRPO ile eğitildi? Qwen2.5-Math serisi bu dönemde en dikkat çekici örnek: Alibaba’nın matematik odaklı modelleri doğrulama tabanlı GRPO ile eğitildi ve GSM8K/MATH benchmark’larında kayda değer ilerleme kaydetti. Llama-3 türevleri topluluk fine-tune’larında yaygınlaştı, özellikle kod ve mantık görevlerinde. Mistral tabanlı birden fazla açık kaynaklı proje de GRPO’yu reasoning capability eklemek için kullandı.
Verimlilik açısından somut bir karşılaştırma: 7B bir modeli PPO ile eğitmek için 4×A100 gerekebilirken, GRPO ile aynı modeli 2×A100’de eğitmek mümkün. Critic ağı bellek bütçesinin yaklaşık yarısını alıyordu; GRPO bu yükü kaldırdı.
Chain-of-thought prompting bağlantısı da burada görünür hale geliyor: GRPO eğitimi <think> blokları şeklinde CoT üretimine yöneltiyor. Model çözümü tek adımda değil, adım adım geliştiriyor. Bu yapı inference aşamasında da devam ediyor ve kullanıcıya modelin düşünce sürecini gösteriyor.
Sınırlamalar ve Ne Zaman Farklı Bir Yöntem Tercih Edilmeli?
GRPO her bağlamda PPO ya da DPO’yu geride bırakmıyor.
Verifiable reward gereksinimi başlıca kısıt. Ödül sinyali deterministik olmayan görevlerde LLM-as-judge modeline ihtiyaç duyuluyor ve “reward model yok” avantajı kaybediliyor; GRPO bu durumda ek karmaşıklıklı bir PPO alternatifine dönüşüyor.
Grup boyutu ile GPU yükü arasında doğrudan bir ilişki var. G arttıkça avantaj tahmini güvenilirleşiyor, ancak G × model_size kadar forward pass gerekiyor. G=8 çoğu uygulama için makul başlangıç; G=16 lab dışı ortamlarda pratik olmayabilir.
Ödül fonksiyonu tasarımı da önemli. Yalnızca <think> bloğu varlığına ödül vermek modeli uzun ama anlamsız iç monologlar üretmeye yönlendirebilir. DeepSeek bu riski format ödülünü doğruluk ödülüyle dengede tutarak azalttı.
Tek geçişte değerlendirilemeyen görevler için GRPO zorlaşıyor: uzun yazı üretimi ya da çok turlu konuşma bunların başında geliyor. Bu tür durumlarda DPO daha temiz bir pipeline sunuyor.
Son bir nokta: GRPO pekiştirmeli öğrenme döngüsü içerdiğinden hiperparametre seçimi ve ödül kalibrasyonu daha hassas. DPO’nun supervised fine-tuning benzeri sadeliği bazı ekipler için belirleyici faktör oluyor.
GRPO’nun Açık Kaynak Hizalamadaki Yeri
GRPO, reward model ve critic ağını kaldırarak LLM hizalamasını daha erişilebilir kıldı. DeepSeek-R1’in ardından gelen trl entegrasyonuyla birlikte artık birkaç GPU’su olan herkes bu tekniği deneyebilir.
Öte yandan GRPO’nun verifiable reward koşuluna bağımlılığı, tekniğin uygulanabileceği alan bir sınır çiziyor. Matematik, kod ve mantık çıkarımı görevlerinde iteratif GRPO döngüsü sağlam sonuçlar verirken, öznel dil kalitesi görevlerinde tercih verisi tabanlı yöntemler geçerliliğini koruyor.
Açık ağırlıklı eğitimde hesaplama maliyeti bir kısıt olduğu sürece, iki model belleğiyle çalışan ve deterministik ödüle dayanan bu yaklaşım pratik seçenekler arasında kalıyor.