![]()
ယခင်အတန်းသည် အေးဂျင့်များကို မိုးကောင်းကင်ထဲသို့ မြှင့်တင် ခဲ့သည်။ ဒီအတန်းမှာတော့ တစက်ပစ္စည်းတစ်လုံးပေါ်မှာ ကျေညာ သွားစေမှာဖြစ်ပါတယ်။ နောက်ဆုံးမှာ အလုပ်လုပ်နိုင်တဲ့ အင်ဂျင်နီယာ အကူအညီ ဖြစ်လာမှာဖြစ်ပြီး အဓိကစွမ်းဆောင်ချက်တွေက ပြောဆိုခြင်း၊ ကိရိယာများကို ခေါ်ယူခြင်း၊ ဖိုင်များဖတ်ခြင်း၊ သင်၏စာရွက်စာတမ်းများကို ရှာဖွေရေးလုပ်ခြင်းတို့ဖြစ်ပါတယ် — မိုးကောင်းကင်မှ လုံးဝ inference ခေါ်ဆိုမှု မရှိဘဲ။
ဤစနစ်ကို ဘာကြောင့်လိုအပ်သလဲ? အလုပ်သမာဓိအတွက် မကြာခဏ ရောက်ရှိလာသော ထုတ်ပြန်ချက်သုံးချက်ရှိပါသည်။
ဤစနစ်၏ အားနည်းချက်မှာ မြင့်မားသော မိုးကောင်းကင်မော်ဒယ်ကို သေးငယ်သည့်ဘာသာစကားမော်ဒယ် (SLM) အဖြစ် သင်၏ CPU, GPU, သို့မဟုတ် NPU ပေါ်မှာ တည်ဆောက်ထားခြင်း ဖြစ်သည်။ ဒီသင်ခန်းစာသည် အဲဒီအကန့်အသတ်အတွင်း ကောင်းမွန် သောအေးဂျင့်များ ဖန်တီးခြင်းအကြောင်း ဖြစ်ပြီး အကန့်အသတ်မရှိဘဲ ကြောင့်မဟုတ်ဘူး။
ဒီသင်ခန်းစာမှာ ဖွင့်ဆိုမှာက:
ဒီသင်ခန်းစာပြီးဆုံးလျှင် သင်သည်:
ယခင် သင်ခန်းစာများပြီးမြောက်ပြီးဖြစ်ပြီး အောက်ပါအရာများတွင် အဆင်ပြေကြောင်း မျှော်လင့်ပါသည်။
သင်သည် အောက်ပါအရာများလည်း လိုအပ်သည်။
requirements.txt အထောက်အပံ့ package များ၊ နှင့် foundry-local-sdk, openai, chromadb စသည်တို့။မြင့်မားသောမိုးကောင်းကင်မော်ဒယ်များမှာ သန်းပေါင်းများစွာအပိုင်းခွဲများနှင့်ဒေတာစင်တာရှိသည်။ SLM က သန်းရေဂဏန်းသေးငယ်သည့် parameter များရှိပြီး သင့်လက်ပ်တော့ RAM ထဲမှာသိမ်းဆည်းရမည်။ ဒီကွာခြားချက်က သေချာသော မျှော်လင့်ချက်တွေ ပေးပါတယ်။
SLMs ကို ကောင်းစွာ တော်တဆင်နိုင်သောအရာများ:
SLMs အားနည်းသောအရာများ:
ဒေသစံအေးဂျင့်များအတွက် အနိုင်ရနည်းလမ်းမှာ: SLM ကို စီမံခန့်ခွဲရန် ခွင့်ပြုပါ၊ ကိရိယာတွေကို အားနာအသက်သာမဲ့ လုပ်ဆောင်စေပါ။ မော်ဒယ်ဟာ မင်းရဲ့ကုဒ်ဘေ့စ်ကို သိရန် မလိုပါဘူး — read_file နဲ့ search_docs ကသတ်မှတ်သည့်အချိန်ကိုသိရန်လိုသည်။ ဒါဟာ SLM ၏အားသာချက်တွေကောင်းစွာကစားပေးတယ်။
flowchart LR
U[ပရိုဂရမ်ရေးသူ] --> A[ဒေသခံ SLM ဆောင်ရွက်သူ]
A -->|မည်သည့်ကိရိယာကို ရွေးချယ်သည်| T1[ဖိုင်ဖတ်သည်]
A -->|မည်သည့်ကိရိယာကို ရွေးချယ်သည်| T2[စာရွက်စာတမ်းရှာဖွေခြင်း RAG]
A -->|မည်သည့်ကိရိယာကို ရွေးချယ်သည်| T3[ကုတ်စစ်ဆေးသည်]
T1 --> A
T2 --> A
T3 --> A
A --> R[ဖြေကြားချက်၊ အပြည့်အဝ စက်ပစ္စည်းပေါ်တွင်]
Microsoft Foundry Local က သင့်စက်မှာ မော်ဒယ်တွေကို ဒေါင်းလုတ်လုပ်ပြီး စီမံခန့်ခွဲခြင်း၊ ပြန်လည်ထုတ်ပေးခြင်းလုပ်ဆောင်သော ပေါ့ပါးသော runtime တစ်ခု ဖြစ်သည်။ အရေးကြီးဆုံး ဖုန်းကာကွယ်စောင့်ရှောက်မှုကတော့ OpenAI-compatible HTTP endpoint ကို ဖော်ထုတ်ပေးရေးဖြစ်ပြီး၊ OpenAI SDK နဲ့ Microsoft Agent Framework ရဲ့ OpenAI client တို့ကို base_url ပြောင်းခြင်းသာနဲ့ အသုံးပြုနိုင်သည်။ အမြောက်အမြားသည် မိုးကောင်းကင်မှ ဒေသစံသတ်သို့ ရွှေ့ပြောင်းသွားသည်။
Foundry Local က သင့်ဒိုင်ဝဲ (hardware) အပေါ် အလိုအလျောက် အကောင်းဆုံး built model ကိုရွေးချယ်ပေးသည် — CPU build၊ CUDA/GPU build သို့မဟုတ် NPU build — ထိုကြောင့် စက်နှင့်အတူ တိုက်ရိုက် optimize လုပ်မလိုပါ။
သင့် OS အတွက် Foundry Local ကို တပ်ဆင်ပါ (လက်စွဲကို documentation တွင် ကြည့်ပါ)၊ ပြီးရင် එයလည်ပတ်မှုကို အတည်ပြုပါ။
# ထည့်သွင်းပါ (ဥပမာ; သင့်ပလက်ဖောင်းအတွက်စာတမ်းများကိုလိုက်နာပါ)
winget install Microsoft.FoundryLocal # Windows
# brew install microsoft/foundrylocal/foundrylocal # macOS
# Qwen မော်ဒယ်ကိုဒေါင်းလုပ်လုပ်ကာ လည်ပတ်ပါ၊ ထို့နောက် ဒေသဆိုင်ရာဝန်ဆောင်မှုကိုစတင်ပါ
foundry model run qwen2.5-7b-instruct
foundry service status
ဝန်ဆောင်မှု လည်ပတ်နေပြီးသည်နှင့် ဒေသစံသတ် OpenAI-compatible endpoint ကို ရရှိနိုင်ပါပြီ (ယေဘုယျအားဖြင့် http://localhost:PORT/v1)။ notebook သည် foundry-local-sdk ကိုအသုံးပြုပြီး endpoint ကို အလိုအလျောက်ရှာဖွေသည်၊ ထိုကြောင့် port ကို အတိအကျရေးရန် မလိုအပ်ပါ။
အေးဂျင့်ဟာ ကိရိယာခေါ်နိုင်မှ အေးဂျင့် ဖြစ်တယ်။ အများစု SLM များက စကားပြောနိုင်ပေမယ့် ကိရိယာခေါ်မှုပုံစံတွေ မွားယွင်းမှုရှိစေတတ်သည်။ Qwen မော်ဒယ်များ အတည်ပြု function calling အတွက်လေ့ကျင့်ထားပြီး ကိရိယာခေါ်ပုံစံများကို တိကျရိုးရှင်းစွာ ထုတ်လုပ်နိုင်ပြီး ဒေသစံသတ် chat မော်ဒယ်ကို သက်ဆိုင်ရာ လုပ်ငန်းစဉ်များတွင် ချိတ်ဆက်နိုင်သည်။
အသုံးပြုရန် ရိုးရှင်းသည့် tool-calling loop ဖြစ်ပြီး ဒီအတိုင်း စက်ပေါ်တွင် လည်ပတ်ပါသည်။
sequenceDiagram
participant U as အသုံးပြုသူ
participant A as Qwen Agent (ဒေသိယ)
participant T as ဒေသိယကိရိယာ
U->>A: auth.py ကဘာလုပ်လဲ?
A->>A: ဆုံးဖြတ်ချက်: read_file ကိုခေါ်ပါ
A->>T: read_file("auth.py")
T-->>A: ဖိုင်အကြောင်းအရာများ
A->>A: အကြောင်းအရာများကို ကြားဖြတ်ဆန်းစစ်သည်
A-->>U: ရှင်းလင်းချက်
စာရွက်စာတမ်း ရှာဖွေမှုသည် ဒေသစံအေးဂျင့်၏ အခြေခံလုပ်ငန်းဖြစ်သည်။ SLM က သင့် framework စာရွက်စာတမ်းများကို မှတ်မိကြောင်း မမျှော်လင့်ဘဲ၊ သင့်Docs များကို ဒေသစံ vector database ထဲမှာ ထည့်သွင်းပြီး အေးဂျင့်က လိုအပ်သလို ပြန်ယူနိုင်သည်။
Chroma ကို အသုံးပြုပါသည်။ ဒါဟာ embedded vector store တခုဖြစ်ပြီး server မလိုအပ်သည့် နည်းလမ်းဖြစ်သည်။ pipeline ဟာ လုံးဝ ဒေသစံဖြစ်: ဒေသစံ embedding model → ဒေသစံ vectors → ဒေသစံ retrieval → ဒေသစံ SLM။
flowchart TB
D[သင့်စာတမ်းများ / ကုဒ်] --> E[ဒေသခံ embedding မော်ဒယ်]
E --> V[(Chroma vector DB - ဒစ်စ်ပေါ်တွင်)]
Q[အေးဂျင့်မေးခွန်း] --> QE[မေးခွန်းကို ဒေသခံအတိုင်း embedding လုပ်ပါ]
QE --> V
V -->|ထိပ်သုံးချက်များ| A[Qwen အေးဂျင့်]
A --> Ans[အခြေခံဖြေကြားချက်]
ဒီဟာက Lesson 5 မှ Agentic RAG ပုံစံတူပါ၊ အပြောင်းအလဲကတော့ အစိတ်အပိုင်းအားလုံးကို သင့်စက်ပေါ်မှာ ဖွင့်ထားခြင်း။
MCP က ကွန်ယက်ဝန်ဆောင်မှုမဟုတ်ပါ၊ တင်ပို့မှုနည်းပညာတစ်ခုဖြစ်သည်။ MCP server မှာ ဒေသစံစနစ်ဖြင့် stdio တခုအဖြစ် လည်ပတ်နိုင်ပြီး အေးဂျင့်အတွက် ကိရိယာများကို protocol မှတစ်ဆင့် ဖေါ်ထုတ်ပေးသည်။ ဒီလိုနဲ့ MCP server စနစ်တွေနဲ့ offline ရောရွှေ့အသုံးပြုနိုင်ကြသည်။
လုံခြုံရေးဒေသကွဲဟာ မိုးကောင်းကင်နဲ့ မတူပေမယ့် မလျော့နည်းပါဘူး။ ဒေသစံ MCP ဆာဗာက သင့်အသုံးပြုသူ ခွင့်ပြုခြင်းဖြင့် တည်ဆောက်ပြီး သုံးစွဲနိုင်သော အပိုင်းကို သတိထားဖို့လိုတယ် (ဥပမာ - ပရောဂျက်ဖိုလ်ဒါတစ်ခုသာဖြစ်ပြီး၊ အိမ်ဖိုလ်ဒါလုံးဝမဟုတ်)၊ ထွက်လာသည့် အချက်အလက်များကို ပြန်လည်စစ်ဆေးရန်အတွက် စည်းကြပ်ပါ။
ဒေသစံပထမ မဟုတ်ဘဲ ဒေသစံပဲ ဖြစ်စေခြင်းမဟုတ်ပါ။ ပြည့်စုံပြီးနိုးကြီးသောစနစ်များက စက်မှု လိုအပ်ချက်နှင့် ခက်ခဲမြန်ဆန်မှုတို့အပေါ် မူတည်သော အခြေအနေများအလိုက် ခွဲခြားထားသည်။
| အခြေအနေ | ဘယ်မှာ လျှောက်လွှာ လုပ်ဆောင်မလဲ |
|---|---|
| သတိုးယုတ်သောကုဒ်/ဒေတာ၊ သို့မဟုတ် အော့ဖ်လိုင်း | ဒေသစံ SLM |
| ရိုးရှင်းပြီး ကန့်သတ်ထားသောအလုပ် | ဒေသစံ SLM (စျေးသက်သာ၊ မြန်ဆန်) |
| ခက်ခဲသော မူကြမ်းအပေါ် မျိုးစုံ ဟိုပ် ဆက်စပ်ရန် | မိုးကောင်းကင် မော်ဒယ် |
| အားလုံးအတွက် (မီးပျက်ချိန်) | ဒေသစံ SLM (တိုးတက်မှုနည်းနည်းနဲ့ ခံနိုင်ရည်) |
ဒီဟာက Lesson 16 မှာ တင်ဆက်ထားတဲ့ မော်ဒယ်လမ်းကြောင်းခြားနည်း ကို အဖြစ်အပေါ်ထားတာပါ၊ ဒါပေမဲ့ “မော်ဒယ်” တစ်ခု ဟာ အခုသင့်စက်က ဖြစ်နေပါတယ်။ ခိုင်မာတဲ့ဒီဇိုင်းက မိုးကောင်းကင်မရရှိနိုင်ချိန်မှာ ဒေသစံမှာ ပြန်ရှေ့ဆက်တော့မှာဖြစ်ပြီး အေးဂျင့်ရဲ့ အရည်အသွေးဟာကျဆင်းပါလိမ့်မယ်၊ ဖြတ်သန်း၍ မပျက်စီးပါဘူး။
flowchart LR
Q[တောင်းဆိုချက်] --> S{သိပ္ပံဆိုင်ရာ သို့မဟုတ် အော့ဖ်လိုင်းလား?}
S -->|ဟုတ်ကဲ့| L[ဒေသခံ SLM]
S -->|မဟုတ်ဘူး| C{နက်ရှိုင်းသော အကြောင်းပြချက် လိုအပ်သလား?}
C -->|မဟုတ်ဘူး| L
C -->|ဟုတ်ကဲ့| Cloud[မိုဃ်းတိမ်မော်ဒယ်]
L --> Out[ပြန်ကြားချက်]
Cloud --> Out
code_samples/17-local-agent-foundry-local.ipynb ဖိုင်ကိုဖွင့်၍ လေ့လာပါ။ သင့်စက်ပေါ်မှာ လုံးဝရပ်တည်၍ အောက်ပါကို လုပ်ဆောင်နိုင်တဲ့ ဒေသစံအင်ဂျင်နီယာအကူအညီ တစ်ခုကို ဖန်တီးပါမည်။
မိုးကောင်းကင် inference ခေါ်မှု မရှိပါ။
အကူအညီသည် OpenAI-compatible endpoint မှတဆင့် Foundry Local ကို ချိတ်ဆက်သည်၊ ဒါကြောင့် အေးဂျင့်ကုဒ်က မိုးကောင်းကင်သင်ခန်းစာများနှင့် အတူတူပါ — client အပြောင်းအလဲ တစ်ခုသာရှိသည်။
from foundry_local import FoundryLocalManager
from openai import OpenAI
# Foundry Local သည် မော်ဒယ်ကို ရှာဖွေပြီး ဒေါင်းလုပ်ဆွဲပေးကာ ကျွန်ုပ်တို့အား ဒေသတွင်း အဆုံးခန်းကိုပေးသည်။
manager = FoundryLocalManager(\"qwen2.5-7b-instruct\")
client = OpenAI(base_url=manager.endpoint, api_key=manager.api_key) # api_key သည် ဒေသတွင်း အစားထိုးတန်ဖိုးဖြစ်သည်။
ကိရိယာများမှာ ပရောဂျက် ဒိုင်ဘာတွင် အကန့်အသတ်ထားသော ပုံမှန် Python function များဖြစ်သည်။
def read_file(path: str) -> str:
\"\"\"Read a file, but only inside the sandboxed project directory.\"\"\"
full = (PROJECT_ROOT / path).resolve()
if PROJECT_ROOT not in full.parents and full != PROJECT_ROOT:
return \"Access denied: path is outside the project directory.\"
return full.read_text(encoding=\"utf-8\")
ဒေသစံ sandbox စစ်ဆေးမှုကို မွတ်သိထားပါ — ဒေသစံမှာပါကိရိယာတစ်ခုက အမှားလမ်းကြောင်းဖတ်ခြင်းရှိနိုင်သည်။ notebook မှာ ကိရိယာသုံးခုခြင်းကို တစ်ခုတည်းသော project root အပါအဝင် အကန့်အသတ်ထားသည်။
အပ်ဒိတ်လုပ်မည့် assignment သို့ လှမ်းမတက်မီ သင့် အသိပညာကို စစ်ဆေးပါ။
၁။ ဒေသစံအေးဂျင့်ကို မိုးကောင်းကင်အစား အသုံးပြုရန် အကြောင်းရင်းနှစ်ချက် ပြောပြပါ။
၂။ ဒေသစံအေးဂျင့်တွင် SLM နဲ့ ကိရိယာများကြားအလုပ်ခွဲစီမံခြင်း အကြံပြုချက်ဘယ်လိုရှိပြီး ဘာကြောင့်လဲ?
၃။ Foundry Local နဲ့ မိုးကောင်းကင်အေးဂျင့်ကုဒ်များကို ပြန်လည်အသုံးချဖို့ဘာကြောင့်ရနိုင်တာလဲ?
၄။ အဘယ်ကြောင့် ကျွန်ုပ်တို့ Qwen function calling မော်ဒယ်ကိုသာသီးသန့် အသုံးပြုပြီး မည်သည့် SLM မဆို သုံးခြင်း မဟုတ်တာလဲ?
၅။ ဒေသစံ RAG pipeline တွင် ဘယ်အစိတ်အပိုင်းတွေ စက်ပေါ်မှာ လည်ပတ်သလဲ?
၆။ ဒေသစံ MCP ဆာဗာတစ်ခု သင့်စက်ပေါ်တွင် လည်ပတ်နေသည်ကို အလိုအလျောက် လုံခြုံကြောင်း သတ်မှတ်လို့ရသလား? သင်မည်သို့ သတိပြုမှုပေးသင့်သလဲ?
၇။ ဒေသစံမော်ဒယ်တစ်ခု ပါဝင်သည့် သင့်တော်သော ဆက်စပ်ပုံစံလမ်းကြောင်း တစ်ခု ဖော်ပြပါ။
၈။ ဒီသင်ခန်းစာအတွက် ဒေသစံအေးဂျင့်ကို လုပ်ဆောင်ရန် ဘယ်လောက် RAM လိုအပ်ပြီး RAM များပြီးရင် ဘာကို ရနိုင်သလဲ?
ဒေသစံအင်ဂျင်နီယာ အကူအညီကို သင့်ရွေးချယ်သော သေးငယ်သော ပရောဂျက်တစ်ခုအတွက် ဒေသစံစာရွက်စာတမ်း စစ်ဆေးသူ တစ်ခုအဖြစ် တိုးချဲ့ပါ (repo ရဲ့ သင်ခန်းစာဖိုလ်ဒါ တစ်ခုသုံးနိုင်သည်)။
သင့် တင်သွင်းမှုတွင် ပါဝင်ရမည်များ:
find_todos tool တစ်ခုထည့်ပါ။ သည်က ပရောဂျက်အတွင်း TODO/FIXME မှတ်ချက်များကို ရှာဖွေပြီး ဖိုင်နာမည်၊ စာကြောင်းနံပါတ်နှင့် ပြန်လည်တင်ပြပေးမည် — read_file နဲ့တူညီသော sandbox စစ်ဆေးမှုပါရှိရမည်။
ထို့နောက် ဒီပြန်လည်ဆန်းစစ်သူအတွက် သင်မောင်းနှင်မည့်ကလောက်နှင့် ဒေသခံတွင် ထိန်းသိမ်းမည့် အရာများအကြောင်း အတိုချုံး စာပိုဒ်တိုတစ်ပိုဒ် ရေးပါ။ ဒေသခံအပိုင်းများကို မှန်မှန်ကန်ကန်တွဲဆက်ထားမှုနှင့် မိမိ၏ ဟိုက်ဘရစ် စဉ်းစားမှုမှန်ကန်မှု အပေါ်မှ သတ်မှတ်ခံရသည်။ မော်ဒယ်အရည်အသွေးပေါ် မဟုတ်ပါ။
ဒီသင်ခန်းစာအတွင်း သင်သည် မိမိစက်ပစ္စည်းပေါ်တွင် အပြည့်အစုံ လည်ပတ်နိုင်သော စက်ရုပ် တစ်ခု တည်ဆောက်ခဲ့သည်။
ဤသည်သည် တပ်ဆင်ခြင်း အလွှာကို ပြီးမြောက်စေသည်။ သင်ခန်းစာ 16 တွင် စက်ရုပ်များကို Microsoft Foundry သို့ တိုးချဲ့ခဲ့ကြပြီး၊ ဤသင်ခန်းစာတွင် အသီးသီး မှာကွန်ပျူတာတစ်လုံးတွင် ချုပ်နိမ့်လိုက်သည်။ နောက်သင်ခန်းစာတွင် တပ်ဆင်ထားသော စက်ရုပ်များကို ဘေးကင်းရေး ထိန်းသိမ်းမှုကို နှိုင်းယှဉ်ပြပါမည်။
မောင်းနှင်နိုင်သည့် စက်ရုပ်များ တပ်ဆင်ခြင်း
ပြောကြားချက် ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု Co-op Translator အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးပမ်းနေသော်လည်း၊ စက်ကိရိယာဘာသာပြန်ခြင်းများတွင် အမှားများ သို့မဟုတ် မှားယွင်းချက်များ ပါဝင်နိုင်ကြောင်း သတိပြုပါရန် လိုအပ်ပါသည်။ မူလစာတမ်းကို မူရင်းဘာသာဖြင့်သာ ယုံကြည်စိတ်ချရသော အချက်အလက်အဖြစ် သတ်မှတ်သင့်သည်။ အရေးကြီးသည့် သတင်းအချက်အလက်များအတွက် ပရော်ဖက်ရှင်နယ် လူသားဘာသာပြန်သူဝန်ဆောင်မှုကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော နားလည်မှုကွာခြားမှုများ သို့မဟုတ် မမှန်ကန်သော အသုံးပြုမှုများအတွက် ကျွန်ုပ်တို့ တာဝန်မခံပါ။