machine learning development ကို စမ်းသုံးဖူးသူတိုင်းဟာ ဘယ်လောက်ခက်ခဲတယ်ဆိုတာ နားလည်ပါတယ်။ ဆော့ဖ်ဝဲလ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် စံပြပြဿနာများအပြင် စက်သင်ယူမှု (ML) ဖွံ့ဖြိုးတိုးတက်မှုသည် နောက်ထပ်အတားအဆီးများစွာကို မိတ်ဆက်ပေးသည်။
ဒေတာပြင်ဆင်မှုမှသည် မော်ဒယ်လေ့ကျင့်ရေးမှသည် ML ဘဝသံသရာ၏ အဆင့်တိုင်းအတွက် အထောက်အကူဖြစ်စေရန်အတွက် ရာနှင့်ချီသော open source ကိရိယာများကို ရရှိနိုင်သည်။
သမားရိုးကျ ဆော့ဖ်ဝဲလ် ဖွံ့ဖြိုးတိုးတက်မှုနှင့် မတူဘဲ၊ အဖွဲ့များသည် အဆင့်တစ်ခုစီအတွက် ကိရိယာတစ်ခုစီကို ရွေးချယ်သောအခါတွင်၊ ML ဖြင့် သင်ရရှိနိုင်သည့် ကိရိယာတိုင်း (ဥပမာ၊ အယ်လဂိုရီသမ်) သည် ရလဒ်များ တိုးတက်ကောင်းမွန်ခြင်းရှိမရှိကို သိရှိရန် ယေဘုယျအားဖြင့် ရှာဖွေလိုပါသည်။
ရလဒ်အနေဖြင့် ML developer များသည် ရာနှင့်ချီသော စာကြည့်တိုက်များကို အသုံးပြု၍ ထုတ်လုပ်ရမည်ဖြစ်သည်။
စက်သင်ယူခြင်းဆိုင်ရာ အယ်လဂိုရီသမ်များတွင် စိတ်ကြိုက်ပြင်ဆင်နိုင်သော ကန့်သတ်ဘောင်များထောင်ပေါင်းများစွာပါရှိပြီး သင်တစ်ဦးတည်းလုပ်ဆောင်သည်ဖြစ်စေ အဖွဲ့တစ်ဖွဲ့တွင်ဖြစ်စေ မော်ဒယ်တစ်ခုဖန်တီးရန်အတွက် စမ်းသပ်မှုတစ်ခုစီတွင် မည်သည့်ကန့်သတ်ချက်များ၊ ကုဒ်နှင့်ဒေတာများပါဝင်သည်ကို ခွဲခြားရန်ခက်ခဲသည်။
မှန်ကန်သော စောင့်ကြည့်မှုမရှိဘဲ၊ အဖွဲ့များသည် တူညီသောကုဒ်ကို ထပ်မံလုပ်ဆောင်ရန် မကြာခဏ ရုန်းကန်နေရပါသည်။ သင်သည် သင်၏လေ့ကျင့်ရေးကုဒ်ကို ထုတ်လုပ်မှုအသုံးပြုမှုအတွက် အင်ဂျင်နီယာတစ်ဦးထံ ဒေတာသိပ္ပံပညာရှင်တစ်ဦးဖြစ်စေ သို့မဟုတ် ပြဿနာတစ်ခုရှာဖွေရန် သင်၏ယခင်အလုပ်သို့ ပြန်သွားခြင်းဖြစ်စေ၊ ML အလုပ်အသွားအလာ၏ အဆင့်များကို ပြန်လည်ဆုတ်ခွာရန် အရေးကြီးပါသည်။
မော်ဒယ်တစ်ခုအား ထုတ်လုပ်မှုသို့ ရွှေ့ခြင်းသည် အသုံးပြုရမည့် ဖြန့်ကျက်မှုနည်းလမ်းများနှင့် ပတ်ဝန်းကျင်အများအပြားကြောင့် (ဥပမာ၊ REST ဝန်ဆောင်မှုပေးခြင်း၊ အစုလိုက်အပြုံလိုက် သို့မဟုတ် မိုဘိုင်းအက်ပ်များ) ကြောင့် ခက်ခဲနိုင်သည်။ မော်ဒယ်များကို မည်သည့်စာကြည့်တိုက်မှ ဤကိရိယာများထဲမှ တစ်ခုခုသို့ ရွှေ့ရန် ဘုံနည်းလမ်းမရှိသဖြင့် အသုံးချမှုအသစ်တစ်ခုစီသည် အန္တရာယ်တစ်ခုကို မိတ်ဆက်ပေးသည်။
ဤပြဿနာများကြောင့် ML ဖွံ့ဖြိုးတိုးတက်မှုသည် တည်ငြိမ်မှု၊ ကြိုတင်မှန်းဆနိုင်ပြီး သမားရိုးကျဆော့ဖ်ဝဲလ်ဖွံ့ဖြိုးတိုးတက်မှုအဖြစ် တွင်ကျယ်စွာ အသုံးပြုလာစေရန် သိသိသာသာ တိုးတက်ကောင်းမွန်လာရမည်မှာ ထင်ရှားပါသည်။
ML စိန်ခေါ်မှုများ
- ကွဲပြားသောကိရိယာများစွာရှိသည်။ ဒေတာပြင်ဆင်မှုမှ မော်ဒယ်လေ့ကျင့်ရေးအထိ စက်သင်ယူမှုဘဝသံသရာ၏ အဆင့်တိုင်းအတွက် ရာနှင့်ချီသော ဆော့ဖ်ဝဲလ်ဖြေရှင်းချက်များစွာကို ရရှိနိုင်သည်။ ထို့အပြင် သမားရိုးကျ ဆော့ဖ်ဝဲလ် ဖွံ့ဖြိုးတိုးတက်မှုနှင့် မတူဘဲ၊ အဖွဲ့များသည် အဆင့်တစ်ခုစီအတွက် ကိရိယာတစ်ခုစီကို ရွေးချယ်သောအခါ၊ စက်သင်ယူမှု (ML) တွင် သင်ရရှိနိုင်သည့် ကိရိယာတိုင်း (ဥပမာ၊ အယ်လဂိုရီသမ်) သည် ရလဒ်များ တိုးတက်လာခြင်းရှိမရှိကို သိရှိရန် မကြာခဏ စူးစမ်းလိုပါသည်။ ရလဒ်အနေဖြင့် ML developer များသည် ရာနှင့်ချီသော စာကြည့်တိုက်များကို အသုံးပြု၍ ထုတ်လုပ်ရမည်ဖြစ်သည်။
- စမ်းသပ်မှုများကို ခြေရာခံရန် ခက်ခဲသည်။ စက်သင်ယူခြင်းဆိုင်ရာ အယ်လဂိုရီသမ်များတွင် စိတ်ကြိုက်ပြင်ဆင်နိုင်သော ကန့်သတ်ဘောင်များထောင်ပေါင်းများစွာပါရှိပြီး သင်တစ်ဦးတည်းလုပ်ဆောင်သည်ဖြစ်စေ အဖွဲ့တစ်ဖွဲ့တွင်ဖြစ်စေ မော်ဒယ်တစ်ခုဖန်တီးရန်အတွက် စမ်းသပ်မှုတစ်ခုစီတွင် မည်သည့်ကန့်သတ်ချက်များ၊ ကုဒ်နှင့်ဒေတာများပါဝင်သည်ကို ခွဲခြားရန်ခက်ခဲသည်။
- စက်သင်ယူမှုကို အကောင်အထည်ဖော်ရန် ခက်ခဲသည်။ မော်ဒယ်တစ်ခုအား ထုတ်လုပ်မှုသို့ ရွှေ့ခြင်းသည် အသုံးပြုရမည့် ဖြန့်ကျက်မှုနည်းလမ်းများနှင့် ပတ်ဝန်းကျင်အများအပြားကြောင့် (ဥပမာ၊ REST ဝန်ဆောင်မှုပေးခြင်း၊ အစုလိုက်အပြုံလိုက် သို့မဟုတ် မိုဘိုင်းအက်ပ်များ) ကြောင့် ခက်ခဲနိုင်သည်။ မည်သည့်စာကြည့်တိုက်မှ မော်ဒယ်များကို ဤကိရိယာများထဲမှ တစ်ခုခုသို့ ရွှေ့ရန် ဘုံနည်းလမ်းမရှိပါ။ ထို့ကြောင့် ဖြန့်ကျက်မှုအသစ်တစ်ခုစီသည် အန္တရာယ်တစ်ခုကို မိတ်ဆက်ပေးသည်။
ဘာဖြစ်သလဲ MLflow?
MLflow သည် machine learning life cycle အတွက် open-source platform တစ်ခုဖြစ်သည်။ ၎င်းသည် လက်ရှိအခြေခံအဆောက်အအုံနှင့် စက်သင်ယူမှုဆိုင်ရာ အယ်လဂိုရီသမ်များကို စနစ်နှင့် အလွယ်တကူပေါင်းစပ်နိုင်စေမည့် မရှိမဖြစ်လိုအပ်သော abstractions အများအပြားကို အဆိုပြုထားသည့် open interface concept ကို အခြေခံထားသည်။
၎င်းသည် သင်သည် MLflow ကို အသုံးပြုလိုသော်လည်း ပံ့ပိုးမထားသော မူဘောင်ကို အသုံးပြုနေသည့် developer ဖြစ်ပါက၊ ပွင့်လင်းသော အင်တာဖေ့စ် ဒီဇိုင်းသည် ထိုမူဘောင်ကို ပေါင်းစပ်ရန်နှင့် ပလပ်ဖောင်းနှင့် စတင်လုပ်ဆောင်ရန် အတော်လေး ရိုးရှင်းစေသည်ဟု ဆိုလိုသည်။ လက်တွေ့တွင်၊ MLflow သည် မည်သည့်အရာနှင့်မဆို လုပ်ဆောင်ရန် ရည်ရွယ်သည်ဟု ဆိုလိုသည်။ စက်သင်ယူမှု စာကြည့်တိုက် သို့မဟုတ် ဘာသာစကား။
ထို့အပြင်၊ MLflow သည် ထပ်ခါတလဲလဲလုပ်ဆောင်နိုင်မှုကို မြှင့်တင်ပေးသည်၊ ဆိုလိုသည်မှာ တူညီသောလေ့ကျင့်ရေး သို့မဟုတ် ထုတ်လုပ်ရေးစက်သင်ယူမှုကုဒ်ကို cloud တွင်ဖြစ်စေ၊ ဒေသဆိုင်ရာအလုပ်ရုံတွင်ဖြစ်စေ သို့မဟုတ် မှတ်စုစာအုပ်တွင်ဖြစ်စေ ပတ်ဝန်းကျင်နှင့်ကင်းသော တူညီသောရလဒ်များဖြင့် လုပ်ဆောင်ရန် ရည်ရွယ်ပါသည်။
နောက်ဆုံးတွင်၊ MLflow ကို အတိုင်းအတာအထိ ချဲ့ထွင်ရန်အတွက် တည်ဆောက်ထားသောကြောင့် ၎င်းကို ဒေတာသိပ္ပံပညာရှင်အဖွဲ့ငယ်များနှင့် စက်သင်ယူမှုလေ့ကျင့်သူရာနှင့်ချီရှိသော ကုမ္ပဏီကြီးတစ်ခုမှ အသုံးပြုနိုင်သည်။
MLflow သည် မည်သည့်စက်သင်ယူမှုစာကြည့်တိုက်၊ အယ်လဂိုရီသမ်၊ အသုံးချကိရိယာ သို့မဟုတ် ဘာသာစကားနှင့် တွဲဖက်အသုံးပြုနိုင်သည်။ ၎င်းတွင်အောက်ပါအားသာချက်များရှိသည်။
- မည်သည့် cloud ဝန်ဆောင်မှုဖြင့် လုပ်ဆောင်ရန် ဒီဇိုင်းထုတ်ထားသည်။
- Apache Spark ဖြင့် ကြီးမားသောဒေတာသို့ အတိုင်းအတာများ။
- MLflow သည် Apache Spark အပါအဝင် open-source machine learning frameworks အမျိုးမျိုးနှင့် တွဲဖက်အသုံးပြုနိုင်သည်။ TensorFlowနှင့် SciKit-လေ့လာပါ။.
သင့်တွင် ကုဒ်ရှိပြီးသားဆိုလျှင် MLflow ကို ၎င်းနှင့်အတူ အသုံးပြုနိုင်သည်။ အဘယ်ကြောင့်ဆိုသော် လုပ်ငန်းများကြားတွင် သင်၏မူဘောင်နှင့် မော်ဒယ်များကိုပင် မျှဝေနိုင်ပါသည်။ open-source.
MLflow အစိတ်အပိုင်းများ- ၎င်းတို့ မည်သို့အလုပ်လုပ်သနည်း။
MLflow သည် စမ်းသပ်ခြင်း၊ ပြန်လည်ထုတ်လုပ်နိုင်ခြင်း၊ အသုံးချခြင်းနှင့် မော်ဒယ်မှတ်ပုံတင်ခြင်းတစ်ခုတည်း ပါ၀င်သည့် ML lifecycle ကို စီမံခန့်ခွဲရန်အတွက် အခမဲ့ဖြစ်ပြီး open-source platform တစ်ခုဖြစ်သည်။ လက်ရှိတွင် MLflow တွင် အစိတ်အပိုင်းလေးခု ရှိသည်။
1. MLflow ခြေရာခံခြင်း။
MLflow Tracking နဲ့ စတော့မယ်။ MLflow သည် ဗဟိုချုပ်ကိုင်ထားသော လေ့ကျင့်ရေး မက်တာဒေတာ ခြေရာခံ သိုလှောင်ရာနေရာနှင့် ချိတ်ဆက်ထားသော အမျိုးမျိုးသော မရှိမဖြစ် သဘောတရားများ စုစည်းမှုကို ပံ့ပိုးပေးပါသည်။ ပထမအယူအဆမှာ မော်ဒယ်စွမ်းဆောင်ရည်ကို လွှမ်းမိုးသော အရေးကြီးသော ဟိုက်ပါပါမီတာများ သို့မဟုတ် ဖွဲ့စည်းမှုပုံစံခလုတ်များ စုစည်းမှုဖြစ်သည်။ MLflow ၏ APIs နှင့် ဗဟိုမှခြေရာခံခြင်းဝန်ဆောင်မှုကိုအသုံးပြုခြင်းသည် ၎င်းတို့အားလုံးကို ထိန်းသိမ်းထားနိုင်သည်။
အသုံးပြုသူများသည် ၎င်းတို့၏ စက်သင်ယူမှုမော်ဒယ်များ၏ အောင်မြင်မှုကို ထိုးထွင်းသိမြင်နိုင်ရန် စွမ်းဆောင်ရည်ဒေတာကိုလည်း မှတ်တမ်းတင်နိုင်သည်။ ထို့အပြင်၊ ထပ်တလဲလဲဖြစ်နိုင်စေရန်အတွက်၊ MLflow သည် သုံးစွဲသူများအား မော်ဒယ်တစ်ခုချင်းစီကို တိကျသော hash တစ်ခုနှင့် ချိတ်ဆက်ရန် Git နှင့် တင်းတင်းကြပ်ကြပ် ပေါင်းစပ်ခြင်းဖြင့် မော်ဒယ်တစ်ခုနှင့် ၎င်း၏ဗားရှင်းကို ဖန်တီးရန် အသုံးပြုခဲ့သည့် သီးခြားအရင်းအမြစ်ကုဒ်ကို မှတ်တမ်းတင်နိုင်စေပါသည်။
MLflow ကို လေ့ကျင့်မှု၊ စမ်းသပ်မှုဒေတာ နှင့် ပြန်လည်ထုတ်လုပ်နိုင်ရေးအတွက် ၎င်းတို့ကိုယ်တိုင် မော်ဒယ်များအပါအဝင် မတရားသောဖိုင်များဖြစ်သည့် မည်သည့်အရာမဆို မှတ်တမ်းပြုလုပ်ရန် အသုံးပြုနိုင်သည်။
ဆိုလိုသည်မှာ ကျွန်ုပ်သည် မော်ဒယ်တစ်ခုကို လေ့ကျင့်သင်ကြားထားသည့် developer တစ်ယောက်ဖြစ်ပါက ၎င်းကို ဗဟိုချုပ်ကိုင်မှု ခြေရာခံခြင်းဝန်ဆောင်မှုတွင် ဆက်ရှိနေနိုင်ပြီး၊ ကျွန်ုပ်၏ လုပ်ဖော်ကိုင်ဖက်တစ်ဦးသည် ၎င်းကို နောက်ပိုင်းတွင် တင်နိုင်ပြီး တိကျသောလိုအပ်ချက်နှင့်ကိုက်ညီစေရန် လေ့ကျင့်ခြင်းနှင့် စမ်းသပ်ခြင်း သို့မဟုတ် မော်ဒယ်ကို ထုတ်လုပ်ခြင်းတို့ကို ဆက်လက်လုပ်ဆောင်နိုင်သည်၊ ဆိုလိုသည်မှာ ဆိုလိုသည်မှာ၊ ဆိုလိုသည်မှာ၊ .
သင့်စက်သင်ယူမှုကုဒ်ကို လုပ်ဆောင်ပြီး ရလဒ်များကိုကြည့်ရှုပြီးနောက်တွင်၊ ခြေရာခံခြင်းသည် သင့်အား ကန့်သတ်ဘောင်များ၊ ကုဒ်ဗားရှင်းများ၊ မက်ထရစ်များနှင့် အထွက်ဖိုင်များကို မှတ်တမ်းတင်ရန် ခွင့်ပြုသည့် API တစ်ခုဖြစ်သည်။ ၎င်းကို Python၊ R နှင့် Java တို့တွင် အခြားဘာသာစကားများဖြင့် ရေးသားထားသည်။ ၎င်းကို REST API အဖြစ်လည်း အသုံးပြုနိုင်ပြီး ၎င်းအပေါ်တွင် အက်ပ်များတည်ဆောက်ရန် အသုံးပြုနိုင်သည်။
Key ကိုအင်္ဂါရပ်များ
- ဆော့ဖ်ဝဲရေးသားသူအများအပြားသည် ၎င်းတို့၏ပြည်တွင်း PC တွင် MLflow ကိုအသုံးပြုကြပြီး၊ နောက်ခံဖိုင်နှင့် ရှေးဟောင်းပစ္စည်းသိုလှောင်မှုသည် disc တွင်လမ်းညွှန်တစ်ခုမျှဝေပါသည်။
- အသုံးပြုသူများစွာသည် ၎င်းတို့၏ local PCs များတွင် MLflow ကို run ရန် SQLAlchemy-compatible database တစ်ခုဖြစ်သည့် SQLite ကို အသုံးပြုကြသည်။
- MLflow သည် ဖြန့်ဝေထားသော ဗိသုကာများကို ပံ့ပိုးပေးပါသည်။ ခြေရာခံဆာဗာ၊ နောက်ခံစတိုးနှင့် ရှေးဟောင်းပစ္စည်းစတိုးဆိုင်အားလုံးကို ၎င်းတို့ရှိ မတူညီသောဆာဗာများတွင် လက်ခံထားသည်။
- MLflow ပရောဂျက်တစ်ခုမှ စတင်လည်ပတ်ပါက၊ git commit hash ကို အသုံးပြုထားသည်။ MLflow Python၊ R၊ Java နှင့် REST API များကို လုပ်ဆောင်ရန် ဒေတာကို မှတ်တမ်းယူရန် အသုံးပြုနိုင်သည်။
ပိုမိုသိရှိလိုပါက, သင်သည်တရားဝင်ထွက်စစ်ဆေးနိုင်ပါသည်။ စာရွက်စာတမ်းများ.
2. MLFlow ပရောဂျက်များ
ကျွန်ုပ်တို့သည် ခြေရာခံခြင်း အစိတ်အပိုင်းများကို ဖြတ်သန်းပြီးနောက်၊ အကောင်အထည်ဖော်မှုဆိုင်ရာ အကြောင်းအရာကို မခွဲခြားဘဲ မော်ဒယ်လေ့ကျင့်ရေးသင်တန်းများတွင် ထပ်ခါတလဲလဲ ထုပ်ပိုးမှုပုံစံဖြစ်သည့် MLflow ပရောဂျက်များအကြောင်း ပြောပြလိုပါသည်။
စီးပွားရေးလုပ်ငန်းများသည် ကျယ်ပြန့်သော စက်သင်ယူမှုလေ့ကျင့်ရေးနည်းပညာများကို အသုံးပြုကြသည်၊ သို့သော် ၎င်းတို့သည် အမျိုးမျိုးသော အကြောင်းအရာအစုံတွင် ဤလေ့ကျင့်ရေးကိရိယာများကို အသုံးပြုပါသည်။ ဥပမာအားဖြင့်၊ ၎င်းတို့သည် cloud ပေါ်တွင် ၎င်းတို့၏လေ့ကျင့်ရေးကုဒ်ကို လုပ်ဆောင်နေနိုင်သည်၊ ဒေသဆိုင်ရာ PC တွင်၊ သို့မဟုတ် notebook တွင် လုပ်ဆောင်နေပေမည်။
၎င်းသည် စက်သင်ယူမှုရလဒ်များကို ပုံတူကူးရန်ခက်ခဲသည့် ပြဿနာကို ဦးတည်စေသည်။ မကြာခဏဆိုသလို၊ တူညီသောတူညီသောလေ့ကျင့်ရေးကုဒ်သည် သီးခြားနေရာနှစ်ခုတွင် တူညီသောရလဒ်များကို လုပ်ဆောင်ခြင်း သို့မဟုတ် ရလဒ်မထွက်ပေ။
MLflow မှ ပံ့ပိုးပေးသော ဖြေရှင်းချက်သည် စက်သင်ယူမှုလေ့ကျင့်ရေးကုဒ်အားလုံးအပြင် ၎င်း၏ဗားရှင်းစာကြည့်တိုက် မှီခိုမှု၊ ဆက်တင်များနှင့် လေ့ကျင့်ရေးနှင့် စမ်းသပ်မှုဒေတာများပါ၀င်သည့် ကိုယ်တိုင်ပါရှိသော လေ့ကျင့်ရေးကုဒ် ပရောဂျက် အဓိပ္ပါယ်ဖွင့်ဆိုချက်ဖြစ်သည်။
MLflow သည် စက်သင်ယူမှုလေ့ကျင့်ရေးလုပ်ငန်းစဉ်အတွက် လိုအပ်ချက်အစုံအလင်ကို ရှင်းလင်းစွာဖော်ပြခြင်းဖြင့် အကောင်အထည်ဖော်မှုဆိုင်ရာအကြောင်းအရာများတစ်လျှောက် ပြန်ပွားနိုင်မှုကို သေချာစေသည်။ ၎င်းသည် အဆိုပါ စာကြည့်တိုက်များအားလုံးကို ထည့်သွင်းပြီး ကုဒ်တွင် အလုပ်လုပ်နေသော တူညီသော စနစ်အခြေအနေအား ပြီးမြောက်စေခြင်းဖြင့် ၎င်းကို ပြီးမြောက်စေသည်။
MLflow ပရောဂျက်သည် လမ်းညွှန်တစ်ခုထက် မပိုပါ။ ၎င်းသည် လေ့ကျင့်ရေးကုဒ်၊ စာကြည့်တိုက်မှီခိုမှု အဓိပ္ပါယ်ဖွင့်ဆိုချက်နှင့် လေ့ကျင့်ရေးအပိုင်းအတွက် လိုအပ်သော အခြားအချက်အလက်များအပြင် ဤရွေးချယ်နိုင်သော ဖွဲ့စည်းမှုပုံစံဖိုင်တို့ပါ၀င်သည့် လမ်းညွှန်တစ်ခုဖြစ်သည်။
ဤစာကြည့်တိုက်လိုအပ်ချက်များကို နည်းလမ်းအမျိုးမျိုးဖြင့် သတ်မှတ်နိုင်ပါသည်။ ဥပမာအားဖြင့်၊ အသုံးပြုသူများသည် ၎င်းတို့၏လေ့ကျင့်ရေးကုဒ်စာကြည့်တိုက်လိုအပ်ချက်များကိုစာရင်းပြုစုရန် YAML-formatted anaconda ပတ်ဝန်းကျင်သတ်မှတ်ချက်ကို ပေးဆောင်နိုင်သည်။ MLflow သည် ကွန်တိန်နာအတွင်း လေ့ကျင့်ရေးကုဒ်ကို လုပ်ဆောင်ပါမည်။ ထိုသို့သောအခြေအနေမျိုးတွင်၊ ၎င်းတို့သည် Docker container ကိုလည်း ထည့်သွင်းနိုင်သည်။
နောက်ဆုံးတွင်၊ MLflow တွင် ဤပရောဂျက်များအပြင် Python နှင့် Java APIs များကို လုပ်ဆောင်ရန်အတွက် command-line interface (CLI) ရှိသည်။ ဤပရောဂျက်များကို အသုံးပြုသူ၏ ဒေသတွင်းစနစ်အပြင် Databricks အလုပ်စီစဉ်သူနှင့် Kubernetes ကဲ့သို့သော အဝေးထိန်းဆက်တင်အမျိုးမျိုးတွင် လုပ်ဆောင်နိုင်ပါသည်။ MLflow ပရောဂျက်များသည် ဒေတာသိပ္ပံကုဒ်များကို အများအားဖြင့် စံချိန်စံညွှန်းများပေါ်အခြေခံ၍ ထပ်ခါတလဲလဲနှင့် ပြန်သုံးနိုင်သောပုံစံဖြင့် ထုပ်ပိုးနိုင်စေပါသည်။
ပရောဂျက် အစိတ်အပိုင်းများတွင် API တစ်ခုအပြင် ပရောဂျက်များကို စီမံခန့်ခွဲရန်အတွက် command-line utilities များ ပါဝင်သည်။ ဤစွမ်းရည်များသည် ပရောဂျက်များကို စက်သင်ယူမှု လုပ်ငန်းစဉ်များဖွဲ့စည်းရန်အတွက် ပရောဂျက်များကို ချိတ်ဆက်ထားနိုင်သည်ဟု အာမခံပါသည်။
Key ကိုအင်္ဂါရပ်များ
- MLflow သည် Docker ကွန်တိန်နာပတ်ဝန်းကျင်၊ Conda ပတ်ဝန်းကျင်နှင့် စနစ်ပတ်ဝန်းကျင်အပါအဝင် ပရောဂျက်ပတ်ဝန်းကျင်များကို ပံ့ပိုးပေးသည်။
- မည်သည့် Git repository သို့မဟုတ် local directory ကို MLflow ပရောဂျက်အဖြစ် သတ်မှတ်နိုင်သည်၊ မူရင်းအားဖြင့်; မည်သည့် shell ကိုမဆိုသုံးနိုင်သည်။ Python ဇာတ်ညွှန်း ပရောဂျက် entry point အဖြစ် directory ထဲမှာ။
- Java libraries ကဲ့သို့သော Python မဟုတ်သော မှီခိုမှုများအား Docker containers များအသုံးပြု၍ ဖမ်းယူနိုင်ပါသည်။
- YAML syntax အတွင်းရှိ စာသားဖိုင်ဖြစ်သည့် ပရောဂျက်၏ အမြစ်လမ်းညွှန်သို့ ပရောဂျက်ဖိုင်ကို ပေါင်းထည့်ခြင်းဖြင့် MLflow ပရောဂျက်တစ်ခုအပေါ် ပိုမိုကောင်းမွန်စွာ ထိန်းချုပ်နိုင်မည်ဖြစ်သည်။
ပိုမိုသိရှိလိုပါက, သင်သည်တရားဝင်ထွက်စစ်ဆေးနိုင်ပါသည်။ စာရွက်စာတမ်းများ.
3. MLflow မော်ဒယ်များ
ယခု၊ ကျွန်ုပ်သည် ထုတ်လုပ်မှုအကြောင်းအရာများစွာကို ပံ့ပိုးပေးသည့် အထွေထွေရည်ရွယ်ချက် မော်ဒယ်ဖော်မတ်ဖြစ်သည့် MLflow မော်ဒယ်များကို ဆွေးနွေးလိုပါသည်။ MLflow မော်ဒယ်များ၏ အကြောင်းပြချက်သည် ယခု ပရောဂျက်များနှင့် အတော်လေး ဆင်တူပါသည်။
တစ်ဖန်၊ မော်ဒယ်များကို ကျယ်ပြန့်သောကိရိယာများကို အသုံးပြု၍ ထုတ်လုပ်နိုင်သည်ကို ကျွန်ုပ်တို့တွေ့မြင်ရပြီး၊ သို့သော် ၎င်းတို့ကို လေ့ကျင့်ရေးပတ်ဝန်းကျင်နှင့် ဆန့်ကျင်သည့် အခြေအနေများစွာတွင် ထုတ်လုပ်နိုင်သည် သို့မဟုတ် အသုံးချနိုင်သည်။
ဤဆက်တင်များတွင် Kubernetes သို့မဟုတ် Amazon SageMaker ကဲ့သို့သော အချိန်နှင့်တစ်ပြေးညီ ဝန်ဆောင်မှုပေးသည့်ကိရိယာများအပြင် Spark ကဲ့သို့ တိုက်ရိုက်ထုတ်လွှင့်ခြင်းနှင့် အစုလိုက်အမှတ်ပေးခြင်းတို့ ပါဝင်ပါသည်။ ထို့အပြင်၊ အချို့သောစီးပွားရေးလုပ်ငန်းများသည် ကြိုတင်ပြင်ဆင်ထားသော cloud instance တစ်ခုပေါ်တွင် လုပ်ဆောင်နေသည့် RESTful ဝဘ်ဝန်ဆောင်မှုအဖြစ် မော်ဒယ်များကို အသုံးပြုရန် ရွေးချယ်နိုင်သည်။
ပရောဂျက်တစ်ခုကဲ့သို့ MLflow မော်ဒယ်သည် လမ်းညွှန်ဖွဲ့စည်းပုံဖြစ်သည်။ ၎င်းတွင် configuration ဖိုင်တစ်ခုပါဝင်ပြီး၊ ယခုတစ်ကြိမ်၊ လေ့ကျင့်ရေးကုဒ်ထက် အမှတ်စဉ်ပြုလုပ်ထားသော မော်ဒယ်လက်ရာတစ်ခုဖြစ်သည်။ ၎င်းတွင် ပရောဂျက်တစ်ခုအဖြစ် ထပ်တလဲလဲလုပ်ဆောင်နိုင်မှုအတွက် ဤမှီခိုမှုအစုအဝေးလည်း ပါဝင်သည်။ ယခုတစ်ကြိမ်၊ Conda ပတ်ဝန်းကျင်၏ အခြေအနေတွင် အကဲဖြတ်မှုဆိုင်ရာ မှီခိုမှုများကို လေ့လာပါမည်။
ထို့အပြင်၊ MLflow တွင် လူကြိုက်များသောဘောင်အကွာအဝေးမှ MLflow ဖော်မတ်တွင် မော်ဒယ်များကို အမှတ်အသားပြုရန်အတွက် မော်ဒယ်ထုတ်လုပ်ရေးကိရိယာများ ပါဝင်သည်။ နောက်ဆုံးတွင်၊ MLflow သည် မည်သည့် MLflow မော်ဒယ်ကိုမဆို ထုတ်လုပ်ခြင်းနှင့် ချိတ်ဆက်ခြင်းအတွက် APIs များကို ဝန်ဆောင်မှုအကွာအဝေးသို့ ပေါင်းထည့်ထားပြီး ဤ API များကို Python၊ Java၊ R နှင့် CLI ဖော်မတ်များတွင် အသုံးပြုနိုင်သည်။
မော်ဒယ်များသည် ထုပ်ပိုးမှုပုံစံများအတွက် စံဖွဲ့စည်းပုံတစ်ခုပါရှိသော အစိတ်အပိုင်းတစ်ခုဖြစ်သည့် downstream tools များဖြစ်သည့် inferencing servers သို့မဟုတ် the ဒေတာအုတ်များ batch inferencing ပလက်ဖောင်း။ ထုတ်လုပ်ရန်အတွက် မော်ဒယ်ကိုထုပ်ပိုးသည့်အခါ ဤအစိတ်အပိုင်းသည် စိတ်ကြိုက်ကုဒ်နာရီများကို သက်သာစေသည်။
MLflow Model သည် "အရသာများ" ဟုခေါ်သော ပုံစံအမျိုးမျိုးဖြင့် စက်သင်ယူမှုမော်ဒယ်များကို ထုပ်ပိုးရန်အတွက် စံတစ်ခုဖြစ်သည်။ MLflow သည် မော်ဒယ်အမျိုးမျိုးကို အသုံးပြုရာတွင် သင့်အား ကူညီရန် ကိရိယာများစွာကို ပံ့ပိုးပေးပါသည်။ MLflow Model တစ်ခုစီကို အများသူငှာ ဖိုင်များ ပါဝင်သော လမ်းညွှန်တစ်ခုအဖြစ် သိမ်းဆည်းထားပြီး ၎င်းကို အသုံးပြုနိုင်သည့် အရသာများစာရင်းပါရှိသော ML မော်ဒယ် ဖော်ပြချက်ဖိုင်တစ်ခု ပါဝင်သည်။
Key ကိုအင်္ဂါရပ်များ
- MLflow ၏ built-in အသုံးချကိရိယာများအားလုံးသည် မော်ဒယ်ကို Python လုပ်ဆောင်ချက်အဖြစ် မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြထားသည့် "Python လုပ်ဆောင်ချက်" အရသာကဲ့သို့သော "စံ" အရသာမျိုးစုံကို ပေးဆောင်ပါသည်။
- MLflow Model တစ်ခုစီတွင် အများသူငှာ ဖိုင်များပါရှိသော လမ်းညွှန်တစ်ခုနှင့် မော်ဒယ်၏ အရသာများစွာကို သတ်မှတ်ပေးသည့် လမ်းညွှန်၏အမြစ်ရှိ ML မော်ဒယ်ဖိုင်တစ်ခု ပါဝင်ပါသည်။
- မော်ဒယ်တစ်ခုကို သိမ်းဆည်းသည့်အခါ၊ MLflow သည် သင့်အား မော်ဒယ်၏ မှီခိုမှုများပါရှိသော Conda ပတ်ဝန်းကျင် ကန့်သတ်ဘောင်တစ်ခုကို သတ်မှတ်ခွင့်ပြုသည်။ Conda ပတ်ဝန်းကျင်ကို မသတ်မှတ်ထားပါက၊ မော်ဒယ်၏ အရသာအပေါ်အခြေခံ၍ ပုံသေပတ်ဝန်းကျင်ကို တည်ဆောက်ထားသည်။ ထို့နောက် Conda ပတ်ဝန်းကျင်ကို conda.yaml တွင် သိမ်းဆည်းထားသည်။
ပိုမိုသိရှိလိုပါက, သင်သည်တရားဝင်ထွက်စစ်ဆေးနိုင်ပါသည်။ စာရွက်စာတမ်းများ.
4. MLflow Model Registry
မော်ဒယ်မှတ်ပုံတင်ခြင်းဆိုသည်မှာ သင်ယူထားသော စက်သင်ယူမှု (ML) မော်ဒယ်များအတွက် သိုလှောင်မှုတစ်ခုဖြစ်သည်။ Model Registry သည် အဖွဲ့တစ်ခုအနေဖြင့် အဆင့်အမျိုးမျိုးရှိ မော်ဒယ်များကို ထိန်းသိမ်းရန်အတွက် အသုံးပြုသည့် web-based application တစ်ခုနှင့် API များဖြင့် ဖွဲ့စည်းထားသည်။ Model Lineage၊ Model Versioning၊ Easy Stage Transition နှင့် Annotation တို့သည် Model Registry တွင် ရရှိနိုင်သော စွမ်းရည်အနည်းငယ်မျှသာဖြစ်သည်။
မော်ဒယ်မှတ်ပုံတင်ခြင်းတွင် မော်ဒယ်များကိုယ်တိုင်အပြင်၊ မော်ဒယ်တည်ဆောက်ရန်အသုံးပြုသည့် ဒေတာနှင့် လေ့ကျင့်ရေးတာဝန်များအကြောင်း အချက်အလက် (မက်တာဒေတာ) ပါရှိသည်။ ML မော်ဒယ်များအတွက် မျိုးရိုးစဉ်ဆက်ဖန်တီးရန် ဤလိုအပ်သော ထည့်သွင်းမှုများကို ခြေရာခံရန် အရေးကြီးပါသည်။ ယင်းနှင့်ပတ်သက်၍၊ မော်ဒယ်မှတ်ပုံတင်ခြင်းလုပ်ငန်းသည် သမားရိုးကျဆော့ဖ်ဝဲလ်များနှင့် ဆင်တူသည်။ ဗားရှင်းထိန်းချုပ်မှု စနစ်များ (ဥပမာ၊ Git၊ SVN) နှင့် artifact repositories (ဥပမာ၊ Artifactory၊ PyPI)။
Model Registry သည် ဒေတာသိပ္ပံပညာရှင်များနှင့် စက်သင်ယူမှုအင်ဂျင်နီယာများအား ထုတ်ဝေခြင်း၊ စမ်းသပ်ခြင်း၊ စောင့်ကြည့်ခြင်း၊ စီမံခန့်ခွဲခြင်းနှင့် အခြားအဖွဲ့များနှင့် ပူးပေါင်းဆောင်ရွက်ရန် ၎င်းတို့၏မော်ဒယ်များကို ဖြန့်ဝေခွင့်ပြုသည့် မူဘောင်တစ်ခုဖြစ်သည်။ အခြေခံအားဖြင့်၊ သင်သည် သင်၏စမ်းသပ်မှုအဆင့်ကို ပြီးမြောက်ပြီးသည်နှင့် သင့်တွေ့ရှိချက်များကို အဖွဲ့နှင့် သက်ဆိုင်သူများထံ မျှဝေရန် အဆင်သင့်ဖြစ်နေသည်နှင့်တပြိုင်နက် မော်ဒယ်မှတ်ပုံတင်ခြင်းအား အသုံးပြုပါသည်။
MLflow Model Registry သည် သင့်မော်ဒယ်များနှင့် ၎င်းတို့၏ သက်တမ်းကို ဗဟိုတည်နေရာမှ စီမံခန့်ခွဲရန်အတွက် API နှင့် သုံးစွဲသူကြားခံကို ပံ့ပိုးပေးပါသည်။ မော်ဒယ်မျိုးရိုး၊ မော်ဒယ်ဗားရှင်း၊ မှတ်ချက်များနှင့် အဆင့်အကူးအပြောင်းများအားလုံးကို မှတ်ပုံတင်ခြင်းမှတစ်ဆင့် ရရှိနိုင်ပါသည်။
MLflow တွင်၊ မှတ်ပုံတင်ထားသော မော်ဒယ်သည် သီးသန့်အမည်နှင့် မက်တာဒေတာ၊ မော်ဒယ်ဗားရှင်းများ၊ အကူးအပြောင်းအဆင့်များနှင့် မော်ဒယ်မျိုးရိုးရှိသည်။ မှတ်ပုံတင်ထားသော မော်ဒယ်တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော မော်ဒယ်ဗားရှင်းများကို တွေ့ရှိနိုင်သည်။ မော်ဒယ်အသစ်ကို မှတ်ပုံတင်မှုတွင် စာရင်းသွင်းသည့်အခါ ဗားရှင်း 1 ဟု သတ်မှတ်သည်။ အောက်ပါဗားရှင်းကို အမည်တူ မော်ဒယ်အသစ်တိုင်းတွင် ထည့်သွင်းထားသည်။
မည်သည့်မော်ဒယ်ဗားရှင်းအတွက်မဆို အချိန်မရွေး အဆင့်တစ်ဆင့် သတ်မှတ်နိုင်ပါသည်။ သို့သော်၊ အဆင့်များဖြစ်သည့် အဆင့်များ၊ ထုတ်လုပ်ခြင်းနှင့် သိမ်းဆည်းခြင်းကဲ့သို့သော တရားဝင်သတ်မှတ်ထားသည့် MLflow အဆင့်များအောက်တွင် အဆင့်များကို သတ်မှတ်ပေးရပါမည်။ မော်ဒယ်ဗားရှင်းတစ်ခုသည် အဆင့်တစ်ခုမှ အခြားတစ်ခုကို ကူးပြောင်းနိုင်သည်။
MLflow သည် ထိပ်တန်းအဆင့်မော်ဒယ်နှင့် သီးခြားဗားရှင်းတစ်ခုစီကို အမှတ်အသားပြုရန် markdown ကို အသုံးပြုနိုင်သည်။ ဖော်ပြချက်များနှင့် အယ်လဂိုရီသမ်ရှင်းလင်းချက်များ၊ နည်းစနစ်နှင့် အသုံးပြုထားသော ဒေတာအတွဲများကဲ့သို့သော အခြားသက်ဆိုင်သည့် အချက်အလက်များကို သင်တွင် ထည့်သွင်းနိုင်သည်။
Key ကိုအင်္ဂါရပ်များ
- သင့်ကိုယ်ပိုင် MLflow ဆာဗာကို လက်ခံဆောင်ရွက်ပေးသည့်အခါ UI သို့မဟုတ် API မှတစ်ဆင့် မော်ဒယ်မှတ်ပုံတင်ခြင်းသို့ ဝင်ရောက်ရန်၊ သင်သည် ဒေတာဘေ့စ်-ကျောထောက်နောက်ခံပြုထားသော နောက်ခံစတိုးကို အသုံးပြုရပါမည်။
- မော်ဒယ်မှတ်ပုံတင်ခြင်းကိုလည်း MLflow မော်ဒယ်အရသာ သို့မဟုတ် MLflow Client ခြေရာခံခြင်း API အင်တာဖေ့စ်မှတဆင့် ဝင်ရောက်ကြည့်ရှုနိုင်ပါသည်။ ဥပမာအားဖြင့် သင်သည် MLflow စမ်းသပ်မှုတစ်ခုလုပ်ဆောင်နေစဉ် သို့မဟုတ် သင်၏စမ်းသပ်မှုအားလုံးလုပ်ဆောင်ပြီးနောက်တွင် မော်ဒယ်တစ်ခုကို စာရင်းသွင်းနိုင်သည်။
- လူတိုင်းသည် MLflow ကိုအသုံးပြု၍ ၎င်းတို့၏ မော်ဒယ်များကို လေ့ကျင့်သင်ကြားပေးမည်မဟုတ်ပါ။ ရလဒ်အနေဖြင့် MLflow ကို အသုံးမပြုမီ လေ့ကျင့်သင်ကြားထားသော မော်ဒယ်အချို့ ရှိနိုင်ပါသည်။ မော်ဒယ်များကို ပြန်လည်လေ့ကျင့်ခြင်းထက်၊ သင်သည် သိမ်းဆည်းထားသော မော်ဒယ်များကို Model Registry တွင် မှတ်ပုံတင်ရန် ဆန္ဒရှိပါသည်။
ပိုမိုသိရှိလိုပါက, သင်သည်တရားဝင်ထွက်စစ်ဆေးနိုင်ပါသည်။ စာရွက်စာတမ်းများ.
ကောက်ချက်
MLflow သည် အလွန်ကောင်းမွန်ပြီး အဆက်မပြတ်ကြီးထွားနေသော ML lifecycle tool တစ်ခုဖြစ်သည်။ သင်၏လက်ရှိကိရိယာများနှင့် ပလပ်ဖောင်းများနှင့်အတူ ၎င်းကို အသုံးပြုနိုင်သည်။
၎င်းသည် Python၊ Java နှင့် R အပါအဝင် ပရိုဂရမ်ဘာသာစကားများစွာကို ပံ့ပိုးပေးပါသည်။ ၎င်းသည် အသုံးပြုရလွယ်ကူသော ဒီဇိုင်းကြောင့် မတူညီသော မော်ဒယ်ဗားရှင်းများကို လျင်မြန်စွာ ခြေရာခံ၊ သိမ်းဆည်းကာ နှိုင်းယှဉ်နိုင်သည်။
MLflow ကို စမ်းသုံးကြည့်ပြီး သင့်အတွေ့အကြုံကို ကျွန်ုပ်တို့အား အသိပေးပါ။
တစ်ဦးစာပြန်ရန် Leave