چیت‌شیت

یادگیری تقویتی

Reinforcement Learning

MDPها، روش‌های مبتنی بر مقدار، گرادیان‌های سیاست، PPO، RLHF و GRPO. فرمول‌ها، خطوط به‌روزرسانی و شاخص‌های تشخیصی از فاز 9.

  • ۱۲ بخش
  • ۱۰ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. حلقه‌ی آموزش PPO
  2. RLHF در سه مرحله
  3. فرمول‌های مقدار
  4. فرمول‌های سیاست
  5. انتخاب یک روش
  6. خطوط به‌روزرسانی
  7. به‌روزرسانی برش‌خورده‌ی PPO
  8. پیش‌فرض‌ها و اعداد
  9. عیب‌یابی
  10. اختصارات
  11. پرسش‌ها
  12. نکات کاربردی

حلقه‌ی آموزش PPO

معماری
عملانتقالمقدارمزیتبه‌روزرسانیتعداد N محیط موازیهر کدام T گامActorسیاست سافت‌مکسبافر مسیر پیش‌روی شبیه‌سازی‌شدهs، a، r، log_pi_oldCriticمقدار v_old به ازای هر حالتGAEمزیت‌ها، بازده‌هاجانشین برش‌خورده (clipped surrogate)تعداد K دوره (epoch)، مینی‌دسته‌هاشاخص‌های تشخیصیمیانگین KL، کسر برش

RLHF در سه مرحله

گام‌به‌گام
  1. SFTفاین‌تیون مدل پایه روی نمونه‌های نمایشی انسانی.
  2. داده‌های ترجیحاتجمع‌آوری سطرهای پرامپت، برگزیده و ردشده.
  3. مدل پاداشآموزش یک هد اسکالر روی مدل SFT با تابع زیان Bradley-Terry.
  4. سیاست و مرجعآغاز سیاست از SFT. فریز کردن یک نسخه به عنوان مرجع.
  5. پاداشامتیاز RM منهای $\beta$ برابر KL نسبت به مرجع.
  6. PPOبه‌روزرسانی سیاست در سطح توکن در برابر آن پاداش.
  7. نظارترصد میانگین KL. بالاتر از حدود 5 تا 10، دریفت یا دور زدن پاداش آغاز می‌شود.

فرمول‌های مقدار

مفهوم‌ها
MDP
چندتایی $(S, A, P, R, \gamma)$ با خاصیت مارکوف.
بازده
$G_t = r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \ldots$
بلمن V
$V^\pi(s) = \sum_a \pi(a \mid s) \sum_{s', r} P(s', r \mid s, a) [r + \gamma V^\pi(s')]$
تکرار مقدار
$V(s) \leftarrow \max_a \sum_{s',r} P(s',r \mid s,a) [r + \gamma V(s')]$
TD(0)
$V(s) \leftarrow V(s) + \alpha [r + \gamma V(s') - V(s)]$
Q-learning
$Q(s, a) \leftarrow Q(s, a) + \alpha [r + \gamma \max_{a'} Q(s', a') - Q(s, a)]$
SARSA
$Q(s, a) \leftarrow Q(s, a) + \alpha [r + \gamma Q(s', a') - Q(s, a)]$
زیان DQN
$(r + \gamma \max_{a'} Q(s', a'; \theta^-) - Q(s, a; \theta))^2$ روی نمونه‌های بازپخش.

فرمول‌های سیاست

مفهوم‌ها
گرادیان سیاست
$\nabla J(\theta) = \mathbb{E}[ \sum_t G_t \cdot \nabla_\theta \log \pi_\theta(a_t \mid s_t) ]$
مزیت TD
$\delta_t = r_{t+1} + \gamma V(s_{t+1}) - V(s_t)$
GAE
$A_t^{\text{GAE}} = \sum_{l=0}^{\infty} (\gamma \lambda)^l \delta_{t+l}$
نسبت PPO
$r_t(\theta) = \pi_\theta(a_t \mid s_t) / \pi_{\theta_{\text{old}}}(a_t \mid s_t)$
برش PPO
$\mathbb{E}_t [ \min( r_t A_t, \mathop{\mathrm{clip}}(r_t, 1-\epsilon, 1+\epsilon) A_t ) ]$
Bradley-Terry
$L(\phi) = -\mathbb{E}[ \log \sigma(R_\phi(x, y_+) - R_\phi(x, y_-)) ]$
پاداش RLHF
$R_\phi(x, y) - \beta \cdot \mathrm{KL}(\pi_\theta \Vert \pi_{\text{ref}})$
مزیت GRPO
$A_i = (r_i - \text{mean}_r) / \text{std}_r$ روی $G$ نمونه از یک پرامپت.

انتخاب یک روش

دستورها
Situationروش
Small tabular MDP, known modelتکرار مقدار یا تکرار سیاست
Small tabular MDP, samples onlyQ-learning
On-policy, safety criticalSARSA یا Expected SARSA
High dimensional state, discrete actionsDQN، همراه با الگوریتم Double DQN در محیط عملیاتی
Continuous controlPPO با سیاست گاوسی، یا SAC و TD3
LLM alignment from preferencesابتدا DPO، سپس RLHF-PPO با جریمه‌ی KL
LLM math and code reasoningGRPO با پاداش مبتنی بر مدل اعتبارسنج
Two player board gamesAlphaZero یا MuZero

خطوط به‌روزرسانی

کار و کد
وظیفهکد
بازده، پیمایش معکوسG = r + gamma * G
کاوش با اپسیلون حریصانهif random() < epsilon: return choice(ACTIONS)
هدف Q-learningtarget = r + (gamma * max(Q[s_next].values()) if not done else 0.0)
هدف SARSAtarget = r + (gamma * Q[s_next][a_next] if not done else 0.0)
گام TDQ[s][a] += alpha * (target - Q[s][a])
همگام‌سازی شبکه‌ی هدف DQNif steps % sync_every == 0: target = copy(online)
پاداش RLHF با KLreward = dot(w, bag([token])) - beta * kl(probs, probs_ref)
مزیت گروهی GRPOadvs = [(r - mean_r) / std_r for r in rewards]

به‌روزرسانی برش‌خورده‌ی PPO

کد
python
for rec, adv in zip(mb, adv_norm):              # مزیت‌های نرمال‌شده در هر مینی‌دسته
    x = rec["x"]
    probs = softmax(logits(theta, x))           # سیاست فعلی
    logp = math.log(max(probs[rec["a"]], 1e-12))
    ratio = math.exp(logp - rec["log_pi_old"])  # احتمال جدید بر روی قبلی
    clipped = (adv > 0 and ratio > 1 + eps) or (adv < 0 and ratio < 1 - eps)
    pg_scale = 0.0 if clipped else ratio * adv  # برش‌خورده یعنی گرادیان صفر
    for action in range(N_ACTIONS):
        grad_logpi = (1.0 if action == rec["a"] else 0.0) - probs[action]
        for j in range(N_FEAT):
            theta[action][j] += lr_a * pg_scale * grad_logpi * x[j]
    err = rec["ret"] - value(w, x)              # خطای ناقد
    for j in range(N_FEAT):
        w[j] += lr_v * err * x[j]               # گام ناقد

پیش‌فرض‌ها و اعداد

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
Discount $\gamma$0.99افق حدود $1 / (1 - \gamma)$، یعنی 100 گام
Tabular $\alpha$ and $\epsilon$0.1Q-learning و SARSA روی محیط 4x4 GridWorld
PPO clip $\epsilon$0.20.1 بسیار محتاطانه است، 0.3 و بیشتر ناپایدار است
Value coefficient $c_v$0.5PPO و A2C
Entropy coefficient $c_e$0.01PPO و A2C
GAE $\lambda$0.95مقدار 0 همان TD است، 1 همان MC است
RLHF KL $\beta$0.01-0.05سیاست را نزدیک SFT نگه می‌دارد
GRPO group size $G$88 تا 64 استاندارد است، کمتر از 4 همراه با نویز است

عیب‌یابی

عیب‌یابی
  • میانگین KL فراتر از 0.1

    علت
    سیاست فاصله‌ی زیادی از سیاست قبلی می‌گیرد (دریفت)
    راه‌حل
    کاهش K_EPOCHS یا LR
  • کسر برش نزدیک 0

    علت
    برش هرگز فعال نمی‌شود
    راه‌حل
    افزایش LR یا K_EPOCHS
  • کسر برش 0.5 یا بیشتر

    علت
    بیش‌برازش روی مسیر پیش‌روی شبیه‌سازی‌شده
    راه‌حل
    کاهش LR یا K_EPOCHS
  • پاداش بالا می‌رود، ارزیابی انسانی افت می‌کند

    علت
    دور زدن پاداش در RM
    راه‌حل
    توقف زودهنگام، افزایش $\beta$، گسترش داده‌های RM
  • پاسخ‌ها طولانی‌تر می‌شوند

    علت
    RM به طول پاسخ پاداش می‌دهد
    راه‌حل
    پاداش نرمال‌شده بر اساس طول
  • مقادیر Q بیش از حد بالاست

    علت
    بایاس مقدار بیشینه روی Q دارای نویز
    راه‌حل
    الگوریتم Double DQN
  • DQN واگرا می‌شود

    علت
    سه‌گانه‌ی مرگبار
    راه‌حل
    نگه‌داشتن شبکه‌ی هدف و بافر بازپخش
  • سیاست از کاوش دست می‌کشد

    علت
    فروپاشی آنتروپی
    راه‌حل
    پاداش تشویقی آنتروپی با $c_e > 0$

اختصارات

اصطلاح‌ها
MDP
فرآیند تصمیم‌گیری مارکوف. حالت‌ها، عمل‌ها، انتقال‌ها، پاداش‌ها، ضریب تنزیل.
TD
تفاضل زمانی. به‌روزرسانی از یک هدف یک‌گامه بوت‌استرپ‌شده.
DQN
شبکه‌ی عمیق Q. یادگیری Q-learning همراه با بازپخش، شبکه‌ی هدف و برش پاداش.
A2C
بازیگر-نقاد بر مبنای مزیت. محیط‌های موازی همگام و دسته‌ای.
GAE
تخمین مزیت تعمیم‌یافته. مجموع وزن‌دار خطاهای تفاضل زمانی.
PPO
بهینه‌سازی سیاست پروکسیمال. نسبت اهمیت برش‌خورده، دوره‌های آموزشی متعدد.
RLHF
یادگیری تقویتی از بازخورد انسانی. ابتدا SFT، سپس RM، در نهایت PPO.
GRPO
بهینه‌سازی سیاست نسبی گروهی. نسخه‌ای از PPO بدون نیاز به ناقد.

پرسش‌ها

پرسش و پاسخ
هم‌سیاست یا برون‌سیاست؟
هم‌سیاست از داده‌های تولیدی خودش یاد می‌گیرد. برون‌سیاست از داده‌های یک سیاست دیگر می‌آموزد.
Q-learning یا SARSA؟
الگوریتم Q-learning روی مقدار ماکزیمم بوت‌استرپ می‌کند. SARSA از عمل بعدیِ انتخابی خود بهره می‌گیرد و محتاط‌تر است.
چرا تفریق خط مبنا؟
گرادیان را نااریب نگه می‌دارد و واریانس را کاهش می‌دهد.
چرا جریمه‌ی KL در RLHF؟
سیاست را در محدوده‌ی داده‌هایی که RM روی آن‌ها آموزش دیده حفظ می‌کند.
چرا GRPO برای استدلال؟
بدون شبکه‌ی مقدار، بنابراین حافظه به نصف می‌رسد. نرمال‌سازی بر اساس هر پرامپت با پاداش‌های تُنُک سازگار است.

نکات کاربردی

نکته‌ها
  • پیش از نوشتن حلقه‌ی آموزش، 5 چندتایی MDP را مشخص کنید.
  • یک ایجنت جدولی را در برابر مقدار برنامه‌ریزی پویا $V^{\ast}$ بررسی و اعتبارسنجی کنید.
  • نرخ $\epsilon$ را در 10% اول آموزش از 1.0 به 0.01 کاهش دهید.
  • مزیت‌ها را در هر دسته به میانگین صفر و انحراف معیار واحد نرمال‌سازی کنید.
  • برای پایداری عددی، نسبت را به‌صورت exp(log_new منهای log_old) محاسبه کنید.
  • آموزش PPO را با $K = 10$ دوره (epoch) و مینی‌دسته‌های 64تایی شروع کنید.