course documentation
အခန်း (၇) ဆိုင်ရာ မေးခွန်းများ
0. စတင်ပြင်ဆင်ခြင်း
1. Transformer models များ
နိဒါန်းNatural Language Processing နှင့် Large Language Models များTransformers တွေက ဘာတွေလုပ်နိုင်လဲ။Transformers တွေက ဘယ်လိုအလုပ်လုပ်လဲ။🤗 Transformers တွေက လုပ်ငန်းတာဝန်တွေကို ဘယ်လိုဖြေရှင်းပေးလဲ။Transformer Architectures များအမြန်ဉာဏ်စမ်းLLMs များဖြင့် မှန်းဆတွက်ချက်ခြင်း။ဘက်လိုက်မှုနှင့် ကန့်သတ်ချက်များအနှစ်ချုပ်အသိအမှတ်ပြု စာမေးပွဲ
2. 🤗 Transformers ကို အသုံးပြုခြင်း
နိဒါန်းPipeline နောက်ကွယ်မှ အကြောင်းအရာများModelsTokenizersSequence များစွာကို ကိုင်တွယ်ခြင်းအားလုံးကို ပေါင်းစပ်ခြင်းအခြေခံ အသုံးပြုမှု ပြီးဆုံးပါပြီ!Optimization လုပ်ထားသော Inference Deploymentအခန်းပြီးဆုံးခြင်း စစ်ဆေးမှု
3. Pretrained Model တစ်ခုကို Fine-tuning လုပ်ခြင်း
နိဒါန်းဒေတာများကို စီမံဆောင်ရွက်ခြင်းTrainer API ဖြင့် မော်ဒယ်တစ်ခုကို Fine-tuning လုပ်ခြင်းပြည့်စုံသော Training Loop တစ်ခုLearning Curves များကို နားလည်ခြင်းFine-tuning လုပ်ငန်း ပြီးစီးပြီ!အခန်းပြီးဆုံးခြင်း အသိအမှတ်ပြု လက်မှတ်
4. Models နှင့် Tokenizers များကို မျှဝေခြင်း
Hugging Face HubPretrained Models များကို အသုံးပြုခြင်းPretrained Models များကို မျှဝေခြင်းModel Card တစ်ခု တည်ဆောက်ခြင်းအပိုင်း ၁ ပြီးဆုံးပါပြီ!အခန်း (၄) ဆိုင်ရာ မေးခွန်းများ
5. The 🤗 Datasets library
နိဒါန်းကျွန်ုပ်၏ Dataset သည် Hub တွင် မရှိလျှင် ဘာလုပ်ရမလဲ။Slice and Dice လုပ်ဖို့ အချိန်တန်ပြီ။Big Data လား။ 🤗 Datasets က ကူညီပါလိမ့်မယ်။ကိုယ်ပိုင် Dataset တစ်ခု ဖန်တီးခြင်းFAISS ဖြင့် Semantic Search ပြုလုပ်ခြင်း🤗 Datasets၊ အဆင်သင့်ဖြစ်ပါပြီ!အခန်း (၅) ဆိုင်ရာ မေးခွန်းများ
6. The 🤗 Tokenizers library
နိဒါန်းOld Tokenizer တစ်ခုမှ New Tokenizer တစ်ခုကို Training လုပ်ခြင်းFast Tokenizers များ၏ ထူးခြားသော စွမ်းအားများQA Pipeline ရှိ Fast Tokenizers များNormalization နှင့် Pre-tokenizationByte-Pair Encoding TokenizationWordPiece TokenizationUnigram TokenizationTokenizer တစ်ခုကို Block အလိုက် တည်ဆောက်ခြင်းTokenizers၊ အဆင်သင့်ဖြစ်ပါပြီ!အခန်း (၆) ဆိုင်ရာ မေးခွန်းများ
7. Classical NLP Tasks များ
နိဒါန်းToken ClassificationMasked Language Model တစ်ခုကို Fine-tuning လုပ်ခြင်းဘာသာပြန်ခြင်းအနှစ်ချုပ်ဖော်ပြခြင်းCausal Language Model တစ်ခုကို အစကနေ Train လုပ်ခြင်းမေးခွန်းဖြေဆိုခြင်းLLM များကို ကျွမ်းကျင်ခြင်းအခန်း (၇) ဆိုင်ရာ မေးခွန်းများ
8. အကူအညီတောင်းခံနည်း
နိဒါန်းError တစ်ခုကြုံတွေ့ရတဲ့အခါ ဘာလုပ်ရမလဲForums များတွင် အကူအညီတောင်းခံခြင်းTraining Pipeline ကို Debugging လုပ်ခြင်းကောင်းမွန်သော Issue တစ်ခု ရေးသားနည်းအပိုင်း ၂ ပြီးဆုံးပါပြီ!အခန်း (၈) ဆိုင်ရာ မေးခွန်းများ
9. Demos များ တည်ဆောက်ခြင်းနှင့် မျှဝေခြင်း
Gradio နိဒါန်းသင့်ရဲ့ ပထမဆုံး Demo ကို တည်ဆောက်ခြင်းInterface Class ကို နားလည်ခြင်းDemos များကို တခြားသူများနှင့် မျှဝေခြင်းHugging Face Hub နှင့် ပေါင်းစပ်မှုများAdvanced Interface Features များBlocks နိဒါန်းGradio၊ အဆင်သင့်ဖြစ်ပါပြီ!အခန်း (၉) ဆိုင်ရာ မေးခွန်းများ
10. အရည်အသွေးမြင့် Datasets များကို စုစည်းခြင်း
Argilla နိဒါန်းသင့် Argilla Instance ကို တည်ဆောက်ခြင်းသင့် Dataset ကို Argilla သို့ Load လုပ်ခြင်းသင့် Dataset ကို Annotation လုပ်ခြင်းသင့် Annotation လုပ်ထားသော Dataset ကို အသုံးပြုခြင်းArgilla၊ အဆင်သင့်ဖြစ်ပါပြီ!အခန်း (၁၀) ဆိုင်ရာ မေးခွန်းများ
11. Large Language Models များကို Fine-tune လုပ်ခြင်း
နိဒါန်းChat Templates များSFTTrainer ဖြင့် Fine-Tuning လုပ်ခြင်းLoRA (Low-Rank Adaptation)အကဲဖြတ်ခြင်း (Evaluation)နိဂုံးချုပ်စာမေးပွဲ အချိန်!
12. Reasoning Models များ တည်ဆောက်ခြင်း new
နိဒါန်းLLMs များပေါ်တွင် Reinforcement LearningDeepSeek R1 Paper ထဲက Aha MomentDeepSeekMath ရှိ GRPO ကို အဆင့်မြင့် နားလည်ခြင်းTRL တွင် GRPO ကို အကောင်အထည်ဖော်ခြင်းGRPO ဖြင့် Model တစ်ခုကို Fine-tune လုပ်ရန် လက်တွေ့ လေ့ကျင့်ခန်းUnsloth ဖြင့် လက်တွေ့ လေ့ကျင့်ခန်းမကြာမီ လာမည်...
သင်တန်း ဆိုင်ရာ အခမ်းအနားများ
အခန်း (၇) ဆိုင်ရာ မေးခွန်းများ
ဒီအခန်းမှာ သင်ယူခဲ့တာတွေကို စစ်ဆေးကြည့်ရအောင်။
၁။ အောက်ပါ tasks တွေထဲက ဘယ်ဟာတွေကို token classification problem အဖြစ် ပုံဖော်နိုင်သလဲ။
၂။ token classification အတွက် preprocessing ရဲ့ ဘယ်အပိုင်းက အခြား preprocessing pipelines တွေနဲ့ ကွာခြားသလဲ။
၃။ token classification problem တစ်ခုမှာ words တွေကို tokenize လုပ်ပြီး tokens တွေကို label လုပ်ချင်တဲ့အခါ ဘယ်ပြဿနာ ဖြစ်ပေါ်လာသလဲ။
၄။ “Domain adaptation” ဆိုတာ ဘာကိုဆိုလိုသလဲ။
၅။ Masked language modeling problem မှာ labels တွေက ဘာတွေလဲ။
၆။ အောက်ပါ tasks တွေထဲက ဘယ်ဟာတွေကို sequence-to-sequence problem အဖြစ် မြင်နိုင်သလဲ။
၇။ sequence-to-sequence problem အတွက် data ကို မှန်ကန်စွာ preprocess လုပ်ဖို့ နည်းလမ်းက ဘာလဲ။
၈။ sequence-to-sequence problems တွေအတွက် <code> Trainer </code> ရဲ့ သီးခြား subclass တစ်ခု ဘာကြောင့် ရှိတာလဲ။
၁၀။ model အသစ်တစ်ခုကို ဘယ်အချိန်မှာ pretrain လုပ်သင့်လဲ။
၁၁။ language model တစ်ခုကို texts အများကြီးပေါ်မှာ pretrain လုပ်ဖို့ ဘာကြောင့် လွယ်ကူတာလဲ။
၁၂။ question answering task အတွက် data ကို preprocess လုပ်တဲ့အခါ အဓိက စိန်ခေါ်မှုတွေက ဘာတွေလဲ။
၁၃။ question answering မှာ post-processing ကို ပုံမှန်အားဖြင့် ဘယ်လိုလုပ်ဆောင်သလဲ။
ဝေါဟာရ ရှင်းလင်းချက် (Glossary)
- Token Classification Problem: စာသား sequence တစ်ခုအတွင်းရှိ token တစ်ခုစီကို အမျိုးအစားခွဲခြားသတ်မှတ်ခြင်း လုပ်ငန်း (ဥပမာ- Named Entity Recognition)။
- Grammatical Components: စာကြောင်းတစ်ကြောင်းအတွင်းရှိ သဒ္ဒါဆိုင်ရာ အစိတ်အပိုင်းများ (ဥပမာ- noun, verb, adjective)။
- Sequence Classification Problem: စာသား sequence တစ်ခုလုံးကို သတ်မှတ်ထားသော အမျိုးအစားတစ်ခုသို့ ခွဲခြားသတ်မှတ်ခြင်း လုပ်ငန်း။
- Named Entity Recognition (NER): စာသားထဲက လူအမည်၊ နေရာအမည်၊ အဖွဲ့အစည်းအမည် စတဲ့ သီးခြားအမည်တွေကို ရှာဖွေဖော်ထုတ်ခြင်း။
- Preprocessing Pipelines: AI မော်ဒယ်များအတွက် ဒေတာများကို ပြင်ဆင်ရန် အဆင့်ဆင့်လုပ်ဆောင်ရသော လုပ်ငန်းစဉ်များ။
- Tokenize: စာသား (သို့မဟုတ် အခြားဒေတာ) ကို AI မော်ဒယ်များ စီမံဆောင်ရွက်နိုင်ရန် tokens တွေအဖြစ် ပိုင်းခြားပေးသည့် လုပ်ငန်းစဉ်။
- Subword Tokenization Model: စကားလုံးများကို သေးငယ်သော subword units (ဥပမာ- word pieces, byte-pair encodings) များအဖြစ် ပိုင်းခြားသော model။
- Full Tokenization Pipeline: စာသားကို tokens များအဖြစ် ပြောင်းလဲရန် လိုအပ်သော အဆင့်များအားလုံး (ဥပမာ- splitting, subword tokenization, special token addition)။
- Special Tokens: Model များအတွက် အထူးအဓိပ္ပာယ်ရှိသော tokens များ (ဥပမာ-
[CLS],[SEP],[PAD])။ -100(Label): Loss တွက်ချက်မှုတွင် လျစ်လျူရှုရန် သတ်မှတ်ထားသော label တန်ဖိုး။- Truncate: input sequence ကို အရှည်သတ်မှတ်ချက်တစ်ခုအထိ ဖြတ်တောက်ခြင်း။
- Pad: input sequence များကို သတ်မှတ်ထားသော အရှည်အထိ တူညီအောင် အပို tokens များထည့်သွင်းခြင်း။
- Labels: AI မော်ဒယ်ကို လေ့ကျင့်ရာတွင် အသုံးပြုသော မှန်ကန်သည့် output တန်ဖိုးများ။
- Original Labels: preprocessing မလုပ်မီက ဒေတာနှင့် တွဲလျက်ပါရှိသော မူရင်း labels များ။
- Align Labels: original labels များကို tokenization ပြုလုပ်ပြီးနောက် ရရှိလာသော tokens များနှင့် ကိုက်ညီအောင် ချိန်ညှိခြင်း။
- Domain Adaptation: မော်ဒယ်တစ်ခုကို မူလလေ့ကျင့်ထားသော domain မှ ကွဲပြားခြားနားသော domain အသစ်တစ်ခုတွင် ပိုမိုကောင်းမွန်စွာ လုပ်ဆောင်နိုင်စေရန် ချိန်ညှိခြင်း။
- Inference: လေ့ကျင့်ပြီးသား Artificial Intelligence (AI) မော်ဒယ်တစ်ခုကို အသုံးပြုပြီး input data ကနေ ခန့်မှန်းချက်တွေ ဒါမှမဟုတ် output တွေကို ထုတ်လုပ်တဲ့ လုပ်ငန်းစဉ်။
- Fine-tune: ကြိုတင်လေ့ကျင့်ထားပြီးသား (pre-trained) မော်ဒယ်တစ်ခုကို သီးခြားလုပ်ငန်းတစ်ခု (specific task) အတွက် အနည်းငယ်သော ဒေတာနဲ့ ထပ်မံလေ့ကျင့်ပေးခြင်းကို ဆိုလိုပါတယ်။
- Robust: မတူညီသော input များ သို့မဟုတ် အခြေအနေများအောက်တွင် ကောင်းစွာလုပ်ဆောင်နိုင်ခြင်း။
- Masked Language Modeling (MLM): စာကြောင်းတစ်ခုထဲမှ စကားလုံးအချို့ကို ဝှက်ထားပြီး ၎င်းတို့ကို ခန့်မှန်းစေခြင်းဖြင့် model ကို လေ့ကျင့်သော task (BERT ကဲ့သို့)။
- Input Sentence: model သို့ ပေးပို့သော စာကြောင်း။
- Randomly Masked: ကျပန်းရွေးချယ်ထားသော စကားလုံးများကို ဖုံးကွယ်ထားခြင်း။
- Original Input Tokens: mask မလုပ်မီက မူရင်း input sequence ရှိ tokens များ။
- Causal Language Modeling: စာကြောင်းတစ်ခု၏ နောက်ဆက်တွဲ token (စကားလုံး) ကို ခန့်မှန်းခြင်းဖြင့် model ကို လေ့ကျင့်သော task (GPT-2 ကဲ့သို့)။
- Data Augmentation: Training data ကို အမျိုးမျိုးသော နည်းလမ်းများဖြင့် တိုးချဲ့ခြင်း။
- Sequence-to-sequence Problem: input sequence တစ်ခုမှ output sequence တစ်ခုသို့ ပြောင်းလဲခြင်း လုပ်ငန်း (ဥပမာ- translation, summarization)။
- Summarization: ရှည်လျားသော စာသားတစ်ခု၏ အနှစ်ချုပ်ကို ထုတ်လုပ်ခြင်း။
- Question Answering Problem: ပေးထားသော စာသားတစ်ခုမှ မေးခွန်းတစ်ခု၏ အဖြေကို ရှာဖွေခြင်း။
- Translation Problem: ဘာသာစကားတစ်ခုမှ အခြားဘာသာစကားတစ်ခုသို့ စာသားများကို ဘာသာပြန်ခြင်း။
- Inputs: model သို့ ပေးပို့သော ဒေတာ။
- Targets: model ၏ လိုချင်သော output များ (labels)။
- Context Manager (Python):
withstatement ကို အသုံးပြု၍ အရင်းအမြစ်များကို စီမံခန့်ခွဲရန် ကူညီပေးသော Python အင်္ဂါရပ်။ Trainer: Hugging Face Transformers library မှ model များကို လေ့ကျင့်ရန်အတွက် မြင့်မားသောအဆင့် (high-level) API။- Custom Loss: ပုံမှန် loss function မဟုတ်ဘဲ သီးခြားလိုအပ်ချက်များအတွက် ဖန်တီးထားသော loss function။
- Evaluation Loop: model ၏ စွမ်းဆောင်ရည်ကို အကဲဖြတ်ရန် လုပ်ဆောင်သော လုပ်ငန်းစဉ်။
generate()Method: Sequence-to-sequence models များတွင် text ကို generate (ထုတ်လုပ်) ရန် အသုံးပြုသော method။- Encoder: Transformer Architecture ၏ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး input data (ဥပမာ- စာသား) ကို နားလည်ပြီး ကိုယ်စားပြုတဲ့ အချက်အလက် (representation) အဖြစ် ပြောင်းလဲပေးပါတယ်။
- Decoder: Transformer Architecture ၏ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး encoder ကနေ ရရှိတဲ့ အချက်အလက် (representation) ကို အသုံးပြုပြီး output data (ဥပမာ- ဘာသာပြန်ထားတဲ့ စာသား) ကို ထုတ်ပေးပါတယ်။
compile()Method: Keras API တွင် model ကို training အတွက် ပြင်ဆင်ရန် အသုံးပြုသော method။ ၎င်းသည် optimizer, loss function နှင့် metrics များကို သတ်မှတ်သည်။- Unsupervised Learning: Labels မပါဝင်သော data များကို အသုံးပြု၍ model ကို လေ့ကျင့်ခြင်း။
- Loss Function: Model ၏ ခန့်မှန်းချက်များနှင့် အမှန်တကယ် labels များကြား ကွာခြားမှုကို တိုင်းတာသော function။
model.internal_loss_output: model ၏အတွင်းပိုင်းမှ ထုတ်လုပ်သော loss တန်ဖိုး။model.fit(): Keras API တွင် model ကို training data ဖြင့် လေ့ကျင့်ရန် အသုံးပြုသော method။- Pretrain a New Model: မည်သည့် ကြိုတင်လေ့ကျင့်မှုမျှ မရှိဘဲ လုံးဝအသစ်ကနေ model တစ်ခုကို လေ့ကျင့်ခြင်း။
- Compute Costs: AI model များ လေ့ကျင့်ရန်အတွက် လိုအပ်သော ကွန်ပျူတာ အရင်းအမြစ်များ (CPU, GPU) ၏ ကုန်ကျစရိတ်။
- Self-supervised Problem: Input data ကိုယ်တိုင်ကနေ labels တွေကို ဖန်တီးယူပြီး model ကို လေ့ကျင့်တဲ့ ပြဿနာ (ဥပမာ- language modeling)။
- Contexts (QA): မေးခွန်းရဲ့ အဖြေပါဝင်နိုင်တဲ့ ရှည်လျားသော စာသား။
- Training Features: training အတွက် ပြင်ဆင်ထားသော input data ၏ အစိတ်အပိုင်းများ။
- Answer Span: မေးခွန်းရဲ့ အဖြေပါဝင်တဲ့ text ထဲက အပိုင်း။
- Start/End Token: answer span ရဲ့ စတင်တဲ့ token နဲ့ ဆုံးဖြတ်တဲ့ token ရဲ့ အနေအထား။
- Post-processing: Model ၏ output များကို နောက်ဆုံးအသုံးပြုမှုအတွက် ပြင်ဆင်ခြင်း လုပ်ငန်းစဉ်။
- Decode: token IDs များကို မူရင်းစာသား (သို့မဟုတ် အခြားပုံစံ) အဖြစ် ပြန်လည်ပြောင်းလဲခြင်း။
- Score: Model က ခန့်မှန်းချက်တစ်ခုအတွက် ပေးသော ယုံကြည်စိတ်ချရမှု တန်ဖိုး။
Trainer ရဲ့ သီးခြား subclass တစ်ခု ဘာကြောင့် ရှိတာလဲ။၉။