ادامهٔ ۴.۲.۵ — استفاده از مدلهای ضعیف برای بهبود مدلهای قوی
در objective ترکیبی معادلهٔ (۴.۱۳)، D مجموعهٔ زوجهای input-output و λ ضریب interpolation است. این روش را میتوان هم در pre-training و هم در fine-tuning به کار برد. با تنظیم λ میتوان میزان اثر small model را کنترل کرد؛ مثلاً هرچه large model توانمندتر میشود، λ را تدریجاً کاهش داد تا training بیشتر به language-modeling loss اصلی متکی شود.
- Data selection/filtering: مدل کوچک میتواند likelihood یا cross-entropy یک sequence را محاسبه کند. sequenceهای با likelihood پایین یا cross-entropy بالا را میتوان حذف کرد و موارد با likelihood بالاتر/entropy کمتر را در اولویت گذاشت تا training بر دادهٔ مرتبطتر یا باکیفیتتر متمرکز شود.
- Ensemble learning: میتوان distributionهای چند مدل کوچک یا submodel تخصصی را با majority voting، weighted averaging یا stacking ترکیب کرد و از aggregation یک مدل قویتر ساخت.
- Model cascading در inference: یک مدل کوچک، سریع ولی کمدقتتر ابتدا input را پردازش میکند. اگر output به معیارهای از پیش تعیینشده برسد همان استفاده میشود؛ در غیر این صورت input به مدل بزرگ، کندتر و دقیقتر فرستاده میشود. در نتیجه هزینهٔ محاسباتی و latency کاهش مییابد.
۴.۳ همترازی ترجیح انسانی: RLHF
تا اینجا LLM را عمدتاً با زوجهای labeled input-output fine-tune کردیم تا از طریق supervised learning توان instruction following به دست آید. اما در بسیاری از applicationها انتظار داریم مدل نهفقط instruction را اجرا کند، بلکه رفتار آن با ارزشها و ترجیحات انسانی نیز سازگار باشد.
فرض کنید کاربر از LLM میپرسد چگونه وارد یک سامانهٔ رایانهای شود. مدلِ نامناسبهمتراز ممکن است جزئیات اجرای فعالیت غیرقانونی را ارائه دهد؛ پاسخ مطلوبتر میتواند کاربر را از اقدام غیرقانونی بازدارد و پیامدهای چنین رفتاری را بهصورت کلی توضیح دهد. دشواری در آن است که ظرافت اخلاقی و وابستگی به context را نمیتوان همیشه بهسادگی در یک fine-tuning dataset encode کرد؛ حتی انسانها نیز اغلب نمیتوانند preference خود را دقیق و صریح بیان کنند.
روش جایگزین، یادگیری تقویتی از بازخورد انسانی (Reinforcement Learning from Human Feedback یا RLHF) است [Christiano et al., 2017; Stiennon et al., 2020]. ایدهٔ اصلی این است که LLM از comparison میان چند output با کمک reward model یاد بگیرد. expertهای انسانی preference خود را میان زوجهای output اعلام میکنند؛ این preference data برای آموزش reward model استفاده میشود تا کیفیت ادراکشدهٔ output را پیشبینی کند. سپس reward model به outputهای جدید امتیاز میدهد و LLM با reinforcement-learning algorithm parameterهای خود را بر پایهٔ این feedback update میکند.
شکل ۴.۶ — مقایسهٔ supervised fine-tuning و RLHF. در SFT احتمال output gold-standard با داشتن input بیشینه میشود. در RLHF ابتدا reward model از pairwise human preference آموزش میبیند و سپس همین مدل برای supervision و fine-tuning LLM با loss یادگیری تقویتی استفاده میشود.
در ادامه ابتدا مفاهیم پایهٔ reinforcement learning معرفی میشوند، سپس training reward model و نهایتاً alignment خود LLM با reward model بررسی میشود.
۴.۳.۱ مبانی یادگیری تقویتی
در reinforcement learning یک agent با یک environment پویا تعامل میکند. agent در هر time step state فعلی را مشاهده، بر اساس policy یک action انتخاب و اجرا میکند و سپس reward و state جدید را از environment دریافت میکند. این چرخهٔ observe–act–feedback تا رسیدن به هدف تکرار میشود.
- Agent: یادگیرنده یا تصمیمگیر؛ در اینجا خود LLM.
- Environment: هرآنچه خارج از agent است و با آن تعامل میکند. در LLM بیشتر چارچوبی است که مدل از آن feedback دریافت میکند، نه الزاماً فضای فیزیکی یا virtual.
- State (s): وضعیت فعلی environment. در language modeling میتوان context دیدهشده تا زمان t را state دانست؛ مثلاً (x,y<t).
- Action (a): تصمیم ممکن agent؛ برای LLM یکی از tokenهای vocabulary که میتواند پیشبینی شود.
- Reward (R): feedback environment دربارهٔ موفقیت action. r(s,a,s′) reward action a در state s و transition به s′ است. در یک trajectory مینویسیم r_t=r(s_t,a_t,s_{t+1}). اگر transition deterministic باشد، s_{t+1} را میتوان حذف کرد.
- Policy (π): distribution تصمیمهای agent. برای LLM همان next-token distribution است:
π(a|s) = Pr(yt|x,y<t) (4.14)
در این نگاشت، action با token y_t و state با context (x,y<t) متناظر است.
- Value Function (V و Q): تابع state-value بازده discounted مورد انتظار را وقتی agent از state s شروع و policy π را دنبال میکند میسنجد:
V(s)=E[r0+γr1+γ²r2+… | s0=s,π] = E[Σt=0∞ γtrt | s0=s,π] (4.15)
γ∈[0,1] discount factor است. action-value یا Q-function بازده مورد انتظار را برای شروع از state s، انجام action a و سپس دنبالکردن policy اندازه میگیرد:
Q(s,a)=E[Σt=0∞ γtrt | s0=s,a0=a,π] (4.16)
شکل ۴.۷ — LLM بهعنوان policy در reinforcement learning. در step t، مدل token y_t را با داشتن input x و tokenهای قبلی تولید میکند؛ y_t action، (x,y<t) state و distribution مدل policy است. reward model و value functionها feedback لازم برای policy training را میسازند.
هدف reinforcement learning یادگیری policyای است که cumulative reward یا return را در بلندمدت بیشینه کند. trajectory را به صورت τ={(s₁,a₁),…,(s_T,a_T)} در نظر بگیرید:
R(τ)=Σt=1T rt (4.17)
امید ریاضی return روی فضای trajectoryها:
J(θ)=Eτ∼D[R(τ)|πθ] = Στ∈DPrθ(τ)R(τ) = Στ∈DPrθ(τ)Σt=1Trt (4.18)
J(θ) performance function نامیده میشود و training objective چنین است:
θ̃ = arg maxθ J(θ) (4.19)
یک الگوریتم پایه این است: چند trajectory sample کنیم، هرکدام را با performance function ارزیابی کنیم و parameterها را برای افزایش performance update کنیم. optimize کردن این objective با gradient، خانوادهای از policy-gradient methods را به دست میدهد [Williams, 1992].
در بسیاری از مسائل NLP مانند machine translation، reward sparse است: برای همهٔ t<T صفر و فقط در پایان sentence غیرصفر است. feedback dense معمولاً training را آسانتر میکند و روشهایی مانند reward shaping برای این مسئله وجود دارند، اما در بحث فعلی reward فقط پس از تکمیل prediction در نظر گرفته میشود.
گرادیان performance function از معادلهٔ (۴.۱۸) چنین به دست میآید:
∂J(θ)/∂θ = Στ∈D Prθ(τ) [∂log Prθ(τ)/∂θ] R(τ) (4.20)
اگر همهٔ trajectoryهای D را هماحتمال فرض کنیم:
∂J(θ)/∂θ = (1/|D|) Στ∈D [∂log Prθ(τ)/∂θ] R(τ) (4.21)
مزیت این فرم آن است که R(τ) لازم نیست differentiable باشد؛ پس reward function میتواند هر نوع تابعی باشد.
اگر generation trajectory را Markov decision process در نظر بگیریم، log probability trajectory به policy و dynamics تفکیک میشود:
∂log Prθ(τ)/∂θ = ∂/∂θ [Σt=1Tlog πθ(at|st) + Σt=1Tlog Pr(st+1|st,at)] (4.22)
در حالت معمول dynamics به parameterهای policy وابسته نیست، پس gradient بخش dynamics صفر است:
∂log Prθ(τ)/∂θ = ∂/∂θ Σt=1Tlog πθ(at|st) (4.23)
∂J(θ)/∂θ = (1/|D|) Στ∈D ∂/∂θ[(Σt=1Tlogπθ(at|st))(Σt=1Trt)] (4.24)
policy gradient ساده است، اما gradient estimate میتواند variance بالایی داشته باشد و learning را noisy و ناکارآمد کند. rewardهای خوب و بد ممکن است مقیاس بسیار متفاوت داشته باشند؛ مثلاً reward خوب ۲ و penalty بد −۵۰. راه ساده کاهش variance گرادیان، استفاده از baseline b و مرکزکردن return حول آن است. خود variance return با baseline الزاماً تغییر نمیکند، اما variance estimate گرادیان کاهش مییابد.
∂J/∂θ = (1/|D|) Στ ∂/∂θ [Σt=1Tlogπθ(at|st) (Σk=1t−1rk + Σk=tTrk − b)] (4.25)
در Markov process، action زمان t نمیتواند rewardهای قبل از t را تغییر دهد؛ بنابراین آن بخش contributionی به gradient ندارد:
∂J/∂θ = (1/|D|) Στ ∂/∂θ [Σt=1Tlogπθ(at|st)(Σk=tTrk−b)] (4.26)
اگر baseline را state-value یعنی V(s_t) بگیریم، advantage برابر است با:
A(st,at) = Σk=tTrk − V(st) (4.27)
Advantage مشخص میکند action نسبت به expected return از state فعلی چه مزیتی دارد. در نتیجه:
∂J(θ)/∂θ = (1/|D|) Στ∈D ∂/∂θ [Σt=1Tlogπθ(at|st) A(st,at)] (4.28)
این objective با Advantage Actor-Critic (A2C) متناظر است [Mnih et al., 2016]. actor policy را update میکند و critic value function را تخمین میزند. معمولاً:
A(st,at) = Q(st,at) − V(st) (4.29)
A(st,at) = rt + V(st+1) − V(st) (4.30)
A(st,at) = rt + γV(st+1) − V(st) (4.31)
فرم آخر Temporal Difference (TD) error نیز نامیده میشود. critic network برای V(s) آموزش میبیند و از آن advantage محاسبه میشود. loss رایج value network با parameterهای ω، MSE میان return محاسبهشده و value پیشبینیشده است:
Lv(ω) = (1/M) Σ [rt + γVω(st+1) − Vω(st)]² (4.32)
reinforcement learning حوزهای گسترده است و جزئیات فنی فراوانی خارج از دامنهٔ این کتاب دارد؛ برای بحث کاملتر به Sutton and Barto [2018] و Szepesvári [2010] ارجاع داده میشود. همین مفاهیم برای توضیح RLHF در بخشهای بعد کافیاند.
۴.۳.۲ آموزش مدل پاداش
در RLHF، reward model شبکهای عصبی است که زوج input و output را به یک scalar نگاشت میکند:
r = Reward(x,y) (4.33)
r میزان همسویی output y با behavior مطلوب برای input x را اندازه میگیرد. در مدل متداول، reward واقعی فقط در انتهای output کامل تولید میشود و positionهای میانی reward صفر یا مقدار از پیش تعیینشده دارند.
شکل ۴.۸ — معماری reward model مبتنی بر Transformer. input و output به sequence واحد متصل میشوند، Transformer decoder representation هر position را میسازد، representation آخرین token بهعنوان نمایش کل sequence گرفته و با یک linear map به scalar reward تبدیل میشود.
یک پیادهسازی ساده، استفاده از LLM پیشآموخته است. اگر seqx,y=[x,y] باشد، representation آخرین position یعنی hlast به scalar نگاشت میشود:
r(x,y)=hlastWr (4.34)
برای training ابتدا human feedback روی candidate outputها جمعآوری میشود. برای هر input، LLM چند output {y₁,…,y_N} میسازد. feedback میتواند سه شکل رایج داشته باشد:
- Pairwise Comparison: expert میان دو output گزینهٔ بهتر را انتخاب میکند.
- Rating: هر output score عددی continuous/discrete مانند ۱ تا ۵، ۱ تا ۱۰ یا binary میگیرد.
- Listwise Ranking: expert مجموعهٔ outputها را مرتب میکند.
RLHF غالباً از pairwise comparison استفاده میکند. دو output (y_a,y_b) از pool برداشته میشوند و expert با معیارهایی مانند clarity، relevance و accuracy یکی را ترجیح میدهد. preference با y_a ≻ y_b یا برعکس نمایش داده میشود.
مدل Bradley–Terry احتمال preference را از اختلاف reward به دست میآورد [Bradley and Terry, 1952]:
Pr(ya ≻ yb|x) = er(x,y_a)/(er(x,y_a)+er(x,y_b)) = Sigmoid(r(x,ya)−r(x,yb)) (4.35)
loss reward model:
Lr(φ)=−E(x,y_a,y_b)∼D_r[log Prφ(ya ≻ yb|x)] (4.36)
اگر نمونهها uniform باشند:
Lr(φ)=−(1/|Dr|) Σ(x,y_a,y_b)∈D_r log Prφ(ya ≻ yb|x) (4.37)
φ̂ = arg minφ Lr(φ) (4.38)
چون reward model نیز بر پایهٔ LLM است، همان Transformer training procedure قابل استفاده است و تنها cross-entropy loss استاندارد با pairwise ranking loss جایگزین میشود. پس از training، rφ̂ برای supervision policy استفاده میشود.
گرچه reward model با pairwise ranking آموزش دیده، در alignment هر زوج input-output را مستقل score میکند. pairwise objective مدل را به تفاوتهای ظریف حساس میکند و scalarهای continuous آن policy optimization را هدایت میکنند. به همین دلیل میتوان ranking lossهای مختلفی انتخاب یا ترکیب کرد ولی reward model حاصل را به شیوهای یکسان به کار برد.
۴.۳.۳ آموزش LLM
پس از آمادهشدن reward model، policy یا همان LLM با روش A2C آموزش داده میشود. utility یک trajectory:
U(τ;θ)=Σt=1T logπθ(at|st)A(st,at) (4.39)
L(θ)=−Eτ∼D[U(τ;θ)] = −Eτ∼D[Σt=1Tlogπθ(at|st)A(st,at)] (4.40)
θ̃ = arg minθ L(θ) (4.41)
در notation language modeling:
L(θ)=−E(x,y)∼D[U(x,y;θ)] (4.42)
U(x,y;θ)=Σt=1T logπθ(yt|x,y<t)A(x,y<t,yt) (4.43)
در RLHF معمولاً dataset حاوی inputهای تنهاست و output با خود policy sample میشود:
L(θ)=−Ex∼DEy∼πθ(·|x)[U(x,y;θ)] (4.44)
نسخههای بهبودیافتهٔ policy gradient از importance sampling استفاده میکنند. policy فعلی با reference policy مقایسه میشود:
U(τ;θ)=Σt=1T[πθ(at|st)/πθref(at|st)]A(st,at) (4.45)
ratio بزرگتر از ۱ یعنی action در policy فعلی نسبت به reference بیشتر ترجیح داده شده و کمتر از ۱ معنای عکس دارد. این ایده را میتوان از expected-reward نیز دید:
J(θ)=Eτ∼πθ[R(τ)] (4.46)
J(θ)=Eτ∼πθref[(Prθ(τ)/Prθref(τ))R(τ)] (4.47)
روی کل sequence space این دو برابرند. در practice تنها تعداد محدودی sequence sample میشود؛ فرم دوم sampling را از reward computation جدا میکند و به surrogate objective منجر میشود. این کار وقتی sampling از target policy گران یا دشوار است مفید است.
∂/∂θ Eτ∼πθref[(Prθ(τ)/Prθref(τ))R(τ)] |θ=θref = Eτ∼πθref[(∂Prθ(τ)/∂θ)|θ=θref R(τ)] (4.48)
این همان جهت استاندارد policy-gradient در نقطهٔ reference است.
importance ratio میتواند gradient variance و updateهای بزرگ ایجاد کند. برای محدودکردن آن از clipping استفاده میشود:
Uclip(τ;θ)=Σt=1T Clip(πθ(at|st)/πθref(at|st))A(st,at) (4.49)
Clip(ratio)=min(ratio, bound(ratio,1−ε,1+ε)) (4.50)
برای نگهداشتن optimization در یک trust region، فاصلهٔ policy جدید از reference نیز جریمه میشود:
Penalty = logπθ(τ) − logπθref(τ) (4.51)
Penalty = Σt=1Tlogπθ(at|st) − Σt=1Tlogπθref(at|st) (4.52)
Uppo-clip(τ;θ)=Uclip(τ;θ)−βPenalty (4.53)
این روش Proximal Policy Optimization (PPO) نام دارد [Schulman et al., 2017] و یکی از پرکاربردترین روشهای RL برای LLM است. در notation LLM:
U(x,y;θ)=Uppo-clip(x,y;θ)−βPenalty (4.54)
Uppo-clip(x,y;θ)=Σt=1TClip(πθ(yt|x,y<t)/πθref(yt|x,y<t))A(x,y<t,yt) (4.55)
Penalty=logPrθ(y|x)−logPrθref(y|x)=ΣlogPrθ(yt|x,y<t)−ΣlogPrθref(yt|x,y<t) (4.56)
ایدهٔ PPO با وجود notation سنگین ساده است: likelihood ratio هدف و reference را clip میکنیم، آن را با advantage ترکیب میکنیم و penalty میافزاییم تا policy update بیش از حد بزرگ نشود.
پیادهسازی RLHF در این چارچوب به چهار مدل مبتنی بر Transformer decoder نیاز دارد:
- Reward Model rφ: از human preference data یاد میگیرد برای هر زوج input-output scalar reward پیشبینی کند؛ معمولاً Transformer decoder + linear layer.
- Value Model Vω: expected return را از یک state پیشبینی میکند و معماری آن معمولاً شبیه reward model است.
- Reference Model πθref: baseline LLM و نقطهٔ شروع policy training است؛ معمولاً instruction-fine-tuned شده و در RLHF ثابت میماند.
- Target Model / Policy πθ: next-token decision را انجام میدهد و با supervision reward model و value model update میشود.
ترتیب عملی training چنین است: ابتدا مدلها initialize میشوند؛ reward/value میتوانند از LLM پیشآموخته و reference/target از مدل instruction-fine-tuned شروع شوند. reference پس از آن freeze میشود. سپس human preference data جمعآوری و reward model train میشود. در مرحلهٔ آخر، policy و value model همزمان با reward model آموزش میبینند: value model با MSE value prediction و policy با PPO loss update میشود.
شکل ۴.۹ — نمای کامل RLHF. ابتدا reward model با human preference و Bradley–Terry loss آموزش میبیند. سپس reference model ثابت میماند و policy و value function با data حاوی inputهای تنها آموزش داده میشوند؛ advantage/TD error از reward و value ساخته میشود، policy clipped-PPO loss را کمینه و value network MSE را کمینه میکند.