Phase 09: Reinforcement Learning

مدل سازی پاداش و RLHF

انسان ها نمی توانند یک تابع پاداش را برای "پاسخ دستیار خوب" بنویسند، اما می توانند دو پاسخ را مقایسه کنند و یکی بهتر را انتخاب کنند. یک مدل پاداش را به این مقایسه ها مناسب کنید، سپس مدل زبان را در مقابل آن تنظیم کنید. کریستیانو 2017. InstructGPT 2022.

Type: Build

Languages: Python

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

Time: ~45 minutes

مشکل

شما یک مدل زبان را بر روی هدف پیش بینی نشانه بعدی آموزش داده اید. آن زبان انگلیسی گرائماتیک را می نویسد. همچنین دروغ می گوید، سرگردان است و از انکار انکار انکار می کند. شما نمی توانید این را با آموزش بیشتر حل کنید.

شما می خواهید پاداش مقیاس که می گوید "جواب A بهتر از پاسخ B برای دستورالعمل X است". نوشتن این عملکرد پاداش به دست غیرممکن است. "مفید بودن" یک عبارت بسته در مورد توکن نیست. اما انسان می تواند دو محصول را مقایسه کند و یک اولویت را نشان دهد. این برای جمع آوری در مقیاس ارزان است.

RLHF (Christiano et al. 2017; Ouyang et al. 2022) ترجیحات را به یک مدل پاداش تبدیل می کند، سپس LM را از طریق PPO در برابر این پاداش بهینه می کند. در سه مرحله: SFT → RM → PPO. این نسخه است که ChatGPT، Claude، Gemini و هر LLM دیگر را در سال 2023 2025 ارسال کرد.

در سال 2026 مرحله PPO عمدتاً با DPO (فاز 10 · 08) جایگزین می شود زیرا ارزان تر و تقریباً برای تنظیم خط است. اما قطعه مدل پاداش هنوز هم زیربنای هر نمونه گیری بهترین N ، هر خط پاداش RL- از-تحقیقی ، و هر مدل استدلال با استفاده از مدل پاداش فرآیند است. درک RLHF و شما درک کل استیک خط استیکشن را درک می کنید.

مفهوم

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

Stage 1: Supervised Fine-Tuning (SFT).از یک مدل پایه پیش از آموزش آغاز کنید. تنظیم دقیق در نمایش های نوشته شده توسط انسان از رفتار هدف (پاسخ های پس از دستورالعمل، پاسخ های مفید و غیره). نتیجه: یک مدل π_SFTکه به سمت رفتار خوب طرفدار است اما هنوز فضای عمل نامحدود دارد.

Stage 2: Reward Model training.

  • جفت های پاسخ جمع آوری کنید (y_+, y_-)به دستوراتx, توسط انسان ها به عنوان "y_+ در مقابل y_-. ترجیح داده می شود".
  • مدل پاداش رو آموزش بدهR_φ(x, y)برای دادن نمره های بالاتر به y_+. .
  • خسارت:Bradley-Terry pairwise logistic:

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

σ سیگمائید است. تفاوت پاداش به معنای یک امتیاز ترجیح داده می شود. BT از سال 1952 (برادلی-ترری) استاندارد بوده و انتخاب غالب در RLHF مدرن است.

  • R_φمعمولا از مدل SFT با سر اسکالر در بالا آغاز می شود. همان ستون فقرات ترانسفورماتور؛ یک لایه خطی واحد پاداش را خارج می کند.

Stage 3: PPO against the RM with KL penalty.

  • شروع کردن سیاست آموزش پذیرπ_θازπ_SFT. يه مرجع رو نگه دارπ_ref = π_SFT. .
  • پاداش در پایان پاسخy:

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

مجازات " کلو " مانع از اين مي شودπ_θاز انحراف تعسفي ازπ_SFT این یک regularizer است، نه یک منطقه اعتماد سخت. βمعمولاً0.01-بله .0.05. .

  • با این پاداش PPO (درسی 08) اجرا کنید. مزایای بر روی مسیر سطح توکن محاسبه می شوند، اما RM فقط پاسخ کامل را نمره می دهد.

Why the KL?بدون آن، PPO با خوشحالی استراتژی های هک پاداش را پیدا می کند. RM فقط در تکمیل در توزیع آموزش دیده است. پاسخ خارج از توزیع ممکن است بالاتر از هر پاسخ نوشته شده توسط انسان باشد. KL نگه می دارد.π_θدر نزدیکی دسته بندی که RM آموزش داده شده است. این مهم ترین دستبندی در RLHF است.

2026 status:

  • DPO(Rafailov 2023): الجبر شکل بسته به مرحله 2 + 3 به یک ضرر واحد تحت نظارت بر داده های اولویت سقوط می کند. هیچ RM، هیچ PPO. کیفیت مشابه در معیار های مرزی جهت تنظیم برای یک بخش از محاسبه. در مرحله 10 · 08 پوشش داده شده است.
  • GRPO(DeepSeek 20242025): PPO با یک خط پایه مربوط به گروه به جای یک منتقد، پاداش از یک verifier (کد اجرا / پاسخ ریاضی مطابقت) به جای RM آموزش دیده توسط انسان. غالب برای مدل های استدلال. در مرحله 9 · 12 پوشش داده شده است.
  • Process reward models (PRMs):راه حل های جزئی (هر مرحله استدلال) را که در هر دو نسخه RLHF و GRPO برای استدلال استفاده می شود، به دست آورید.
  • Constitutional AI / RLAIF:استفاده از یک LLM هماهنگ برای ایجاد ترجیحات به جای انسان.

آن را بسازید

در این درس از "تغییرات" و "جوابات" مصنوعی کوچک استفاده می شود که به عنوان رشته ها نشان داده می شود. RM یک امتیاز خطی بر روی نمایش کیف توکن است. هیچ LLM واقعی شکل * خط لوله مهم نیست، نه مقیاس. ببینید code/main.py. .

مرحله اول: اطلاعات ارجاع مصنوعی

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)

در RLHF واقعی این توسط برچسب های انسانی جایگزین می شود.(prompt, preferred_response, rejected_response) یکسان است.

مرحله دوم: مدل پاداش برادلی-ترری

نمره خطی: R(x, y) = w · bag(y). آموزش برای حداقل رساندن خسارت دوگانه ی ثبت نام BT:

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

بعد از چندصد تا اپدیتwبه نشانه های خوب و منفی به نشانه های بد وزن مثبت می دهد.

مرحله سوم: سیاست مشابه PPO بر روی RM

ما در قانون اسباب بازی ما یک توکن واحد از یک لغت تولید می کنیم.log π_θ(token | prompt)، به جریمه ی KL به عنوان مرجع اضافه کنید و جایگزین PPO را که قطع شده است اعمال کنید.

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
    ...

مرحله 4: کنترل KL

متوسط مسیرKL(π_θ || π_ref)هر تازه کاری اگه از قبل هم پیش بره~5-10سیاست ها از راه دور رفتندπ_SFT پایین تر βاین اولین تشخیص در RLHF واقعی است.

مرحله 5: دستور تهیه با TRL

وقتی که خط لوله اسباب بازی رو فهمیدی، این همان حلقه ای است که یک کاربر واقعی کتابخانه می نویسد.TRLآیا اجرای مرجع است RewardTrainerبرای مرحله 2 و PPOTrainer(با یک KL-to-reference ساخته شده) برای مرحله 3.

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

سه تا کاري که کتابخانه براي تو ميکنهadap_kl_ctrl=Trueبرنامه ای را اجرا می کند که با استفاده از برنامه ای با حالت تطبیقی (β): اگر KL مشاهده شده از target_klمدل مرجع با سنت منجمد شده است نباید به طور تصادفی پارامترها را با به اشتراک بگذارید.policyو ارزش سر در همان ستون فقرات با سیاست زندگی می کند (AutoModelForCausalLMWithValueHeadیک سر MLP اسکالر را متصل می کند) که به همین دلیل گزارش TRL policy/klوvalue/lossبه طور جداگانه

دام ها

  • Over-optimization / reward hacking.RM ناقصهπ_θعلائم: پاداش تا حد نامحدودی بالا می رود در حالی که ارزیابی انسانی نمره های بالا یا پایین می آید. تصحیح: زود متوقف شوید، افزایش دهید β، اطلاعات آموزش RM را گسترش دهید.
  • Length hacking.RMs آموزش داده شده در پاسخ های مفید اغلب ضمنی پاداش طول. سیاست یاد می گیرد تا پاسخ ها را بسته کند. اصلاح: پاداش نرمال شده در طول، یا RLAIF با RM آگاه در طول.
  • Too-small RM.RM باید حداقل به اندازه پوليس بزرگ باشه. RM کوچکی نمیتونه به طور وفادار نتایج پوليس رو بدست بیاره
  • KL tuning.تراکم کردن β → حرکت و هک پاداش. تراکم کردن β → سیاست به سختی تغییر می کند. تراکم استاندارد تراکم است که به یک KL ثابت در هر مرحله هدف قرار می دهد.
  • Preference-data noise.~ 30% از برچسب های انسانی سر و صدا یا مبهم هستند. با آموزش RM بر اساس داده های فیلتر شده توافق یا استفاده از دمای بر روی BT.
  • Off-policy problems.داده های PPO بعد از دوره اول کمی غیر از سیاست است.

ازش استفاده کن

RLHF در سال 2026 لایه هایی است:

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 روش بود. در سال 2026، لوله های خط خط تولید برای مراحل شدید RM یا ایمنی حیاتی DPO-اول و فقط PPO- هستند.

-باده

پس از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.

تمرینات

  1. Easy.مدل پاداش برادلي-تيري رو آموزش بدهcode/main.pyدر 500 جفت ترجیح مصنوعی دقت جفتی را در 100 جفت نگه داشته اندازه گیری کنید. باید 90 درصد را فراتر ببرد.
  2. Medium.با استفاده از حلقه PPO-RLHF بازی رو اجرا کنβ ∈ {0.0, 0.1, 1.0}براي هر يک، نمره RM رو به KL نسبت به اطلاعاتي که در موردش هست بازي کنيد
  3. Hard.DPO (خسرت احتمال اولویت در فرم بسته) را بر روی همان داده های اولویت اعمال کنید و با خط لوله RLHF-PPO در محاسبه مورد استفاده و نمره نهایی RM که بدست آمده است مقایسه کنید.

اصطلاحات کلیدی

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.

خواندن بیشتر

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.