Phase 09: Reinforcement Learning

Ödül Modelleme & RLHF

İnsanlar "iyi yardımcı yanıt" için bir ödül işlevi yazabilir, ancak iki yanıtı karşılaştırıp daha iyi birini seçebilirler. Bu karşılaştırmalara bir ödül modeli uygula, sonra dil modelini karşılaştırın. Christiano 2017. InstructGPT 2022. GPT-3'yi ChatGPT'ye çeviren tarif. 2026'da çoğunlukla DPO ile değiştirildi ancak zihinsel model kalır.

Type: Build

Languages: Python

Prerequisites: Phase 5 · 05 (Sentiment), Phase 9 · 08 (PPO)

Time: ~45 minutes

Sorun

Bir dil modeli, bir sonraki belirti tahmin amacıyla eğitilmiştir. İngilizce dilini yazıyor. Aynı zamanda yalan söylüyor, gevezeliyor ve reddetmeyi reddediyor. Bunu daha fazla eğitimle düzeltemezsiniz.

Skalare ödül istediğinizde, "A'nın yanıtı, talimat X için B'nin yanıtından daha iyidir". diye yazmak mümkün değildir. "Yardımcılık" bir simge üzerinde kapalı bir ifadedir.

RLHF (Christiano et al. 2017; Ouyang et al. 2022) tercihleri bir ödül modeli haline getirir, sonra ödül karşısında PPO üzerinden LM'yi optimize eder. Üç adımla: SFT → RM → PPO. ChatGPT, Claude, Gemini ve diğer tüm uyumlu-LLM'leri 2023 2025 yılında gönderen tarif budur.

2026 yılında PPO aşaması çoğunlukla DPO (Fase 10 · 08) ile değiştirilmiştir çünkü daha ucuz ve uyum ayarlama için neredeyse aynı derecede iyidir. Ancak ödül modeli parçası hala her Best-of-N örneği, her RL-den-verifiable- ödül borusunun ve her bir akılcılık modeliyle bir süreç ödül modeli kullanan temelini oluşturur. RLHF'yi anlayın ve tüm uyum yığını anlarsınız.

Anlaşım

!Three-stage RLHF: SFT, RM training on pairwise prefs, PPO with KL penalty

Stage 1: Supervised Fine-Tuning (SFT).Önceden eğitilmiş bir temel modelden başlayın. Hedef davranışının insan tarafından yazılmış gösterileri (özetleri takip eden cevaplar, yardımcı cevaplar vb.) ince ayarlayın. Sonuç: bir model π_SFTBu, iyi davranışlara karşı önyargılı ama yine de sınırsız bir eylem alanı vardır.

Stage 2: Reward Model training.

  • Cevap çiftlerini topla (y_+, y_-)İsteklere karşı .x, insanlar tarafından "y_+ y_-." olarak etiketlenmiştir.
  • Ödül modelini eğit R_φ(x, y) y_+- Evet .
  • Kayıp:Bradley-Terry pairwise logistic- ...

L(φ) = -E[ log σ(R_φ(x, y_+) - R_φ(x, y_-)) ]

BT, 1952'den beri standarttır (Bradley-Terry) ve modern RLHF'de baskın seçimdir.

  • R_φSFT modelinden genellikle üstte bir skalar başlı olarak başlatılır. Aynı transformatör omurgası; tek bir doğrusal katman ödülünü çıkarır.

Stage 3: PPO against the RM with KL penalty.

  • Eğitilebilir politika başlatılsın π_θ-π_SFT- Dondurulmuş bir referans tut.π_ref = π_SFT- Evet .
  • Cevapın sonunda ödüly- ...

r_total(x, y) = R_φ(x, y) - β · KL(π_θ(·|x) || π_ref(·|x))

KL cezası önler .π_θπ_SFT bu regularizer bir bölge, zor güven bölgesi değil. βGenellikle 0.01- Ne oldu ?0.05- Evet .

  • PPO (Denevi 08) bu ödülle çalıştırın. Avantajlar token seviyesindeki yoldaki hesaplanır, ancak RM sadece tam yanıt puanlar.

Why the KL?Bu yöntem olmadan, PPO mutlulukla ödül hakerliği stratejileri bulacaktır. RM sadece dağıtım içi tamamlamalarda eğitilmiştir.π_θRM'nin eğitildiği manifold yakınında.

2026 status:

  • DPO(Rafailov 2023): kapalı biçim cebir 2 + 3 aşamasında tercih verileri üzerinde tek denetlenmiş kayıp haline düşer.
  • GRPO(DeepSeek 20242025): Kritik yerine grup ilişkili bir başlangıç çizgisi olan PPO, insan eğitimi alan bir RM yerine verifier (kod çalışması / matematik cevapları eşleşir) tarafından ödüllendirilen. Dönüşüm modeli için baskın. 9 · 12 aşamada kapsamlıdır.
  • Process reward models (PRMs):RLHF ve GRPO çeşitlerinde gerekçe için kullanılan kısmi çözümler (her bir akıl yürütme adımı).
  • Constitutional AI / RLAIF:İnsan yerine tercihler oluşturmak için uyumlu bir LLM kullanın.

Yapın

Bu ders, küçük sentetik "sözler" ve " yanıtlar" kullanarak ipler olarak temsil edilir. RM bir çanta simgelerinin temsilinden daha doğrusal bir skorlamacıdır. Gerçek LLM boru hattının şekli önemli değil, ölçek.code/main.py- Evet .

Adım 1: sentetik tercih verileri

pythonPROMPTS = ["help me", "answer me", "explain this"]
GOOD_WORDS = {"clear", "specific", "kind", "thorough"}
BAD_WORDS = {"vague", "rude", "wrong", "short"}

def make_pair(rng):
    x = rng.choice(PROMPTS)
    y_good = rng.choice(list(GOOD_WORDS)) + " " + rng.choice(list(GOOD_WORDS))
    y_bad = rng.choice(list(BAD_WORDS)) + " " + rng.choice(list(BAD_WORDS))
    return (x, y_good, y_bad)

Gerçek RLHF'de bu insan etiketleri ile değiştirilmiştir.(prompt, preferred_response, rejected_response) aynıdır.

Adım 2: Bradley-Terry ödül modeli

Düzsel puan: R(x, y) = w · bag(y)BT çiftlik kayıplarını en aza indirmek için:

pythondef rm_train_step(w, x, y_pos, y_neg, lr):
    r_pos = dot(w, bag(y_pos))
    r_neg = dot(w, bag(y_neg))
    p = sigmoid(r_pos - r_neg)
    for tok, cnt in bag(y_pos).items():
        w[tok] += lr * (1 - p) * cnt
    for tok, cnt in bag(y_neg).items():
        w[tok] -= lr * (1 - p) * cnt

Birkaç yüz güncelleme sonrasında,wİyi kelime simgeleri için olumlu ve kötü kelime simgeleri için negatif ağırlıklar verir.

Adım 3: RM'nin üstündeki PPO gibi politika

Oyuncak politikamız kelime birikimiyle tek bir simge üretiyor.log π_θ(token | prompt), KL referans cezası ekle ve kesilmiş PPO yedekini uygula.

pythondef rlhf_step(theta, ref, w, prompt, rng, eps=0.2, beta=0.1, lr=0.05):
    logits_theta = policy_logits(theta, prompt)
    probs = softmax(logits_theta)
    token = sample(probs, rng)
    logits_ref = policy_logits(ref, prompt)
    probs_ref = softmax(logits_ref)
    reward = dot(w, bag([token])) - beta * kl(probs, probs_ref)
    # ppo-style update on theta, treating reward as the return
    ...

Dördüncü adım: KL'yi izle

İz ortalamasıKL(π_θ || π_ref)Her güncelleme.~5-10politika çok uzakta π_SFT daha düşük βBu gerçek RLHF'deki en iyi teşhis.

Adım 5: TRL ile üretim tarifi

Oyuncak hattını anladıktan sonra, burada gerçek bir kütüphane kullanıcısının yazdığı aynı döngü var.TRLreferans uygulanması RewardTrainer2 ve PPOTrainer(KL-referanslı bir yapılandırılmış) 3. aşamada.

python# Stage 2: reward model from pairwise preferences
from trl import RewardTrainer, RewardConfig
from transformers import AutoModelForSequenceClassification, AutoTokenizer

tok = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")
rm = AutoModelForSequenceClassification.from_pretrained(
    "meta-llama/Llama-3.1-8B-Instruct", num_labels=1
)

# dataset rows: {"prompt", "chosen", "rejected"} — Bradley-Terry format
trainer = RewardTrainer(
    model=rm,
    tokenizer=tok,
    train_dataset=preference_data,
    args=RewardConfig(output_dir="./rm", num_train_epochs=1, learning_rate=1e-5),
)
trainer.train()
python# Stage 3: PPO against the RM with KL penalty to the SFT reference
from trl import PPOTrainer, PPOConfig, AutoModelForCausalLMWithValueHead

policy = AutoModelForCausalLMWithValueHead.from_pretrained("./sft-checkpoint")
ref    = AutoModelForCausalLMWithValueHead.from_pretrained("./sft-checkpoint")  # frozen

ppo = PPOTrainer(
    config=PPOConfig(learning_rate=1.41e-5, batch_size=64, init_kl_coef=0.05,
                     target_kl=6.0, adap_kl_ctrl=True),
    model=policy, ref_model=ref, tokenizer=tok,
)

for batch in dataloader:
    responses = ppo.generate(batch["query_ids"], max_new_tokens=128)
    rewards   = rm(torch.cat([batch["query_ids"], responses], dim=-1)).logits[:, 0]
    stats     = ppo.step(batch["query_ids"], responses, rewards)
    # stats includes: mean_kl, clip_frac, value_loss — the three PPO diagnostics

Kütüphane senin için üç şey yapar.adap_kl_ctrl=TrueAdaptif-β programını uyguluyor: Eğer gözlemlenen KL 'yi aşarsatarget_klReferans modeli, gelenekle dondurulmuştur parametreyi yanlışlıkla paylaşmamak gerekir policyVe değer başı, politika ile aynı omurgan üzerinde yaşar (AutoModelForCausalLMWithValueHeadTRL raporları policy/klve value/lossAyrı ayrı.

Tuzaklar

  • Over-optimization / reward hacking.RM kusurlu .π_θBu nedenle, bu durumun bir sonraki döneminde, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin veya bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir kişinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerinin, bir diğerine, bir diğerine, bir diğerine, bir diğerine, bir diğerine, bir diğerine, bir diğerine, bir diğerine, bir diğer, bir diğer, bir diğer, bir diğer, bir diğer, bir diğer, bir diğer, bir diğer, bir diğer, bir diğer, bir diğer, bir diğer, bir diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğer, diğerβ, RM eğitim verilerini genişletmek.
  • Length hacking.Yardımcı cevaplar üzerinde eğitilmiş RM'ler genellikle dolaylı olarak uzunluğu ödüllendirir. Politikası cevapları doldurmayı öğrenir. Düzeltme: uzunluk normallaştırılmış ödül veya uzunluk bilinci RM ile RLAIF.
  • Too-small RM.Küçük bir RM, polis çıkışlarını doğru bir şekilde değerlendirebilir.
  • KL tuning.Çok düşük β → drift ve ödül hackeri. Çok yüksek β → politika neredeyse değişmez. Standart numara adım başına sabit bir KL'yi hedef alan adaptif β.
  • Preference-data noise.İnsan etiketlerinin %30'u gürültülü veya belirsizdir.
  • Off-policy problems.İlk dönemden sonra PPO verileri biraz politika dışı.

Kullan

2026'da RLHF katmanlı:

LayerTargetMethod
Instruction following, helpfulness, harmlessnessAlignmentDPO (Phase 10 · 08) preferred over RLHF-PPO.
Reasoning correctness (math, code)CapabilityGRPO with verifier reward (Phase 9 · 12).
Long-horizon multi-step tasksAgenticPPO / GRPO with process reward models over steps.
Safety / refusal behaviorSafetyRLHF-PPO with separate safety RM, or Constitutional AI.
Best-of-N at inferenceFast alignmentUse RM at decode time; no policy training needed.
Reward distillationInference computeTrain a small "reward head" on top of a frozen LM.

RLHF, 2022-2024 yıllarında yöntemdi. 2026 yılında, üretim ayarlama boru hattları RM yoğun veya güvenlik kritik adımlar için sadece DPO-birincil, PPO-dur.

Gönder

  • Kaydet .outputs/skill-rlhf-architect.md- ...
markdown---
name: rlhf-architect
description: Design an RLHF / DPO / GRPO alignment pipeline for a language model, including RM, KL, and data strategy.
version: 1.0.0
phase: 9
lesson: 9
tags: [rl, rlhf, alignment, llm]
---

Given a base LM, a target behavior (alignment / reasoning / refusal / agent), and a preference or verifier budget, output:

1. Stage. SFT? RM? DPO? GRPO? With justification.
2. Preference or verifier source. Humans, AI feedback, rule-based, unit-test-pass, or reward distillation.
3. KL strategy. Fixed β, adaptive β, or DPO (implicit KL).
4. Diagnostics. Mean KL, reward stability, over-optimization guard (holdout human eval).
5. Safety gate. Red-team set, refusal rate, safety RM separate from helpfulness RM.

Refuse to ship RLHF-PPO without a KL monitor. Refuse to use an RM smaller than the target policy. Refuse length-only rewards. Flag any pipeline that does not hold back a blind human-eval set as lacking over-optimization protection.

Egzersizler

  1. Easy.Bradley-Terry ödül modeli eğit .code/main.py500 sentetik tercih çiftinde. 100 çift üzerinde çiftlik doğruluğunu ölçün. %90'dan fazla olmalıdır.
  2. Medium.Oyuncak PPO-RLHF döngüsünü kullan β ∈ {0.0, 0.1, 1.0}Her biri için, yeniliklerde RM puanı ile KL referans karşılaştırın.
  3. Hard.Aynı tercih verilerine göre DPO (closed-form preference-likelities loss) uygulayın ve hesaplama kullanımı ve elde edilen son RM puanı ile RLHF-PPO borusuna karşılaştırın.

Anahtar Terimler

TermWhat people sayWhat it actually means
RLHF"Alignment RL"Three-stage SFT + RM + PPO pipeline (Christiano 2017, Ouyang 2022).
Reward Model (RM)"The scoring net"Learned scalar function fit to pairwise preferences via Bradley-Terry.
Bradley-Terry"Pairwise logistic loss"P(y_+ ≻ y_-) = σ(R(y_+) - R(y_-)); the standard RM objective.
KL penalty"Stay near the reference"β · KL(π_θ || π_ref) in the reward; the anti-reward-hacking regularizer.
Reward hacking"Goodhart's law"Policy exploits RM flaws; symptoms: reward up, human eval flat.
RLAIF"AI-labeled preferences"RLHF where labels come from another LM instead of humans.
PRM"Process Reward Model"Scores partial reasoning steps; used in reasoning pipelines.
Constitutional AI"Anthropic's method"AI-generated preferences guided by explicit rules.

Daha Fazla Okumak

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.