Mashinani o'rganishni sinab ko'rgan har bir kishi bu qanchalik qiyinligini tushunadi. Dasturiy ta'minotni ishlab chiqishdagi standart muammolardan tashqari, mashinani o'rganishni (ML) ishlab chiqish bir qator qo'shimcha to'siqlarni keltirib chiqaradi.
Yuzlab ochiq manbali vositalar ML hayot aylanishining har bir bosqichida, maʼlumotlarni tayyorlashdan tortib modelni oʻqitishgacha yordam berish uchun mavjud.
An'anaviy dasturiy ta'minotni ishlab chiqishdan farqli o'laroq, jamoalar har bir qadam uchun bitta vositani tanlaganlarida, ML bilan odatda natijalarni yaxshilash yoki yaxshilash uchun mavjud bo'lgan barcha vositalarni (masalan, algoritm) o'rganishni xohlaysiz.
Natijada, ML ishlab chiquvchilari yuzlab kutubxonalardan foydalanishlari va ishlab chiqarishlari kerak.
Mashinani o'rganish algoritmlari minglab moslashtiriladigan parametrlarni o'z ichiga oladi va siz yolg'iz yoki jamoada ishlaysizmi, model yaratish uchun har bir tajribaga qaysi parametrlar, kodlar va ma'lumotlar kiritilganligini aniqlash qiyin.
Tegishli monitoringsiz, jamoalar ko'pincha bir xil kodni qayta ishlash uchun kurashadilar. Maʼlumot olimi boʻlasizmi, oʻquv kodingizni ishlab chiqarishda foydalanish uchun muhandisga topshirasizmi yoki muammoni aniqlash uchun oldingi ishingizga qaytmoqchimisiz, ML ish jarayonining qadamlarini orqaga qaytarish juda muhimdir.
Ko'p sonli joylashtirish usullari va ishlatilishi kerak bo'lgan muhitlar (masalan, REST xizmati, ommaviy xulosalar yoki mobil ilovalar) tufayli modelni ishlab chiqarishga o'tkazish qiyin bo'lishi mumkin. Modellarni biron bir kutubxonadan ushbu vositalarning birortasiga ko'chirishning umumiy usuli yo'q, shuning uchun har bir yangi joylashtirish xavf tug'diradi.
Ushbu muammolar tufayli, an'anaviy dasturiy ta'minotni ishlab chiqish kabi barqaror, bashorat qilinadigan va keng qo'llaniladigan bo'lish uchun ML rivojlanishi sezilarli darajada yaxshilanishi kerak.
ML muammolari
- Turli xil vositalarning ko'pligi mavjud. Ma'lumotlarni tayyorlashdan tortib modellarni o'qitishgacha bo'lgan mashinani o'rganish hayot tsiklining har bir bosqichida yordam beradigan yuzlab dasturiy echimlar mavjud. Bundan tashqari, an'anaviy dasturiy ta'minotni ishlab chiqishdan farqli o'laroq, jamoalar mashinani o'rganishda (ML) har bir qadam uchun bitta vositani tanlashganda, siz ko'pincha natijalarni yaxshilash yoki yaxshilash uchun mavjud bo'lgan har bir vositani (masalan, algoritm) o'rganishni xohlaysiz. Natijada, ML ishlab chiquvchilari yuzlab kutubxonalardan foydalanishlari va ishlab chiqarishlari kerak.
- Tajribalarni kuzatib borish qiyin. Mashinani o'rganish algoritmlari minglab moslashtiriladigan parametrlarni o'z ichiga oladi va siz yolg'iz yoki jamoada ishlaysizmi, model yaratish uchun har bir tajribaga qaysi parametrlar, kodlar va ma'lumotlar kiritilganligini aniqlash qiyin.
- Mashinani o'rganishni amalga oshirish qiyin. Ko'p sonli joylashtirish usullari va ishlatilishi kerak bo'lgan muhitlar (masalan, REST xizmati, ommaviy xulosalar yoki mobil ilovalar) tufayli modelni ishlab chiqarishga o'tkazish qiyin bo'lishi mumkin. Modellarni biron bir kutubxonadan ushbu vositalardan biriga ko'chirishning umumiy usuli yo'q. Shunday qilib, har bir yangi joylashtirish xavf tug'diradi.
Nima bu MLflow?
MLflow - bu mashinani o'rganishning hayot aylanishi uchun ochiq manba platformasi. U ochiq interfeys kontseptsiyasiga asoslangan bo'lib, joriy infratuzilma va mashinani o'rganish algoritmlarini tizim bilan osongina integratsiyalash imkonini beruvchi ko'plab muhim abstraksiyalarni taklif qiladi.
Bu shuni anglatadiki, agar siz MLflow-dan foydalanmoqchi bo'lgan dasturchi bo'lsangiz, lekin qo'llab-quvvatlanmaydigan ramkadan foydalansangiz, ochiq interfeys dizayni ushbu ramkani birlashtirish va platforma bilan ishlashni boshlashni nisbatan soddalashtiradi. Amalda, bu MLflow har qanday bilan ishlashga mo'ljallanganligini anglatadi kompyuterni o'rganish kutubxona yoki til.
Bundan tashqari, MLflow takrorlanuvchanlikni ta'minlaydi, ya'ni bir xil o'quv yoki ishlab chiqarish mashinasini o'rganish kodi bulutda, mahalliy ish stantsiyasida yoki daftarda bo'ladimi, atrof-muhitdan qat'iy nazar bir xil natijalar bilan ishlashga mo'ljallangan.
Nihoyat, MLflow kengaytirilishi uchun yaratilgan, shuning uchun undan kichik ma'lumotlar olimlari jamoasi, shuningdek, mashinani o'rganish bo'yicha yuzlab amaliyotchilardan iborat katta kompaniya foydalanishi mumkin.
MLflow har qanday mashinani o'rganish kutubxonasi, algoritmi, joylashtirish vositasi yoki til bilan mos keladi. Shuningdek, u quyidagi afzalliklarga ega:
- Har qanday bulut xizmati bilan ishlash uchun mo'ljallangan.
- Apache Spark yordamida katta hajmdagi ma'lumotlarni kengaytiradi.
- MLflow turli xil ochiq manbali mashinani o'rganish tizimlari bilan mos keladi, shu jumladan Apache Spark, TensorFlowva SciKit-Learn.
Agar sizda allaqachon kod mavjud bo'lsa, u bilan MLflow dan foydalanish mumkin. Siz hatto o'zingizning ramka va modellaringizni korxonalar o'rtasida baham ko'rishingiz mumkin, chunki shunday Ochiq manba.
MLflow komponentlari: ular qanday ishlaydi?
MLflow - bu tajriba, qayta ishlab chiqarish, joylashtirish va yagona model registrini o'z ichiga olgan ML hayot aylanishini boshqarish uchun bepul va ochiq manba platformasi. Hozirgi vaqtda MLflow to'rtta komponentga ega:
1. MLflow kuzatuvi
Men MLflow Tracking bilan boshlayman. MLflow markazlashtirilgan oʻquv metamaʼlumotlarini kuzatish ombori bilan bogʻlangan turli muhim tushunchalar toʻplamini qoʻllab-quvvatlaydi. Birinchi tushuncha - bu model ishlashiga ta'sir qiluvchi muhim giperparametrlar yoki konfiguratsiya tugmalari to'plami. MLflow API-lari va markazlashtirilgan kuzatuv xizmatidan foydalanish bularning barchasini saqlab qolishi mumkin.
Foydalanuvchilar, shuningdek, mashinani o'rganish modellarining muvaffaqiyati haqida ma'lumot olish uchun ishlash ma'lumotlarini yozib olishlari mumkin. Bundan tashqari, takrorlanuvchanlik uchun MLflow foydalanuvchilarga modelni yaratishda foydalanilgan aniq manba kodini hamda uning versiyasini Git bilan chambarchas integratsiyalashgan holda, har bir modelni ma'lum bir majburiyat xeshiga bog'lash imkonini beradi.
MLflow har qanday ixtiyoriy fayllar bo'lgan artefaktlarni jurnalga kiritish uchun ishlatilishi mumkin, shu jumladan trening, test ma'lumotlari va takror ishlab chiqarish uchun modellarning o'zlari.
Bu shuni anglatadiki, agar men hozirgina modelni o'qitgan ishlab chiquvchi bo'lsam, uni markazlashtirilgan kuzatuv xizmatiga qo'yishim mumkin va mening hamkasblarimdan biri uni keyinroq yuklashi va o'qitish va tajribani davom ettirishi yoki muayyan ehtiyojni qondirish uchun ushbu modelni ishlab chiqarishni davom ettirishi mumkin. .
Mashinani o'rganish kodini bajarishda va natijalarni ko'rishda kuzatish - bu parametrlarni, kod versiyalarini, ko'rsatkichlarni va chiqish fayllarini jurnalga kiritish imkonini beruvchi API. U boshqa tillar qatori Python, R va Java tillarida yozilgan. Bundan tashqari, REST API sifatida foydalanish mumkin, bu uning ustiga ilovalar yaratish uchun ishlatilishi mumkin.
kalit Xususiyatlar
- Ko'pgina ishlab chiquvchilar o'zlarining mahalliy shaxsiy kompyuterlarida MLflow-dan foydalanadilar, bu erda backend va artefakt xotirasi diskdagi katalogni baham ko'radi.
- Ko'pgina foydalanuvchilar o'zlarining mahalliy shaxsiy kompyuterlarida MLflowni ishga tushirish uchun SQLAlchemy-mos keladigan ma'lumotlar bazasi SQLite dan ham foydalanadilar.
- MLflow, shuningdek, taqsimlangan arxitekturalarni ham qo'llab-quvvatlaydi. Kuzatuv serveri, backend do'koni va artefakt do'koni bularning barchasi turli serverlarda joylashgan.
- Agar ishga tushirish MLflow loyihasi tomonidan boshlangan bo'lsa, git commit xeshi ishlatilgan. MLflow Python, R, Java va REST API'lari ishga tushirish uchun ma'lumotlarni jurnalga kiritish uchun ishlatilishi mumkin.
Qo'shimcha ma'lumot olish uchun siz rasmiyni tekshirishingiz mumkin hujjatlar.
2. MLFlow loyihalari
Kuzatuv komponentlarini ko'rib chiqqanimizdan so'ng, men MLflow loyihalari haqida gapirmoqchiman, ular ijro kontekstidan qat'i nazar, namunaviy treninglar uchun takrorlanadigan qadoqlash tuzilmasi.
Korxonalar mashinani o'qitish texnologiyalarining keng doirasini qo'llaydilar, lekin ular ushbu o'quv vositalarini turli kontekstlarda ham qo'llashadi. Masalan, ular o'zlarining o'quv kodlarini bulutda, mahalliy shaxsiy kompyuterda yoki noutbukda bajarishlari mumkin.
Bu mashinani o'rganish natijalarini takrorlash qiyin bo'lgan muammoga olib keladi. Ko'pincha, bir xil o'quv kodi ikkita alohida joyda bajarilmaydi yoki bir xil natijalarni bermaydi.
MLflow tomonidan taqdim etilgan yechim mashinani oʻrganish boʻyicha barcha oʻquv kodlarini, shuningdek uning versiya kutubxonasiga bogʻliqliklari, sozlamalari, oʻquv va sinov maʼlumotlarini oʻz ichiga olgan mustaqil oʻquv kod loyihasi taʼrifidir.
MLflow, mashinani o'qitish jarayoniga qo'yiladigan barcha talablarni aniq tavsiflash orqali ijro kontekstlarida takrorlanuvchanlikni ta'minlaydi. Buni barcha kutubxonalarni o'rnatish va kod ishlayotgan bir xil tizim holatini bajarish orqali amalga oshiradi.
MLflow loyihasi katalogdan boshqa narsa emas. Bu o'quv kodi, kutubxonaga bog'liqlik ta'rifi va mashg'ulot uchun zarur bo'lgan boshqa ma'lumotlarni, shuningdek, ushbu ixtiyoriy konfiguratsiya faylini o'z ichiga olgan katalogdir.
Ushbu kutubxona talablari turli yo'llar bilan belgilanishi mumkin. Foydalanuvchilar, masalan, o'quv kodlari kutubxonasi talablarini ro'yxatga olish uchun YAML formatidagi anakonda muhiti spetsifikatsiyasini taqdim etishlari mumkin. MLflow o'quv kodini konteyner ichida bajaradi. Bunday holda, ular Docker konteynerini ham o'z ichiga olishi mumkin.
Nihoyat, MLflow ushbu loyihalarni, shuningdek, Python va Java API-larini ishga tushirish uchun buyruq qatori interfeysiga (CLI) ega. Ushbu loyihalar foydalanuvchining mahalliy tizimida, shuningdek Databricks ish rejalashtiruvchisi va Kubernetes kabi turli xil masofaviy sozlamalarda ishga tushirilishi mumkin. MLflow loyihalari sizga ma'lumotlar fanining kodini takrorlanadigan va qayta ishlatilishi mumkin bo'lgan tarzda, asosan standartlarga asoslangan holda to'plash imkonini beradi.
Loyihalar komponenti API va loyihalarni boshqarish uchun buyruq qatori yordamchi dasturlarini o'z ichiga oladi. Ushbu imkoniyatlar loyihalarni mashinani o'rganish jarayonlarini shakllantirish uchun bir-biriga bog'lash mumkinligini kafolatlaydi.
kalit Xususiyatlar
- MLflow loyiha muhitini, jumladan Docker konteyner muhitini, Conda muhitini va tizim muhitini qo'llab-quvvatlaydi.
- Har qanday Git ombori yoki mahalliy katalogi MLflow loyihasi sifatida ko'rib chiqilishi mumkin; avvalboshdan; har qanday qobiqdan foydalanishingiz mumkin yoki Python skripti katalogda loyihaga kirish nuqtasi sifatida.
- Java kutubxonalari kabi Python bo'lmagan bog'liqliklar Docker konteynerlari yordamida olinishi mumkin.
- YAML sintaksisidagi matn fayli boʻlgan loyihaning asosiy katalogiga loyiha faylini qoʻshish orqali siz MLflow loyihasi ustidan koʻproq nazoratga ega boʻlishingiz mumkin.
Qo'shimcha ma'lumot olish uchun siz rasmiyni tekshirishingiz mumkin hujjatlar.
3. MLflow modellari
Endi men ishlab chiqarish kontekstlarining keng doirasini qo'llab-quvvatlaydigan umumiy maqsadli model formati bo'lgan MLflow modellarini muhokama qilmoqchiman. MLflow modellarining sababi endi loyihalardagiga juda o'xshash.
Yana shuni ko'ramizki, modellar keng ko'lamli vositalar yordamida yaratilishi mumkin, ammo ular o'quv muhitidan farqli o'laroq, turli xil vaziyatlarda ishlab chiqarilishi yoki joylashtirilishi mumkin.
Bu sozlamalar Kubernetes yoki Amazon SageMaker kabi real vaqt rejimida xizmat ko‘rsatish vositalarini, shuningdek, Spark kabi oqim va ommaviy balllarni o‘z ichiga oladi. Bundan tashqari, ba'zi korxonalar modellarni oldindan tuzilgan bulut misolida ishlaydigan RESTful veb-xizmati sifatida joylashtirishni tanlashi mumkin.
MLflow modeli, xuddi loyiha kabi, katalog tuzilishi. U konfiguratsiya faylini va bu safar o'quv kodini emas, balki seriyali model artefaktini o'z ichiga oladi. Shuningdek, u loyiha sifatida takrorlanuvchanlik uchun ushbu bog'liqliklar to'plamini o'z ichiga oladi. Bu safar biz Conda muhiti kontekstida baholashga bog'liqliklarni ko'rib chiqamiz.
Bundan tashqari, MLflow bir qator mashhur ramkalardan MLflow formatidagi modellarni seriyalashtirish uchun model yaratish vositalarini o'z ichiga oladi. Nihoyat, MLflow har qanday MLflow modelini ishlab chiqarish va bir qator xizmatlarga ulash uchun joylashtirishlar, API-larni qo'shadi va bu API-larga Python, Java, R va CLI formatlarida kirish mumkin.
Modellar o'rash modellari uchun standart tuzilmaga ega bo'lgan komponent bo'lib, ulardan xulosa chiqarish serverlari yoki boshqalar kabi quyi oqim vositalari tomonidan ishlatilishi va tushunilishi mumkin. Ma'lumotlar bazalari ommaviy xulosa chiqarish platformasi. Ushbu komponent ishlab chiqarish uchun modelni qadoqlashda soatlab buyurtma kodini tejaydi.
MLflow modeli - bu "lazzatlar" deb nomlanuvchi turli shakllarda mashinani o'rganish modellarini qadoqlash uchun standart. MLflow sizga har xil turdagi modellarni joylashtirishda yordam beradigan ko'plab vositalarni taqdim etadi. Har bir MLflow modeli o'zboshimchalik bilan fayllarni o'z ichiga olgan katalog sifatida saqlanadi, shuningdek undan foydalanish mumkin bo'lgan lazzatlar ro'yxati bilan ML modeli tavsiflovchi fayli.
kalit Xususiyatlar
- MLflow-ning barcha o'rnatilgan joylashtirish vositalari modelni Python funktsiyasi sifatida qanday ishlatishni tushuntiruvchi "Python funktsiyasi" lazzati kabi bir nechta "standart" lazzatlarni taklif qiladi.
- Har bir MLflow modeli o'zboshimchalik bilan fayllarni o'z ichiga olgan katalogdan, shuningdek, katalog ildizidagi modelning ko'plab lazzatlarini belgilaydigan ML model faylidan iborat.
- Modelni saqlashda MLflow sizga modelning bog'liqliklarini o'z ichiga olgan Conda muhiti parametrini belgilash imkonini beradi. Agar Conda muhiti belgilanmagan bo'lsa, model lazzatiga asoslangan standart muhit quriladi. Shundan so'ng Conda muhiti conda.yaml da saqlanadi.
Qo'shimcha ma'lumot olish uchun siz rasmiyni tekshirishingiz mumkin hujjatlar.
4. MLflow modeli reestri
Model registrlari o'rganilgan mashinani o'rganish (ML) modellari uchun ombordir. Modellar reestri API va veb-ilovadan iborat bo'lib, u turli bosqichlarda jamoa sifatida modellarni saqlash uchun ishlatiladi. Model Lineage, Model Versioning, Easy Stage Transition va Annotation - bu Modellar registrida mavjud bo'lgan imkoniyatlardan faqat bir nechtasi.
Model reestri, modellarning o'ziga qo'shimcha ravishda, modelni yaratish uchun foydalaniladigan ma'lumotlar va o'quv vazifalari haqidagi ma'lumotlarni (metama'lumotlarni) o'z ichiga oladi. ML modellari uchun nasl yaratish uchun ushbu kerakli ma'lumotlarni kuzatib borish juda muhimdir. Shu nuqtai nazardan, model registrlari an'anaviy dasturiy ta'minot kabi ishlaydi versiya boshqaruvi tizimlar (masalan, Git, SVN) va artefakt omborlari (masalan, Artifactory, PyPI).
Model reestri ma'lumotlar olimlari va mashina o'rganish muhandislariga boshqa jamoalar bilan hamkorlik qilish uchun o'z modellarini nashr etish, sinovdan o'tkazish, kuzatish, boshqarish va tarqatish imkonini beruvchi tizimdir. Umuman olganda, namunaviy reestr siz sinov bosqichini tugatganingizdan va natijalaringizni jamoa va manfaatdor tomonlar bilan baham ko'rishga tayyor bo'lganingizdan so'ng ishga tushadi.
MLflow Model registri markaziy joylashuvdan modellaringizni va ularning ishlash muddatini boshqarish uchun API va foydalanuvchi interfeysini taqdim etadi. Modelning nasl-nasabi, model versiyasini yaratish, izohlar va bosqichli o'tishlar ro'yxatga olish kitobi orqali mavjud.
MLflow'da ro'yxatdan o'tgan model noyob nom va metama'lumotlarga, model versiyalariga, o'tish fazalariga va model avlodiga ega. Bir yoki bir nechta model versiyasini ro'yxatdan o'tgan modelda topish mumkin. Yangi model registrda ro'yxatdan o'tganda 1-versiya hisoblanadi. Quyidagi versiya bir xil nomdagi har qanday yangi modelga qo'shiladi.
Siz istalgan vaqtda istalgan model versiyasiga bir qadam belgilashingiz mumkin. Biroq, bosqichlar MLflow fazalari ostida rasmiy ravishda belgilangan, masalan, sahnalashtirish, ishlab chiqarish va arxivlash kabi tayinlanishi kerak. Model versiyasini bir bosqichdan ikkinchisiga o'tkazish mumkin.
MLflow sizga yuqori darajadagi modelga ham, har bir o'ziga xos versiyaga izoh berish uchun markdowndan foydalanish imkonini beradi. Siz tavsiflarni, shuningdek, algoritm tushuntirishlari, metodologiya va foydalanilgan ma'lumotlar to'plami kabi boshqa tegishli ma'lumotlarni kiritishingiz mumkin.
kalit Xususiyatlar
- O'zingizning MLflow serveringizni joylashtirishda UI yoki API orqali model registriga kirish uchun siz ma'lumotlar bazasi bilan ta'minlangan backend do'konidan foydalanishingiz kerak.
- Model registriga MLflow modeli lazzati yoki MLflow Client Tracking API interfeysi orqali ham kirish mumkin. Siz, masalan, MLflow eksperimenti paytida yoki barcha tajribalaringizdan keyin modelni ro'yxatdan o'tkazishingiz mumkin.
- Hamma ham o'z modellarini MLflow yordamida o'rgatishni boshlamaydi. Natijada, siz MLflow-dan foydalanishdan oldin ba'zi modellarni o'rgatgan bo'lishingiz mumkin. Modellarni qayta o'qitish o'rniga, siz saqlangan modellaringizni Modellar reestrida ro'yxatdan o'tkazishni xohlaysiz.
Qo'shimcha ma'lumot olish uchun siz rasmiyni tekshirishingiz mumkin hujjatlar.
Xulosa
MLflow - bu mukammal va doimiy o'sib borayotgan ML hayot aylanishi vositasi. Siz uni joriy vositalaringiz va platformalaringiz bilan bir qatorda ishlatishingiz mumkin.
U bir nechta dasturlash tillarini, jumladan Python, Java va R-ni qo'llab-quvvatlaydi. Shuningdek, foydalanuvchilarga qulay dizayni tufayli turli model versiyalarini tezda kuzatishingiz, saqlashingiz va solishtirishingiz mumkin.
MLflow-ni sinab ko'ring va tajribangizni bizga xabar bering!
Leave a Reply