Thuta Learning
Local AI / Local LLM
ExercisesAIbeginner

လေ့ကျင့်ခန်း: သင့်ကိုယ်ပိုင် Local AI Stack ကို ဒီဇိုင်းရေးဆွဲခြင်း

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • လေ့ကျင့်ခန်း: သင့်ကိုယ်ပိုင် Local AI Stack ကို ဒီဇိုင်းရေးဆွဲခြင်း concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • Diagram ကို ဖတ်ပြီး architecture ထဲမှာ data/request ဘယ်လိုစီးဆင်းသလဲ ခြေရာခံနိုင်ရန်
  • ကိုယ့် hardware/use case အတွက် ဘယ်လို ရွေးချယ်သင့်သလဲ ဆုံးဖြတ်နိုင်ရန်

နားလည်ထားရမယ့် အချက်

ဒီ course ထဲက lesson တိုင်းက ထပ်ခါထပ်ခါ အသုံးချနိုင်သော decision framework တစ်ခုဆီ ဦးတည်ခဲ့ပြီး၊ ဒီ exercise ကတော့ ၎င်းအားလုံးကို တစ်ပြိုင်နက်တည်း အသုံးချရမည့်နေရာဖြစ်သည်။ Framework က မေးခွန်းသုံးခုကို အစဉ်လိုက်မေးသည်။

  • သင့်ရဲ့ အဓိက task က ဘာလဲ - ယေဘုယျ chat, coding ကူညီမှု, သင့်ကိုယ်ပိုင် document များပေါ်တွင် မေးခွန်း-အဖြေ, ဒါမှမဟုတ် agent တစ်ခုအနေဖြင့် tool များကို action လုပ်စေခြင်း
  • သင့်တွင် hardware ဘာရှိသလဲ - CPU-only, integrated GPU, dedicated GPU, ထို hardware က RAM နှင့် VRAM ဘယ်လောက်ပေးနိုင်သလဲ
  • အဲ့ဒီ ပထမနှစ်ခုက tradeoff တစ်ခု ဖြစ်ပေါ်လာချိန် သင့်အတွက် ဘာအရေးအကြီးဆုံးလဲ - speed, quality, privacy (offline ဖြစ်ခြင်း), ဒါမှမဟုတ် memory budget ကျဉ်းမြောင်းခြင်း

ဒီမေးခွန်းသုံးခုထဲက ဘယ်တစ်ခုမှ တစ်ကမ္ဘာလုံးအတွက် မှန်ကန်သော အဖြေမရှိပါ။ နှစ်ငါးနှစ်လောက်အသက်ရှိပြီးသော laptop ပေါ်ရှိ student တစ်ဦးနှင့် workstation GPU ရှိသော developer တစ်ဦးနှစ်ဦးလုံးက အလုပ်လုပ်နိုင်သော local AI stack ကို တည်ဆောက်နိုင်သော်လည်း model size, quantization level, runtime, retrieval-augmented generation (သို့) agent tooling လိုအပ်မလိုအပ်ဆိုတာက နှစ်ဦးအတွက် လုံးဝကွာခြားလိမ့်မည်။

Checklist မဟုတ်၊ Framework တစ်ခု

ဒါကို checklist မဟုတ်ဘဲ framework တစ်ခုဖြစ်စေတာက အဖြေသုံးခုက ပေါင်းစပ်ပုံဖြစ်သည် - task က capability floor တစ်ခု သတ်မှတ်ပေးသည်၊ hardware က size ceiling တစ်ခု သတ်မှတ်ပေးသည်၊ floor နှင့် ceiling ကြားမှာနေရာမကျန်တော့သည့်အခါ priority က ဆုံးဖြတ်ပေးသည်။

Model, quantization format, hardware တို့သည် ဒီ course ပြီးနောက်လည်း အမြဲပြောင်းလဲနေမည်။ မေးခွန်းသုံးခုနှင့် ၎င်းကို မေးရမည့်အစဉ်ကတော့ မပြောင်းလဲပါ။ ဒါဟာ ဒီ exercise က တကယ်စမ်းသပ်နေတဲ့ skill ပင်ဖြစ်သည်။

text
THE THREE-QUESTION LOCAL AI DECISION FRAMEWORK
----------------------------------------------
THE THREE-QUESTION LOCAL AI DECISION FRAMEWORK
-----------------------------------------------------------
   TASK                HARDWARE              PRIORITY
   chat / coding /      CPU-only / iGPU /     speed / quality /
   documents / agent    dGPU + RAM + VRAM     privacy / low-mem
        \                    |                     /
         \                   |                    /
          v                  v                   v
                    ---------------------
                    |   RECOMMENDATION   |
                    ---------------------
                    - model size band
                    - quantization level
                    - runtime: CPU-only or GPU
                    - RAG needed?  agent needed?

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Framework ကို လူနှစ်ဦးအပေါ် အသုံးချကြည့်ကြပါစို့။

Persona: Small Business Owner

Contract နှင့် invoice များပေါ်တွင် private မေးခွန်း-အဖြေလိုချင်သော small business owner တစ်ဦးဖြစ်ပြီး၊ RAM 16 GB ရှိပြီး dedicated GPU မရှိသော ordinary office laptop ကိုအသုံးပြုသည်။

Task -> Documents

Task: documents ဖြစ်ပြီး၊ compact local model တစ်ခုက file အားလုံးကို memorize မထားနိုင်သောကြောင့် retrieval-augmented generation ကို ပြင်းပြင်းထန်ထန် ညွှန်ပြသည်။

Hardware -> CPU-only, 16 GB

Hardware: CPU-only, 16 GB ဖြစ်ပြီး 7B-13B model ကို 4-bit quantization ဖြင့် ညွှန်ပြသည်။

Priority -> Privacy

Priority: privacy ဖြစ်ပြီး၊ data တစ်ခုမှ laptop ထဲကထွက်မသွားဘဲ အားလုံး offline run ရမည်ဖြစ်ကြောင်း အတည်ပြုပြီး၊ convenience မည်မျှရှိသည်ဆိုသော်လည်း cloud API မည်သည့်အမျိုးအစားကိုမျှ ပယ်ချသည်။

Persona: 24 GB GPU ရှိသော Developer

GPU 24 GB ရှိပြီး coding assistant တစ်ခုလိုချင်သော developer တစ်ဦးဖြစ်သည်။

Task -> Coding

Task: coding ဖြစ်ပြီး၊ speed သက်သက်မဟုတ်ဘဲ strong reasoning နှင့် code training ကို လိုချင်သည်။

Hardware -> RAM 32 GB + VRAM 24 GB

Hardware: RAM 32 GB ထပ် VRAM 24 GB ဖြစ်ပြီး၊ heavier compression က ဖြစ်စေတတ်သော quality ဆုံးရှုံးမှုမရှိဘဲ 8-bit (သို့) ပိုကြီးသော quantization ကို အဆင်ပြေစွာ support ပေးနိုင်သည်။

Priority -> Quality

Priority: quality ဖြစ်ပြီး၊ ခဏနှေးသော်လည်း မှန်ကန်သော suggestion တစ်ခုက မြန်ပေမဲ့ မှားနေသောတစ်ခုထက်ပိုကောင်းသည်။

လူနှစ်ဦးလုံးမှာ agent tooling မလိုအပ်ခဲ့ပါ၊ သို့သော် research task များကို automate လုပ်မည့် တတိယ persona တစ်ဦးဆိုလျှင် ၎င်းကို layer အသစ်တစ်ခုအဖြစ် ထပ်ပေါင်းရမည်ဖြစ်သည်။

Teaching Aid ဖြစ်ပြီး Production Sizing Tool မဟုတ်ပါ

အောက်ပါ `recommend()` helper သည် ဒီ reasoning အတူတူကို deliberately ရိုးရှင်းအောင်ပြုလုပ်ထားသော rule-based function အဖြစ် ကုဒ်ရေးထားခြင်းဖြစ်သည် - framework ကို လေ့ကျင့်ရန် teaching aid တစ်ခုသာဖြစ်ပြီး production sizing tool မဟုတ်ပါ၊ model architecture အတိအကျ, context length, runtime overhead တို့ကို ထည့်မတွက်ထားသောကြောင့်ဖြစ်သည်။

အတူတူ စမ်းရေးကြည့်မယ်

python
def recommend(task, ram_gb, vram_gb, priority):
    """Illustrative, rule-based local-AI stack recommendation.

    This is a teaching simplification, not a production sizing tool.
    Real choices depend on the exact model, quantization method,
    runtime, and how much of the model can be offloaded to GPU vs CPU.
    """
    usable_gb = max(ram_gb, vram_gb)

    # Step 1: pick a rough model size band from usable memory.
    if usable_gb >= 40:
        size_band = "13B-34B"
        quant = "8-bit or FP16"
    elif usable_gb >= 16:
        size_band = "7B-13B"
        quant = "4-bit"
    else:
        size_band = "1B-3B"
        quant = "4-bit"

    # Step 2: bias the choice by stated priority.
    if priority == "quality" and usable_gb >= 16:
        quant = "8-bit" if usable_gb >= 24 else quant
    if priority == "speed":
        quant = "4-bit"
    if priority == "low_memory":
        size_band = "1B-3B" if usable_gb < 16 else size_band
        quant = "4-bit"

    # Step 3: task-specific add-ons.
    needs_rag = task == "documents"
    needs_agent = task == "agent"
    privacy_note = "safe to run fully offline" if priority == "privacy" else None

    runtime = "GPU-accelerated (llama.cpp/vLLM with GPU offload)" if vram_gb >= 6 \
        else "CPU-only (llama.cpp)"

    return {
        "task": task,
        "size_band": size_band,
        "quantization": quant,
        "runtime": runtime,
        "needs_rag": needs_rag,
        "needs_agent": needs_agent,
        "privacy_note": privacy_note,
    }


personas = [
    ("Small business owner: private document Q&A", "documents", 16, 0, "privacy"),
    ("Developer with a strong GPU: coding assistant", "coding", 32, 24, "quality"),
    ("Student on an old laptop: quick chat helper", "chat", 8, 0, "low_memory"),
]

for label, task, ram, vram, priority in personas:
    result = recommend(task, ram, vram, priority)
    print(label)
    print(f"  inputs: task={task}, ram={ram}GB, vram={vram}GB, priority={priority}")
    print(f"  recommendation: {result}")
    print()
You should see
`recommend()` ကို persona သုံးဦးအတွက် run လိုက်လျှင် တစ်ဦးစီအတွက် dict တစ်ခုစီ print ထုတ်သည်။ Business owner (documents, RAM 16 GB, VRAM 0 GB, privacy) အတွက် `{'size_band': '7B-13B', 'quantization': '4-bit', 'runtime': 'CPU-only (llama.cpp)', 'needs_rag': True, 'needs_agent': False, 'privacy_note': 'safe to run fully offline'}` ရရှိသည်။ Developer (coding, RAM 32 GB, VRAM 24 GB, quality) အတွက် `{'size_band': '7B-13B', 'quantization': '8-bit', 'runtime': 'GPU-accelerated (llama.cpp/vLLM with GPU offload)', 'needs_rag': False, 'needs_agent': False}` ရရှိသည်။ Student (chat, RAM 8 GB, VRAM 0 GB, low_memory) အတွက် `{'size_band': '1B-3B', 'quantization': '4-bit', 'runtime': 'CPU-only (llama.cpp)', 'needs_rag': False, 'needs_agent': False}` ရရှိသည် -- input သုံးမျိုးမှ stack သုံးမျိုးထွက်လာခြင်းသည် framework က ခန့်မှန်းသည့်အတိုင်းပင်ဖြစ်သည်။

၅ မိနစ် စမ်းကြည့်

သင့်ကိုယ်ပိုင် hardware အစစ်နှင့် အဓိက task အစစ်အတွက် မေးခွန်းသုံးခု framework ကို run ကြည့်ပါ။ ဦးစွာ မေးခွန်းသုံးခုစလုံးအတွက် အဖြေရေးချပါ - task (chat / coding / documents / agent), hardware (CPU-only / integrated GPU / dedicated GPU၊ သင့် RAM နှင့် VRAM အစစ် GB အရေအတွက်နှင့်တကွ), priority (speed / quality / privacy / memory footprint နည်းခြင်း)။ ထို့နောက် `recommend()` ကို သင့်ကိုယ်ပိုင်ဂဏန်းများနှင့် ခေါ်ပါ၊ ဒါမှမဟုတ် logic အတူတူကိုသုံးပြီး လက်ဖြင့်တွက်ချက်ကြည့်ပါ။ ရလဒ် stack ကို ချရေးပါ - model size range, quantization level, အသုံးပြုမည့် runtime, RAG ထည့်မလား (document များကို query လုပ်ချင်ပါက) (သို့) agent tooling ထည့်မလား (model ကို step များစွာပါသော action လုပ်စေချင်ပါက)။ နောက်ဆုံးတွင် သင့် priority အဖြေက recommendation ကို ဘယ်ဘက်သို့ တွန်းပို့ခဲ့သလဲဆိုတာကို အကြောင်းပြချက်တစ်ကြောင်းရေးပါ -- ဒီ justification ကပင် ဒီ course က သင်ကြားပေးနေသော skill အစစ်ဖြစ်ပြီး၊ model name တိကျတိကျထက် ပိုအရေးကြီးသည်။

သတိလေးတစ်ချက်

ဒီ exercise ၏ ဂဏန်းများကို အဖြေအဖြစ် သဘောထားမိခြင်း -- ပြန်လည်အသုံးချနိုင်သည်ကတော့ framework နှင့် reasoning process ဖြစ်ပြီး၊ တိကျသော model name, size, quantization format တို့ကတော့ နှစ်တစ်နှစ်၊ နှစ်နှစ်အတွင်း ခေတ်နောက်ကျသွားမည်ဖြစ်သည်။

Priority မေးခွန်းကို ကျော်ပြီး 'ကျမကျခံနိုင်သည့် အကောင်းဆုံး quality' ကို default အဖြစ်ယူသုံးခြင်း -- task အစစ်များစွာအတွက် privacy (သို့) memory footprint နည်းခြင်းက အမှန်တကယ် constraint ဖြစ်ပြီး၊ ၎င်းကို လျစ်လျူရှုလိုက်ပါက တကယ် run လို့မရသော stack တစ်ခု ထွက်လာနိုင်သည်။

Ollama Model LibraryLocal AI / Local LLM

Local AI Glossary — အသုံးများသော ဝေါဟာရများ

Termအဓိပ္ပာယ်
AIAI (Artificial Intelligence) ဆိုသည်မှာ ဘာသာစကားနားလည်ခြင်း၊ ပုံရိပ်မှတ်ခြင်းကဲ့သို့ လူ့ဉာဏ်ရည်လိုအပ်သည့် အလုပ်များကို စက်ဖြင့်လုပ်ဆောင်နိုင်စေရန် တည်ဆောက်ခြင်းဆိုင်ရာ ကျယ်ပြန့်သည့် နယ်ပယ်တစ်ခုဖြစ်သည်။
MLML (Machine Learning) သည် စည်းမျဉ်းများကို တိုက်ရိုက်ရေးသားပေးမည့်အစား data ထဲမှ pattern များကို system တစ်ခုက သင်ယူစေသည့် AI ၏ subfield တစ်ခုဖြစ်သည်။
LLMLLM (Large Language Model) သည် လူသားနှင့်ဆင်တူသော ဘာသာစကားကို ခန့်မှန်းပြီး ထုတ်လုပ်ပေးနိုင်ရန် စာသားအမြောက်အများဖြင့် လေ့ကျင့်ထားသော machine learning model တစ်ခုဖြစ်သည်။
ModelLLM တစ်ခုသင်ယူခဲ့သမျှကို သိမ်းဆည်းထားသော ဖိုင်များဖြစ်ပြီး၊ input ကို အဲ့ဒီအပေါ်သုံးလိုက်ရင် output ထွက်လာသည်။
WeightsTraining အတွင်း သင်ယူရရှိလာသော model အတွင်းရှိ ဂဏန်းတန်ဖိုးများဖြစ်ပြီး၊ input တစ်ခုအတွက် model က ဘာကိုခန့်မှန်းမည်ကို ဆုံးဖြတ်ပေးသည်။
ParametersModel တစ်ခုအတွင်းရှိ သင်ယူရထားသော weight နှင့် bias တစ်ခုချင်းစီဖြစ်ပြီး၊ သန်း (သို့) ဘီလီယံအရေအတွက်ဖြင့်ရေတွက်ကာ model အရွယ်အစားကို ခန့်မှန်းရာသုံးသည်။
InferenceTraining လုပ်ငန်းစဉ်နှင့်မတူဘဲ၊ လေ့ကျင့်ပြီးသား model ကို input အသစ်တစ်ခုအပေါ် ဆောင်ရွက်ပြီး output ထုတ်ပေးသည့် လုပ်ငန်းစဉ်ဖြစ်သည်။
TrainingModel တစ်ခု၏ weight များကို data အမြောက်အများပြသကာ အသုံးဝင်သော pattern များကို သင်ယူသည်အထိ ချိန်ညှိပေးသည့် လုပ်ငန်းစဉ်ဖြစ်သည်။
Fine-tuningTraining ပြီးသား model တစ်ခုကို ပိုသေးငယ်၍ တိကျသော dataset တစ်ခုဖြင့် ဆက်လက်လေ့ကျင့်ကာ ၎င်း၏ အပြုအမူကို အထူးပြုစေခြင်းဖြစ်သည်။
PromptModel တစ်ခုမှ အဖြေရရှိရန် ပေးပို့သော text input ဖြစ်ပြီး၊ ညွှန်ကြားချက်၊ မေးခွန်း၊ (သို့) context များပါဝင်နိုင်သည်။
System PromptUser ၏ message မတိုင်မီ model ကိုပေးထားသော ဝှက်ထား (သို့) သတ်မှတ်ထားသည့် ညွှန်ကြားချက်အစုအဝေးဖြစ်ပြီး၊ ၎င်း၏ အပြုအမူနှင့် စည်းမျဉ်းများကို ပုံဖော်ပေးသည်။
Tokenစကားလုံးတစ်လုံး (သို့) အစိတ်အပိုင်းလောက်ရှိသော text အပိုင်းအစငယ်ဖြစ်ပြီး၊ model တစ်ခုဖတ်ပြီးထုတ်ပေးသည့် အခြေခံယူနစ်ဖြစ်သည်။
TokenizerText ကို token များအဖြစ်ခွဲပြီး model တကယ်လုပ်ဆောင်သည့် ဂဏန်း ID များအဖြစ် ပြောင်းပေးသည့် အစိတ်အပိုင်းဖြစ်သည်။
Context WindowPrompt၊ စကားပြောမှတ်တမ်းနှင့် model ၏ output ကိုပါ ထည့်သွင်းပြီး model တစ်ခုက တစ်ပြိုင်နက် စဉ်းစားနိုင်သည့် token အများဆုံးအရေအတွက်ဖြစ်သည်။
QuantizationModel ၏ weight များကို memory အသုံးပြုမှုလျှော့ချရန် တိကျမှုနည်းသော ဂဏန်းပုံစံဖြင့် သိမ်းဆည်းခြင်းဖြစ်ပြီး၊ များသောအားဖြင့် အရည်အသွေးအနည်းငယ် လျော့ကျတတ်သည်။
GGUFLlama.cpp ကဲ့သို့သော tool များက သုံးသည့် CPU နှင့် consumer hardware ပေါ်တွင် quantized model များကို ထိရောက်စွာ run ရန် ဖန်တီးထားသော file format တစ်ခုဖြစ်သည်။
SafetensorsPython ၏ ဟောင်းနွမ်းသော pickle format ၏ လုံခြုံရေးအန္တရာယ်များကို ရှောင်ရှားပေးသည့် model weight များ သိမ်းဆည်းရန် ပိုမိုလုံခြုံပြီး မြန်ဆန်သည့် file format တစ်ခုဖြစ်သည်။
EmbeddingText (သို့) အခြား data ၏ အဓိပ္ပါယ်ကို ဖမ်းယူထားသော ဂဏန်း vector ကိုယ်စားပြုမှုတစ်ခုဖြစ်ပြီး၊ အဓိပ္ပါယ်တူသောအရာများသည် ဂဏန်းတူတူနီးပါးဖြစ်သွားသည်။
VectorEmbedding များကို သင်္ချာနည်းဖြင့် ကိုယ်စားပြုရန်သုံးသည့် dimension အများကြီးရှိသော space ထဲက အမှတ်တစ်ခုကို ကိုယ်စားပြုသော ဂဏန်းစာရင်းတစ်ခုဖြစ်သည်။
Vector DatabaseEmbedding များကို သိမ်းဆည်းပြီး query vector တစ်ခုနှင့် အနီးစပ်ဆုံးတူညီမှုရှိသည့်အရာများကို လျင်မြန်စွာ ရှာဖွေပေးရန် ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ထားသော database တစ်ခုဖြစ်သည်။
RAGRAG (Retrieval-Augmented Generation) ဆိုသည်မှာ သက်ဆိုင်ရာ document များကို ဦးစွာရှာဖွေပြီး model ကို context အဖြစ်ပေးလိုက်ခြင်းဖြင့် ၎င်း၏အဖြေကို အမှန်တကယ်ရှိသော data အပေါ် အခြေခံစေခြင်းဖြစ်သည်။
ChunkingDocument ရှည်ကြီးများကို embed မလုပ်မီ အပိုင်းငယ်များအဖြစ် ခွဲထားခြင်းဖြစ်ပြီး၊ retrieval အခါ သက်ဆိုင်ရာအပိုင်းများကိုသာ တိကျစွာပြန်ရနိုင်စေသည်။
APIAPI (Application Programming Interface) ဆိုသည်မှာ software တစ်ခုက အခြား software တစ်ခုမှ လုပ်ဆောင်ချက် (သို့) data ကို တောင်းဆိုနိုင်ရန် သတ်မှတ်ထားသော နည်းလမ်းတစ်ခုဖြစ်သည်။
EndpointApplication တစ်ခုက API ၏ လုပ်ဆောင်ချက်ကို အသုံးပြုရန် request ပို့သည့် တိကျသော URL (သို့) address ဖြစ်သည်။
localhostသင့်ကွန်ပျူတာချည်းသာ ဆက်သွယ်နိုင်သည့် local server (သို့) model တစ်ခု run နေချိန်တွင်သုံးသော၊ မိမိ၏ machine ကိုယ်တိုင်ကို အမြဲညွှန်းသော နာမည်တစ်ခုဖြစ်သည်။
CPUCPU (Central Processing Unit) ဆိုသည်မှာ ကွန်ပျူတာရှိ အထွေထွေအသုံးပြုနိုင်သော processor ဖြစ်ပြီး၊ local model ကို run နိုင်သော်လည်း ယေဘုယျအားဖြင့် GPU ထက်ပိုနှေးတတ်သည်။
GPUGPU (Graphics Processing Unit) ဆိုသည်မှာ တစ်ပြိုင်နက် သင်္ချာတွက်ချက်မှုအမြောက်အများအတွက် တည်ဆောက်ထားသော processor ဖြစ်ပြီး၊ AI model များ run ရာတွင် CPU ထက် များစွာမြန်ဆန်စေသည်။
NPUNPU (Neural Processing Unit) ဆိုသည်မှာ AI လုပ်ငန်းများကို အရှိန်မြှင့်ရန် အထူးတည်ဆောက်ထားသော chip hardware ဖြစ်ပြီး၊ ခေတ်မီ laptop နှင့် phone များတွင် တိုးများလာသည်။
RAMRAM (Random Access Memory) ဆိုသည်မှာ ကွန်ပျူတာ၏ အဓိက working memory ဖြစ်ပြီး၊ model ကို CPU ပေါ်တွင် run မည်ဆိုပါက model ၏ weight များ နေရာကျစေရမည့် memory ဖြစ်သည်။
VRAMVRAM (Video RAM) ဆိုသည်မှာ GPU ပေါ်ရှိ အထူးသီးသန့် memory ဖြစ်ပြီး၊ GPU-accelerated inference အတွက် model ၏ weight များ ထည့်ဝင်နိုင်လောက်အောင် ကြီးမားရမည်ဖြစ်သည်။
KV CacheModel တစ်ခုက ယခင် token များမှ ကြားခံတွက်ချက်မှုများကို ပြန်တွက်မည့်အစား ပြန်လည်အသုံးပြုနိုင်ရန် သိမ်းဆည်းထားခြင်းဖြစ်ပြီး၊ token အသစ်ထုတ်ရာတွင် မြန်ဆန်စေသော်လည်း memory ပိုသုံးစေသည်။
TTFTTTFT (Time To First Token) ဆိုသည်မှာ user က prompt ပို့ပြီးနောက် model ၏ အဖြေစတင်ပေါ်လာသည်အထိ စောင့်ဆိုင်းရသည့် အချိန်ဖြစ်သည်။
Tokens/secModel တစ်ခုက အဖြေစတင်ပေးပြီးနောက် စက္ကန့်တစ်ခုလျှင် token မည်မျှထုတ်ပေးသည်ကို ပြသသည့် အမြန်နှုန်းတိုင်းတာမှုတစ်ခုဖြစ်သည်။
AgentStep များစွာပါဝင်သော လုပ်ဆောင်ချက်များကို စီစဉ်နိုင်၊ tool များခေါ်နိုင်ပြီး၊ ရလဒ်များကိုသုံးကာ နောက်တစ်ဆင့်ဘာလုပ်မည်ကို ဆုံးဖြတ်နိုင်သော model ကိုအခြေခံထားသည့် system တစ်ခုဖြစ်သည်။
Tool CallingCalculator (သို့) search ကဲ့သို့ ပြင်ပ function တစ်ခုလိုအပ်ကြောင်းသိရှိပြီး၊ structured ဖြစ်ပြီး machine ဖတ်နိုင်သောပုံစံဖြင့် တောင်းဆိုနိုင်သည့် model ၏ စွမ်းရည်ဖြစ်သည်။
LoRALoRA (Low-Rank Adaptation) ဆိုသည်မှာ model တစ်ခုလုံးကို update မလုပ်ဘဲ ထပ်ဆောင်း parameter အနည်းငယ်ကိုသာ လေ့ကျင့်ပေးသည့် ထိရောက်သော fine-tuning နည်းလမ်းတစ်ခုဖြစ်သည်။
Open Weightsငွေပေးချေမှသုံးနိုင်သော API မှတဆင့်သာ ရရှိနိုင်သော model များနှင့်ဆန့်ကျင်ဘက်၊ မည်သူမဆို download လုပ်ပြီး ကိုယ်တိုင် run နိုင်ရန် ထုတ်ပြန်ထားသော model weight များဖြစ်သည်။
Prompt InjectionInput ထဲတွင်ဝှက်ထားသော အန္တရာယ်ရှိ text က model ကို ၎င်း၏ ညွှန်ကြားချက်များ လျစ်လျူရှုစေပြီး တိုက်ခိုက်သူ၏ ညွှန်ကြားချက်များကို လိုက်နာစေသည့် တိုက်ခိုက်မှုတစ်မျိုးဖြစ်သည်။
Hybrid AILocal AI နှင့် cloud AI နှစ်ခုပေါင်းစပ်အသုံးပြုသည့် approach ဖြစ်ပြီး၊ ဥပမာ - model သေးသေးလေးကို local တွင် run ကာ ခက်ခဲသော task များကို cloud ရှိ model ကြီးများသို့ လွှဲပြောင်းပေးသည်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • ဒီ exercise ၏ ဂဏန်းများကို အဖြေအဖြစ် သဘောထားမိခြင်း -- ပြန်လည်အသုံးချနိုင်သည်ကတော့ framework နှင့် reasoning process ဖြစ်ပြီး၊ တိကျသော model name, size, quantization format တို့ကတော့ နှစ်တစ်နှစ်၊ နှစ်နှစ်အတွင်း ခေတ်နောက်ကျသွားမည်ဖြစ်သည်။
  • Priority မေးခွန်းကို ကျော်ပြီး 'ကျမကျခံနိုင်သည့် အကောင်းဆုံး quality' ကို default အဖြစ်ယူသုံးခြင်း -- task အစစ်များစွာအတွက် privacy (သို့) memory footprint နည်းခြင်းက အမှန်တကယ် constraint ဖြစ်ပြီး၊ ၎င်းကို လျစ်လျူရှုလိုက်ပါက တကယ် run လို့မရသော stack တစ်ခု ထွက်လာနိုင်သည်။
  • Model (သို့) tool အသစ်တစ်ခုကို production/daily-use workflow ထဲ တိုက်ရိုက်မထည့်ခင် သေးငယ်တဲ့ scale နဲ့ အရင်စမ်းကြည့်ပါ။

လေ့ကျင့်ခန်း

သင့်ကိုယ်ပိုင် hardware အစစ်နှင့် အဓိက task အစစ်အတွက် မေးခွန်းသုံးခု framework ကို run ကြည့်ပါ။ ဦးစွာ မေးခွန်းသုံးခုစလုံးအတွက် အဖြေရေးချပါ - task (chat / coding / documents / agent), hardware (CPU-only / integrated GPU / dedicated GPU၊ သင့် RAM နှင့် VRAM အစစ် GB အရေအတွက်နှင့်တကွ), priority (speed / quality / privacy / memory footprint နည်းခြင်း)။ ထို့နောက် `recommend()` ကို သင့်ကိုယ်ပိုင်ဂဏန်းများနှင့် ခေါ်ပါ၊ ဒါမှမဟုတ် logic အတူတူကိုသုံးပြီး လက်ဖြင့်တွက်ချက်ကြည့်ပါ။ ရလဒ် stack ကို ချရေးပါ - model size range, quantization level, အသုံးပြုမည့် runtime, RAG ထည့်မလား (document များကို query လုပ်ချင်ပါက) (သို့) agent tooling ထည့်မလား (model ကို step များစွာပါသော action လုပ်စေချင်ပါက)။ နောက်ဆုံးတွင် သင့် priority အဖြေက recommendation ကို ဘယ်ဘက်သို့ တွန်းပို့ခဲ့သလဲဆိုတာကို အကြောင်းပြချက်တစ်ကြောင်းရေးပါ -- ဒီ justification ကပင် ဒီ course က သင်ကြားပေးနေသော skill အစစ်ဖြစ်ပြီး၊ model name တိကျတိကျထက် ပိုအရေးကြီးသည်။

You'll know it worked when: `recommend()` ကို persona သုံးဦးအတွက် run လိုက်လျှင် တစ်ဦးစီအတွက် dict တစ်ခုစီ print ထုတ်သည်။ Business owner (documents, RAM 16 GB, VRAM 0 GB, privacy) အတွက် `{'size_band': '7B-13B', 'quantization': '4-bit', 'runtime': 'CPU-only (llama.cpp)', 'needs_rag': True, 'needs_agent': False, 'privacy_note': 'safe to run fully offline'}` ရရှိသည်။ Developer (coding, RAM 32 GB, VRAM 24 GB, quality) အတွက် `{'size_band': '7B-13B', 'quantization': '8-bit', 'runtime': 'GPU-accelerated (llama.cpp/vLLM with GPU offload)', 'needs_rag': False, 'needs_agent': False}` ရရှိသည်။ Student (chat, RAM 8 GB, VRAM 0 GB, low_memory) အတွက် `{'size_band': '1B-3B', 'quantization': '4-bit', 'runtime': 'CPU-only (llama.cpp)', 'needs_rag': False, 'needs_agent': False}` ရရှိသည် -- input သုံးမျိုးမှ stack သုံးမျိုးထွက်လာခြင်းသည် framework က ခန့်မှန်းသည့်အတိုင်းပင်ဖြစ်သည်။

လေ့ကျင့်ခန်း: သင့်ကိုယ်ပိုင် Local AI Stack ကို ဒီဇိုင်းရေးဆွဲခြင်း | Thuta Learning