Buckets:
| import{s as dt,n as jt,o as ut}from"../chunks/scheduler.893fe8c9.js";import{S as Ct,i as ht,e as J,s as e,c as T,h as It,a as U,d as t,b as a,f as mt,g as o,j as M,k as bl,l as xt,m as n,n as r,t as i,o as p,p as w}from"../chunks/index.b1df2166.js";import{C as bt,H as c,E as ft}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.69b77b15.js";import{C as g}from"../chunks/CodeBlock.a59648ab.js";import{C as At}from"../chunks/CourseFloatingBanner.c1c08878.js";function Rt(Ss){let y,fl,Il,Al,u,Rl,C,El,h,Ql,I,Ds='ဒီလေ့ကျင့်ခန်းမှာ၊ သင်ဟာ model ရဲ့ reasoning စွမ်းရည်တွေကို မြှင့်တင်ဖို့ Unsloth ကို အသုံးပြုပြီး GRPO (Group Relative Policy Optimization) နဲ့ model တစ်ခုကို fine-tune လုပ်ပါလိမ့်မယ်။ GRPO အကြောင်းကို <a href="/course/chapter3/3">Chapter 3</a> မှာ ကျွန်တော်တို့ ဖော်ပြခဲ့ပြီးပါပြီ။',Fl,x,Zs="Unsloth က LLM fine-tuning ကို အရှိန်မြှင့်ပေးတဲ့ library တစ်ခုဖြစ်ပြီး models တွေကို ပိုမိုမြန်ဆန်စွာနဲ့ computational resources နည်းပါးစွာနဲ့ train လုပ်နိုင်စေပါတယ်။ Unsloth က TRL ထဲကို ပလပ်ထိုးထားတာဖြစ်လို့၊ ကျွန်တော်တို့ ယခင်အပိုင်းတွေမှာ သင်ယူခဲ့တာတွေကို ဆက်လက်တည်ဆောက်ပြီး Unsloth ရဲ့ သီးခြားအချက်အလက်တွေအတွက် ပြင်ဆင်ပါမယ်။",Bl,m,Ns="<p>ဒီလေ့ကျင့်ခန်းကို အခမဲ့ Google Colab T4 GPU မှာ run နိုင်ပါတယ်။ အကောင်းဆုံးအတွေ့အကြုံအတွက် အပေါ်က link ပေးထားတဲ့ notebook ကို လိုက်နာပြီး ကိုယ်တိုင် စမ်းကြည့်ပါ။</p>",Vl,b,_l,f,Os="ပထမဆုံး၊ လိုအပ်တဲ့ libraries တွေကို install လုပ်ကြရအောင်။ အရှိန်မြှင့် fine-tuning အတွက် Unsloth နဲ့ fast inference အတွက် vLLM လိုအပ်ပါလိမ့်မယ်။",kl,A,Gl,R,Sl,E,Xs="Unsloth က transformers တွေကို Unsloth optimizations တွေနဲ့ ပေါင်းစပ်ထားတဲ့ class (<code>FastLanguageModel</code>) ကို ပံ့ပိုးပေးပါတယ်။ ဒါကို import လုပ်ကြရအောင်။",Dl,Q,Zl,F,vs="အခု၊ Google ရဲ့ Gemma 3 1B Instruct model ကို load လုပ်ပြီး fine-tuning အတွက် configure လုပ်ကြရအောင်။",Nl,B,Ol,V,$s="ဒီ code က model ကို memory ချွေတာဖို့ 4-bit quantization နဲ့ load လုပ်ပြီး ထိရောက်တဲ့ fine-tuning အတွက် LoRA (Low-Rank Adaptation) ကို အသုံးပြုပါတယ်။ <code>target_modules</code> parameter က model ရဲ့ ဘယ် layers တွေကို fine-tune လုပ်ရမယ်ဆိုတာကို သတ်မှတ်ပြီး၊ <code>use_gradient_checkpointing</code> က ပိုရှည်တဲ့ contexts တွေနဲ့ training ကို ဖွင့်ပေးပါတယ်။",Xl,d,zs='<p>ဒီအခန်းမှာ LoRA အကြောင်း အသေးစိတ်ကို ကျွန်တော်တို့ ဖော်ပြမှာ မဟုတ်ပါဘူး၊ ဒါပေမယ့် <a href="/course/chapter11/3">Chapter 11</a> မှာ ပိုမိုလေ့လာနိုင်ပါတယ်။</p>',vl,_,$l,k,qs="ဒီလေ့ကျင့်ခန်းအတွက်၊ ကျွန်တော်တို့ GSM8K dataset ကို အသုံးပြုပါမယ်။ ဒါက grade school math problems တွေပါဝင်ပါတယ်။ model ကို အဖြေမပေးခင် reasoning ကို ပြသဖို့ dataset ကို format လုပ်ပါမယ်။",zl,G,Ws="ပထမဆုံး၊ prompts နဲ့ answers တွေရဲ့ format ကို သတ်မှတ်ပါမယ်။",ql,S,Wl,D,Ys="အခု၊ dataset ကို ပြင်ဆင်ကြရအောင်။",Yl,Z,Hl,N,Hs="dataset ကို dataset ကနေ answer ကို ထုတ်ယူပြီး string အဖြစ် format လုပ်ခြင်းဖြင့် ပြင်ဆင်ထားပါတယ်။",Ll,O,Pl,X,Ls='<a href="/course/chapter13/4">ယခင်စာမျက်နှာ</a> မှာ ကျွန်တော်တို့ ဆွေးနွေးခဲ့တဲ့အတိုင်း၊ GRPO က model ရဲ့ သင်ယူမှုကို အလျားနဲ့ formatting လိုမျိုး စစ်ဆေးအတည်ပြုနိုင်တဲ့ criteria တွေအပေါ် အခြေခံပြီး လမ်းညွှန်ဖို့ reward functions တွေကို အသုံးပြုနိုင်ပါတယ်။',Kl,v,Ps="ဒီလေ့ကျင့်ခန်းမှာ၊ ကောင်းမွန်တဲ့ reasoning ရဲ့ မတူညီတဲ့ ကဏ္ဍတွေကို အားပေးမယ့် reward functions အချို့ကို ကျွန်တော်တို့ သတ်မှတ်ပါမယ်။ ဥပမာ၊ model ကို integer answer ပေးတဲ့အတွက်နဲ့ strict format ကို လိုက်နာတဲ့အတွက် ကျွန်တော်တို့ ဆုချပါမယ်။",ls,$,ss,z,Ks="ဒီ reward functions တွေက မတူညီတဲ့ ရည်ရွယ်ချက်တွေကို ဆောင်ရွက်ပါတယ်။",ts,q,lt="<thead><tr><th>Reward Function</th> <th>ရည်ရွယ်ချက်</th></tr></thead> <tbody><tr><td><code>correctness_reward_func</code></td> <td>၎င်း၏အဖြေသည် မှန်ကန်သောအဖြေနှင့် ကိုက်ညီသောအခါ model ကို ဆုချသည်</td></tr> <tr><td><code>int_reward_func</code></td> <td>ဂဏန်းအဖြေတစ်ခုပေးသောအခါ model ကို ဆုချသည်</td></tr> <tr><td><code>strict_format_reward_func</code> နှင့် <code>soft_format_reward_func</code></td> <td>သတ်မှတ်ထားသော format ကို လိုက်နာသောအခါ model ကို ဆုချသည်</td></tr> <tr><td><code>xmlcount_reward_func</code></td> <td>မှန်ကန်သော XML tag အသုံးပြုမှုကို ဆုချပြီး closing tags များနောက်ရှိ extra content များကို ပြစ်ဒဏ်ပေးသည်</td></tr></tbody>",ns,W,es,Y,st='အခု ကျွန်တော်တို့ GRPO trainer ကို ကျွန်တော်တို့ model, tokenizer, နဲ့ reward functions တွေနဲ့ တည်ဆောက်ပါမယ်။ ဒီအပိုင်းက <a href="/course/chapter12/5">ယခင်လေ့ကျင့်ခန်း</a> နဲ့ တူညီတဲ့ နည်းလမ်းကို လိုက်နာပါတယ်။',as,H,Js,L,tt="<code>GRPOConfig</code> က training အတွက် hyperparameters အမျိုးမျိုးကို သတ်မှတ်ပါတယ်။",Us,P,nt="<li><code>use_vllm</code>: vLLM ဖြင့် မြန်ဆန်သော inference ကို ဖွင့်ပေးသည်။</li> <li><code>learning_rate</code>: model က မည်မျှမြန်ဆန်စွာ သင်ယူသည်ကို ထိန်းချုပ်သည်။</li> <li><code>num_generations</code>: prompt တစ်ခုစီအတွက် generate လုပ်ရမည့် completions အရေအတွက်။</li> <li><code>max_steps</code>: လုပ်ဆောင်ရမည့် training steps စုစုပေါင်းအရေအတွက်။</li>",Ms,K,et="အခု training ကို စတင်ကြရအောင်။",Ts,ll,os,j,at="<p>Training လုပ်တာ အချိန်အနည်းငယ် ကြာနိုင်ပါတယ်။ rewards တွေ ချက်ချင်းတိုးလာတာကို သင်မတွေ့ရနိုင်ပါဘူး - တိုးတက်မှုတွေ စတင်မမြင်ရခင် 150-200 steps လောက် ကြာနိုင်ပါတယ်။ စိတ်ရှည်ပါ!</p>",rs,sl,is,tl,Jt="Training ပြီးနောက်၊ model က ဘယ်လိုစွမ်းဆောင်တယ်ဆိုတာ ကြည့်ဖို့ ကျွန်တော်တို့ရဲ့ model ကို စမ်းသပ်ကြရအောင်။ ပထမဆုံး၊ LoRA weights တွေကို save လုပ်ပါမယ်။",ps,nl,ws,el,Ut="အခု၊ model ကို မေးခွန်းအသစ်တစ်ခုနဲ့ စမ်းသပ်ကြည့်ကြရအောင်။",gs,al,cs,Jl,Mt="model က အဖြေမပေးခင် reasoning ကို ပြသရင်း သတ်မှတ်ထားတဲ့ format ကို လိုက်နာတာကို သင်တွေ့ရပါလိမ့်မယ်။",ys,Ul,ms,Ml,Tt="Unsloth က သင် fine-tune လုပ်ထားတဲ့ model ကို save လုပ်ဖို့ options အများအပြားကို ပံ့ပိုးပေးပါတယ်၊ ဒါပေမယ့် ကျွန်တော်တို့ အသုံးအများဆုံး နည်းလမ်းကိုပဲ အဓိကထားပါမယ်။",ds,Tl,js,ol,us,rl,ot="<code>push_to_hub_merged</code> method ကို အသုံးပြုပြီး model ကို Hugging Face Hub ကို push လုပ်ပါမယ်။ ဒီ method က model ကို quantization formats များစွာနဲ့ push လုပ်နိုင်စေပါတယ်။",Cs,il,hs,pl,rt="Unsloth က llama.cpp နဲ့ အသုံးပြုဖို့ GGUF format ကိုလည်း ထောက်ပံ့ပေးပါတယ်။",Is,wl,xs,gl,it="GGUF files တွေကို llama.cpp ဒါမှမဟုတ် Jan ဒါမှမဟုတ် Open WebUI လို UI-based systems တွေနဲ့ အသုံးပြုနိုင်ပါတယ်။",bs,cl,fs,yl,pt=`ဒီလေ့ကျင့်ခန်းမှာ၊ သင်ဟာ အောက်ပါတို့ကို သင်ယူခဲ့ပါပြီ။ | |
| ၁။ အရှိန်မြှင့် fine-tuning အတွက် Unsloth ကို တည်ဆောက်နည်း | |
| ၂။ GRPO training အတွက် data ကို ပြင်ဆင်နည်း | |
| ၃။ model ရဲ့ သင်ယူမှုကို လမ်းညွှန်ဖို့ custom reward functions တွေကို သတ်မှတ်နည်း | |
| ၄။ GRPO ကို အသုံးပြုပြီး model တစ်ခုကို train လုပ်နည်း | |
| ၅။ fine-tune လုပ်ထားတဲ့ model ကို စမ်းသပ်နည်း | |
| ၆။ model ကို formats အမျိုးမျိုးနဲ့ save လုပ်နည်း`,As,ml,wt="GRPO ဟာ language models တွေကို သီးခြား behavior တွေနဲ့ ချိန်ညှိဖို့အတွက် အစွမ်းထက်တဲ့ နည်းလမ်းတစ်ခုဖြစ်ပြီး၊ Unsloth က hardware ကန့်သတ်ချက်ရှိရင်တောင် အဲဒါကို အသုံးပြုနိုင်စေပါတယ်။ reward functions များစွာကို ပေါင်းစပ်ခြင်းဖြင့်၊ သင်ဟာ model ကို သီးခြား format တစ်ခုကို လိုက်နာစေရင်း ၎င်းရဲ့ reasoning စွမ်းရည်တွေကိုလည်း မြှင့်တင်နိုင်ပါတယ်။",Rs,dl,gt="နောက်ထပ် အချက်အလက်တွေနဲ့ resources တွေအတွက်၊ အောက်ပါတို့ကို ကြည့်ရှုပါ။",Es,jl,ct='<li><a href="https://docs.unsloth.ai/" rel="nofollow">Unsloth Documentation</a></li> <li><a href="https://discord.gg/unsloth" rel="nofollow">Unsloth Discord</a></li> <li><a href="https://github.com/unslothai/unsloth" rel="nofollow">Unsloth GitHub</a></li>',Qs,Fs,Bs,ul,Vs,Cl,yt="<li><strong>GRPO (Group Relative Policy Optimization)</strong>: Reinforcement Learning in LLMs (Language Models) တွင် အသုံးပြုသော Optimization Algorithm တစ်မျိုးဖြစ်ပြီး၊ model ၏ reasoning စွမ်းရည်များကို မြှင့်တင်ရန်နှင့် ၎င်း၏ responses များကို လိုချင်သော format များနှင့် ချိန်ညှိရန် ဒီဇိုင်းထုတ်ထားသည်။</li> <li><strong>Unsloth</strong>: Large Language Models (LLMs) များကို fine-tune လုပ်ခြင်းကို အရှိန်မြှင့်ပေးသည့် Python library တစ်ခု။</li> <li><strong>Fine-tune</strong>: ကြိုတင်လေ့ကျင့်ထားပြီးသား (pre-trained) မော်ဒယ်တစ်ခုကို သီးခြားလုပ်ငန်းတစ်ခု (specific task) အတွက် အနည်းငယ်သော ဒေတာနဲ့ ထပ်မံလေ့ကျင့်ပေးခြင်းကို ဆိုလိုပါတယ်။</li> <li><strong>Reasoning Capabilities</strong>: model တစ်ခု၏ ဆင်ခြင်တွေးခေါ်နိုင်စွမ်း၊ ဥပမာ- ပြဿနာများကို ဖြေရှင်းခြင်း၊ ဆုံးဖြတ်ချက်များ ချမှတ်ခြင်း။</li> <li><strong>LLM (Large Language Model)</strong>: လူသားဘာသာစကားကို နားလည်ပြီး ထုတ်လုပ်ပေးနိုင်တဲ့ အလွန်ကြီးမားတဲ့ Artificial Intelligence (AI) မော်ဒယ်တွေ ဖြစ်ပါတယ်။</li> <li><strong>Computational Resources</strong>: ကွန်ပျူတာ၏ တွက်ချက်နိုင်စွမ်း၊ ဥပမာ- CPU, GPU, RAM။</li> <li><strong>TRL (Transformer Reinforcement Learning)</strong>: Hugging Face မှ Reinforcement Learning (RL) ကို Transformer models များနှင့် အသုံးပြုရန်အတွက် library တစ်ခု။</li> <li><strong>Google Colab T4 GPU</strong>: Google Colab မှ ပံ့ပိုးပေးသော NVIDIA T4 Graphics Processing Unit (GPU)။</li> <li><strong>Dependencies</strong>: ဆော့ဖ်ဝဲလ်တစ်ခု သို့မဟုတ် library တစ်ခု အလုပ်လုပ်ရန် လိုအပ်သော အခြား library များနှင့် modules များ။</li> <li><strong><code>pip</code></strong>: Python အတွက် package installer (package manager)။ Python packages များကို install လုပ်ရန်နှင့် စီမံခန့်ခွဲရန် အသုံးပြုသည်။</li> <li><strong><code>vLLM</code></strong>: Large Language Models (LLMs) များအတွက် မြန်ဆန်သော inference ကို ပံ့ပိုးပေးသည့် library တစ်ခု။</li> <li><strong><code>FastLanguageModel</code> Class</strong>: Unsloth library မှ class တစ်ခုဖြစ်ပြီး Hugging Face Transformers models များကို Unsloth ၏ optimization များနှင့် ပေါင်းစပ်ပေးသည်။</li> <li><strong><code>from_pretrained()</code> Method</strong>: Pretrained model နှင့် tokenizer ကို load လုပ်ရန် method။</li> <li><strong><code>model_name</code></strong>: Hugging Face Hub မှ model ၏ နာမည်။</li> <li><strong>Gemma 3 1B Instruct</strong>: Google မှ ထုတ်လုပ်ထားသော 1 billion parameters ရှိသော instruction-tuned Large Language Model။</li> <li><strong><code>max_seq_length</code></strong>: model က input အဖြစ် လက်ခံနိုင်သော sequence ၏ အများဆုံးအလျား။</li> <li><strong>LoRA (Low-Rank Adaptation)</strong>: Large Language Models (LLMs) များကို Fine-tune လုပ်ရာတွင် memory နှင့် computational cost ကို လျှော့ချပေးသည့် နည်းလမ်း။</li> <li><strong><code>lora_rank</code></strong>: LoRA matrix ၏ rank ကို သတ်မှတ်သည်။ rank ပိုကြီးလေ model က ပိုမိုသင်ယူနိုင်လေ ဖြစ်သော်လည်း computational cost ပိုများသည်။</li> <li><strong><code>load_in_4bit</code></strong>: model ကို 4-bit quantization ဖြင့် load လုပ်မလား မလုပ်ဘူးလား သတ်မှတ်သည်။ memory ချွေတာရန် အသုံးပြုသည်။</li> <li><strong><code>fast_inference</code></strong>: vLLM ဖြင့် မြန်ဆန်သော inference ကို ဖွင့်မလား ပိတ်မလား သတ်မှတ်သည်။</li> <li><strong><code>max_lora_rank</code></strong>: အများဆုံး LoRA rank။</li> <li><strong><code>gpu_memory_utilization</code></strong>: GPU memory ကို မည်မျှအသုံးပြုမည်ကို ရာခိုင်နှုန်းဖြင့် သတ်မှတ်သည်။</li> <li><strong><code>get_peft_model()</code> Method</strong>: LoRA ကို model တွင် အသုံးပြုရန် Unsloth မှ ပံ့ပိုးပေးသော method။</li> <li><strong><code>r</code> (LoRA rank)</strong>: LoRA rank ကို သတ်မှတ်သည်။</li> <li><strong><code>target_modules</code></strong>: LoRA ကို အသုံးပြုမည့် model ၏ layers များ။</li> <li><strong><code>lora_alpha</code></strong>: LoRA အတွက် scaling factor။</li> <li><strong><code>use_gradient_checkpointing</code></strong>: Training လုပ်နေစဉ် memory အသုံးပြုမှုကို လျှော့ချရန် gradient checkpointing ကို ဖွင့်ပေးသည်။</li> <li><strong><code>random_state</code></strong>: reproducible results များရရှိရန် random seed ကို သတ်မှတ်သည်။</li> <li><strong>4-bit Quantization</strong>: model ၏ weights များကို 4-bit integer များအဖြစ် ပြောင်းလဲခြင်းဖြင့် memory အသုံးပြုမှုနှင့် computational cost ကို လျှော့ချသည့် နည်းလမ်း။</li> <li><strong>GSM8K Dataset</strong>: Grade school math problems များပါဝင်သော dataset။</li> <li><strong>System Prompt</strong>: Large Language Model (LLM) ကို မည်သည့်ပုံစံဖြင့် တုံ့ပြန်ရမည်ကို ညွှန်ကြားသော စာသား။</li> <li><strong>XML_COT_FORMAT</strong>: XML tags များဖြင့် Chain-of-Thought (CoT) reasoning ကို ဖော်ပြရန် သတ်မှတ်ထားသော format။</li> <li><strong><code>load_dataset()</code> Function</strong>: Hugging Face Datasets library မှ dataset များကို load လုပ်ရန် function။</li> <li><strong><code>openai/gsm8k</code></strong>: Hugging Face Hub တွင်ရှိသော GSM8K dataset ၏ identifier။</li> <li><strong><code>map()</code> Method (Datasets)</strong>: dataset ၏ element တစ်ခုစီ သို့မဟုတ် batch တစ်ခုစီပေါ်မှာ function တစ်ခုကို အသုံးပြုနိုင်စေသည်။</li> <li><strong><code>extract_xml_answer()</code> Function</strong>: XML format မှ answer ကို ထုတ်ယူရန် helper function။</li> <li><strong><code>extract_hash_answer()</code> Function</strong>: ”####” သင်္ကေတဖြင့် ပိုင်းခြားထားသော answer ကို ထုတ်ယူရန် helper function။</li> <li><strong>Reward Functions</strong>: Reinforcement Learning (RL) တွင် model ၏ behavior ကို လမ်းညွှန်ရန် အသုံးပြုသော functions များ။ ၎င်းတို့သည် model ၏ output ကို အကဲဖြတ်ပြီး ဆုလာဘ် (reward) ကို ပြန်ပေးသည်။</li> <li><strong><code>isdigit()</code> Method</strong>: string တစ်ခုသည် ဂဏန်းများသာ ပါဝင်ခြင်းရှိမရှိ စစ်ဆေးသော string method။</li> <li><strong><code>re.match()</code></strong>: regular expression pattern တစ်ခုသည် string ၏ အစတွင် ကိုက်ညီခြင်းရှိမရှိ စစ်ဆေးသော function။</li> <li><strong><code>GRPOConfig</code></strong>: TRL library မှ GRPO trainer ၏ configuration (hyperparameters) ကို သတ်မှတ်သော class။</li> <li><strong><code>GRPOTrainer</code></strong>: TRL library မှ GRPO algorithm ကို အသုံးပြု၍ model ကို train လုပ်ရန် trainer class။</li> <li><strong><code>learning_rate</code></strong>: Model က မည်မျှမြန်ဆန်စွာ သင်ယူသည်ကို ထိန်းချုပ်သော hyperparameter။</li> <li><strong><code>adam_beta1</code>, <code>adam_beta2</code></strong>: Adam optimizer ၏ hyperparameters များ။</li> <li><strong><code>weight_decay</code></strong>: overfitting ကို လျှော့ချရန် regularization term။</li> <li><strong><code>warmup_ratio</code></strong>: training အစပိုင်းတွင် learning rate ကို ဖြည်းဖြည်းချင်း တိုးမြှင့်ရန် အချိုးအစား။</li> <li><strong><code>lr_scheduler_type</code></strong>: learning rate scheduler ၏ အမျိုးအစား (ဥပမာ- “cosine”)။</li> <li><strong><code>optim</code></strong>: Optimizer အမျိုးအစား (ဥပမာ- “paged_adamw_8bit”)။</li> <li><strong><code>logging_steps</code></strong>: logs များကို မည်သည့် steps အရေအတွက်တိုင်းတွင် မှတ်တမ်းတင်ရမည်ကို သတ်မှတ်သည်။</li> <li><strong><code>per_device_train_batch_size</code></strong>: device တစ်ခုစီရှိ training batch ၏ အရွယ်အစား။</li> <li><strong><code>gradient_accumulation_steps</code></strong>: gradient များကို update မလုပ်မီ မည်သည့် steps အရေအတွက်တိုင်းတွင် စုဆောင်းရမည်ကို သတ်မှတ်သည်။</li> <li><strong><code>num_generations</code></strong>: prompt တစ်ခုစီအတွက် model မှ generate လုပ်ရမည့် completions အရေအတွက်။</li> <li><strong><code>max_prompt_length</code></strong>: prompt ၏ အများဆုံး token အလျား။</li> <li><strong><code>max_completion_length</code></strong>: completion ၏ အများဆုံး token အလျား။</li> <li><strong><code>max_steps</code></strong>: စုစုပေါင်း training steps အရေအတွက်။</li> <li><strong><code>save_steps</code></strong>: model checkpoint များကို မည်သည့် steps အရေအတွက်တိုင်းတွင် save လုပ်ရမည်ကို သတ်မှတ်သည်။</li> <li><strong><code>max_grad_norm</code></strong>: gradients များ၏ norm ကို ကန့်သတ်ရန်။</li> <li><strong><code>report_to</code></strong>: training metrics များကို မည်သည့် reporting tool (ဥပမာ- Weights & Biases) သို့ ပေးပို့ရမည်ကို သတ်မှတ်သည်။</li> <li><strong><code>output_dir</code></strong>: training outputs များကို သိမ်းဆည်းမည့် directory။</li> <li><strong><code>processing_class</code></strong>: tokenizer class ကို ရည်ညွှန်းသည်။</li> <li><strong><code>train()</code> Method</strong>: Trainer class မှ training လုပ်ငန်းစဉ်ကို စတင်ရန် method။</li> <li><strong><code>save_lora()</code> Method</strong>: LoRA weights များကို save လုပ်ရန် Unsloth မှ ပံ့ပိုးပေးသော method။</li> <li><strong><code>vllm.SamplingParams</code></strong>: vLLM library မှ text generation အတွက် sampling parameters များကို သတ်မှတ်သော class။</li> <li><strong><code>temperature</code></strong>: generated text ၏ randomness ကို ထိန်းချုပ်သည်။</li> <li><strong><code>top_p</code></strong>: generated text ၏ diversity ကို ထိန်းချုပ်သည်။</li> <li><strong><code>max_tokens</code></strong>: generate လုပ်ရမည့် အများဆုံး tokens အရေအတွက်။</li> <li><strong><code>apply_chat_template()</code></strong>: chat history ကို model ၏ input format အဖြစ် ပြောင်းလဲပေးသော tokenizer method။</li> <li><strong><code>tokenize=False</code></strong>: output ကို token ID များအစား string အဖြစ် ပြန်ပေးရန် သတ်မှတ်သည်။</li> <li><strong><code>add_generation_prompt=True</code></strong>: generation အတွက် prompt ကို ထည့်သွင်းပေးသည်။</li> <li><strong><code>fast_generate()</code> Method</strong>: Unsloth မှ vLLM ကို အသုံးပြု၍ မြန်ဆန်သော text generation ကို လုပ်ဆောင်ရန် method။</li> <li><strong><code>lora_request</code></strong>: vLLM တွင် LoRA adapter ကို အသုံးပြုရန် တောင်းဆိုမှု။</li> <li><strong><code>save_pretrained_merged()</code> Method</strong>: model ကို LoRA weights များနှင့် ပေါင်းစပ်ပြီး (merged) save လုပ်ရန် Unsloth မှ ပံ့ပိုးပေးသော method။</li> <li><strong><code>save_method="merged_16bit"</code></strong>: model ကို 16-bit precision ဖြင့် merged format ဖြင့် save လုပ်ရန် သတ်မှတ်သည်။</li> <li><strong><code>push_to_hub_merged()</code> Method</strong>: model ကို LoRA weights များနှင့် ပေါင်းစပ်ပြီး Hugging Face Hub သို့ push လုပ်ရန် Unsloth မှ ပံ့ပိုးပေးသော method။</li> <li><strong><code>token</code></strong>: Hugging Face Hub authentication token။</li> <li><strong>GGUF Format</strong>: llama.cpp ကဲ့သို့သော tools များနှင့် အသုံးပြုရန် Large Language Models (LLMs) ၏ weights များကို သိမ်းဆည်းရန်အတွက် format တစ်ခု။</li> <li><strong><code>push_to_hub_gguf()</code> Method</strong>: model ကို GGUF format ဖြင့် Hugging Face Hub သို့ push လုပ်ရန် Unsloth မှ ပံ့ပိုးပေးသော method။</li> <li><strong><code>quantization_method</code></strong>: GGUF format ဖြင့် save လုပ်သောအခါ အသုံးပြုမည့် quantization နည်းလမ်းများ။</li> <li><strong><code>llama.cpp</code></strong>: C/C++ ဖြင့် ရေးသားထားသော LLM inference library။</li> <li><strong>UI-based Systems (User Interface-based Systems)</strong>: Graphical User Interface (GUI) ပါဝင်သော systems များ (ဥပမာ- Jan, Open WebUI)။</li> <li><strong>Aligning Language Models</strong>: Language model ၏ behavior ကို လိုချင်သော စည်းကမ်းများ၊ format များ သို့မဟုတ် ethical guidelines များနှင့် ကိုက်ညီအောင် လုပ်ဆောင်ခြင်း။</li>",_s,hl,ks,xl,Gs;return u=new At({props:{chapter:2,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/HuggingFace%20Course-Gemma3_(1B)-GRPO.ipynb"}]}}),C=new bt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),h=new c({props:{title:"လက်တွေ့ လေ့ကျင့်ခန်း: Unsloth ဖြင့် GRPO",local:"လကတ-လကငခန-unsloth-ဖင-grpo",headingTag:"h1"}}),b=new c({props:{title:"Dependencies တွေကို Install လုပ်ခြင်း",local:"dependencies-တက-install-လပခင",headingTag:"h2"}}),A=new g({props:{code:"cGlwJTIwaW5zdGFsbCUyMHVuc2xvdGglMjB2bGxtJTBBcGlwJTIwaW5zdGFsbCUyMC0tdXBncmFkZSUyMHBpbGxvdw==",highlighted:`pip install unsloth vllm | |
| pip install --upgrade pillow`,wrap:!1}}),R=new c({props:{title:"Unsloth ကို တည်ဆောက်ခြင်း",local:"unsloth-က-တညဆကခင",headingTag:"h2"}}),Q=new g({props:{code:"ZnJvbSUyMHVuc2xvdGglMjBpbXBvcnQlMjBGYXN0TGFuZ3VhZ2VNb2RlbA==",highlighted:'<span class="hljs-keyword">from</span> unsloth <span class="hljs-keyword">import</span> FastLanguageModel',wrap:!1}}),B=new g({props:{code:"ZnJvbSUyMHVuc2xvdGglMjBpbXBvcnQlMjBGYXN0TGFuZ3VhZ2VNb2RlbCUwQWltcG9ydCUyMHRvcmNoJTBBJTBBbWF4X3NlcV9sZW5ndGglMjAlM0QlMjAxMDI0JTIwJTIwJTIzJTIwJUUxJTgwJTk1JUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJTlCJUUxJTgwJUJFJUUxJTgwJThBJUUxJTgwJUJBJUUxJTgwJTkwJUUxJTgwJUIyJUUxJTgwJUI3JTIwcmVhc29uaW5nJTIwdHJhY2VzJTIwJUUxJTgwJTkwJUUxJTgwJUJEJUUxJTgwJUIxJUUxJTgwJUExJUUxJTgwJTkwJUUxJTgwJUJEJUUxJTgwJTgwJUUxJTgwJUJBJTIwJUUxJTgwJTkwJUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJUI4JUUxJTgwJTk0JUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJTg0JUUxJTgwJUJBJUUxJTgwJTk1JUUxJTgwJUFCJUUxJTgwJTkwJUUxJTgwJTlBJUUxJTgwJUJBJTBBbG9yYV9yYW5rJTIwJTNEJTIwMzIlMjAlMjAlMjMlMjByYW5rJTIwJUUxJTgwJTk1JUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJTgwJUUxJTgwJUJDJUUxJTgwJUFFJUUxJTgwJUI4JUUxJTgwJTlDJUUxJTgwJUIxJTIwJTNEJTIwJUUxJTgwJTk1JUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJTg1JUUxJTgwJTk5JUUxJTgwJTkwJUUxJTgwJUJBJUUxJTgwJTgwJUUxJTgwJUJCJUUxJTgwJTlDJUUxJTgwJUIxJUUxJTgxJThBJTIwJUUxJTgwJTkyJUUxJTgwJUFCJUUxJTgwJTk1JUUxJTgwJUIxJUUxJTgwJTk5JUUxJTgwJTlBJUUxJTgwJUI3JUUxJTgwJUJBJTIwJUUxJTgwJTk1JUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJTk0JUUxJTgwJUJFJUUxJTgwJUIxJUUxJTgwJUI4JUUxJTgwJTlDJUUxJTgwJUIxJTBBJTBBbW9kZWwlMkMlMjB0b2tlbml6ZXIlMjAlM0QlMjBGYXN0TGFuZ3VhZ2VNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwbW9kZWxfbmFtZSUzRCUyMmdvb2dsZSUyRmdlbW1hLTMtMWItaXQlMjIlMkMlMEElMjAlMjAlMjAlMjBtYXhfc2VxX2xlbmd0aCUzRG1heF9zZXFfbGVuZ3RoJTJDJTBBJTIwJTIwJTIwJTIwbG9hZF9pbl80Yml0JTNEVHJ1ZSUyQyUyMCUyMCUyMyUyMExvUkElMjAxNmJpdCUyMCVFMSU4MCVBMSVFMSU4MCU5MCVFMSU4MCVCRCVFMSU4MCU4MCVFMSU4MCVCQSUyMEZhbHNlJTBBJTIwJTIwJTIwJTIwZmFzdF9pbmZlcmVuY2UlM0RUcnVlJTJDJTIwJTIwJTIzJTIwdkxMTSUyMGZhc3QlMjBpbmZlcmVuY2UlMjAlRTElODAlODAlRTElODAlQUQlRTElODAlQUYlMjAlRTElODAlOTYlRTElODAlQkQlRTElODAlODQlRTElODAlQjclRTElODAlQkElRTElODAlOTUlRTElODAlQUIlMEElMjAlMjAlMjAlMjBtYXhfbG9yYV9yYW5rJTNEbG9yYV9yYW5rJTJDJTBBJTIwJTIwJTIwJTIwZ3B1X21lbW9yeV91dGlsaXphdGlvbiUzRDAuNiUyQyUyMCUyMCUyMyUyMG1lbW9yeSUyMCVFMSU4MCU5OSVFMSU4MCU5QyVFMSU4MCVBRiVFMSU4MCVCNiVFMSU4MCU5QyVFMSU4MCVCMSVFMSU4MCVBQyVFMSU4MCU4MCVFMSU4MCVCQSVFMSU4MCU5QiVFMSU4MCU4NCVFMSU4MCVCQSUyMCVFMSU4MCU5QyVFMSU4MCVCQiVFMSU4MCVCRSVFMSU4MCVCMSVFMSU4MCVBQyVFMSU4MCVCNyVFMSU4MCU5NSVFMSU4MCVBQiUwQSklMEElMEFtb2RlbCUyMCUzRCUyMEZhc3RMYW5ndWFnZU1vZGVsLmdldF9wZWZ0X21vZGVsKCUwQSUyMCUyMCUyMCUyMG1vZGVsJTJDJTBBJTIwJTIwJTIwJTIwciUzRGxvcmFfcmFuayUyQyUyMCUyMCUyMyUyMDAlMjAlRTElODAlOTElRTElODAlODAlRTElODAlQkElRTElODAlODAlRTElODAlQkMlRTElODAlQUUlRTElODAlQjglRTElODAlOTAlRTElODAlQjIlRTElODAlQjclMjAlRTElODAlOTglRTElODAlOUElRTElODAlQkElRTElODAlODIlRTElODAlOEYlRTElODAlOTQlRTElODAlQkElRTElODAlQjglRTElODAlODAlRTElODAlQUQlRTElODAlQUYlRTElODAlOTklRTElODAlODYlRTElODAlQUQlRTElODAlQUYlMjAlRTElODAlOUIlRTElODAlQkQlRTElODAlQjElRTElODAlQjglRTElODAlOTUlRTElODAlQUIhJTIwJUUxJTgwJUExJUUxJTgwJTgwJUUxJTgwJUJDJUUxJTgwJUI2JUUxJTgwJTk1JUUxJTgwJUJDJUUxJTgwJUFGJTIwOCUyQyUyMDE2JTJDJTIwMzIlMkMlMjA2NCUyQyUyMDEyOCUwQSUyMCUyMCUyMCUyMHRhcmdldF9tb2R1bGVzJTNEJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIycV9wcm9qJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIya19wcm9qJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydl9wcm9qJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyb19wcm9qJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyZ2F0ZV9wcm9qJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydXBfcHJvaiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmRvd25fcHJvaiUyMiUyQyUwQSUyMCUyMCUyMCUyMCU1RCUyQyUyMCUyMCUyMyUyMG1lbW9yeSUyMCVFMSU4MCU5OSVFMSU4MCU5QyVFMSU4MCVBRiVFMSU4MCVCNiVFMSU4MCU5QyVFMSU4MCVCMSVFMSU4MCVBQyVFMSU4MCU4MCVFMSU4MCVCQSVFMSU4MCU5QiVFMSU4MCU4NCVFMSU4MCVCQSUyMFFLVk8lMjAlRTElODAlODAlRTElODAlQUQlRTElODAlQUYlMjAlRTElODAlOTYlRTElODAlOUElRTElODAlQkElRTElODAlOUIlRTElODAlQkUlRTElODAlQUMlRTElODAlQjglRTElODAlOTUlRTElODAlQUIlMEElMjAlMjAlMjAlMjBsb3JhX2FscGhhJTNEbG9yYV9yYW5rJTJDJTBBJTIwJTIwJTIwJTIwdXNlX2dyYWRpZW50X2NoZWNrcG9pbnRpbmclM0QlMjJ1bnNsb3RoJTIyJTJDJTIwJTIwJTIzJTIwbG9uZyUyMGNvbnRleHQlMjBmaW5ldHVuaW5nJTIwJUUxJTgwJTgwJUUxJTgwJUFEJUUxJTgwJUFGJTIwJUUxJTgwJTk2JUUxJTgwJUJEJUUxJTgwJTg0JUUxJTgwJUI3JUUxJTgwJUJBJUUxJTgwJTk1JUUxJTgwJUFCJTBBJTIwJTIwJTIwJTIwcmFuZG9tX3N0YXRlJTNEMzQwNyUyQyUwQSk=",highlighted:`<span class="hljs-keyword">from</span> unsloth <span class="hljs-keyword">import</span> FastLanguageModel | |
| <span class="hljs-keyword">import</span> torch | |
| max_seq_length = <span class="hljs-number">1024</span> <span class="hljs-comment"># ပိုရှည်တဲ့ reasoning traces တွေအတွက် တိုးနိုင်ပါတယ်</span> | |
| lora_rank = <span class="hljs-number">32</span> <span class="hljs-comment"># rank ပိုကြီးလေ = ပိုစမတ်ကျလေ၊ ဒါပေမယ့် ပိုနှေးလေ</span> | |
| model, tokenizer = FastLanguageModel.from_pretrained( | |
| model_name=<span class="hljs-string">"google/gemma-3-1b-it"</span>, | |
| max_seq_length=max_seq_length, | |
| load_in_4bit=<span class="hljs-literal">True</span>, <span class="hljs-comment"># LoRA 16bit အတွက် False</span> | |
| fast_inference=<span class="hljs-literal">True</span>, <span class="hljs-comment"># vLLM fast inference ကို ဖွင့်ပါ</span> | |
| max_lora_rank=lora_rank, | |
| gpu_memory_utilization=<span class="hljs-number">0.6</span>, <span class="hljs-comment"># memory မလုံလောက်ရင် လျှော့ပါ</span> | |
| ) | |
| model = FastLanguageModel.get_peft_model( | |
| model, | |
| r=lora_rank, <span class="hljs-comment"># 0 ထက်ကြီးတဲ့ ဘယ်ဂဏန်းကိုမဆို ရွေးပါ! အကြံပြု 8, 16, 32, 64, 128</span> | |
| target_modules=[ | |
| <span class="hljs-string">"q_proj"</span>, | |
| <span class="hljs-string">"k_proj"</span>, | |
| <span class="hljs-string">"v_proj"</span>, | |
| <span class="hljs-string">"o_proj"</span>, | |
| <span class="hljs-string">"gate_proj"</span>, | |
| <span class="hljs-string">"up_proj"</span>, | |
| <span class="hljs-string">"down_proj"</span>, | |
| ], <span class="hljs-comment"># memory မလုံလောက်ရင် QKVO ကို ဖယ်ရှားပါ</span> | |
| lora_alpha=lora_rank, | |
| use_gradient_checkpointing=<span class="hljs-string">"unsloth"</span>, <span class="hljs-comment"># long context finetuning ကို ဖွင့်ပါ</span> | |
| random_state=<span class="hljs-number">3407</span>, | |
| )`,wrap:!1}}),_=new c({props:{title:"Data Preparation",local:"data-preparation",headingTag:"h2"}}),S=new g({props:{code:"",highlighted:`<span class="hljs-comment"># သတ်မှတ်ထားသော format ကို အသုံးပြုရန် model ကို ညွှန်ကြားသော system prompt ကို သတ်မှတ်ပါ</span> | |
| SYSTEM_PROMPT = <span class="hljs-string">""" | |
| အောက်ပါ format အတိုင်း တုံ့ပြန်ပါ။ | |
| <reasoning> | |
| ... | |
| </reasoning> | |
| <answer> | |
| ... | |
| </answer> | |
| """</span> | |
| XML_COT_FORMAT = <span class="hljs-string">"""\\ | |
| <reasoning> | |
| {reasoning} | |
| </reasoning> | |
| <answer> | |
| {answer} | |
| </answer> | |
| """</span>`,wrap:!1}}),Z=new g({props:{code:"aW1wb3J0JTIwcmUlMEFmcm9tJTIwZGF0YXNldHMlMjBpbXBvcnQlMjBsb2FkX2RhdGFzZXQlMkMlMjBEYXRhc2V0JTBBJTBBJTBBJTIzJTIwJUUxJTgwJTk5JUUxJTgwJTkwJUUxJTgwJUIwJUUxJTgwJThBJUUxJTgwJUFFJUUxJTgwJTlFJUUxJTgwJUIxJUUxJTgwJUFDJTIwZm9ybWF0cyUyMCVFMSU4MCU5OSVFMSU4MCVCQiVFMSU4MCVBQyVFMSU4MCVCOCVFMSU4MCU5OSVFMSU4MCVCRSUyMGFuc3dlcnMlMjAlRTElODAlOTklRTElODAlQkIlRTElODAlQUMlRTElODAlQjglRTElODAlODAlRTElODAlQUQlRTElODAlQUYlMjAlRTElODAlOTElRTElODAlQUYlRTElODAlOTAlRTElODAlQkElRTElODAlOUElRTElODAlQjAlRTElODAlOUIlRTElODAlOTQlRTElODAlQkElMjBoZWxwZXIlMjBmdW5jdGlvbnMlMjAlRTElODAlOTklRTElODAlQkIlRTElODAlQUMlRTElODAlQjglMEFkZWYlMjBleHRyYWN0X3htbF9hbnN3ZXIodGV4dCUzQSUyMHN0ciklMjAtJTNFJTIwc3RyJTNBJTBBJTIwJTIwJTIwJTIwYW5zd2VyJTIwJTNEJTIwdGV4dC5zcGxpdCglMjIlM0NhbnN3ZXIlM0UlMjIpJTVCLTElNUQlMEElMjAlMjAlMjAlMjBhbnN3ZXIlMjAlM0QlMjBhbnN3ZXIuc3BsaXQoJTIyJTNDJTJGYW5zd2VyJTNFJTIyKSU1QjAlNUQlMEElMjAlMjAlMjAlMjByZXR1cm4lMjBhbnN3ZXIuc3RyaXAoKSUwQSUwQSUwQWRlZiUyMGV4dHJhY3RfaGFzaF9hbnN3ZXIodGV4dCUzQSUyMHN0ciklMjAtJTNFJTIwc3RyJTIwJTdDJTIwTm9uZSUzQSUwQSUyMCUyMCUyMCUyMGlmJTIwJTIyJTIzJTIzJTIzJTIzJTIyJTIwbm90JTIwaW4lMjB0ZXh0JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwTm9uZSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMHRleHQuc3BsaXQoJTIyJTIzJTIzJTIzJTIzJTIyKSU1QjElNUQuc3RyaXAoKSUwQSUwQSUwQSUyMyUyMEdTTThLJTIwZGF0YXNldCUyMCVFMSU4MCU4MCVFMSU4MCVBRCVFMSU4MCVBRiUyMCVFMSU4MCU5NSVFMSU4MCVCQyVFMSU4MCU4NCVFMSU4MCVCQSVFMSU4MCU4NiVFMSU4MCU4NCVFMSU4MCVCQSVFMSU4MCU5QiVFMSU4MCU5NCVFMSU4MCVCQSUyMGZ1bmN0aW9uJTBBZGVmJTIwZ2V0X2dzbThrX3F1ZXN0aW9ucyhzcGxpdCUzRCUyMnRyYWluJTIyKSUyMC0lM0UlMjBEYXRhc2V0JTNBJTBBJTIwJTIwJTIwJTIwZGF0YSUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJvcGVuYWklMkZnc204ayUyMiUyQyUyMCUyMm1haW4lMjIpJTVCc3BsaXQlNUQlMEElMjAlMjAlMjAlMjBkYXRhJTIwJTNEJTIwZGF0YS5tYXAoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbGFtYmRhJTIweCUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnByb21wdCUyMiUzQSUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJzeXN0ZW0lMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwU1lTVEVNX1BST01QVCU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJ1c2VyJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMHglNUIlMjJxdWVzdGlvbiUyMiU1RCU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmFuc3dlciUyMiUzQSUyMGV4dHJhY3RfaGFzaF9hbnN3ZXIoeCU1QiUyMmFuc3dlciUyMiU1RCklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjApJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwZGF0YSUwQSUwQSUwQWRhdGFzZXQlMjAlM0QlMjBnZXRfZ3NtOGtfcXVlc3Rpb25zKCk=",highlighted:`<span class="hljs-keyword">import</span> re | |
| <span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset, Dataset | |
| <span class="hljs-comment"># မတူညီသော formats များမှ answers များကို ထုတ်ယူရန် helper functions များ</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">extract_xml_answer</span>(<span class="hljs-params">text: <span class="hljs-built_in">str</span></span>) -> <span class="hljs-built_in">str</span>: | |
| answer = text.split(<span class="hljs-string">"<answer>"</span>)[-<span class="hljs-number">1</span>] | |
| answer = answer.split(<span class="hljs-string">"</answer>"</span>)[<span class="hljs-number">0</span>] | |
| <span class="hljs-keyword">return</span> answer.strip() | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">extract_hash_answer</span>(<span class="hljs-params">text: <span class="hljs-built_in">str</span></span>) -> <span class="hljs-built_in">str</span> | <span class="hljs-literal">None</span>: | |
| <span class="hljs-keyword">if</span> <span class="hljs-string">"####"</span> <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> text: | |
| <span class="hljs-keyword">return</span> <span class="hljs-literal">None</span> | |
| <span class="hljs-keyword">return</span> text.split(<span class="hljs-string">"####"</span>)[<span class="hljs-number">1</span>].strip() | |
| <span class="hljs-comment"># GSM8K dataset ကို ပြင်ဆင်ရန် function</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">get_gsm8k_questions</span>(<span class="hljs-params">split=<span class="hljs-string">"train"</span></span>) -> Dataset: | |
| data = load_dataset(<span class="hljs-string">"openai/gsm8k"</span>, <span class="hljs-string">"main"</span>)[split] | |
| data = data.<span class="hljs-built_in">map</span>( | |
| <span class="hljs-keyword">lambda</span> x: { | |
| <span class="hljs-string">"prompt"</span>: [ | |
| {<span class="hljs-string">"role"</span>: <span class="hljs-string">"system"</span>, <span class="hljs-string">"content"</span>: SYSTEM_PROMPT}, | |
| {<span class="hljs-string">"role"</span>: <span class="hljs-string">"user"</span>, <span class="hljs-string">"content"</span>: x[<span class="hljs-string">"question"</span>]}, | |
| ], | |
| <span class="hljs-string">"answer"</span>: extract_hash_answer(x[<span class="hljs-string">"answer"</span>]), | |
| } | |
| ) | |
| <span class="hljs-keyword">return</span> data | |
| dataset = get_gsm8k_questions()`,wrap:!1}}),O=new c({props:{title:"Reward Functions များကို သတ်မှတ်ခြင်း",local:"reward-functions-မက-သတမတခင",headingTag:"h2"}}),$=new g({props:{code:"JTIzJTIwYW5zd2VyJTIwJUUxJTgwJTk5JUUxJTgwJUJFJUUxJTgwJTk0JUUxJTgwJUJBJUUxJTgwJTgwJUUxJTgwJTk0JUUxJTgwJUJBJUUxJTgwJTgxJUUxJTgwJUJDJUUxJTgwJTg0JUUxJTgwJUJBJUUxJTgwJUI4JUUxJTgwJTlCJUUxJTgwJUJFJUUxJTgwJUFEJUUxJTgwJTk5JUUxJTgwJTlCJUUxJTgwJUJFJUUxJTgwJUFEJTIwJUUxJTgwJTg1JUUxJTgwJTg1JUUxJTgwJUJBJUUxJTgwJTg2JUUxJTgwJUIxJUUxJTgwJUI4JUUxJTgwJTlFJUUxJTgwJUIxJUUxJTgwJUFDJTIwUmV3YXJkJTIwZnVuY3Rpb24lMEFkZWYlMjBjb3JyZWN0bmVzc19yZXdhcmRfZnVuYyhwcm9tcHRzJTJDJTIwY29tcGxldGlvbnMlMkMlMjBhbnN3ZXIlMkMlMjAqKmt3YXJncyklMjAtJTNFJTIwbGlzdCU1QmZsb2F0JTVEJTNBJTBBJTIwJTIwJTIwJTIwcmVzcG9uc2VzJTIwJTNEJTIwJTVCY29tcGxldGlvbiU1QjAlNUQlNUIlMjJjb250ZW50JTIyJTVEJTIwZm9yJTIwY29tcGxldGlvbiUyMGluJTIwY29tcGxldGlvbnMlNUQlMEElMjAlMjAlMjAlMjBxJTIwJTNEJTIwcHJvbXB0cyU1QjAlNUQlNUItMSU1RCU1QiUyMmNvbnRlbnQlMjIlNUQlMEElMjAlMjAlMjAlMjBleHRyYWN0ZWRfcmVzcG9uc2VzJTIwJTNEJTIwJTVCZXh0cmFjdF94bWxfYW5zd2VyKHIpJTIwZm9yJTIwciUyMGluJTIwcmVzcG9uc2VzJTVEJTBBJTIwJTIwJTIwJTIwcHJpbnQoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyLSUyMiUyMColMjAyMCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGYlMjJRdWVzdGlvbiUzQSU1Q24lN0JxJTdEJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZiUyMiU1Q25BbnN3ZXIlM0ElNUNuJTdCYW5zd2VyJTVCMCU1RCU3RCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGYlMjIlNUNuUmVzcG9uc2UlM0ElNUNuJTdCcmVzcG9uc2VzJTVCMCU1RCU3RCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGYlMjIlNUNuRXh0cmFjdGVkJTNBJTVDbiU3QmV4dHJhY3RlZF9yZXNwb25zZXMlNUIwJTVEJTdEJTIyJTJDJTBBJTIwJTIwJTIwJTIwKSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMCU1QjIuMCUyMGlmJTIwciUyMCUzRCUzRCUyMGElMjBlbHNlJTIwMC4wJTIwZm9yJTIwciUyQyUyMGElMjBpbiUyMHppcChleHRyYWN0ZWRfcmVzcG9uc2VzJTJDJTIwYW5zd2VyKSU1RCUwQSUwQSUwQSUyMyUyMGFuc3dlciUyMCVFMSU4MCU5RiVFMSU4MCVBQyUyMGludGVnZXIlMjAlRTElODAlOTYlRTElODAlQkMlRTElODAlODUlRTElODAlQkElRTElODAlOTklRTElODAlOTYlRTElODAlQkMlRTElODAlODUlRTElODAlQkElMjAlRTElODAlODUlRTElODAlODUlRTElODAlQkElRTElODAlODYlRTElODAlQjElRTElODAlQjglRTElODAlOUUlRTElODAlQjElRTElODAlQUMlMjBSZXdhcmQlMjBmdW5jdGlvbiUwQWRlZiUyMGludF9yZXdhcmRfZnVuYyhjb21wbGV0aW9ucyUyQyUyMCoqa3dhcmdzKSUyMC0lM0UlMjBsaXN0JTVCZmxvYXQlNUQlM0ElMEElMjAlMjAlMjAlMjByZXNwb25zZXMlMjAlM0QlMjAlNUJjb21wbGV0aW9uJTVCMCU1RCU1QiUyMmNvbnRlbnQlMjIlNUQlMjBmb3IlMjBjb21wbGV0aW9uJTIwaW4lMjBjb21wbGV0aW9ucyU1RCUwQSUyMCUyMCUyMCUyMGV4dHJhY3RlZF9yZXNwb25zZXMlMjAlM0QlMjAlNUJleHRyYWN0X3htbF9hbnN3ZXIociklMjBmb3IlMjByJTIwaW4lMjByZXNwb25zZXMlNUQlMEElMjAlMjAlMjAlMjByZXR1cm4lMjAlNUIwLjUlMjBpZiUyMHIuaXNkaWdpdCgpJTIwZWxzZSUyMDAuMCUyMGZvciUyMHIlMjBpbiUyMGV4dHJhY3RlZF9yZXNwb25zZXMlNUQlMEElMEElMEElMjMlMjBjb21wbGV0aW9uJTIwJUUxJTgwJTgwJTIwc3RyaWN0JTIwZm9ybWF0JTIwJUUxJTgwJTgwJUUxJTgwJUFEJUUxJTgwJUFGJTIwJUUxJTgwJTlDJUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJTgwJUUxJTgwJUJBJUUxJTgwJTk0JUUxJTgwJUFDJUUxJTgwJTgxJUUxJTgwJUJDJUUxJTgwJTg0JUUxJTgwJUJBJUUxJTgwJUI4JUUxJTgwJTlCJUUxJTgwJUJFJUUxJTgwJUFEJUUxJTgwJTk5JUUxJTgwJTlCJUUxJTgwJUJFJUUxJTgwJUFEJTIwJUUxJTgwJTg1JUUxJTgwJTg1JUUxJTgwJUJBJUUxJTgwJTg2JUUxJTgwJUIxJUUxJTgwJUI4JUUxJTgwJTlFJUUxJTgwJUIxJUUxJTgwJUFDJTIwUmV3YXJkJTIwZnVuY3Rpb24lMEFkZWYlMjBzdHJpY3RfZm9ybWF0X3Jld2FyZF9mdW5jKGNvbXBsZXRpb25zJTJDJTIwKiprd2FyZ3MpJTIwLSUzRSUyMGxpc3QlNUJmbG9hdCU1RCUzQSUwQSUyMCUyMCUyMCUyMHBhdHRlcm4lMjAlM0QlMjByJTIyJTVFJTNDcmVhc29uaW5nJTNFJTVDbi4qJTNGJTVDbiUzQyUyRnJlYXNvbmluZyUzRSU1Q24lM0NhbnN3ZXIlM0UlNUNuLiolM0YlNUNuJTNDJTJGYW5zd2VyJTNFJTVDbiUyNCUyMiUwQSUyMCUyMCUyMCUyMHJlc3BvbnNlcyUyMCUzRCUyMCU1QmNvbXBsZXRpb24lNUIwJTVEJTVCJTIyY29udGVudCUyMiU1RCUyMGZvciUyMGNvbXBsZXRpb24lMjBpbiUyMGNvbXBsZXRpb25zJTVEJTBBJTIwJTIwJTIwJTIwbWF0Y2hlcyUyMCUzRCUyMCU1QnJlLm1hdGNoKHBhdHRlcm4lMkMlMjByKSUyMGZvciUyMHIlMjBpbiUyMHJlc3BvbnNlcyU1RCUwQSUyMCUyMCUyMCUyMHJldHVybiUyMCU1QjAuNSUyMGlmJTIwbWF0Y2glMjBlbHNlJTIwMC4wJTIwZm9yJTIwbWF0Y2glMjBpbiUyMG1hdGNoZXMlNUQlMEElMEElMEElMjMlMjBjb21wbGV0aW9uJTIwJUUxJTgwJTgwJTIwJUUxJTgwJTk1JUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJTk5JUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJTk2JUUxJTgwJUJDJUUxJTgwJUIxJUUxJTgwJTlDJUUxJTgwJUJCJUUxJTgwJUIxJUUxJTgwJUFDJUUxJTgwJUI3JUUxJTgwJTkxJUUxJTgwJUFDJUUxJTgwJUI4JUUxJTgwJTlFJUUxJTgwJUIxJUUxJTgwJUFDJTIwZm9ybWF0JTIwJUUxJTgwJTgwJUUxJTgwJUFEJUUxJTgwJUFGJTIwJUUxJTgwJTlDJUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJTgwJUUxJTgwJUJBJUUxJTgwJTk0JUUxJTgwJUFDJUUxJTgwJTgxJUUxJTgwJUJDJUUxJTgwJTg0JUUxJTgwJUJBJUUxJTgwJUI4JUUxJTgwJTlCJUUxJTgwJUJFJUUxJTgwJUFEJUUxJTgwJTk5JUUxJTgwJTlCJUUxJTgwJUJFJUUxJTgwJUFEJTIwJUUxJTgwJTg1JUUxJTgwJTg1JUUxJTgwJUJBJUUxJTgwJTg2JUUxJTgwJUIxJUUxJTgwJUI4JUUxJTgwJTlFJUUxJTgwJUIxJUUxJTgwJUFDJTIwUmV3YXJkJTIwZnVuY3Rpb24lMEFkZWYlMjBzb2Z0X2Zvcm1hdF9yZXdhcmRfZnVuYyhjb21wbGV0aW9ucyUyQyUyMCoqa3dhcmdzKSUyMC0lM0UlMjBsaXN0JTVCZmxvYXQlNUQlM0ElMEElMjAlMjAlMjAlMjBwYXR0ZXJuJTIwJTNEJTIwciUyMiUzQ3JlYXNvbmluZyUzRS4qJTNGJTNDJTJGcmVhc29uaW5nJTNFJTVDcyolM0NhbnN3ZXIlM0UuKiUzRiUzQyUyRmFuc3dlciUzRSUyMiUwQSUyMCUyMCUyMCUyMHJlc3BvbnNlcyUyMCUzRCUyMCU1QmNvbXBsZXRpb24lNUIwJTVEJTVCJTIyY29udGVudCUyMiU1RCUyMGZvciUyMGNvbXBsZXRpb24lMjBpbiUyMGNvbXBsZXRpb25zJTVEJTBBJTIwJTIwJTIwJTIwbWF0Y2hlcyUyMCUzRCUyMCU1QnJlLm1hdGNoKHBhdHRlcm4lMkMlMjByKSUyMGZvciUyMHIlMjBpbiUyMHJlc3BvbnNlcyU1RCUwQSUyMCUyMCUyMCUyMHJldHVybiUyMCU1QjAuNSUyMGlmJTIwbWF0Y2glMjBlbHNlJTIwMC4wJTIwZm9yJTIwbWF0Y2glMjBpbiUyMG1hdGNoZXMlNUQlMEElMEElMEElMjMlMjBYTUwlMjB0YWdzJTIwJUUxJTgwJTk5JUUxJTgwJUJCJUUxJTgwJUFDJUUxJTgwJUI4JUUxJTgwJTgwJUUxJTgwJUFEJUUxJTgwJUFGJTIwJUUxJTgwJTlCJUUxJTgwJUIxJUUxJTgwJTkwJUUxJTgwJUJEJUUxJTgwJTgwJUUxJTgwJUJBJUUxJTgwJTk1JUUxJTgwJUJDJUUxJTgwJUFFJUUxJTgwJUI4JTIwZXh0cmElMjBjb250ZW50JTIwJUUxJTgwJTk5JUUxJTgwJUJCJUUxJTgwJUFDJUUxJTgwJUI4JUUxJTgwJTgwJUUxJTgwJUFEJUUxJTgwJUFGJTIwJUUxJTgwJTk1JUUxJTgwJUJDJUUxJTgwJTg1JUUxJTgwJUJBJUUxJTgwJTkyJUUxJTgwJThGJUUxJTgwJUJBJUUxJTgwJTk1JUUxJTgwJUIxJUUxJTgwJUI4JUUxJTgwJTlFJUUxJTgwJUIxJUUxJTgwJUFDJTIwUmV3YXJkJTIwZnVuY3Rpb24lMEFkZWYlMjBjb3VudF94bWwodGV4dCklMjAtJTNFJTIwZmxvYXQlM0ElMEElMjAlMjAlMjAlMjBjb3VudCUyMCUzRCUyMDAuMCUwQSUyMCUyMCUyMCUyMGlmJTIwdGV4dC5jb3VudCglMjIlM0NyZWFzb25pbmclM0UlNUNuJTIyKSUyMCUzRCUzRCUyMDElM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjb3VudCUyMCUyQiUzRCUyMDAuMTI1JTBBJTIwJTIwJTIwJTIwaWYlMjB0ZXh0LmNvdW50KCUyMiU1Q24lM0MlMkZyZWFzb25pbmclM0UlNUNuJTIyKSUyMCUzRCUzRCUyMDElM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjb3VudCUyMCUyQiUzRCUyMDAuMTI1JTBBJTIwJTIwJTIwJTIwaWYlMjB0ZXh0LmNvdW50KCUyMiU1Q24lM0NhbnN3ZXIlM0UlNUNuJTIyKSUyMCUzRCUzRCUyMDElM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjb3VudCUyMCUyQiUzRCUyMDAuMTI1JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY291bnQlMjAtJTNEJTIwbGVuKHRleHQuc3BsaXQoJTIyJTVDbiUzQyUyRmFuc3dlciUzRSU1Q24lMjIpJTVCLTElNUQpJTIwKiUyMDAuMDAxJTBBJTIwJTIwJTIwJTIwaWYlMjB0ZXh0LmNvdW50KCUyMiU1Q24lM0MlMkZhbnN3ZXIlM0UlMjIpJTIwJTNEJTNEJTIwMSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNvdW50JTIwJTJCJTNEJTIwMC4xMjUlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjb3VudCUyMC0lM0QlMjAobGVuKHRleHQuc3BsaXQoJTIyJTVDbiUzQyUyRmFuc3dlciUzRSUyMiklNUItMSU1RCklMjAtJTIwMSklMjAqJTIwMC4wMDElMEElMjAlMjAlMjAlMjByZXR1cm4lMjBjb3VudCUwQSUwQSUwQWRlZiUyMHhtbGNvdW50X3Jld2FyZF9mdW5jKGNvbXBsZXRpb25zJTJDJTIwKiprd2FyZ3MpJTIwLSUzRSUyMGxpc3QlNUJmbG9hdCU1RCUzQSUwQSUyMCUyMCUyMCUyMGNvbnRlbnRzJTIwJTNEJTIwJTVCY29tcGxldGlvbiU1QjAlNUQlNUIlMjJjb250ZW50JTIyJTVEJTIwZm9yJTIwY29tcGxldGlvbiUyMGluJTIwY29tcGxldGlvbnMlNUQlMEElMjAlMjAlMjAlMjByZXR1cm4lMjAlNUJjb3VudF94bWwoYyklMjBmb3IlMjBjJTIwaW4lMjBjb250ZW50cyU1RA==",highlighted:`<span class="hljs-comment"># answer မှန်ကန်ခြင်းရှိမရှိ စစ်ဆေးသော Reward function</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">correctness_reward_func</span>(<span class="hljs-params">prompts, completions, answer, **kwargs</span>) -> <span class="hljs-built_in">list</span>[<span class="hljs-built_in">float</span>]: | |
| responses = [completion[<span class="hljs-number">0</span>][<span class="hljs-string">"content"</span>] <span class="hljs-keyword">for</span> completion <span class="hljs-keyword">in</span> completions] | |
| q = prompts[<span class="hljs-number">0</span>][-<span class="hljs-number">1</span>][<span class="hljs-string">"content"</span>] | |
| extracted_responses = [extract_xml_answer(r) <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> responses] | |
| <span class="hljs-built_in">print</span>( | |
| <span class="hljs-string">"-"</span> * <span class="hljs-number">20</span>, | |
| <span class="hljs-string">f"Question:\\n<span class="hljs-subst">{q}</span>"</span>, | |
| <span class="hljs-string">f"\\nAnswer:\\n<span class="hljs-subst">{answer[<span class="hljs-number">0</span>]}</span>"</span>, | |
| <span class="hljs-string">f"\\nResponse:\\n<span class="hljs-subst">{responses[<span class="hljs-number">0</span>]}</span>"</span>, | |
| <span class="hljs-string">f"\\nExtracted:\\n<span class="hljs-subst">{extracted_responses[<span class="hljs-number">0</span>]}</span>"</span>, | |
| ) | |
| <span class="hljs-keyword">return</span> [<span class="hljs-number">2.0</span> <span class="hljs-keyword">if</span> r == a <span class="hljs-keyword">else</span> <span class="hljs-number">0.0</span> <span class="hljs-keyword">for</span> r, a <span class="hljs-keyword">in</span> <span class="hljs-built_in">zip</span>(extracted_responses, answer)] | |
| <span class="hljs-comment"># answer ဟာ integer ဖြစ်မဖြစ် စစ်ဆေးသော Reward function</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">int_reward_func</span>(<span class="hljs-params">completions, **kwargs</span>) -> <span class="hljs-built_in">list</span>[<span class="hljs-built_in">float</span>]: | |
| responses = [completion[<span class="hljs-number">0</span>][<span class="hljs-string">"content"</span>] <span class="hljs-keyword">for</span> completion <span class="hljs-keyword">in</span> completions] | |
| extracted_responses = [extract_xml_answer(r) <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> responses] | |
| <span class="hljs-keyword">return</span> [<span class="hljs-number">0.5</span> <span class="hljs-keyword">if</span> r.isdigit() <span class="hljs-keyword">else</span> <span class="hljs-number">0.0</span> <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> extracted_responses] | |
| <span class="hljs-comment"># completion က strict format ကို လိုက်နာခြင်းရှိမရှိ စစ်ဆေးသော Reward function</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">strict_format_reward_func</span>(<span class="hljs-params">completions, **kwargs</span>) -> <span class="hljs-built_in">list</span>[<span class="hljs-built_in">float</span>]: | |
| pattern = <span class="hljs-string">r"^<reasoning>\\n.*?\\n</reasoning>\\n<answer>\\n.*?\\n</answer>\\n$"</span> | |
| responses = [completion[<span class="hljs-number">0</span>][<span class="hljs-string">"content"</span>] <span class="hljs-keyword">for</span> completion <span class="hljs-keyword">in</span> completions] | |
| matches = [re.<span class="hljs-keyword">match</span>(pattern, r) <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> responses] | |
| <span class="hljs-keyword">return</span> [<span class="hljs-number">0.5</span> <span class="hljs-keyword">if</span> <span class="hljs-keyword">match</span> <span class="hljs-keyword">else</span> <span class="hljs-number">0.0</span> <span class="hljs-keyword">for</span> <span class="hljs-keyword">match</span> <span class="hljs-keyword">in</span> matches] | |
| <span class="hljs-comment"># completion က ပိုမိုဖြေလျော့ထားသော format ကို လိုက်နာခြင်းရှိမရှိ စစ်ဆေးသော Reward function</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">soft_format_reward_func</span>(<span class="hljs-params">completions, **kwargs</span>) -> <span class="hljs-built_in">list</span>[<span class="hljs-built_in">float</span>]: | |
| pattern = <span class="hljs-string">r"<reasoning>.*?</reasoning>\\s*<answer>.*?</answer>"</span> | |
| responses = [completion[<span class="hljs-number">0</span>][<span class="hljs-string">"content"</span>] <span class="hljs-keyword">for</span> completion <span class="hljs-keyword">in</span> completions] | |
| matches = [re.<span class="hljs-keyword">match</span>(pattern, r) <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> responses] | |
| <span class="hljs-keyword">return</span> [<span class="hljs-number">0.5</span> <span class="hljs-keyword">if</span> <span class="hljs-keyword">match</span> <span class="hljs-keyword">else</span> <span class="hljs-number">0.0</span> <span class="hljs-keyword">for</span> <span class="hljs-keyword">match</span> <span class="hljs-keyword">in</span> matches] | |
| <span class="hljs-comment"># XML tags များကို ရေတွက်ပြီး extra content များကို ပြစ်ဒဏ်ပေးသော Reward function</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">count_xml</span>(<span class="hljs-params">text</span>) -> <span class="hljs-built_in">float</span>: | |
| count = <span class="hljs-number">0.0</span> | |
| <span class="hljs-keyword">if</span> text.count(<span class="hljs-string">"<reasoning>\\n"</span>) == <span class="hljs-number">1</span>: | |
| count += <span class="hljs-number">0.125</span> | |
| <span class="hljs-keyword">if</span> text.count(<span class="hljs-string">"\\n</reasoning>\\n"</span>) == <span class="hljs-number">1</span>: | |
| count += <span class="hljs-number">0.125</span> | |
| <span class="hljs-keyword">if</span> text.count(<span class="hljs-string">"\\n<answer>\\n"</span>) == <span class="hljs-number">1</span>: | |
| count += <span class="hljs-number">0.125</span> | |
| count -= <span class="hljs-built_in">len</span>(text.split(<span class="hljs-string">"\\n</answer>\\n"</span>)[-<span class="hljs-number">1</span>]) * <span class="hljs-number">0.001</span> | |
| <span class="hljs-keyword">if</span> text.count(<span class="hljs-string">"\\n</answer>"</span>) == <span class="hljs-number">1</span>: | |
| count += <span class="hljs-number">0.125</span> | |
| count -= (<span class="hljs-built_in">len</span>(text.split(<span class="hljs-string">"\\n</answer>"</span>)[-<span class="hljs-number">1</span>]) - <span class="hljs-number">1</span>) * <span class="hljs-number">0.001</span> | |
| <span class="hljs-keyword">return</span> count | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">xmlcount_reward_func</span>(<span class="hljs-params">completions, **kwargs</span>) -> <span class="hljs-built_in">list</span>[<span class="hljs-built_in">float</span>]: | |
| contents = [completion[<span class="hljs-number">0</span>][<span class="hljs-string">"content"</span>] <span class="hljs-keyword">for</span> completion <span class="hljs-keyword">in</span> completions] | |
| <span class="hljs-keyword">return</span> [count_xml(c) <span class="hljs-keyword">for</span> c <span class="hljs-keyword">in</span> contents]`,wrap:!1}}),W=new c({props:{title:"GRPO ဖြင့် Training လုပ်ခြင်း",local:"grpo-ဖင-training-လပခင",headingTag:"h2"}}),H=new g({props:{code:"ZnJvbSUyMHRybCUyMGltcG9ydCUyMEdSUE9Db25maWclMkMlMjBHUlBPVHJhaW5lciUwQSUwQW1heF9wcm9tcHRfbGVuZ3RoJTIwJTNEJTIwMjU2JTBBJTBBdHJhaW5pbmdfYXJncyUyMCUzRCUyMEdSUE9Db25maWcoJTBBJTIwJTIwJTIwJTIwbGVhcm5pbmdfcmF0ZSUzRDVlLTYlMkMlMEElMjAlMjAlMjAlMjBhZGFtX2JldGExJTNEMC45JTJDJTBBJTIwJTIwJTIwJTIwYWRhbV9iZXRhMiUzRDAuOTklMkMlMEElMjAlMjAlMjAlMjB3ZWlnaHRfZGVjYXklM0QwLjElMkMlMEElMjAlMjAlMjAlMjB3YXJtdXBfcmF0aW8lM0QwLjElMkMlMEElMjAlMjAlMjAlMjBscl9zY2hlZHVsZXJfdHlwZSUzRCUyMmNvc2luZSUyMiUyQyUwQSUyMCUyMCUyMCUyMG9wdGltJTNEJTIycGFnZWRfYWRhbXdfOGJpdCUyMiUyQyUwQSUyMCUyMCUyMCUyMGxvZ2dpbmdfc3RlcHMlM0QxJTJDJTBBJTIwJTIwJTIwJTIwcGVyX2RldmljZV90cmFpbl9iYXRjaF9zaXplJTNEMSUyQyUwQSUyMCUyMCUyMCUyMGdyYWRpZW50X2FjY3VtdWxhdGlvbl9zdGVwcyUzRDElMkMlMjAlMjAlMjMlMjAlRTElODAlOTUlRTElODAlQUQlRTElODAlQUYlRTElODAlOTklRTElODAlQUQlRTElODAlQUYlRTElODAlODElRTElODAlQkIlRTElODAlQjElRTElODAlQUMlRTElODAlOTklRTElODAlQkQlRTElODAlQjElRTElODAlQjclRTElODAlOUUlRTElODAlQjElRTElODAlQUMlMjB0cmFpbmluZyUyMCVFMSU4MCVBMSVFMSU4MCU5MCVFMSU4MCVCRCVFMSU4MCU4MCVFMSU4MCVCQSUyMDQlMjAlRTElODAlQTElRTElODAlOTElRTElODAlQUQlMjAlRTElODAlOTAlRTElODAlQUQlRTElODAlQUYlRTElODAlQjglRTElODAlOTUlRTElODAlQUIlMEElMjAlMjAlMjAlMjBudW1fZ2VuZXJhdGlvbnMlM0Q2JTJDJTIwJTIwJTIzJTIwbWVtb3J5JTIwJUUxJTgwJTk5JUUxJTgwJTlDJUUxJTgwJUFGJUUxJTgwJUI2JUUxJTgwJTlDJUUxJTgwJUIxJUUxJTgwJUFDJUUxJTgwJTgwJUUxJTgwJUJBJUUxJTgwJTlCJUUxJTgwJTg0JUUxJTgwJUJBJTIwJUUxJTgwJTlDJUUxJTgwJUJCJUUxJTgwJUJFJUUxJTgwJUIxJUUxJTgwJUFDJUUxJTgwJUI3JUUxJTgwJTk1JUUxJTgwJUFCJTBBJTIwJTIwJTIwJTIwbWF4X3Byb21wdF9sZW5ndGglM0RtYXhfcHJvbXB0X2xlbmd0aCUyQyUwQSUyMCUyMCUyMCUyMG1heF9jb21wbGV0aW9uX2xlbmd0aCUzRG1heF9zZXFfbGVuZ3RoJTIwLSUyMG1heF9wcm9tcHRfbGVuZ3RoJTJDJTBBJTIwJTIwJTIwJTIwJTIzJTIwbnVtX3RyYWluX2Vwb2NocyUyMCUzRCUyMDElMkMlMjAlMjMlMjBmdWxsJTIwdHJhaW5pbmclMjBydW4lMjAlRTElODAlQTElRTElODAlOTAlRTElODAlQkQlRTElODAlODAlRTElODAlQkElMjAxJTIwJUUxJTgwJTlFJUUxJTgwJTkwJUUxJTgwJUJBJUUxJTgwJTk5JUUxJTgwJUJFJUUxJTgwJTkwJUUxJTgwJUJBJUUxJTgwJTk1JUUxJTgwJUFCJTBBJTIwJTIwJTIwJTIwbWF4X3N0ZXBzJTNEMjUwJTJDJTBBJTIwJTIwJTIwJTIwc2F2ZV9zdGVwcyUzRDI1MCUyQyUwQSUyMCUyMCUyMCUyMG1heF9ncmFkX25vcm0lM0QwLjElMkMlMEElMjAlMjAlMjAlMjByZXBvcnRfdG8lM0QlMjJub25lJTIyJTJDJTIwJTIwJTIzJTIwV2VpZ2h0cyUyMCUyNiUyMEJpYXNlcyUyMCVFMSU4MCU4MCVFMSU4MCVBRCVFMSU4MCVBRiUyMCVFMSU4MCVBMSVFMSU4MCU5RSVFMSU4MCVBRiVFMSU4MCVCNiVFMSU4MCVCOCVFMSU4MCU5NSVFMSU4MCVCQyVFMSU4MCVBRiVFMSU4MCU5NCVFMSU4MCVBRCVFMSU4MCVBRiVFMSU4MCU4NCVFMSU4MCVCQSVFMSU4MCU5RSVFMSU4MCU4QSVFMSU4MCVCQSUwQSUyMCUyMCUyMCUyMG91dHB1dF9kaXIlM0QlMjJvdXRwdXRzJTIyJTJDJTBBKSUwQSUwQXRyYWluZXIlMjAlM0QlMjBHUlBPVHJhaW5lciglMEElMjAlMjAlMjAlMjBtb2RlbCUzRG1vZGVsJTJDJTBBJTIwJTIwJTIwJTIwcHJvY2Vzc2luZ19jbGFzcyUzRHRva2VuaXplciUyQyUwQSUyMCUyMCUyMCUyMHJld2FyZF9mdW5jcyUzRCU1QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHhtbGNvdW50X3Jld2FyZF9mdW5jJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc29mdF9mb3JtYXRfcmV3YXJkX2Z1bmMlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJpY3RfZm9ybWF0X3Jld2FyZF9mdW5jJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaW50X3Jld2FyZF9mdW5jJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY29ycmVjdG5lc3NfcmV3YXJkX2Z1bmMlMkMlMEElMjAlMjAlMjAlMjAlNUQlMkMlMEElMjAlMjAlMjAlMjBhcmdzJTNEdHJhaW5pbmdfYXJncyUyQyUwQSUyMCUyMCUyMCUyMHRyYWluX2RhdGFzZXQlM0RkYXRhc2V0JTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> trl <span class="hljs-keyword">import</span> GRPOConfig, GRPOTrainer | |
| max_prompt_length = <span class="hljs-number">256</span> | |
| training_args = GRPOConfig( | |
| learning_rate=<span class="hljs-number">5e-6</span>, | |
| adam_beta1=<span class="hljs-number">0.9</span>, | |
| adam_beta2=<span class="hljs-number">0.99</span>, | |
| weight_decay=<span class="hljs-number">0.1</span>, | |
| warmup_ratio=<span class="hljs-number">0.1</span>, | |
| lr_scheduler_type=<span class="hljs-string">"cosine"</span>, | |
| optim=<span class="hljs-string">"paged_adamw_8bit"</span>, | |
| logging_steps=<span class="hljs-number">1</span>, | |
| per_device_train_batch_size=<span class="hljs-number">1</span>, | |
| gradient_accumulation_steps=<span class="hljs-number">1</span>, <span class="hljs-comment"># ပိုမိုချောမွေ့သော training အတွက် 4 အထိ တိုးပါ</span> | |
| num_generations=<span class="hljs-number">6</span>, <span class="hljs-comment"># memory မလုံလောက်ရင် လျှော့ပါ</span> | |
| max_prompt_length=max_prompt_length, | |
| max_completion_length=max_seq_length - max_prompt_length, | |
| <span class="hljs-comment"># num_train_epochs = 1, # full training run အတွက် 1 သတ်မှတ်ပါ</span> | |
| max_steps=<span class="hljs-number">250</span>, | |
| save_steps=<span class="hljs-number">250</span>, | |
| max_grad_norm=<span class="hljs-number">0.1</span>, | |
| report_to=<span class="hljs-string">"none"</span>, <span class="hljs-comment"># Weights & Biases ကို အသုံးပြုနိုင်သည်</span> | |
| output_dir=<span class="hljs-string">"outputs"</span>, | |
| ) | |
| trainer = GRPOTrainer( | |
| model=model, | |
| processing_class=tokenizer, | |
| reward_funcs=[ | |
| xmlcount_reward_func, | |
| soft_format_reward_func, | |
| strict_format_reward_func, | |
| int_reward_func, | |
| correctness_reward_func, | |
| ], | |
| args=training_args, | |
| train_dataset=dataset, | |
| )`,wrap:!1}}),ll=new g({props:{code:"dHJhaW5lci50cmFpbigp",highlighted:"trainer.train()",wrap:!1}}),sl=new c({props:{title:"Model ကို စစ်ဆေးခြင်း",local:"model-က-စစဆခင",headingTag:"h2"}}),nl=new g({props:{code:"bW9kZWwuc2F2ZV9sb3JhKCUyMmdycG9fc2F2ZWRfbG9yYSUyMik=",highlighted:'model.save_lora(<span class="hljs-string">"grpo_saved_lora"</span>)',wrap:!1}}),al=new g({props:{code:"ZnJvbSUyMHZsbG0lMjBpbXBvcnQlMjBTYW1wbGluZ1BhcmFtcyUwQSUwQXRleHQlMjAlM0QlMjB0b2tlbml6ZXIuYXBwbHlfY2hhdF90ZW1wbGF0ZSglMEElMjAlMjAlMjAlMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMFNZU1RFTV9QUk9NUFQlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIydXNlciUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjJDYWxjdWxhdGUlMjBwaS4lMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlNUQlMkMlMEElMjAlMjAlMjAlMjB0b2tlbml6ZSUzREZhbHNlJTJDJTBBJTIwJTIwJTIwJTIwYWRkX2dlbmVyYXRpb25fcHJvbXB0JTNEVHJ1ZSUyQyUwQSklMEElMEFzYW1wbGluZ19wYXJhbXMlMjAlM0QlMjBTYW1wbGluZ1BhcmFtcyglMEElMjAlMjAlMjAlMjB0ZW1wZXJhdHVyZSUzRDAuOCUyQyUwQSUyMCUyMCUyMCUyMHRvcF9wJTNEMC45NSUyQyUwQSUyMCUyMCUyMCUyMG1heF90b2tlbnMlM0QxMDI0JTJDJTBBKSUwQW91dHB1dCUyMCUzRCUyMCglMEElMjAlMjAlMjAlMjBtb2RlbC5mYXN0X2dlbmVyYXRlKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRleHQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzYW1wbGluZ19wYXJhbXMlM0RzYW1wbGluZ19wYXJhbXMlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsb3JhX3JlcXVlc3QlM0Rtb2RlbC5sb2FkX2xvcmEoJTIyZ3Jwb19zYXZlZF9sb3JhJTIyKSUyQyUwQSUyMCUyMCUyMCUyMCklNUIwJTVEJTBBJTIwJTIwJTIwJTIwLm91dHB1dHMlNUIwJTVEJTBBJTIwJTIwJTIwJTIwLnRleHQlMEEpJTBBJTBBcHJpbnQob3V0cHV0KQ==",highlighted:`<span class="hljs-keyword">from</span> vllm <span class="hljs-keyword">import</span> SamplingParams | |
| text = tokenizer.apply_chat_template( | |
| [ | |
| {<span class="hljs-string">"role"</span>: <span class="hljs-string">"system"</span>, <span class="hljs-string">"content"</span>: SYSTEM_PROMPT}, | |
| {<span class="hljs-string">"role"</span>: <span class="hljs-string">"user"</span>, <span class="hljs-string">"content"</span>: <span class="hljs-string">"Calculate pi."</span>}, | |
| ], | |
| tokenize=<span class="hljs-literal">False</span>, | |
| add_generation_prompt=<span class="hljs-literal">True</span>, | |
| ) | |
| sampling_params = SamplingParams( | |
| temperature=<span class="hljs-number">0.8</span>, | |
| top_p=<span class="hljs-number">0.95</span>, | |
| max_tokens=<span class="hljs-number">1024</span>, | |
| ) | |
| output = ( | |
| model.fast_generate( | |
| text, | |
| sampling_params=sampling_params, | |
| lora_request=model.load_lora(<span class="hljs-string">"grpo_saved_lora"</span>), | |
| )[<span class="hljs-number">0</span>] | |
| .outputs[<span class="hljs-number">0</span>] | |
| .text | |
| ) | |
| <span class="hljs-built_in">print</span>(output)`,wrap:!1}}),Ul=new c({props:{title:"Model ကို Save လုပ်ခြင်း",local:"model-က-save-လပခင",headingTag:"h2"}}),Tl=new g({props:{code:"JTIzJTIwMTYtYml0JTIwcHJlY2lzaW9uJTIwJUUxJTgwJTk0JUUxJTgwJUIyJUUxJTgwJUI3JTIwU2F2ZSUyMCVFMSU4MCU5QyVFMSU4MCVBRiVFMSU4MCU5NSVFMSU4MCVCQSVFMSU4MCU5NSVFMSU4MCVBQiUwQW1vZGVsLnNhdmVfcHJldHJhaW5lZF9tZXJnZWQoJTIybW9kZWwlMjIlMkMlMjB0b2tlbml6ZXIlMkMlMjBzYXZlX21ldGhvZCUzRCUyMm1lcmdlZF8xNmJpdCUyMik=",highlighted:`<span class="hljs-comment"># 16-bit precision နဲ့ Save လုပ်ပါ</span> | |
| model.save_pretrained_merged(<span class="hljs-string">"model"</span>, tokenizer, save_method=<span class="hljs-string">"merged_16bit"</span>)`,wrap:!1}}),ol=new c({props:{title:"Hugging Face Hub ကို Pushing လုပ်ခြင်း",local:"hugging-face-hub-က-pushing-လပခင",headingTag:"h2"}}),il=new g({props:{code:"JTIzJTIwSHVnZ2luZyUyMEZhY2UlMjBIdWIlMjAlRTElODAlODAlRTElODAlQUQlRTElODAlQUYlMjBQdXNoJTIwJUUxJTgwJTlDJUUxJTgwJUFGJUUxJTgwJTk1JUUxJTgwJUJBJUUxJTgwJTk1JUUxJTgwJUFCJTIwKHRva2VuJTIwJUUxJTgwJTlDJUUxJTgwJUFEJUUxJTgwJUFGJUUxJTgwJUExJUUxJTgwJTk1JUUxJTgwJUJBJUUxJTgwJTlFJUUxJTgwJThBJUUxJTgwJUJBKSUwQW1vZGVsLnB1c2hfdG9faHViX21lcmdlZCglMEElMjAlMjAlMjAlMjAlMjJ5b3VyLXVzZXJuYW1lJTJGbW9kZWwtbmFtZSUyMiUyQyUyMHRva2VuaXplciUyQyUyMHNhdmVfbWV0aG9kJTNEJTIybWVyZ2VkXzE2Yml0JTIyJTJDJTIwdG9rZW4lM0QlMjJ5b3VyLXRva2VuJTIyJTBBKQ==",highlighted:`<span class="hljs-comment"># Hugging Face Hub ကို Push လုပ်ပါ (token လိုအပ်သည်)</span> | |
| model.push_to_hub_merged( | |
| <span class="hljs-string">"your-username/model-name"</span>, tokenizer, save_method=<span class="hljs-string">"merged_16bit"</span>, token=<span class="hljs-string">"your-token"</span> | |
| )`,wrap:!1}}),wl=new g({props:{code:"bW9kZWwucHVzaF90b19odWJfZ2d1ZiglMEElMjAlMjAlMjAlMjAlMjJ5b3VyLXVzZXJuYW1lJTJGbW9kZWwtbmFtZSUyMiUyQyUwQSUyMCUyMCUyMCUyMHRva2VuaXplciUyQyUwQSUyMCUyMCUyMCUyMHF1YW50aXphdGlvbl9tZXRob2QlM0QlNUIlMjJxNF9rX20lMjIlMkMlMjAlMjJxOF8wJTIyJTJDJTIwJTIycTVfa19tJTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwdG9rZW4lM0QlMjJ5b3VyLXRva2VuJTIyJTJDJTBBKQ==",highlighted:`model.push_to_hub_gguf( | |
| <span class="hljs-string">"your-username/model-name"</span>, | |
| tokenizer, | |
| quantization_method=[<span class="hljs-string">"q4_k_m"</span>, <span class="hljs-string">"q8_0"</span>, <span class="hljs-string">"q5_k_m"</span>], | |
| token=<span class="hljs-string">"your-token"</span>, | |
| )`,wrap:!1}}),cl=new c({props:{title:"နိဂုံးချုပ်",local:"နဂခပ",headingTag:"h2"}}),ul=new c({props:{title:"ဝေါဟာရ ရှင်းလင်းချက် (Glossary)",local:"ဝဟရ-ရငလငခက-glossary",headingTag:"h2"}}),hl=new ft({props:{source:"https://github.com/huggingface/course/blob/main/chapters/my/chapter12/6.mdx"}}),{c(){y=J("meta"),fl=e(),Il=J("p"),Al=e(),T(u.$$.fragment),Rl=e(),T(C.$$.fragment),El=e(),T(h.$$.fragment),Ql=e(),I=J("p"),I.innerHTML=Ds,Fl=e(),x=J("p"),x.textContent=Zs,Bl=e(),m=J("blockquote"),m.innerHTML=Ns,Vl=e(),T(b.$$.fragment),_l=e(),f=J("p"),f.textContent=Os,kl=e(),T(A.$$.fragment),Gl=e(),T(R.$$.fragment),Sl=e(),E=J("p"),E.innerHTML=Xs,Dl=e(),T(Q.$$.fragment),Zl=e(),F=J("p"),F.textContent=vs,Nl=e(),T(B.$$.fragment),Ol=e(),V=J("p"),V.innerHTML=$s,Xl=e(),d=J("blockquote"),d.innerHTML=zs,vl=e(),T(_.$$.fragment),$l=e(),k=J("p"),k.textContent=qs,zl=e(),G=J("p"),G.textContent=Ws,ql=e(),T(S.$$.fragment),Wl=e(),D=J("p"),D.textContent=Ys,Yl=e(),T(Z.$$.fragment),Hl=e(),N=J("p"),N.textContent=Hs,Ll=e(),T(O.$$.fragment),Pl=e(),X=J("p"),X.innerHTML=Ls,Kl=e(),v=J("p"),v.textContent=Ps,ls=e(),T($.$$.fragment),ss=e(),z=J("p"),z.textContent=Ks,ts=e(),q=J("table"),q.innerHTML=lt,ns=e(),T(W.$$.fragment),es=e(),Y=J("p"),Y.innerHTML=st,as=e(),T(H.$$.fragment),Js=e(),L=J("p"),L.innerHTML=tt,Us=e(),P=J("ul"),P.innerHTML=nt,Ms=e(),K=J("p"),K.textContent=et,Ts=e(),T(ll.$$.fragment),os=e(),j=J("blockquote"),j.innerHTML=at,rs=e(),T(sl.$$.fragment),is=e(),tl=J("p"),tl.textContent=Jt,ps=e(),T(nl.$$.fragment),ws=e(),el=J("p"),el.textContent=Ut,gs=e(),T(al.$$.fragment),cs=e(),Jl=J("p"),Jl.textContent=Mt,ys=e(),T(Ul.$$.fragment),ms=e(),Ml=J("p"),Ml.textContent=Tt,ds=e(),T(Tl.$$.fragment),js=e(),T(ol.$$.fragment),us=e(),rl=J("p"),rl.innerHTML=ot,Cs=e(),T(il.$$.fragment),hs=e(),pl=J("p"),pl.textContent=rt,Is=e(),T(wl.$$.fragment),xs=e(),gl=J("p"),gl.textContent=it,bs=e(),T(cl.$$.fragment),fs=e(),yl=J("p"),yl.textContent=pt,As=e(),ml=J("p"),ml.textContent=wt,Rs=e(),dl=J("p"),dl.textContent=gt,Es=e(),jl=J("ul"),jl.innerHTML=ct,Qs=e(),Fs=J("hr"),Bs=e(),T(ul.$$.fragment),Vs=e(),Cl=J("ul"),Cl.innerHTML=yt,_s=e(),T(hl.$$.fragment),ks=e(),xl=J("p"),this.h()},l(l){const s=It("svelte-u9bgzb",document.head);y=U(s,"META",{name:!0,content:!0}),s.forEach(t),fl=a(l),Il=U(l,"P",{}),mt(Il).forEach(t),Al=a(l),o(u.$$.fragment,l),Rl=a(l),o(C.$$.fragment,l),El=a(l),o(h.$$.fragment,l),Ql=a(l),I=U(l,"P",{"data-svelte-h":!0}),M(I)!=="svelte-14pem3d"&&(I.innerHTML=Ds),Fl=a(l),x=U(l,"P",{"data-svelte-h":!0}),M(x)!=="svelte-pmpcvc"&&(x.textContent=Zs),Bl=a(l),m=U(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),M(m)!=="svelte-8mws60"&&(m.innerHTML=Ns),Vl=a(l),o(b.$$.fragment,l),_l=a(l),f=U(l,"P",{"data-svelte-h":!0}),M(f)!=="svelte-1rt3jkp"&&(f.textContent=Os),kl=a(l),o(A.$$.fragment,l),Gl=a(l),o(R.$$.fragment,l),Sl=a(l),E=U(l,"P",{"data-svelte-h":!0}),M(E)!=="svelte-1vt5m8t"&&(E.innerHTML=Xs),Dl=a(l),o(Q.$$.fragment,l),Zl=a(l),F=U(l,"P",{"data-svelte-h":!0}),M(F)!=="svelte-n7vqqx"&&(F.textContent=vs),Nl=a(l),o(B.$$.fragment,l),Ol=a(l),V=U(l,"P",{"data-svelte-h":!0}),M(V)!=="svelte-1t910d2"&&(V.innerHTML=$s),Xl=a(l),d=U(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),M(d)!=="svelte-of1vq3"&&(d.innerHTML=zs),vl=a(l),o(_.$$.fragment,l),$l=a(l),k=U(l,"P",{"data-svelte-h":!0}),M(k)!=="svelte-1qriq8r"&&(k.textContent=qs),zl=a(l),G=U(l,"P",{"data-svelte-h":!0}),M(G)!=="svelte-14dr279"&&(G.textContent=Ws),ql=a(l),o(S.$$.fragment,l),Wl=a(l),D=U(l,"P",{"data-svelte-h":!0}),M(D)!=="svelte-1itbld2"&&(D.textContent=Ys),Yl=a(l),o(Z.$$.fragment,l),Hl=a(l),N=U(l,"P",{"data-svelte-h":!0}),M(N)!=="svelte-1rg3o4b"&&(N.textContent=Hs),Ll=a(l),o(O.$$.fragment,l),Pl=a(l),X=U(l,"P",{"data-svelte-h":!0}),M(X)!=="svelte-19yzmlv"&&(X.innerHTML=Ls),Kl=a(l),v=U(l,"P",{"data-svelte-h":!0}),M(v)!=="svelte-1jd1sgx"&&(v.textContent=Ps),ls=a(l),o($.$$.fragment,l),ss=a(l),z=U(l,"P",{"data-svelte-h":!0}),M(z)!=="svelte-1fbdlgt"&&(z.textContent=Ks),ts=a(l),q=U(l,"TABLE",{"data-svelte-h":!0}),M(q)!=="svelte-1bddubd"&&(q.innerHTML=lt),ns=a(l),o(W.$$.fragment,l),es=a(l),Y=U(l,"P",{"data-svelte-h":!0}),M(Y)!=="svelte-1hv8krz"&&(Y.innerHTML=st),as=a(l),o(H.$$.fragment,l),Js=a(l),L=U(l,"P",{"data-svelte-h":!0}),M(L)!=="svelte-edxa4w"&&(L.innerHTML=tt),Us=a(l),P=U(l,"UL",{"data-svelte-h":!0}),M(P)!=="svelte-4lfwln"&&(P.innerHTML=nt),Ms=a(l),K=U(l,"P",{"data-svelte-h":!0}),M(K)!=="svelte-og7q2y"&&(K.textContent=et),Ts=a(l),o(ll.$$.fragment,l),os=a(l),j=U(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),M(j)!=="svelte-51lfbh"&&(j.innerHTML=at),rs=a(l),o(sl.$$.fragment,l),is=a(l),tl=U(l,"P",{"data-svelte-h":!0}),M(tl)!=="svelte-1pn5gof"&&(tl.textContent=Jt),ps=a(l),o(nl.$$.fragment,l),ws=a(l),el=U(l,"P",{"data-svelte-h":!0}),M(el)!=="svelte-x9l2fq"&&(el.textContent=Ut),gs=a(l),o(al.$$.fragment,l),cs=a(l),Jl=U(l,"P",{"data-svelte-h":!0}),M(Jl)!=="svelte-i9sfwu"&&(Jl.textContent=Mt),ys=a(l),o(Ul.$$.fragment,l),ms=a(l),Ml=U(l,"P",{"data-svelte-h":!0}),M(Ml)!=="svelte-t3k084"&&(Ml.textContent=Tt),ds=a(l),o(Tl.$$.fragment,l),js=a(l),o(ol.$$.fragment,l),us=a(l),rl=U(l,"P",{"data-svelte-h":!0}),M(rl)!=="svelte-uftlct"&&(rl.innerHTML=ot),Cs=a(l),o(il.$$.fragment,l),hs=a(l),pl=U(l,"P",{"data-svelte-h":!0}),M(pl)!=="svelte-z0n6z0"&&(pl.textContent=rt),Is=a(l),o(wl.$$.fragment,l),xs=a(l),gl=U(l,"P",{"data-svelte-h":!0}),M(gl)!=="svelte-22wbz3"&&(gl.textContent=it),bs=a(l),o(cl.$$.fragment,l),fs=a(l),yl=U(l,"P",{"data-svelte-h":!0}),M(yl)!=="svelte-ljqtp3"&&(yl.textContent=pt),As=a(l),ml=U(l,"P",{"data-svelte-h":!0}),M(ml)!=="svelte-1xv9llf"&&(ml.textContent=wt),Rs=a(l),dl=U(l,"P",{"data-svelte-h":!0}),M(dl)!=="svelte-10p0tok"&&(dl.textContent=gt),Es=a(l),jl=U(l,"UL",{"data-svelte-h":!0}),M(jl)!=="svelte-1fz95oy"&&(jl.innerHTML=ct),Qs=a(l),Fs=U(l,"HR",{}),Bs=a(l),o(ul.$$.fragment,l),Vs=a(l),Cl=U(l,"UL",{"data-svelte-h":!0}),M(Cl)!=="svelte-prwapz"&&(Cl.innerHTML=yt),_s=a(l),o(hl.$$.fragment,l),ks=a(l),xl=U(l,"P",{}),mt(xl).forEach(t),this.h()},h(){bl(y,"name","hf:doc:metadata"),bl(y,"content",Et),bl(m,"class","tip"),bl(d,"class","tip"),bl(j,"class","warning")},m(l,s){xt(document.head,y),n(l,fl,s),n(l,Il,s),n(l,Al,s),r(u,l,s),n(l,Rl,s),r(C,l,s),n(l,El,s),r(h,l,s),n(l,Ql,s),n(l,I,s),n(l,Fl,s),n(l,x,s),n(l,Bl,s),n(l,m,s),n(l,Vl,s),r(b,l,s),n(l,_l,s),n(l,f,s),n(l,kl,s),r(A,l,s),n(l,Gl,s),r(R,l,s),n(l,Sl,s),n(l,E,s),n(l,Dl,s),r(Q,l,s),n(l,Zl,s),n(l,F,s),n(l,Nl,s),r(B,l,s),n(l,Ol,s),n(l,V,s),n(l,Xl,s),n(l,d,s),n(l,vl,s),r(_,l,s),n(l,$l,s),n(l,k,s),n(l,zl,s),n(l,G,s),n(l,ql,s),r(S,l,s),n(l,Wl,s),n(l,D,s),n(l,Yl,s),r(Z,l,s),n(l,Hl,s),n(l,N,s),n(l,Ll,s),r(O,l,s),n(l,Pl,s),n(l,X,s),n(l,Kl,s),n(l,v,s),n(l,ls,s),r($,l,s),n(l,ss,s),n(l,z,s),n(l,ts,s),n(l,q,s),n(l,ns,s),r(W,l,s),n(l,es,s),n(l,Y,s),n(l,as,s),r(H,l,s),n(l,Js,s),n(l,L,s),n(l,Us,s),n(l,P,s),n(l,Ms,s),n(l,K,s),n(l,Ts,s),r(ll,l,s),n(l,os,s),n(l,j,s),n(l,rs,s),r(sl,l,s),n(l,is,s),n(l,tl,s),n(l,ps,s),r(nl,l,s),n(l,ws,s),n(l,el,s),n(l,gs,s),r(al,l,s),n(l,cs,s),n(l,Jl,s),n(l,ys,s),r(Ul,l,s),n(l,ms,s),n(l,Ml,s),n(l,ds,s),r(Tl,l,s),n(l,js,s),r(ol,l,s),n(l,us,s),n(l,rl,s),n(l,Cs,s),r(il,l,s),n(l,hs,s),n(l,pl,s),n(l,Is,s),r(wl,l,s),n(l,xs,s),n(l,gl,s),n(l,bs,s),r(cl,l,s),n(l,fs,s),n(l,yl,s),n(l,As,s),n(l,ml,s),n(l,Rs,s),n(l,dl,s),n(l,Es,s),n(l,jl,s),n(l,Qs,s),n(l,Fs,s),n(l,Bs,s),r(ul,l,s),n(l,Vs,s),n(l,Cl,s),n(l,_s,s),r(hl,l,s),n(l,ks,s),n(l,xl,s),Gs=!0},p:jt,i(l){Gs||(i(u.$$.fragment,l),i(C.$$.fragment,l),i(h.$$.fragment,l),i(b.$$.fragment,l),i(A.$$.fragment,l),i(R.$$.fragment,l),i(Q.$$.fragment,l),i(B.$$.fragment,l),i(_.$$.fragment,l),i(S.$$.fragment,l),i(Z.$$.fragment,l),i(O.$$.fragment,l),i($.$$.fragment,l),i(W.$$.fragment,l),i(H.$$.fragment,l),i(ll.$$.fragment,l),i(sl.$$.fragment,l),i(nl.$$.fragment,l),i(al.$$.fragment,l),i(Ul.$$.fragment,l),i(Tl.$$.fragment,l),i(ol.$$.fragment,l),i(il.$$.fragment,l),i(wl.$$.fragment,l),i(cl.$$.fragment,l),i(ul.$$.fragment,l),i(hl.$$.fragment,l),Gs=!0)},o(l){p(u.$$.fragment,l),p(C.$$.fragment,l),p(h.$$.fragment,l),p(b.$$.fragment,l),p(A.$$.fragment,l),p(R.$$.fragment,l),p(Q.$$.fragment,l),p(B.$$.fragment,l),p(_.$$.fragment,l),p(S.$$.fragment,l),p(Z.$$.fragment,l),p(O.$$.fragment,l),p($.$$.fragment,l),p(W.$$.fragment,l),p(H.$$.fragment,l),p(ll.$$.fragment,l),p(sl.$$.fragment,l),p(nl.$$.fragment,l),p(al.$$.fragment,l),p(Ul.$$.fragment,l),p(Tl.$$.fragment,l),p(ol.$$.fragment,l),p(il.$$.fragment,l),p(wl.$$.fragment,l),p(cl.$$.fragment,l),p(ul.$$.fragment,l),p(hl.$$.fragment,l),Gs=!1},d(l){l&&(t(fl),t(Il),t(Al),t(Rl),t(El),t(Ql),t(I),t(Fl),t(x),t(Bl),t(m),t(Vl),t(_l),t(f),t(kl),t(Gl),t(Sl),t(E),t(Dl),t(Zl),t(F),t(Nl),t(Ol),t(V),t(Xl),t(d),t(vl),t($l),t(k),t(zl),t(G),t(ql),t(Wl),t(D),t(Yl),t(Hl),t(N),t(Ll),t(Pl),t(X),t(Kl),t(v),t(ls),t(ss),t(z),t(ts),t(q),t(ns),t(es),t(Y),t(as),t(Js),t(L),t(Us),t(P),t(Ms),t(K),t(Ts),t(os),t(j),t(rs),t(is),t(tl),t(ps),t(ws),t(el),t(gs),t(cs),t(Jl),t(ys),t(ms),t(Ml),t(ds),t(js),t(us),t(rl),t(Cs),t(hs),t(pl),t(Is),t(xs),t(gl),t(bs),t(fs),t(yl),t(As),t(ml),t(Rs),t(dl),t(Es),t(jl),t(Qs),t(Fs),t(Bs),t(Vs),t(Cl),t(_s),t(ks),t(xl)),t(y),w(u,l),w(C,l),w(h,l),w(b,l),w(A,l),w(R,l),w(Q,l),w(B,l),w(_,l),w(S,l),w(Z,l),w(O,l),w($,l),w(W,l),w(H,l),w(ll,l),w(sl,l),w(nl,l),w(al,l),w(Ul,l),w(Tl,l),w(ol,l),w(il,l),w(wl,l),w(cl,l),w(ul,l),w(hl,l)}}}const Et='{"title":"လက်တွေ့ လေ့ကျင့်ခန်း: Unsloth ဖြင့် GRPO","local":"လကတ-လကငခန-unsloth-ဖင-grpo","sections":[{"title":"Dependencies တွေကို Install လုပ်ခြင်း","local":"dependencies-တက-install-လပခင","sections":[],"depth":2},{"title":"Unsloth ကို တည်ဆောက်ခြင်း","local":"unsloth-က-တညဆကခင","sections":[],"depth":2},{"title":"Data Preparation","local":"data-preparation","sections":[],"depth":2},{"title":"Reward Functions များကို သတ်မှတ်ခြင်း","local":"reward-functions-မက-သတမတခင","sections":[],"depth":2},{"title":"GRPO ဖြင့် Training လုပ်ခြင်း","local":"grpo-ဖင-training-လပခင","sections":[],"depth":2},{"title":"Model ကို စစ်ဆေးခြင်း","local":"model-က-စစဆခင","sections":[],"depth":2},{"title":"Model ကို Save လုပ်ခြင်း","local":"model-က-save-လပခင","sections":[],"depth":2},{"title":"Hugging Face Hub ကို Pushing လုပ်ခြင်း","local":"hugging-face-hub-က-pushing-လပခင","sections":[],"depth":2},{"title":"နိဂုံးချုပ်","local":"နဂခပ","sections":[],"depth":2},{"title":"ဝေါဟာရ ရှင်းလင်းချက် (Glossary)","local":"ဝဟရ-ရငလငခက-glossary","sections":[],"depth":2}],"depth":1}';function Qt(Ss){return ut(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Gt extends Ct{constructor(y){super(),ht(this,y,Qt,Rt,dt,{})}}export{Gt as component}; | |
Xet Storage Details
- Size:
- 80.9 kB
- Xet hash:
- f33519c3ca5f1be7a379a63e39258d51ad77f8283ea05f58d0ccfb9503bf44fa
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.