10/08/2025
LLM in distributed training
Pipeline and tensor parallelism
Learn Artificial Intelligence , NLP, programming languages and many other technologies.
Nanosoft software development team မှ .Net, Python, PHP , IoT, AI စသည့် နည်းပညာများနှင့်ပက်သက်သော သင်ခန်းစာများကို ဆွေးနွေးသော page ဖြစ်ပြီး အခါအားလျော်စွာ online သင်တန်းများ၊ အပြင်သင်တန်းများလည်းဖွင့်လှစ်သင်ကြားပေးနေပါသည်။
10/08/2025
LLM in distributed training
Pipeline and tensor parallelism
24/04/2023
Building a basic TF-IDF vectorizer using Python
TFIDF သီအိုရီအကြောင်းအသေးစိပ်ကို https://www.facebook.com/Programminglanguagesforbeginner/posts/712919480631862 ဤလင့်တွင်ဆွေးနွေးပေးခဲ့ပြီးဖြစ်သည်။ Sklearn မှ TFIDF feature vectorizer တွင်သုံးသော Formula သည် literature များတွင်ပါ၀င်သော Formula နှင့် အနည်းငယ် ကွဲလွဲမှုရှိပါသည်။ သုတေသနလုပ်နေသော Mater, PhD candidate များအနေဖြင့် sklearn မှထုတ်ပေး သော တန်ဖိုးများကို သီအိုရီ နှင့်တကွ တိုက်ဆိုင်စစ်ဆေးပြီး ရှင်းပြဖို့လိုပါတယ်။ TFIDF သည် ရိုးရှင်းပြီး အသုံးများသော Feature method တမျိူးဖြစ်သော်လည်း နားလည်မှုလွဲတတ်ပါသည်။ ဤသင်ခန်းစာ တွင်၄င်းတို့ကိုနမှုနာနှင့်တကွရှင်းပြထားပါသည်။
Advantages of TF-IDF
နားလည်ရလွယ်ပြီး တွက်ရလွယ်ကူပါတယ် ။ Document တစ်ခုအတွက် စာလုံးတစ်လုံး၏ အရေးပါမှုကို statistically အလွယ်တကူ သိနိုင်ပါတယ်။
TF-IDF vector တန်ဖိုးများသည် စာလုံးတစ်လုံးနှင့် Document တစ်ခုကြား ဆက်သွယ်မှု ကိုသာ မက၊ စာလုံးတစ်လုံးနှင့် corpus အတွင်းရှိ Document အားလုံးကြား ဆက်သွယ်မှုကို ပေးနိုင်ပါသည်။
TF-IDF တန်ဖိုးများပေါ်မှုတည်၍ Document များကြားက တူညီမှု (Document Similarity) ကို ရှာနိုင်ပါသည်။
Disadvantages of TF-IDF
TF-IDF သည် BOW ကဲ့သို့ပင် Term frequency ကိုအခြေခံပြီးတွက်တာဖြစ်တဲ့အတွက် ၄င်းစာလုံး၏ Text အတွင်းရှိ position ၊ semantic meaning စသည်တို့ကို တွက်ချက် မ ပေးနိုင်ပါဘူး။
အထက်ပါအကြောင်းပြချက်များကြောင့် lexical level feature (စာလုံးပေါင်းအရ)ကိုပဲ ထုတ်ပေးနိုင်ပါတယ်။
Vocabulary length သည် TF-IDF vector size ဖြစ်တဲ့အတွက် ကြီးမားသော corpus များအတွက် memory များများ လိုအပ်ပါသည်။
အထက်ပါဆွေးနွေးချက်ကို Web verstion ဖြင့်ဖတ်လိုလျှင် https://mteasylearn.com/TFIDFPython လင့်တွင် သွားရောက်ဖတ်ရှူနိုင်ပါသည်။
21/04/2023
👉TF-IDF သည် Term Frequency-Inverse Document Frequency ဖြစ်ပီး Document collection(Corpus)အတွင်းရှိ Document တစ်ခုနှင့် စာလုံးတစ်လုံး အကြားဆက်စပ်မှုကို statistically နည်း (frequency ပေါ်မှုတည်၍) အရတွက်ချက်ခြင်းဖြစ်ပါသည်။
👉စာလုံးတစ်လုံး၏ weight ဆိုသည်မှာ ၄င်းစာလုံး၏ document တစ်ခုတွင် အရေးပါမှုကိုဆိုလိုပါသည်။
👉Term Frequency (TF) – Document တစ်ခုအတွင်းရှိစာလုံးတစ်လုံး၏အရေးပါမှုကို ၄င်းစာလုံး၏ ၄င်း Document အတွင်းပါ၀င်မှု ၊ တနည်းအားဖြင့် Term Frequency နှင့် တိုင်းတာနိုင်ပါသည်။
👉စာလုံးတစ်လုံး တစ်ခုသည် Corpus အတွင်းရှိ Document ဘယ်နှစ်ခုတွင်ပါ၀င်နေလဲ (how common or uncommon ) ၊ တနည်းအားဖြင့် Corpus အတွင်းရှိ Document အားလုံးတွင်စာလုံးတစ်လုံး၏ အရေးပါမှုကိုတော့ Inverse Document Frequency ဖြင့်တိုင်းတာနိုင်ပါသည်။
🤝အထက်ပါဆွေးနွေးချက်ကို web version ဖြင့်ဖတ်လိုလျှင် https://mteasylearn.com/TFIDF ဖေါ်ပြပါ လင့်တွင်သွားရောက်ဖတ်ရှူနိုင်ပါသည်။
10/04/2023
Understanding a basic CountVectorizer
အထက်တွင်တွေ့ခဲ့ပြီးသည့်အတိုင်း word တစ်လုံးတွင် Term Frequency(TF) နှင့် Document Frequency (DF) ပိုင်ဆိုင်ကြပီး Document တစ်ခု၏ အကြောင်းအရာသည် ၄င်း document ထဲတွင်ပါ၀င်သော TF နှင့်တိုက်ရိုက် သက်ဆိုင်နေပေသည်။ ဥပမာ ပုဂံသမိုင်းရေးထားသောစာအုပ်တွင် အနော်ရထာ၊ ကျန်စစ်သား၊ အာနဒ္ဒါ၊ သဗ္ဗေညု စသည့် စာလုံးတို့သည် ကြိမ်ဖန်များစွာပါ၀င်နေမည်ဖြစ်ပြီး programming အကြောင်းရေးသားထားသော စာအုပ်တွင် OOP, function, class, keywords စသည့်စာလုံးတို့ကြိမ်ဖန်များစွာပါ၀င်နေပေလိမ့်မည်။ ထို့ကြောင့် document တစ်ခုကိုအကြောင်းအရာကို ၄င်းတို့ထဲတွင်ပါ၀င်နေသော စာလုံးများ၏ Team Frequency(TF) က ဖေါ်ပြပေး နိုင် ပါသည်။ ထိုအယူအဆသည် Document တစ်ခု အတွက် မှန်သော်လည်း corpus အတွင်းရှိ Document တစ်ခုတွင်ပါ၀င်သော Term weight ကိုရှာလျှင်တော့ မမှန်နိုင်တော့ပေ။ တချို့စာလုံး များသည် corpus အတွင်းရှိ document အားလုံးတွင်ပါ၀င်မှုအရေအတွက်များသော်လည်း ၄င်းသည် document ၏ အကြောင်းအရာကို ဖေါ်ပြ နိုင်ခြင်း မရှိပေ (ဥပမာ a, an, the)။ တချို့စာလုံးများသည် document များထဲတွင် ကြိမ်ဖန်များစွာ မပါ၀င်သော်လည်း information များစွာပေးနိုင်ပါသည်။ ဥပမာ C # document များစုထားသော corpus တစ်ခု တွင် “encapsulation” ဆိုသည့် စာလုံးသည် အကြိမ်အရေအတွက်အားဖြင့်များစွာပါလေ့မရှိသော်လည်း information များစွာပေးနိုင်ပါသည်။ ထို့ကြောင့် Corpus အတွင်းရှိ Document တစ်ခုနှင့် words နှင့် တို့၏ ဆက်စပ်မှုကို Term Frequecncy တစ်မျိူးတည်းနှင့်ဆုံးဖြတ်၍ မရနိုင်တော့ပေ။ ၄င်းပြဿနာကို TF-IDF သုံး၍ ဖြေရှင်းနိုင်ပါသည်။
အထက်ပါဆွေးနွေးချက်အား Web Version ဖြင့်ဖတ်လိုလျှင် https://mteasylearn.com/CounterVectorizer လင့်တွင်သွားရောက်ဖတ်ရှူနိုင်ပါသည်။
05/04/2023
Exploring the Bag-of-Words Architecture
====================================
Bag-of-words(BOW) သည် Text Data များကို ဖေါ်ပြခြင်း( Text Representation) နည်းလမ်း တစ်ခုဖြစ်ပြီး Machine Learning Algorithms များဖြင့်ပေါင်းစပ်အသုံးပြုကြပါသည်။ Machine Learning algorithms များသည် raw text များဖြင့် တိုက်ရိုက်အလုပ်မလုပ်နိုင်တဲ့အတွက် ၄င်းတို့ကို ဂဏန်း များအဖြစ်ပြောင်းလဲပေးဖို့လိုပါတယ်။ Vetorization( word to number vector) လုပ်တယ်လို့ ခေါ် ပါတယ်။ဝါကျများ၏ အလျား(sentence length) သည် ၄င်းဝါကျများတွင် ပါ၀င်ဖွဲ့စည်းထားသော စာ လုံးအရေအတွက်ကိုဆိုလိုပါသည် ။ ဥပမာ “the cat sat” ၏ length သည် 3 ဖြစ်ပြီး “the cat in the hat” ၏ length သည် 5 ဖြစ်ပါသည် ၄င်းText တို့ကို matrix ပုံစံပြောင်းလျှင် အောက်ပါ အတိုင်း matrix သည် rectangle မကျတာကိုတွေ့ရမှာဖြစ်ပါတယ် ။
Matrix သည် rectangle shape ရှိရမည်ဆိုတာကို ကျွန်တော်တို့ အထက်တန်းကျောင်းသား ဘ၀က တည်း ကသိရှိခဲ့ပြီဖြစ်ပါတယ် ။ sentence length မတူညီသည့်အတွက် ဤပြသနာဖြစ်ပေါ် လာရ ခြင်းဖြစ်ပါတယ်။ BOW သုံးရခြင်း၏အဓိကရည်ရွယ်ချက်မှာ
Words များကို ဂဏန်းများအဖြစ်ပြောင်းလဲရန် (Convert into vector of numbers)
Length အမျိူးမျိူးရှိသော ဝါကျများကို တူညီအောင် ပြုလုပ်ရန်( convert variable length text to fixed-length text)
အထက်ပါဆွေးနွေးချက်ကို web version ဖြင့်ဖတ်လ်ုလျှင်အောက်ပါလင့်တွင် သွားရောက်ဖတ်ရှူနိုင်ပါသည်
https://mteasylearn.com/BOW
02/04/2023
Vectors and Matrices
=========================
Text များကို preprocessing လုပ်ပြီး Vocabularyဖန်တီးခဲ့သည့်အကြောင်း ရှေ့အခန်းတွင် ဆွေးနွေး ပေးခဲ့ပါသည်။ ကွန်ပြူတာများသည် စာလုံးများ (words) များကို နားမလည်ဘဲ ဂဏန်း များ ကိုသာ နားလည် နိုင်ပါသည်။ ထို့ကြောင့် စာလုံးများကို ဂဏန်းများ အဖြစ်ပြောင်း လဲဖေါ်ပြပေးရမှာ ဖြစ်ပါသည်။ စာလုံးများမှ ဂဏန်းများ အဖြစ် ပြောင်းလဲခြင်း ကို Vectorization ဟု ခေါ်ပါသည်။ ထိုသို့ ပြောင်းလဲဖေါ်ပြရာတွင်လည်း မှုလ စာလုံး၏ information များ ပါအောင် ဆောင် ရွက်ရမှာဘဲဖြစ်ပါတယ် ။ စာလုံးများ၏ တန်ဖိုး (numbers) များကို vectors ပုံစံဖြင့် ဖေါ်ပြသည့် အတွက် Vectorization ဟု ခေါ်ဆိုခြင်းဖြစ်ပါသည်။ Vectorization သည် Text တွေကို ဂဏန်းများ ဖြင့် ဖေါ်ပြသော Text representation ပင်ဖြစ်ပါသည်။ ၄င်း words များသည် preprocessing အဆင့်မှ ထွက်လာသော Vocabulary File ထဲရှိ words များဖြစ်ပြီး ၄င်း Dictonary words များကို Machine Learning Model တွင် Features အဖြစ်ခေါ်ပါသည်။ ထို့ကြောင့် Vectorization သည် Feature extraction ပင်ဖြစ်ပါသည်။ Raw Data များမှ အရေးပါသော Vocabularywords များဆွဲထုတ်ပြီး ၄င်း words များအား ဂဏန်း အဖြစ်ပြောင်းပေးခြင်းပင်ဖြစ်ပါသည်။ စာလုံးများ၏ data structures ကို vectors ၊ matrix တို့နှင့် ဖေါ်ပြ နိုင်ပါသည်။ one row သို့မဟုတ် one column ရှိသော array ကို vector ဟုခေါ်ပြီး one row , one Column နှင့် အထက်ဆိုပါက matrix ဖြစ်ပါသည်။ ထို့ကြောင့် 1x3 or 3x1 matrix သည်လည်း vector တစ်ခုဘဲဖြစ်ပါသည်။
Web Version ဖြင့်ဖတ်လိုကအောက်ပါလင့်တွင်သွားရောက်ဖတ်ရှူနိုင်ပါသည်။
https://mteasylearn.com/Matrices%20Vs%20Vectors
28/03/2023
Machine Algorithm များသည် input features ပေါ်မှုတည်ပြိး အလုပ် လုပ်တာဖြစ်သည့်အတွက် ၄င်းတို့၏ စွမ်းဆောင်ရည်သည် input features များပေါ်တွင် မှုတည်လျှက်ရှိပါသည်။ မည်မျှကောင်းသည့် algorithm ဖြစ်ပါစေ အမှိုက်ထည့်လျှင်တော့ အမှိုက်ပြန်ထွက်လာမည် (Trash in , Trash Out) ဖြစ်ပါသည်။ ထို့ကြောင့် input feature များကို ကောင်းမွန်အောင် ပြုလုပ်ဖို့လုပ်မည်ဖြစ်ပါသည်။ ၄င်းကို Normalization လုပ်သည်ဟုခေါ်သည်။ အင်္ဂလိပ်စာလုံးတစ်လုံးတွင် Word Form မျိူးစုံရှိသည့်အတွက် ၄င်း Word Form အားလုံးကို Vocabularyထဲတွင် ထည့်လျှင် စာလုံးဖေါင်းပွမှုဖြစ်စေနိုင်ပါသည်။ ထို့ကြောင့် ၄င်းစာလုံးများ၏ root form ကိုဘဲ Vocabularyထဲသို့ ထည့်ရမည်ဖြစ်ပါတယ်။ ဥပမာ car,cars, car’s စာလုံးအားလုံး၏ root word သည် car ဖြစ်ပါသည် ထို့ကြောင့် text ထဲရှိ ၄င်းစာလုံးအားလုံးကို car အဖြစ်ပြောင်းပေးရမည် ဖြစ်ပါသည်။ Text များကို Normalization လုပ်ခြင်းသည် Text preprocessing လုပ်ခြင်း အဆင့် တွင် ပါ၀င်ပါသည်။
Web version ဖြင့်ဖတ်လိုလျှင်ဖေါ်ပြပါလင့်တွင်သွားရောက်ဖတ်ရှူနိုင်ပါသည်။
https://mteasylearn.com/%20Construction_Vocabulary_NLP
27/03/2023
Web Scrapping using Python
Natural Language Processing တွင် research လုပ်ရန်အတွက် Text corpora (large unstructured text) များသည် အရေးကြီးပါသည်။ NLP researcher များသည် မိမိသုတေသန လုပ်လိုသော နယ်ပယ် အတွက် corpus များအား အရင်ဆုံး စုဆောင်းဖို့လိုအပ်ပါသည်။ ဥပမာ ကွန်ပြူတာ ၊လက်ပ်တော့ စသည့် စျေးကွက်တစ်ခုအတွက် sentiment analysis system တစ်ခုတည်ဆောင်ရန်အတွက် ၄င်း တို့နှင့်ပက်သက်သော data များကို ရှာဖွေရမှာဖြစ်ပါသည်။ Web-site မှ Data များကို စုခြင်းကို Web Scrapping လုပ်သည်ဟုခေါ်ပါသည်။ ဖေါ်ပြပါ https://webscraper.io/test-sites/e-commerce/allinone/computers/laptops computer store site မှ data များကို python ၏ BeautifulSoup library ဖြင့် web scraping ပြုလုပ် သွားမှာ ဖြစ်ပါသည်။
Web Vesion ဖြင့်ဖတ်လိုလျှင်အောက်တွင်သွားရောက် ဖတ်နိုင်ပါသည် ။
https://mteasylearn.com/WebScrapping
23/03/2023
Textblob
Textblob သည် sentiment analysis, POS tagging, translation, အစရှိသည်တို့အတွက် ထောက်ပံ့ပေးထားသော နောက်ထပ် နာမည်ကြီး library တစ်ခုဖြစ်ပါသည်။ textblob ကိုအသုံးပြုနိုင်ရန်အတွက် textblob ကို install ရပါမည်။ cmd မှ တဆင့် install ၍ရသလို jupyter မှတဆင့် အောက်ပါအတိုင်း install လည်းရပါတယ်။
Web Version ဖြင့်ဖတ်လိုလျှင် အောက်ပါလင့်တွင်သွားရောက်ဖတ်ရှူနိုင်ပါသည်။
https://mteasylearn.com/Python%20Libraries%20for%20NLP
21/03/2023
Text processing
Text processing ဆိုသည်မှာ Text များကို analyze လုပ်ခြင်းဖြစ်ပါသည်။ Machine Learning Model များသည် Text များကို ခွဲခြမ်းစိပ်ဖြာရန်၊ လိုသလို ပြုပြင်ပြောင်းလဲနိုင်ရန်(manipulation) အတွက် Text များကို structured information များအဖြစ်ပြောင်းပေးရန် Text processing ပြုလုပ်ရန် လိုပါသည်။ ဤစာအုပ်မှာတော့ NLTK ကိုအသုံးပြုပြီး Text Processing လုပ်ခြင်းကို ဆွေးနွေး ပေးသွား မှာဖြစ်ပါသည်။ NLTK သည် Text များကို vector အဖြစ်သိုပြောင်းပေးနိုင်ပြီး Documents များကို words, alphabets, sentences များအဖြစ်သို့ ခွဲထုတ်ပေးခြင်းစသည့် tokenization လုပ်ငန်း များကိုပြုလုပ်နိုင်ပါသည်။ NLTK ကို jupyter ဖြင့်အသုံးပြု ကြည့်ကြရအောင်။ အထက်ပါပုံအတိုင်း Python 3 ကိုရွေးပေးပါ။ အောက်ဖေါ်ပြပါပုံအတိုင်း nltk library ကိုအသုံးပြု၍ word tokenization ပြုလုပ်ပေးသွား မှာ ဖြစ် ပါတယ်။
Web version ဖြင့်ဖတ်လိုလျှင် အောက်ပါလင့်တွင်သွားရောက်ဖတ်ရှူနိုင်ပါသည်။
https://mteasylearn.com/Text%20Processing