فاز 10 · درس 9

هوش مصنوعی قانون‌محور (CAI) و الگوریتم GRPO: خودبهبودبخشی در مدل‌های زبانی

نوع
ساختنی
زمان
حدود 45 دقیقه
زبان‌ها
Python (stdlib + numpy)
طوماری درخشان با قوانین مکتوب در کنار چند خط‌کش دیجیتال و نمودارهای مقایسه گروهی
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مبانی نظری
  4. حلقه‌ی هوش مصنوعی قانون‌محور (CAI)
  5. قانون اساسی دقیقاً چه می‌کند؟
  6. الگوریتم GRPO: بهینه‌سازی خط‌مشی مبتنی بر مقایسه‌ی گروهی
  7. چرا GRPO برای استدلال اهمیت دارد؟
  8. مدل‌های پاداش فرایند (PRM) در برابر مدل‌های پاداش نتیجه (ORM)
  9. خودبهبودبخشی: ضریب تکثیر بازخورد
  10. کدام روش، چه زمانی؟
  11. پیاده‌سازی
  12. گام 1: قانون اساسی
  13. گام 2: خودانتقادی و بازنویسی
  14. گام 3: پاداش‌های قاعده‌محور
  15. گام 4: مزیت گروهی (Group-Relative Advantage)
  16. گام 5: آپدیت به روش GRPO
  17. گام 6: یک دور خودبهبودبخشی
  18. استفاده از ابزارهای واقعی
  19. خروجی این درس
  20. تمرین‌ها
  21. اصطلاحات کلیدی
  22. برای مطالعه‌ی بیشتر

روش‌های سنتی هم‌ترازی مانند RLHF وابستگی شدیدی به برچسب‌گذاری جفت‌های ترجیحی توسط انسان دارند؛ فرایندی که نه‌تنها فوق‌العاده کند و پرهزینه است، بلکه سوگیری‌ها و خطاهای ذهنی ارزیاب‌ها را مستقیماً به مدل منتقل می‌کند. مدل‌های پیشرو مانند DeepSeek-R1 نشان دادند که برای وظایف استدلالی، می‌توان بخش اعظم این وابستگی انسانی را کنار گذاشت و هم‌ترازی را بر عهده‌ی خود مدل یا قواعد قطعی گذاشت.

در این درس یاد می‌گیرید چگونه دو سازوکار اساسی خودبهبودبخشی را بسازید: نخست هوش مصنوعی قانون‌محور (Constitutional AI) که با بهره‌گیری از اصولی مکتوب، مدل را به نقد و بازنویسی پاسخ‌های خودش هدایت می‌کند، و دوم الگوریتم GRPO که در سال 2025 با حذف شبکه‌ی ارزش و مقایسه‌ی گروهی پاسخ‌ها، هزینه‌ی حافظه و پیچیدگی آموزش را به حداقل رساند.

کدنویسی این درس کاملاً متکی بر پایتون خام و بدون وابستگی به مدل‌های حجیم تجاری پیاده شده است؛ بنابراین برای اجرای الگوریتم‌ها نیازی به زیرساخت‌های پردازشی سنگین یا دسترسی به APIهای خارجی ندارید و می‌توانید منطق درونی این چرخه‌ها را به‌صورت محلی روی سیستم شخصی اجرا و بررسی کنید.

روش RLHF به حضور انسان در چرخه نیاز دارد. هوش مصنوعی قانون‌محور (Constitutional AI یا CAI) بخش عمده‌ی این انسان‌ها را با خودِ مدل جایگزین می‌کند. کافی است فهرستی از اصول بنویسید، از مدل بخواهید پاسخ‌های خودش را بر اساس این اصول نقد کند و سپس روی همین نقدها آموزش ببیند. دیپ‌سیک (DeepSeek-R1) در سال 2025 این ایده را فراتر برد: به مدل اجازه دهید میلیون‌ها مسیر استدلال تولید کند، با یک قاعده‌ی مشخص به آن‌ها نمره دهید و GRPO را روی خروجی نهایی اجرا کنید. در سال 2026، بخش عمده‌ی «کار هم‌ترازی» در مدل‌های پیشرو، توسط فرایند هم‌ترازیِ خود مدل انجام می‌شود. در این درس هر دو حلقه را پیاده‌سازی می‌کنیم.

اهداف یادگیری

  • پیاده‌سازی حلقه‌ی دومرحله‌ای هوش مصنوعی قانون‌محور: خودانتقادی به‌همراه خودبازبینی، و سپس آموزش ترجیحات بر روی جفت‌های بازبینی‌شده
  • استخراج تابع هدف الگوریتم GRPO (بهینه‌سازی خط‌مشی مبتنی بر مقایسه‌ی گروهی در DeepSeek-R1) و مقایسه‌ی آن با خط مبنای مبتنی بر تابع ارزش در PPO
  • تولید مسیرهای استدلالِ قابل‌راستی‌آزمایی با پاداش‌های قاعده‌محور روی نتیجه‌ی نهایی و نمره‌دهی به آن‌ها بدون نیاز به مدل پاداش مجزا
  • تصمیم‌گیری درباره‌ی اینکه چه زمانی خودبهبودبخشی از داده‌های ترجیح انسانی پیشی می‌گیرد و چه زمانی دچار فروپاشی مُد می‌شود

صورت مسئله

شما در درس 07 روش RLHF و در درس 08 روش DPO را پیاده‌سازی کردید. هر دو به یک ورودی گران‌قیمت وابسته‌اند: جفت‌های ترجیح انسانی. پایپ‌لاین آنتروپیک در دوران InstructGPT تقریباً از 33,000 مقایسه استفاده می‌کرد. مدل Llama 2 Chat بیش از 1.5 میلیون جفت مقایسه به کار برد. Claude 3 حتی فراتر رفت. جمع‌آوری این داده‌ها کند، پرهزینه و متأثر از باورها و قضاوت‌های روزمره‌ی برچسب‌زنندگان است.

مقاله‌ی سال 2022 هوش مصنوعی قانون‌محور پرسش ساده‌ای را مطرح کرد: چه می‌شود اگر خود مدل برچسب‌های ترجیحات را تولید کند؟ فهرستی از اصول مکتوب — همان «قانون اساسی» — در اختیارش بگذارید و بخواهید پاسخ‌هایش را نقد کند. این نقدها به سیگنال آموزشی تبدیل می‌شوند.

در سال 2024، دیپ‌سیک این ایده را جلوتر برد. آن‌ها نشان دادند برای هر وظیفه‌ای با خروجیِ قابل‌راستی‌آزمایی (ریاضی با جواب مشخص، کدی که تست‌ها را پاس می‌کند یا رد می‌شود، یا بازی‌ای که در آن برنده یا بازنده می‌شوید)، می‌توانید منتقد (critic) را کاملاً حذف کنید. چندین راه‌حل کاندید تولید کنید. به هر کدام با یک قاعده‌ی قطعی (deterministic) نمره دهید. سپس الگوریتم گرادیان خط‌مشی را روی این پاداش‌ها اجرا کنید. مدل DeepSeek-R1 تقریباً بدون هیچ داده‌ی ترجیح انسانی به همین شیوه آموزش دید و به عملکرد استدلالی هم‌رده‌ی o1 رسید.

این دو حلقه — یعنی هوش مصنوعی قانون‌محور برای رفتارهای ذهنی/سلیقه‌ای و یادگیری تقویتی قاعده‌محور برای رفتارهای قابل‌راستی‌آزمایی — الگوهای اصلی هم‌ترازی در سال 2026 هستند. بودجه‌ی ترجیحات انسانی که قبلاً صرف RLHF می‌شد، حالا برای گامی بسیار کوچک‌تر هزینه می‌شود: انتخاب قانون اساسی و تعیین قواعد پاداش.

مبانی نظری

حلقه‌ی هوش مصنوعی قانون‌محور (CAI)

بای و همکاران (2022) این پایپ‌لاین را در دو مرحله ساختاربندی کردند:

مرحله‌ی 1: یادگیری نظارت‌شده از بازخورد هوش مصنوعی (SL-CAI). کار را با یک مدل SFT شروع کنید که مفید است اما احتمالاً پاسخ‌های آسیب‌رسان هم تولید می‌کند. پرامپت‌هایی با درخواست‌های بالقوه مخرب به آن بدهید. برای هر پاسخ، از همان مدل بخواهید پاسخش را بر اساس یک اصل قانون اساسی نقد کند و سپس آن را بازنویسی کند. مدل را روی پاسخ‌های بازنویسی‌شده فاین‌تیون کنید. این دیتاست شامل جفت‌های (prompt, revised_response) است.

مرحله‌ی 2: یادگیری تقویتی از بازخورد هوش مصنوعی (RLAIF). جفت‌هایی از پاسخ‌ها را نمونه‌برداری کنید. از مدل بپرسید کدام‌یک بهتر اصول قانون اساسی را رعایت کرده است. این ترجیحات دوتایی یک مدل پاداش را آموزش می‌دهند. سپس الگوریتم PPO یا DPO را با کمک آن پاداش روی مدل اجرا کنید. تفاوت کلیدی با RLHF این است: ترجیحات از مدل سرچشمه گرفته‌اند، نه از انسان‌ها.

مرحله 2: RLAIFمرحله 1: SL-CAIپرامپت مخربپاسخ اولیه(احتمالاً مضر)نقد مدلبر اساس اصولبازبینی پاسختوسط مدلآموزش SFT روی(پرامپت، بازبینی‌شده)پرامپتنمونه پاسخ الفنمونه پاسخ بداوری مدل بینالف و ب طبق اساسنامهمجموعه‌داده ترجیحاتآموزش DPO / PPO

قانون اساسی همان اهرم شماست. نسخه‌ی اولیه‌ی آنتروپیک 16 اصل داشت (که بعداً گسترش یافت). یک اصل چنین متنی دارد: «لطفاً پاسخی را انتخاب کنید که کمترین احتمال ایجاد ناراحتی یا توهین را برای افرادی با پیشینه‌های فرهنگی گوناگون داشته باشد.» شما برای هر گام، گاهی تصادفی و گاهی بر اساس دسته‌بندی پرامپت، یک اصل را انتخاب می‌کنید.

قانون اساسی دقیقاً چه می‌کند؟

قانون اساسی قرارداد هم‌ترازی را از «داده» به «متن» منتقل می‌کند. تغییر رفتار مدل در RLHF یعنی برچسب‌گذاری مجدد هزاران جفت‌داده. اما تغییر رفتار در CAI یعنی ویرایش یک پاراگراف. این بزرگ‌ترین دستاورد عملی آن است.

البته این رویکرد هزینه‌ای هم دارد. قضاوت مدل درباره‌ی خودش فقط تا اندازه‌ی کالیبراسیون اولیه‌اش معتبر است. اگر مدل SFT نقاط کوری داشته باشد — مثلاً نتواند لحن فریب‌کارانه و بازی با احساسات را تشخیص دهد — مرحله‌ی نقد هم این نقاط کور را به ارث می‌برد. روش CAI حلقه‌ی هم‌ترازی را فشرده می‌کند، اما نمی‌تواند سیگنال را از سقف توانایی مدل پایه بالاتر ببرد. به همین دلیل است که تمام پایپ‌لاین‌های عملیاتی CAI همچنان از مقداری داده‌ی ترجیح انسانی استفاده می‌کنند؛ رقمی که معمولاً 5 تا 10 درصد حجم داده‌های یک RLHF خالص است.

الگوریتم GRPO: بهینه‌سازی خط‌مشی مبتنی بر مقایسه‌ی گروهی

دیپ‌سیک الگوریتم GRPO را در مقاله‌ی DeepSeekMath (سال 2024) معرفی کرد و از آن به‌عنوان بک‌بون اصلی DeepSeek-R1 (سال 2025) بهره برد. الگوریتم GRPO گونه‌ای از PPO است که تابع ارزش (value function) را حذف می‌کند.

تابع هدف PPO را از درس 07 به یاد بیاورید:

LPPO=E[min⁡(r(θ)⋅A,clip(r(θ),1−ϵ,1+ϵ)⋅A)]L_{\text{PPO}} = \mathbb{E}\left[\min\left(r(\theta) \cdot A, \mathop{\mathrm{clip}}(r(\theta), 1-\epsilon, 1+\epsilon) \cdot A\right)\right]

در اینجا A نشان‌دهنده‌ی مزیت است که معمولاً با روش GAE و با تکیه بر یک شبکه‌ی ارزشِ آموزش‌دیده V(s) تخمین زده می‌شود. شبکه‌ی ارزش در واقع مدلی دوم هم‌اندازه‌ی خط‌مشی است؛ یعنی مصرف حافظه را دو برابر می‌کند و حلقه‌ی آموزشی اختصاصی خودش را به همراه می‌آورد.

الگوریتم GRPO تابع ارزش را دور می‌اندازد. به ازای هر پرامپت، گروهی شامل GG پاسخ را نمونه‌برداری می‌کند (معمولاً G=16G=16 یا 64 پاسخ). پاداش هر پاسخ محاسبه شده و سپس درون همان گروه نرمال‌سازی می‌شود:

Ai=ri−mean(r1,…,rG)std(r1,…,rG)A_i = \frac{r_i - \mathop{\mathrm{mean}}(r_1, \ldots, r_G)}{\mathop{\mathrm{std}}(r_1, \ldots, r_G)}

مزیت، در واقع همان z-score پاداش یک پاسخ در مقایسه با سایر پاسخ‌های هم‌گروهش است. بدون نیاز به هیچ تابع ارزشی. خود گروه نقش خط مبنای خودش را بازی می‌کند.

LGRPO=E[min⁡(r(θ)⋅Agroup,clip(r(θ),1−ϵ,1+ϵ)⋅Agroup)]−β⋅KL(π ∥ πref)L_{\text{GRPO}} = \mathbb{E}\left[\min\left(r(\theta) \cdot A_{\text{group}}, \mathop{\mathrm{clip}}(r(\theta), 1-\epsilon, 1+\epsilon) \cdot A_{\text{group}}\right)\right] - \beta \cdot \mathrm{KL}(\pi \,\|\, \pi_{\text{ref}})

جریمه‌ی واگرایی کولبک-لایبلر (KL Divergence) نسبت به مدل مرجع، درست مثل PPO پابرجاست. نسبت برش (clip ratio) هم حفظ شده است. تنها چیزی که کنار گذاشته شده، مدل منتقد مجزا است.

چرا GRPO برای استدلال اهمیت دارد؟

در وظایف استدلالی، پاداش‌ها اغلب تنک (sparse) و دودویی هستند: پاسخ نهایی یا درست است یا غلط. آموزش دادن یک تابع ارزش روی پاداش‌های تنک و دودویی هدر دادن منابع است؛ چون تا رسیدن به آخرین گام، تقریباً همه‌ی وضعیت‌ها بازده مورد انتظار یکسانی دارند و مدل نمی‌تواند تخمین‌های میانی مفیدی یاد بگیرد. نرمال‌سازی گروهی در GRPO یک سیگنال نسبیِ آنی به شما می‌دهد: در میان 16 تلاش مختلف برای حل یک مسئله‌ی ریاضی، کدام تلاش‌ها عملکردی بالاتر از میانگین این مسئله داشته‌اند؟

این دقیقاً همان جنس سیگنالی است که از پاداش‌های قاعده‌محور به دست می‌آورید:

  • ریاضی: کتابخانه‌ی sympy یا یک ابزار بررسی نمادین درستیِ پاسخ نهایی را تعیین می‌کند.
  • کدنویسی: یک مجموعه‌ی تست قبولی یا ردی کد را مشخص می‌کند.
  • فرمت‌بندی: یک عبارت باقاعده (regex) ارزیابی می‌کند که آیا پاسخ درون تگ XML خواسته‌شده قرار دارد یا خیر.
  • اثبات‌های چندمرحله‌ای: یک دستیار اثبات (مانند Lean یا Coq) اعتبار مراحل را تأیید می‌کند.

مدل DeepSeek-R1-Zero تنها با دو پاداش آموزش دید: دقت در بنچ‌مارک‌های ریاضی و پایبندی به فرمت تعیین‌شده (قرار گرفتن پاسخ داخل تگ‌های <answer>). بدون هیچ ترجیح انسانی و بدون مدل منتقد. همان «لحظه‌ی کشف و شهود» (aha moment) که در مقاله‌ی دیپ‌سیک توصیف شد — یعنی جایی که مدل خودبه‌خود یاد گرفت پاسخ‌هایش را وارسی کند و به عقب برگردد — تنها از دل اجرای GRPO روی پاداش‌های تنک و قاعده‌محور سر برآورد.

مدل‌های پاداش فرایند (PRM) در برابر مدل‌های پاداش نتیجه (ORM)

شما همچنان با یک تصمیم طراحی روبه‌رو هستید: پاداش دادن به پاسخ نهایی (مدل پاداش نتیجه یا ORM) یا پاداش دادن به تک‌تک مراحل میانی (مدل پاداش فرایند یا PRM).

بعد مقایسه ORM PRM
سیگنال به ازای هر مسیر 1 عدد N عدد (یک عدد برای هر مرحله)
منبع نظارت بررسی پاسخ نهایی برچسب‌های سطح مرحله یا خودقضاوتی
هزینه‌ی آموزش ارزان گران
تخصیص اعتبار تنک، همراه با نویز چگال، هدفمند
ریسک دور زدن پاداش پایین‌تر بالاتر (بهینه‌سازی بر اساس الگوهای ساختگی PRM)
موارد استفاده DeepSeek-R1, R1-Zero به گزارش منابع OpenAI o1، Math-Shepherd

اجماع شکل‌گرفته در سال‌های 2024 و 2025 این بود که ترکیب ORM و GRPO مقیاس‌پذیری بهتری نسبت به PRM دارد. درست است که مدل‌های PRM از نظر تعداد توکن بازده نمونه‌برداری بهتری دارند، اما نیازمند داده‌های گران‌قیمت برچسب‌خورده در سطح گام‌ها هستند و معمولاً به رفتارهای میان‌بُر منجر می‌شوند (نوشتن مراحلی که از دید PRM درست به نظر می‌رسند اما عملاً اثبات را جلو نمی‌برند). برای بیشتر تیم‌ها، ORM + GRPO اولین گزینه‌ای است که باید سراغش رفت.

خودبهبودبخشی: ضریب تکثیر بازخورد

وقتی الگوی دو حلقه‌ای (نقد/بازنویسی و یادگیری تقویتیِ گروهی با پاداش‌های قاعده‌محور) را در اختیار داشته باشید، می‌توانید آن‌ها را زنجیروار پشت سر هم قرار دهید:

  1. با یک مدل SFT شروع کنید.
  2. به ازای هر پرامپت، پاسخ‌های کاندید متعددی تولید کنید.
  3. با پاداش قاعده‌محور (برای کارهای قابل‌راستی‌آزمایی) یا منتقد قانون‌محور (برای کارهای سلیقه‌ای و کیفی) به آن‌ها نمره دهید.
  4. بهترین کاندیدها را به‌عنوان داده‌های جدید SFT یا جفت‌های ترجیحی ذخیره کنید.
  5. فاین‌تیون کنید و با مدل بهبودیافته دوباره به مرحله‌ی 2 برگردید.

دیپ‌سیک این فرایند را پس از R1-Zero، «فاین‌تیونینگ با نمونه‌برداری طردی» (Rejection Sampling fine-tuning) نامید. آنتروپیک نسخه‌ی اولیه‌ی آن را «تقطیر دانش هوش مصنوعی قانون‌محور» نام‌گذاری کرده بود. الگوی کار چنین است: هر تکرار، سیگنالی را که از قبل درون مدل وجود داشته تقویت می‌کند؛ اما سیگنال جدیدی به آن نمی‌افزاید. اگر مدل اصلاً نتواند دسته‌ای از مسائل X را حل کند، هیچ مقداری از خودبهبودبخشی نمی‌تواند چنین قابلیتی را درونش خلق کند.

خطر اصلی در اینجا، فروپاشی مُد است. داده‌های تولیدشده توسط خود مدل همیشه توزیع محدودتری نسبت به کل داده‌های آموزشی دارند. بعد از 3 تا 5 دور خودتقطیری، مدل‌ها معمولاً تنوع خود را در کارهای خلاقانه از دست می‌دهند، بیش از حد به خود مطمئن می‌شوند و دچار یک «لحن هوش مصنوعی» کلیشه‌ای (عبارت‌های تکراری و ساختارهای قالبی) می‌شوند. پایپ‌لاین‌های پروداکشن داده‌های تولیدشده توسط مدل را با بخش کوچکی از داده‌های تازه‌ی انسانی ترکیب می‌کنند تا توزیع سالم و واقعی بماند.

تکرارمدل SFT نسخه 0تولید G پاسخبه ازای هر پرامپتامتیازدهی با قاعدهیا اساسنامهفیلتر / رتبه‌بندیتنظیم دقیق(SFT یا GRPO)مدل SFT نسخه 1داده‌های انسانی(بخش کوچک)

کدام روش، چه زمانی؟

  • CAI خالص: رفتارهای کیفی و ذهنی (لحن، ایمنی، شیوه‌ی رد کردن درخواست‌ها). زمانی که قانون اساسی مشخصی دارید اما نتیجه‌ی شفاف و قابل‌راستی‌آزمایی در کار نیست.
  • GRPO + ORM: وظایف قابل‌راستی‌آزمایی (ریاضی، کدنویسی، استخراج ساختاریافته). زمانی که می‌توانید درستی خروجی را با هزینه‌ی کم بسنجید و پاداش تنک و دودویی است.
  • DPO روی جفت‌های تولیدشده توسط مدل: رویکرد ترکیبی. از قانون اساسی برای ساخت جفت‌های ترجیحات استفاده کنید، سپس به جای PPO/GRPO، مدل را با DPO (درس 08) آموزش دهید.
  • RLHF کامل: همچنان گزینه‌ی مناسب برای شرایطی است که نیازمند ایجاد توازن میان چندین هدف مختلف هستید؛ اهدافی که نه با یک قاعده بیان می‌شوند و نه در یک قانون اساسی کوتاه می‌گنجند.

بیشتر پایپ‌لاین‌های پیشرفته در سال 2026 از هر چهار روش استفاده می‌کنند: CAI برای لایه‌های ایمنی، GRPO برای فاز پس‌آموزش استدلال، DPO برای صیقل زدن نهایی ترجیحات و بخش‌های کوچکی از RLHF برای تنظیم رفتارهای باقی‌مانده‌ای که در برابر سایر روش‌ها مقاومت نشان می‌دهند.

هوش مصنوعی قانون‌محور (CONSTITUTIONAL AI)نقد و بازبینی، بدون دخالت انسان
CONSTITUTIONAL AIInstead of paying humans for preference labels, the model grades itself. It drafts an answer, critiques that draft against a written constitution of principles, and revises. The revised pairs become the training signal, so most of the alignment work loops through the model itself.پیش‌نویسنقدبازبینیقانون (مرام‌نامه)
به‌جای پرداخت هزینه به انسان‌ها برای برچسب‌گذاری ترجیحات، مدل خودش به خودش نمره می‌دهد؛ پاسخی اولیه پیش‌نویس می‌کند، آن را بر اساس یک مرام‌نامه یا قانون مکتوب متشکل از اصول نقد می‌کند و بهبود می‌بخشد. جفت‌های بازبینی‌شده به سیگنال آموزشی تبدیل می‌شوند، بنابراین بخش عمده‌ی فرآیند هم‌سوسازی در خود مدل تکرار می‌شود.

پیاده‌سازی

این کد سه بخش را در پایتون خالص به‌همراه numpy پیاده‌سازی می‌کند: حلقه‌ی خودانتقادی CAI، ارزیاب پاداش قاعده‌محور برای محاسبات پایه‌ی ریاضی، و یک ترینر مینیمال GRPO که روی مدل زبانی کوچک درس 04 اجرا می‌شود.

گام 1: قانون اساسی

فهرستی از اصول. در پروداکشن، هر بند از این قانون غنی‌تر است و برچسب دسته‌بندی دارد. برای این درس، آن را خلاصه نگه می‌داریم.

CONSTITUTION = [
    "The response must directly answer the question asked, without hedging.",
    "The response must not include unnecessary filler or padding.",
    "If the question has a single numeric answer, state the number plainly.",
    "The response must not refuse a reasonable, benign request.",
]

گام 2: خودانتقادی و بازنویسی

در یک سیستم واقعی، خودِ مدل نقد را انجام می‌دهد. در این درس، ما منتقد را با یک شیوه‌نامه‌ی نمره‌دهی دستی شبیه‌سازی می‌کنیم تا خط لوله بدون نیاز به فراخوانی LLM اجرا شود.

def critique(response: str, principle: str) -> dict:
    problems = []
    if len(response.split()) > 40 and "plainly" in principle:
        problems.append("answer buried in extra prose")
    if response.strip().lower().startswith(("i can't", "i cannot", "as an ai")):
        problems.append("unwarranted refusal")
    if response.count(",") > 4:
        problems.append("too much hedging")
    return {"principle": principle, "problems": problems}

def revise(response: str, critique_result: dict) -> str:
    if "answer buried" in " ".join(critique_result["problems"]):
        return response.split(".")[-2].strip() + "."
    if "unwarranted refusal" in " ".join(critique_result["problems"]):
        return "Here is the answer: " + response.split(":")[-1].strip()
    return response

تابع بازنویسی در اینجا نمادین است. با یک LLM واقعی، این بخش تبدیل به پرامپت دومی می‌شود: «با توجه به نقد، پاسخ را بازنویسی کن.»

گام 3: پاداش‌های قاعده‌محور

برای کارهای قابل‌راستی‌آزمایی، منتقد را کاملاً کنار بگذارید. این ارزیاب به پاسخ‌های حسابی نمره می‌دهد.

import re

def reward_math(prompt: str, response: str) -> float:
    try:
        expected = eval(prompt.replace("What is ", "").replace("?", "").strip())
    except Exception:
        return 0.0
    numbers = re.findall(r"-?\d+", response)
    if not numbers:
        return 0.0
    return 1.0 if int(numbers[-1]) == expected else 0.0

def reward_format(response: str) -> float:
    return 1.0 if re.search(r"<answer>.*</answer>", response) else 0.0

دو قاعده‌ی کاملاً قطعی، بدون نیاز به داده‌ی آموزشی و برچسب‌های انسانی. پاداش نهایی به‌صورت reward_math + 0.1 * reward_format محاسبه می‌شود تا رعایت نشدن فرمت جریمه شود، بدون اینکه بر درستی یا نادرستی پاسخ ریاضی سایه بیندازد.

گام 4: مزیت گروهی (Group-Relative Advantage)

به ازای فهرستی از پاداش‌ها برای گروهی از پاسخ‌ها به یک پرامپت مشخص، مقدار z-score را محاسبه کنید:

import numpy as np

def group_relative_advantage(rewards: list[float]) -> np.ndarray:
    r = np.array(rewards, dtype=float)
    if r.std() < 1e-8:
        return np.zeros_like(r)
    return (r - r.mean()) / (r.std() + 1e-8)

اگر پاداش همه‌ی نمونه‌های درون گروه برابر باشد، مزیت صفر شده و هیچ سیگنال گرادیانی منتقل نمی‌شود. این یک نقطه‌ی قوت است؛ چون نشان می‌دهد پرامپت یا آن‌قدر ساده بوده که مدل به‌راحتی حلش کرده، یا برای خط‌مشی فعلی آن‌قدر سخت بوده که اصلاً از عهده‌اش برنیامده است؛ پس این گام باید از آن صرف‌نظر کند.

گام 5: آپدیت به روش GRPO

یک گام آپدیت با گرادیان نمادین. در محیط واقعی این کار با مشتق‌گیری خودکار (autograd) در PyTorch انجام می‌شود. در اینجا قاعده‌ی آپدیت را مستقیماً نشان می‌دهیم.

def grpo_step(policy_logprobs: np.ndarray, ref_logprobs: np.ndarray,
              advantages: np.ndarray, beta: float = 0.01, clip_eps: float = 0.2) -> dict:
    ratios = np.exp(policy_logprobs - ref_logprobs)
    unclipped = ratios * advantages
    clipped = np.clip(ratios, 1 - clip_eps, 1 + clip_eps) * advantages
    policy_loss = -np.minimum(unclipped, clipped).mean()
    kl = (ref_logprobs - policy_logprobs).mean()
    total_loss = policy_loss + beta * kl
    return {
        "policy_loss": float(policy_loss),
        "kl": float(kl),
        "total_loss": float(total_loss),
        "mean_ratio": float(ratios.mean()),
    }

این در واقع همان تابع هدف برش‌خورده‌ی PPO است که یک تفاوت دارد: مقادیر مزیت به جای تابع ارزش، از z-scoreهای درون‌گروهی به دست آمده‌اند. نیازی به آموزش V(s) نیست. خبری از GAE نیست. خود گروه خط مبنا است.

گام 6: یک دور خودبهبودبخشی

اجزا را به هم متصل کنید: یک گروه را نمونه‌برداری کنید، با قواعد به هر پاسخ نمره دهید، مزیت‌ها را حساب کنید و سنجه‌هایی را که در عمل به بهینه‌ساز داده می‌شوند گزارش دهید.

def self_improvement_round(prompts: list[str], policy_sampler, group_size: int = 8) -> dict:
    metrics = []
    for prompt in prompts:
        responses = [policy_sampler(prompt) for _ in range(group_size)]
        rewards = [reward_math(prompt, r) + 0.1 * reward_format(r) for r in responses]
        advantages = group_relative_advantage(rewards)
        best = responses[int(np.argmax(rewards))]
        metrics.append({
            "prompt": prompt,
            "mean_reward": float(np.mean(rewards)),
            "best_reward": float(np.max(rewards)),
            "std_reward": float(np.std(rewards)),
            "best_response": best,
            "advantages": advantages.tolist(),
        })
    return {"per_prompt": metrics,
            "overall_mean": float(np.mean([m["mean_reward"] for m in metrics]))}

استفاده از ابزارهای واقعی

با اجرای code/main.py، هر دو حلقه از ابتدا تا انتها اجرا می‌شوند. حلقه‌ی CAI مجموعه‌ی کوچکی از جفت‌های (پاسخ اولیه، پاسخ بازنویسی‌شده) تولید می‌کند که می‌توانید مدل را روی آن‌ها فاین‌تیون کنید. حلقه‌ی GRPO نیز آمار پاداش‌ها را برای مسائل حسابی به ازای هر پرامپت استخراج می‌کند؛ به این ترتیب می‌بینید چطور مزیت‌های درون‌گروهی به یک نمونه‌گیر ساده اجازه می‌دهند بدون نیاز به تابع ارزش یا برچسب انسانی عملکردش را ارتقا دهد.

اعداد خروجی اینجا هدف اصلی نیستند. در یک اجرای واقعی با مدلی آموزش‌دیده، میانگین پاداش باید در طول دوره‌ها بالا برود، انحراف معیار پاداش باید مثبت بماند (اگر به صفر برسد، خط‌مشی دچار فروپاشی مُد شده و باید آموزش را متوقف کنید) و واگرایی KL نسبت به مدل مرجع باید شیب ملایمی داشته باشد. این سه نمودار — یعنی رشد میانگین پاداش، پایداری انحراف معیار و محدود ماندن KL — بررسی سلامت یک پایپ‌لاین عملیاتی GRPO یا CAI را تشکیل می‌دهند.

خروجی این درس

این درس فایل outputs/skill-self-improvement-auditor.md را تولید می‌کند. یک پایپ‌لاین خودبهبودبخشی پیشنهادی را به آن بدهید تا شروط غیرقابل‌مذاکره را بررسی کند: قاعده‌ی پاداشی که واقعاً قابل‌راستی‌آزمایی باشد، سقف واگرایی KL نسبت به مدل مرجع، حداقل میزان تنوع و سهمیه‌ی اجباری برای داده‌های انسانی. این ابزار از تأیید هر چرخه‌ای که ادعای «خودبهبودبخشی خالص» بدون هیچ اتکای خارجی داشته باشد، خودداری می‌کند.

تمرین‌ها

  1. منتقد دستی در گام 2 را با یک فراخوانی مدل زبانی جایگزین کنید. از هر مدل چت محلی می‌توانید استفاده کنید. بسنجید در چند درصد موارد نقد و بازنویسی واقعاً کیفیت پاسخ را بالا می‌برد و در چند درصد آن را دست‌نخورده باقی می‌گذارد.

  2. اصل سومی با موضوع صحت فکت‌ها به قانون اساسی اضافه کنید. پایپ‌لاین را روی پرامپت‌هایی اجرا کنید که ادعاهای فکتی می‌طلبند (مثل پایتخت‌ها و تاریخ‌ها) و بسنجید چه تعداد از بازنویسی‌ها خطاهای فکتی را حذف می‌کنند و چه تعداد خطای جدید می‌سازند.

  3. روش DPO را روی جفت‌های ترجیحی حاصل از مرحله‌ی 2 در CAI پیاده‌سازی کنید. 20 پرامپت انتخاب کنید، برای هر کدام دو پاسخ بسازید، از منتقد بخواهید برنده‌ی هر جفت را مشخص کند و سپس تابع زیان (loss) مربوط به DPO از درس 08 را اجرا کنید. نتیجه را با مسیر GRPO روی همان داده‌ها مقایسه کنید.

  4. منظم‌سازی آنتروپی را به تابع هدف GRPO اضافه کنید. عبارت -alpha * entropy(policy) با ضریب alpha=0.01 تنوع در نمونه‌برداری را تشویق می‌کند. ارزیابی کنید آیا این کار مانع از فروپاشی مُد در طول 5 دور خودبهبودبخشی می‌شود یا خیر.

  5. یک امتیازدهنده‌ی پاداش فرایند (PRM) برای یک مسئله‌ی حسابی دومرحله‌ای بسازید. در پاسخ به «حاصل (3+4)*5 چیست؟»، مدل باید مرحله‌ی میانی 3+4=7 را نمایش دهد. به مرحله‌ی میانی جدا از پاسخ نهایی نمره دهید و عملکرد GRPO مبتنی بر PRM را با GRPO مبتنی بر ORM در طول 10 دور مقایسه کنید.

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

اصطلاح معنای رایج معنای دقیق فنی
هوش مصنوعی قانون‌محور (Constitutional AI) «مدل خودش را هم‌تراز می‌کند» پایپ‌لاینی دومرحله‌ای (خودانتقادی + RLAIF) که بیشتر برچسب‌های ترجیحات انسانی را با قضاوت خودِ مدل بر اساس یک قانون اساسی مکتوب جایگزین می‌کند
RLAIF «روش RLHF بدون حضور انسان» یادگیری تقویتی از بازخورد هوش مصنوعی — اجرای PPO یا DPO بر روی ترجیحاتی که خود مدل ساخته است
GRPO «همان PPO بدون تابع ارزش» بهینه‌سازی خط‌مشی مبتنی بر مقایسه‌ی گروهی — نمونه‌برداری از G پاسخ به ازای هر پرامپت و استفاده از z-score پاداش‌های گروه به‌عنوان مقادیر مزیت
ORM «پاداش دادن به پاسخ نهایی» مدل پاداش نتیجه — یک عدد اسکالر به‌عنوان پاداش که فقط به خروجی نهایی تعلق می‌گیرد
PRM «پاداش دادن به هر گام» مدل پاداش فرایند — ثبت پاداش برای تک‌تک مراحل میانی استدلال، معمولاً با کمک داده‌های برچسب‌خورده در سطح هر مرحله
پاداش مبتنی بر قانون «ارزیاب قطعی» مدل اعتبارسنج (regex، sympy، مجموعه‌ی تست) که بدون نیاز به مدلی آموزش‌دیده، امتیازی عددی یا دودویی برمی‌گرداند
فاین‌تیونینگ با نمونه‌برداری طردی «برنده‌ها را نگه دار و بازآموزی کن» تولید پاسخ‌های متعدد، فیلتر کردن و انتخاب موارد با بالاترین پاداش، افزودن آن‌ها به داده‌های SFT و آموزش دوباره
فروپاشی مُد «مدل تنوعش را از دست داد» خط‌مشی پس‌آموزش روی محدوده‌ی کوچکی از فضای پاسخ‌ها متمرکز می‌شود؛ نشانه‌اش کاهش انحراف معیار پاداش درون گروه است
سقف واگرایی KL «مدل چقدر اجازه‌ی انحراف دارد» مجموع واگرایی کولبک-لایبلر از مدل مرجع که بهینه‌ساز قبل از توقف آموزش مجاز است جمع‌آوری کند
لحظه‌ی R1 «مدل یاد گرفت مسیرش را اصلاح کند» رفتار گزارش‌شده از دیپ‌سیک که در آن خط‌مشیِ آموزش‌دیده فقط با پاداش‌های نتیجه، خودبه‌خود یاد گرفت در زنجیره‌ی افکارش به عقب برگردد و پاسخ‌هایش را وارسی کند

برای مطالعه‌ی بیشتر

سؤالات متداول

الگوریتم GRPO چه تفاوتی با PPO دارد؟

در GRPO شبکه‌ی ارزش (Value Network) کاملاً حذف می‌شود و به جای تخمین مزیت با GAE، پاداش چندین پاسخ هم‌زمان نمونه‌برداری‌شده نرمال‌سازی شده و از مقدار z-score درون‌گروهی به‌عنوان مزیت استفاده می‌شود.

هوش مصنوعی قانون‌محور (CAI) چگونه هزینه‌ی ترجیحات انسانی را کاهش می‌دهد؟

با تعیین یک قانون اساسی مکتوب، مدل پاسخ‌های اولیه‌اش را نقد و بازنویسی می‌کند و در مرحله‌ی RLAIF ترجیحات را خود مدل تعیین می‌کند؛ بدین ترتیب نیاز به برچسب‌زن انسانی تا بیش از 90 درصد کاهش می‌یابد.

تفاوت مدل پاداش فرایند (PRM) و مدل پاداش نتیجه (ORM) در چیست؟

مدل ORM فقط به درستی خروجی نهایی یک امتیاز می‌دهد، در حالی که PRM به تک‌تک مراحل میانی استدلال نمره می‌دهد. با این حال ORM در ترکیب با GRPO پایدارتر و مقیاس‌پذیرتر عمل می‌کند.

چرا خودبهبودبخشی محض ممکن است منجر به فروپاشی مُد (Mode Collapse) شود؟

چون داده‌های تولیدی مدل توزیع محدودتری دارند؛ تکرار زیاد این چرخه تنوع پاسخ‌ها را از بین می‌برد و انحراف معیار پاداش‌ها را به صفر می‌رساند، مگر اینکه مقداری داده‌ی انسانی یا نظارت خارجی حفظ شود.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.