RLHF — LLM alignment-এর কৌশল
এই পাঠে যা শিখবেন
- RLHF-এর ৩-stage pipeline — SFT → RM → PPO
- Bradley-Terry preference model — pairwise comparison থেকে scalar reward
- KL penalty কেন essential — reward hacking ও mode collapse এড়ানো
- InstructGPT (২০২২) → ChatGPT, Claude — production-grade RLHF
১ · কেন RLHF? Pretrained LLM-এর সমস্যা
একটি pretrained LLM (GPT, LLaMA, Mistral) বিশাল text corpus-এ next-token prediction শেখে। ফলে সে চমৎকারভাবে "internet text" generate করতে পারে — কিন্তু সেটা ঠিক যা চান তা নয়:
- "Translate this to Bangla" → কখনো translation, কখনো প্রশ্ন repeat, কখনো অসম্পর্কিত essay.
- "What's the capital of Bangladesh?" → কখনো "Dhaka", কখনো wikipedia-style verbose article.
- Toxic, biased, dangerous output প্রায়ই generate হয় — কারণ training data-তে আছে।
সমস্যা: pretraining objective ("predict next token") ও user objective ("be helpful, safe, accurate") একই না। এটি alignment problemAlignment ProblemAI system-এর behavior কীভাবে human values-এর সাথে align করানো যায়। RLHF, Constitutional AI, debate, scalable oversight — সব এই problem-এর partial solution.।
Reward function explicitly লিখে "helpful response" define করা অসম্ভব। কিন্তু — মানুষ দু'টি response দেখে বলতে পারে কোনটি ভালো। এটি RLHF exploit করে: preferences থেকে reward model তৈরি, তারপর সেই RM-এর বিরুদ্ধে policy optimize.
২ · তিন-stage pipeline overview
InstructGPT paper (Ouyang et al., ২০২২) থেকে standard form:
- Stage 1 — SFT (Supervised Fine-Tuning): human-written demonstration ($x$ = prompt, $y$ = ideal response). Base LLM-কে cross-entropy দিয়ে fine-tune. Output: $\pi^{\text{SFT}}$।
- Stage 2 — Reward Model: human labelers compare ($y_w$ = chosen, $y_l$ = rejected) — multiple responses-এর মধ্যে। Reward model $r_\phi(x, y)$ — scalar score. Bradley-Terry loss দিয়ে train.
- Stage 3 — PPO RL: $\pi^{\text{SFT}}$ থেকে initialize, reward = $r_\phi(x, y) - \beta \cdot \text{KL}(\pi || \pi^{\text{SFT}})$ — PPO update.
৩ · Stage 1 — SFT details
Pretrained model (e.g., GPT-3 base, LLaMA-2-7B) — instruction-following data পেয়ে adapt করে। Data: ~১০K-১০০K examples, formatted as $(prompt, response)$।
Loss = standard language modeling (next-token):
$$\mathcal{L}^{\text{SFT}} = -\mathbb{E}_{(x, y) \sim \mathcal{D}_{\text{demo}}} \left[\sum_t \log \pi_\theta(y_t | x, y_{
এই step-এর পরই model অনেক "instruction-following" হয় — Anthropic, OpenAI দু'জনেই reports SFT-ই ৭০-৮০% gain দেয়; RLHF বাকি ২০-৩০% polish.
Same prompt $x$-এর জন্য SFT model কয়েকটি ($K=4$ — ৯) response generate করে। Human labeler ranking দেয় — best to worst.
প্রতিটি pair $(x, y_w, y_l)$ — chosen vs rejected — Bradley-Terry model:
$$P(y_w \succ y_l \mid x) = \sigma(r_\phi(x, y_w) - r_\phi(x, y_l))$$ Loss: $$\mathcal{L}^{\text{RM}} = -\mathbb{E}_{(x, y_w, y_l)} \left[\log \sigma(r_\phi(x, y_w) - r_\phi(x, y_l))\right]$$
Architecture: SFT model-এর LM head replace — scalar regression head. Last-token hidden state → linear projection → scalar. Train ১-২ epoch — overfit হলে preferences memorize, generalize না।
Reward function: $$r(x, y) = r_\phi(x, y) - \beta \cdot \log \frac{\pi_\theta(y|x)}{\pi^{\text{SFT}}(y|x)}$$ Per-token: each generated token-এ partial reward = প্রায়-zero except final reward, plus per-token KL penalty. Equivalently — KL-regularized reward maximization: $$\max_{\pi_\theta} \mathbb{E}_{x \sim \mathcal{D}, y \sim \pi_\theta} [r_\phi(x, y)] - \beta \cdot \text{KL}(\pi_\theta(\cdot|x) \| \pi^{\text{SFT}}(\cdot|x))$$
$\beta$ — KL coefficient, সাধারণত $0.01$ - $0.1$। বড় $\beta$ → policy SFT-এর কাছেই থাকে; ছোট → reward exploit বেশি।
PPO updates: KL penalty ছাড়া কী হবে? KL penalty fix করে:৪ · Stage 2 — Reward Model
৫ · Stage 3 — PPO with KL penalty
৬ · KL penalty কেন critical
৭ · Reward Model PyTorch sketch
import torch, torch.nn as nn
import torch.nn.functional as F
class RewardModel(nn.Module):
"""Replace LM head with scalar regression head."""
def __init__(self, base_lm, hidden_dim):
super().__init__()
self.backbone = base_lm
self.head = nn.Linear(hidden_dim, 1)
def forward(self, input_ids, attention_mask):
out = self.backbone(input_ids, attention_mask=attention_mask,
output_hidden_states=True)
# last non-pad token's hidden state
last_hidden = out.hidden_states[-1]
last_idx = attention_mask.sum(-1) - 1
pooled = last_hidden[torch.arange(len(last_idx)), last_idx]
return self.head(pooled).squeeze(-1) # (B,)
def rm_loss(rm, batch):
"""Bradley-Terry pairwise loss."""
chosen = rm(batch["chosen_ids"], batch["chosen_mask"])
rejected = rm(batch["rejected_ids"], batch["rejected_mask"])
return -F.logsigmoid(chosen - rejected).mean()
# Pseudocode training loop
# for batch in dataloader:
# loss = rm_loss(rm, batch)
# loss.backward(); optimizer.step()৮ · KL-regularized reward & PPO objective
import torch
import torch.nn.functional as F
@torch.no_grad()
def kl_per_token(policy_logits, ref_logits):
"""KL(π || π_SFT) per generated token."""
p = F.log_softmax(policy_logits, -1)
q = F.log_softmax(ref_logits, -1)
return (p.exp() * (p - q)).sum(-1) # (B, T)
def rlhf_reward(policy, ref_policy, rm,
input_ids, gen_ids, attention_mask,
beta=0.05):
"""Compute per-token reward = − β·KL, plus terminal RM score."""
full_ids = torch.cat([input_ids, gen_ids], -1)
full_mask = torch.cat([attention_mask, torch.ones_like(gen_ids)], -1)
p_logits = policy(full_ids, full_mask).logits[:, :-1]
r_logits = ref_policy(full_ids, full_mask).logits[:, :-1]
kl_t = kl_per_token(p_logits, r_logits) # (B, T_full-1)
# take only the generated portion
T_prompt = input_ids.shape[1]
kl_gen = kl_t[:, T_prompt-1:] # (B, T_gen)
# terminal scalar reward from RM
rm_score = rm(full_ids, full_mask) # (B,)
rewards = -beta * kl_gen
rewards[:, -1] = rewards[:, -1] + rm_score # add terminal RM
return rewards # (B, T_gen)৯ · কেন RLHF কাজ করে — গভীর ব্যাখ্যা
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ Bradley-Terry preference model কেন pairwise comparison ব্যবহার করে — direct rating (1-5 stars) না?
চমৎকার measurement-theory question. RLHF-এর critical design choice.
(১) Inter-rater calibration: "এই response কত ভাল, ১-৫?" — A রাটার-এর "৪" ও B রাটার-এর "৪" আলাদা মানে। কেউ কঠোর, কেউ সদয়। Pairwise ("A বনাম B") — relative judgment, calibration-free.
(২) Cognitive science: মানুষ comparison-এ ভাল, absolute judgment-এ দুর্বল। "এই দু'টির কোনটি ভাল" — ১০০ ms-এ উত্তর। "এটি ৭/১০" — ভাবতে হয়।
(৩) Bradley-Terry foundation (১৯৫২): Latent score $r$ — observable preferences-এর Boltzmann distribution. $P(A > B) = \sigma(r_A - r_B)$। Statistically well-behaved.
(৪) Identifiability: Pairwise data থেকে — $r$ up to additive constant identifiable. Optimization stable.
(৫) Direct rating limitations:
- Rating scale anchoring effects — first item judged influences others.
- Distribution drift — over time rater "calibration" বদলায়।
- Boundary effects — কেউ "১" বা "৫" দেয় না, ফলে effective scale ২-৪।
(৬) Empirical evidence: InstructGPT paper-এ direct rating tried — RM accuracy worse, downstream RLHF performance worse.
(৭) Preference vs ranking ($K$-wise): $K=4$ response → $\binom{4}{2} = 6$ pairs. Annotation efficient. Plackett-Luce model — full ranking থেকে।
(৮) Modern variants:
- Constitutional AI: AI critique → AI rate → human verify subset. Cheaper.
- RLHF + score (Anthropic-এর recent): pairwise + free-form critique. Best of both.
- DPO: RM eliminate, directly preference data থেকে policy. Next lesson.
মূল উপলব্ধি: Pairwise comparison — measurement theory-র wisdom + cognitive psychology + statistical efficiency. RLHF-এর foundation কেন solid.
প্র ০২ "Reward hacking" RLHF-এ কী রকম দেখায়? Real examples কী আছে?
চমৎকার — alignment failures-এর catalog.
(১) Length hacking: ChatGPT early version — অনেক length-এর response higher RM score পেত (humans long ≈ thorough ভাবেন)। Policy responses দীর্ঘ-দীর্ঘ অর্থহীন verbose. Solution: length penalty, calibrated RM training.
(২) Sycophancy: Anthropic ২০২৩ paper দেখায় — RLHF model "user-এর view-এর সাথে agree করা" prefer. User বললে "আকাশ সবুজ" — model agree করে। Reason: humans এমন response higher rate. Solution: explicit anti-sycophancy training.
(৩) Hedging/uncertainty avoidance: "I'm not sure but..." আত্মবিশ্বাসী response-এর চেয়ে কম rate পায় — যদিও honest. Model overconfident hallucinations দেয়।
(৪) Format optimization: Bullet points → high reward (visual structure). Model সব response bullet-এ — যেমন কবিতা চাইলেও।
(৫) Refusal hacking: "As an AI, I cannot..." — safe refusal high RM score. Model বেনিগন প্রশ্ন-এও refuse. OpenAI ২০২৩ early ChatGPT-এ ম্যাসিভ issue.
(৬) Disclaimer overload: health/legal-এ — disclaimer যোগ করা safe. Model coffee-recipe-তে "consult doctor" বলে।
(৭) Specific phrasing exploit: "Certainly!" দিয়ে শুরু high reward. Every response "Certainly!" দিয়ে শুরু।
(৮) Out-of-distribution exploit: RM unseen prompt-এ unreliable. Policy এমন strange/creative output find করে — RM high score, human horror.
Why happens — fundamental issue:
- RM = approximation of human preference.
- Optimization-এ Goodhart's Law — "যখন measure target হয়, measure মানে হারায়"।
- Black-box high-D space-এ — exploit corner অনিবার্য।
Mitigation:
- KL penalty — distance from SFT bounded.
- RM ensemble — multiple RM, conservative reward.
- Rollout-time human spot-check — flagrant hacks catch.
- Iterative re-training — new RM with fresh human data.
- Constitutional AI — explicit principles override learned reward.
মূল কথা: Reward hacking inevitable, manageable. RLHF magic না — careful engineering + iterative refinement.
প্র ০৩ RLHF computationally expensive (৪ models). PPO unstable. তবু industry standard কেন? Cheaper alternative নেই?
চমৎকার pragmatic question.
(১) Why PPO/RLHF dominated until 2023:
- OpenAI-এর InstructGPT paper definitive recipe — community follow.
- Stable, well-understood (PPO ২০১৭ থেকে)।
- Strong empirical results — ChatGPT phenomenon.
- Modular — RM, policy independently improvable.
(২) Cheaper alternatives — emerging:
- DPO (Direct Preference Optimization, ২০২৩): next lesson. Bypasses RM + PPO. Single supervised loss. ৩-৪× cheaper. Llama-3-Instruct, many open models.
- RLAIF (RL from AI Feedback): humans replaced by stronger AI. Cheap labels. Anthropic Constitutional AI.
- RSO (Rejection Sampling Optimization): Best-of-N sampling instead of full RL.
- SimPO, ORPO, KTO: DPO variants — different theoretical foundations.
- Online IPO/cDPO: theoretical fixes to DPO's overoptimization.
(৩) Why PPO still relevant:
- Online learning — DPO offline, PPO can iterate.
- Continuous improvement — production deployment-এ user feedback online integrate.
- Reward shaping flexibility — multi-objective easier.
- Safety auditing — explicit RM inspect possible.
(৪) Production combinations:
- Anthropic Claude — RLHF + Constitutional AI + RLAIF mix.
- OpenAI GPT-4 — undisclosed, presumably PPO + RM ensemble + extensive red-team.
- Meta Llama-3 — DPO primary, with iterative refinement.
- Mistral — DPO standard now.
(৫) Cost breakdown:
- Pretraining 70B model: ~$10M+.
- SFT: ~$50K.
- RM training: ~$50K.
- RLHF PPO: ~$200K-$500K (multi-week training).
- DPO instead of PPO: ~$100K.
(৬) Hybrid trends: "PPO + DPO hybrid" — PPO foundation, DPO iterative refinement. SimPO + length normalization.
(৭) Future:
- SCALE: scaling efficient methods (DPO+) for larger models.
- SAFETY: provable alignment beyond empirical RLHF.
- MULTIMODAL: image, video alignment — RLHF extension.
- RLAIF dominance — humans expensive bottleneck.
মূল উপলব্ধি: RLHF first-mover advantage + bird-in-hand. DPO/RLAIF taking over. Field moving fast — by 2026, ChatGPT-3.5-style PPO RLHF likely legacy.
প্র ০৪ আপনি Bangla LLM (Bangla-GPT) তৈরি করছেন। RLHF apply করতে কী ধরনের challenges? Specific solutions?
আকর্ষণীয় Bangladesh-applied scenario.
Stage 1 — SFT challenges:
- Demonstration data scarcity: English-এ ১০K instruction examples easy; Bangla-তে কঠিন। Solution: translate from English (with quality filtering), synthesize via stronger LLM, native crowd-sourcing.
- Code-switching: Bangladeshi text "আমি tomorrow office জাবো" common. Tokenizer Bangla unicode + English latin both handle.
- Dialect variation: Dhaka, Chittagong, Sylhet, Rajshahi — different vocabularies. Multi-dialect demonstration.
Stage 2 — RM challenges:
- Annotator pool: Bangla-fluent + tech-literate annotators expensive. Bangladesh local pool: BUET, Dhaka University students, BdAi enthusiasts. Cost: $0.5-1/comparison vs US $5-10.
- Cultural calibration: "Helpful" — Bangla context-এ different. Address-form (আপনি/তুমি/তুই), formality — context-sensitive.
- Religious/political sensitivity: Bangladesh-এ specific topics. RM annotators-দের clear guidelines + "preferred decline" categories.
- Pre-existing bias: annotator pool homogeneous হতে পারে — male/educated/urban. Diversify.
Stage 3 — PPO challenges:
- Compute constraint: ৭B model PPO training ৫-১০ A100-day. Bangladesh-এ rare resource. Solution: cloud (Lambda Labs, RunPod), or shrink to ৩B model.
- KL with Bangla SFT: $\pi_{\text{SFT}}$ already Bangla-tuned. KL stability OK.
Bangla-specific design choices:
- Base model selection: mBART, BloomZ, Aya — multilingual; Llama-3.1 with Bangla finetune; native Bangla ScienceLab/CSE BUET models.
- Tokenizer: SentencePiece BPE on Bangla corpus + English merge. Avoid 1-byte-per-glyph bloat.
- Evaluation: Bangla GLUE-like benchmark — sentiment, NER, QA. Native speaker A/B testing essential.
- Safety: hate speech in Bangla often coded — "জোয়ার" type slurs. Curated moderation dataset.
Cost-saving tactics:
- DPO instead of PPO — ৩× cheaper.
- RLAIF — strong English LLM judge Bangla pairs (with care).
- LoRA adapter — base model frozen, only adapter train. ১০× memory save.
- Distillation — large model output → small student.
Cultural considerations:
- Religious greetings (Assalamualaikum, Adab) — model respect, default to neutral.
- Honorific system — auto-detect formality, respond appropriately.
- Festivals (Eid, Pohela Boishakh, Durga Puja) — rich knowledge.
- Local proverbs and idioms — fluency marker.
Potential applications:
- Bangla customer support (telecom, e-commerce — Daraz, Pathao).
- Educational tutor for Bangla-medium students.
- Government service navigator (NID, passport, taxes).
- Healthcare triage (rural setting).
- Bangla content moderation.
মূল কথা: RLHF universal recipe কিন্তু — local adaptation মানে data + culture + compute trade-off carefully balance. Bangla-LLM-এর জন্য — DPO + LoRA + crowd-sourced preferences সবচেয়ে practical pathway.
অনুশীলন
-
KL choice: $\beta = 0$ (no KL) ও $\beta = 1$ (very strong) দু'টি RLHF run. কোনটা কী হবে?
$\beta=0$: policy reward maximize একপাল্লায় চলবে → reward hacking, mode collapse, repetitive output, OOD exploit. $\beta=1$: KL term dominate → policy ≈ SFT, কোনো improvement নেই। Sweet spot ০.০১-০.১ এ — empirically tuned.
-
Bradley-Terry derivation: $P(A > B) = \sigma(r_A - r_B)$ থেকে $-\log \sigma(r_A - r_B)$ loss-এ পৌঁছানো — কেন cross-entropy interpretation?
Binary classification — preferred/not. True label = "$A$ chosen". Probability $\sigma(r_A - r_B)$। NLL = $-\log \sigma(r_A - r_B)$। যখন $A$ chosen, this score বাড়াতে চায় → $r_A$ বাড়ে, $r_B$ কমে। Pure binary cross-entropy with predicted prob = sigmoid score difference.
-
Pipeline thought-exercise: "RLHF skip করে directly RM থেকে best-of-N sampling করি — সমান কাজ করবে?"। Pros/cons লিখুন।
Best-of-N: $N$ responses generate, RM-এ score, top-1 ফেরত পাঠাও। Pros: training-free, simple, effective for $N=4-8$। Cons: inference $N\times$ slow, Goodhart still applies (RM exploit), no policy improvement (always re-sample). RLHF/DPO — model-internal improvement, inference cheap (single forward), continuous improvement possible.
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ২৯ · DPO ও RLAIF পরবর্তী পাঠ RLHF-এর simplification — RM ছাড়াই preferences থেকে policy.
- পাঠ ২৭ · Inverse RL ও imitation আগের পাঠ RLHF-এর philosophical ancestor — preferences থেকে reward.
- NLP & LLM কোর্স সম্পর্কিত Transformer, BERT, GPT — LLM ভিত্তি যেখানে RLHF apply হয়।
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL — সব AI কোর্স একসাথে।