Similar Searching
Vector database တွေမှာသုံးတဲ့ Similar Searching ဆိုတာဘာလဲ။

I am an artificial intelligence model builder in Myanmar, and an educator about programming and machine learning.
Search for a command to run...
Vector database တွေမှာသုံးတဲ့ Similar Searching ဆိုတာဘာလဲ။

I am an artificial intelligence model builder in Myanmar, and an educator about programming and machine learning.
No comments yet. Be the first to comment.
In this series, our contributor will write about AI, AI related concerns, etc...
transfer learning ကိုမြန်မာလို လေ့လာကြမယ်။
ဒီ post လေးထဲမှာတော့ Regional NAT Gateway နဲ့ Zonal NAT Gateway ကွာခြားချက်တွေကို နှိုင်းယှဉ်ပြသွားမှာဘဲ ဖြစ်ပါတယ်။ ပထဆုံးအနေနဲ့ NAT Gateway ဆိုတာ ဘာလဲ ဘာအတွက် လိုအပ်တာလဲဆိုတာကို အရင်ပြောပြပေးပါမယ်။ P

High Level ရေးထားတာပါ ဒါပေမဲ့ လွယ်ပါတယ် ကိုယ့်မှာ AWS Infra တွေရှိတယ်ဆို တွေ့သမျှ metric တွေကို alarms တွေလုပ်ပြီး notification ယူမနေဘဲ တကယ် effective ဖြစ်တဲ့ metric တွေကိုမှ CloudWatch ရဲ့ alarm feature တွေနဲ့ ပေါင်းပြီး ပို့စေချင်ပါတယ်။ ဥပမာ prod...

ကိုယ့်ရဲ့ data center (on-prem) network နဲ့ AWS ချိတ်ဆက်ဖို့ လိုလာပြီဆိုရင် ဘယ်လို ချိတ်ဆက်ကြမလဲ? အပိုင်း (၂) မှာ တော့ Direct connect အကြောင်းကို ဆွေးနွေး သွားမှာ ဖြစ်ပါတယ်။ အပိုင်း (၁) Site-to-site VPN အကြောင်းကို လေ့လာချင်ရင်တော့ အောက်ပါ link မှာ ...

ကိုယ့်ရဲ့ data center (on-prem) network နဲ့ AWS ချိတ်ဆက်ဖို့ လိုလာပြီဆိုရင် ချိတ်ဆက်နိုင်တဲ့ နည်း (၂) နည်း ရှိပါတယ်။ 1. Site-to-Site VPN (Virtual Private Network) 2. Direct connect Site-to-Site VPN - On-prem network နဲ့ AWS resources တွေ ချိတ်ဆက်တဲ့...

လွန်ခဲ့တဲ့အပတ်က ရုံးက Designer တွေနဲ့ တော်ကီပွားရင်း Accessibility နဲ့ပတ်သတ်တာတွေ သူတို့ကို ရှင်းပြဖြစ်တယ်။ ကိုယ်တိုင်ကလည်း အရင်ကတည်းက ဒီ topic ကိုစိတ်ဝင်စားလို့ လေ့လာနေတာဆိုတော့ အခွင့်အရေးရရင် ရသလို sharing လုပ်ဖြစ်တယ်။ အဓိကက Accessibility နဲ့ပတ်သတ်...

တူတဲ့ Data တွေကိုရှာတယ်ဆိုတာ search engine တွေ၊ database တွေနဲ့ application တွေမှာ ပုံမှန်လုပ်နေရတဲ့အလုပ်တခုဖြစ်ပါတယ်။
ပုံမှန် Database တခုမှာဆိုရင်တော့ data တွေကိုရှာတယ်ဆိုရင် Database condition query တခုတော့အနည်းဆုံးသွင်းရပါတယ်။ ဥပမာ။ လစာ၃သိန်းအထက် အမျိုးသားဝန်ထမ်းတွေကို ရှာတဲ့အဖြစ်လိုမျိုးပေါ့။ ဒီနေရာမှာဆိုရင်တော့ လစာ၃သိန်းအထက်ရော၊ အမျိုးသားဖြစ်တယ်ဆိုတာရော တူညီတဲ့အချက်၂ချက်လိုအပ်ပါတယ်။
ဒါပေမဲ့ တောင်းဆိုတဲ့ conditions တွေက ကျယ်ပြန့်ပြီးတော့ ရှာဖွေရခက်တဲ့ data အမျိုးအစားဆိုရင်ရော။ ဥပမာ။ ဖိနပ်အနက်ပုံတွေပဲထုတ်ပေးပါ။
ဒီလိုနေရာမျိုးမှာ Database တွေအနေနဲ့ အခြေအနေတွေကို ရိုးရိုးစစ်ထုတ်ရုံတင်မကပဲ query ထဲမှာ ပါဝင်တဲ့အကြောင်းအရာကိုပါနားလည်ဖို့လိုပါတယ်။ ကျွန်တော်တို့ရဲ့ data ထဲမှာ ဖိနပ်ပုံတွေတင်မကပဲ အခြားဝတ္ထုတွေလည်းပါနိုင်ပါတယ်။ အဲ့ဖိနပ်တွေထဲကမှ ဖိနပ်အနက်ဆိုရင် ပိုစစ်ထုတ်ရပါမယ်။ တကယ်လို့သာ Nike ဖိနပ်အနက်တွေပဲတောင်းရင်တော့ ပိုစစ်ထုတ်ရနိုင်ပါတယ်။ ဒီလိုမျိုး နားလည်ဖို့ဆိုရင်တော့ data တွေကို သိုလှောင်တဲ့နေရာမှာကတည်းကိုက နားလည်ရလွယ်တဲ့ပုံစံအနေနဲ့ သိမ်းထားဖို့လိုအပ်လာပါပြီ။ ပြီးတော့ အပေါ်ကအခြေအနေမျိုးမှာဆိုရင်လည်း data က တခု၂ခုမဟုတ်ပဲ သန်းနဲ့ချီတဲ့ပမာဏတခုကို ကိုင်တွယ်ရတဲ့အခြေအနေဆိုတာကိုလည်း ထည့်စဉ်းစားဖို့လိုပါမယ်။
Data ထဲမှာပါတဲ့အဓိပ္ပါယ်တွေကိုနားလည်ဖို့အတွက်ဆိုရင် machine learning နယ်ပယ်မှာတော့ data တွေကို ဂဏန်းတွေအနေနဲ့ ပြောင်းလဲပေးရပါတယ်။ ကွန်ပျူတာသည် "က" ဆိုတဲ့ စကားလုံးကို "က" ဖြစ်ကြောင်းမသိပါဘူး။ "က" စကားလုံးကို ကိုယ်စားပြုတဲ့ binary number အနေနဲ့ပဲ သိုလှောင်ထားတာဖြစ်ပါတယ်။ အဲ့ဒီ binary number အတွဲကြီးသည်လည်း "က" ဖြစ်ကြောင်း ကွန်ပျူတာကနားမလည်ပါဘူး။ အသုံးပြုတွေကသာ ဒီစကားလုံးက "က"ဖြစ်ကြောင်းနားလည်တာပါ။
ကွန်ပျူတာကို တူညီကြောင်းတွက်ချက်ဖို့အတွက်ဆိုရင် စကားလုံးတွေ၊ ဓာတ်ပုံတွေကို vector embedding အဖြစ်ပြောင်းလဲရပါတယ်။ ရရှိလာတဲ့ vector တွေကို vector space ထဲမှာ တခုနဲ့တခုဘယ်လောက်အကွာအဝေးနီးစပ်လဲဆိုတာကို တွက်ပြီးတော့ နီးစပ်တဲ့ vector တွေသည် similar ဖြစ်တဲ့ data တွေဖြစ်ကြောင်းပြန်သိနိုင်ပါတယ်။
ဒါဆိုရင် စာသားတွေ၊ ပုံတွေကို vector space ထဲမှာနေရာချဖို့ embedding တွက်ထုတ်ပေးတဲ့ program တွေသည် ဘယ်လောက်တိတိကျကျတွက်ထုတ်ပေးနိုင်လဲဆိုတာ အရေးပါတယ်။ လက်ရှိမှာတော့ Word2Vec, Universal Sentence Encoder(USE), GLoVE လို model တွေသည် စာသားတန်ဖိုးတွေကို vector representation (embedding) တွေအနေနဲ့ ပြောင်းလဲပေးဖို့သုံးပါတယ်။ VGG, Inception လို model တွေကိုတော့ ပုံတွေကနေ embedding ပြောင်းဖို့အသုံးများပါတယ်။ အတိုချုံးရရင်တော့ ပုံတခု၊ စာသားတခုကို vector တန်ဖိုးတွေအနေနှင့် ပြောင်းလဲပေးတဲ့ Machine learning program တွေလိုအပ်ပါတယ်။
ရလာတဲ့ vector တန်ဖိုးတွေသည် vector space ပေါ်မှာ တခုနှင့်တခု ဘယ်လောက်နီးစပ်လဲဆိုတာကို မှန်မှန်ကန်ကန်နှင့် မြန်မြန်ဆန်ဆန်တွက်ထုတ်ပေးနိုင်မယ့် program တွေလည်း လိုအပ်ပါတယ်။ ဒီ program တွေသည် vector တခုနှင့်တခုနီးစပ်ကြောင်း တွက်ချက်မလဲဆိုတဲ့ အတိုင်းအတာ metrics တွေလည်း စဉ်းစားရပါမယ်။
Machine learning မှာ အသုံးအများဆုံး distance metrics တွေသည် Euclidean, Manhattan, Cosine, နှင့် Chebyshev metrics တွေဖြစ်ပါတယ်။ ဒါတွေက Geometry တွေရဲ့ distance တွက်ထုတ်တဲ့ အခြေခံဖော်မြူလာတွေဖြစ်ပါတယ်။ ဘယ် distance metrics ကိုသုံးမလဲဆိုတာကတော့ ကိုယ့်ရဲ့အသုံးပြုမယ့်နေရာပေါ်မူတည်ပါတယ်။
အပေါ်က၂ခုကိုအနှစ်ပြန်ချုပ်ရရင် ကျွန်တော်တို့မှာ ကိုယ့်ရဲ့ Data ကိုကိုယ်စားပြုတဲ့ vector embedding တွေလည်းရှိလာပါပြီ။ အဲ့ vector embedding တခုနဲ့တခုကြား distance တွေကိုတိုင်းတာမယ့် Metrics တွေလည်း ရှိလာပါပြီ။ ဒါဆိုရင် similar search စလုပ်လို့ရပါပြီ။
ဒီနေရာမှာ K Nearest Neighbors algorithm ဝင်လာပါတယ်။ KNN သည် vector embedding တွေတခုနဲ့တခုကြားမှာ ဘယ်လောက်နီးစပ်ဆိုတာကိုတွက်ပြီးတော့ အနီးဆုံး vector တွေကိုပြန်ထုတ်ပေးပါတယ်။ K သည် အနီးစပ်ဆုံးvector ဘယ်နှစ်ခုလိုချင်လဲဆိုတဲ့ hyperparameter ကို ကိုယ်စားပြုပါတယ်။ KNN ရဲ့ အားနည်းချက်သည် အနီးစပ်ဆုံး vector ကိုရှာဖို့အတွက် Database ထဲမှာရှိသမျှ vector တွေကိုလိုက်တွက်ပါတယ်။ ဒီတော့ data ပမာဏများလာလေလေ၊ calculation ပိုများလေလေဖြစ်တဲ့အတွက် ပိုကြာပြီးတော့ လျှပ်စစ်ပမာဏပိုကုန်ပါတယ်။
ဒီအတွက်ကြောင့် Approximate Nearest Neighbors algorithm ကိုပြောင်းသုံးကြပါတယ်။ ANN မှာလည်း ပုံစံကွဲတွေအများကြီးရှိပါသေးတယ်။ ANN သည် နီးစပ်တဲ့ vector embedding တွေကိုအတိအကျလိုက်ရှာမယ့်အစား နီးစပ်တယ်ဆိုတဲ့အခြေအနေမှာရှိတဲ့ vector embedding တွေကို ပြန်ထုတ်ပေးပါတယ်။ ဒီအတွက်ကြောင့် ANN ကိုအတိအကျနီးစပ်တဲ့ vector embedding တွေရှာတဲ့နေရာထက် နီးစပ်တဲ့ vector embedding တွေကို မြန်မြန်ဆန်ဆန်ရှာဖို့လိုအပ်တဲ့နေရာတွေမှာ သုံးပါတယ်။ machine learning မှာတော့ဒါကို accuracy နဲ့ efficiency ကို tradeoff လုပ်တယ်လို့ခေါ်ပါတယ်။
Similar Searching ကို ဓာတ်ပုံနဲ့စာသား ပုံစံတူတာတွေရှာတာ၊ ကွဲထွက်နေတဲ့ data တွေကိုရှာတာ၊ recommendation system တွေမှာ အသုံးများပါတယ်။