Машиналық оқытуды әзірлеуге тырысқандардың бәрі оның қаншалықты қиын екенін түсінеді. Бағдарламалық жасақтаманы әзірлеудегі стандартты мәселелерден басқа, машиналық оқытуды (ML) әзірлеу көптеген қосымша кедергілерді тудырады.
Деректерді дайындаудан бастап үлгіні оқытуға дейінгі ML өмірлік циклінің әрбір кезеңінде көмектесетін жүздеген ашық бастапқы құралдар қол жетімді.
Дәстүрлі бағдарламалық жасақтаманы әзірлеуден айырмашылығы, командалар әр қадам үшін бір құралды таңдаған кезде, ML көмегімен сіз оның нәтижелерді жақсартатынын көру үшін әдетте әрбір қол жетімді құралды (мысалы, алгоритм) зерттегіңіз келеді.
Нәтижесінде, ML әзірлеушілері жүздеген кітапханаларды пайдалануы және шығаруы керек.
Машиналық оқыту алгоритмдері мыңдаған теңшелетін параметрлерді қамтиды және сіз жалғыз немесе топта жұмыс жасайсыз ба, үлгі жасау үшін әрбір экспериментке қандай параметрлер, код және деректер кіргенін анықтау қиын.
Тиісті бақылаусыз командалар сол кодты қайта жұмыс істеу үшін жиі қиналады. Сіз оқу кодын өндірісте пайдалану үшін инженерге тасымалдайтын деректер ғалымы болсаңыз да немесе мәселені диагностикалау үшін алдыңғы жұмысыңызға қайта оралсаңыз да, ML жұмыс үрдісінің қадамдарын кері қайтару өте маңызды.
Модельді өндіріске жылжыту көптеген қолдану әдістері мен орталарға (мысалы, REST қызметі, пакеттік қорытынды немесе мобильді қолданбалар) байланысты қиын болуы мүмкін. Үлгілерді кез келген кітапханадан осы құралдардың ешқайсысына жылжытудың жалпы әдісі жоқ, сондықтан әрбір жаңа орналастыру қауіп тудырады.
Осы мәселелерге байланысты, дәстүрлі бағдарламалық жасақтаманы әзірлеу сияқты тұрақты, болжамды және кеңінен қолданылатын болу үшін ML әзірлеу айтарлықтай жақсаруы керек екені анық.
ML қиындықтары
- Әртүрлі құралдардың көптігі бар. Деректерді дайындаудан бастап модельді оқытуға дейін машинаны оқытудың өмірлік циклінің әрбір кезеңінде көмектесетін жүздеген бағдарламалық шешімдер қол жетімді. Сонымен қатар, дәстүрлі бағдарламалық жасақтаманы әзірлеуден айырмашылығы, командалар машиналық оқытуда (ML) әр қадам үшін бір құралды таңдағанда, оның нәтижелерді жақсартатынын көру үшін жиі қол жетімді әрбір құралды (мысалы, алгоритм) зерттегіңіз келеді. Нәтижесінде, ML әзірлеушілері жүздеген кітапханаларды пайдалануы және шығаруы керек.
- Эксперименттерді қадағалау қиын. Машиналық оқыту алгоритмдері мыңдаған теңшелетін параметрлерді қамтиды және сіз жалғыз немесе топта жұмыс жасайсыз ба, үлгі жасау үшін әрбір экспериментке қандай параметрлер, код және деректер кіргенін анықтау қиын.
- Машиналық оқытуды жүзеге асыру қиын. Модельді өндіріске жылжыту көптеген қолдану әдістері мен орталарға (мысалы, REST қызметі, пакеттік қорытынды немесе мобильді қолданбалар) байланысты қиын болуы мүмкін. Кез келген кітапханадан осы құралдардың кез келгеніне үлгілерді жылжытудың жалпы әдісі жоқ. Осылайша, әрбір жаңа орналастыру қауіп тудырады.
қандай MLflow?
MLflow - машиналық оқытудың өмірлік циклі үшін ашық бастапқы платформа. Ол ағымдағы инфрақұрылым мен машиналық оқыту алгоритмдерін жүйемен оңай біріктіруге мүмкіндік беретін көптеген маңызды абстракцияларды ұсынатын ашық интерфейс тұжырымдамасына негізделген.
Бұл MLflow қолданбасын пайдаланғысы келетін, бірақ қолдау көрсетілмейтін құрылымды пайдаланатын әзірлеуші болсаңыз, ашық интерфейс дизайны бұл құрылымды біріктіруді және платформамен жұмыс істеуді жеңілдететінін білдіреді. Іс жүзінде бұл MLflow кез келгенімен жұмыс істеуге арналғанын білдіреді машина оқыту кітапхана немесе тіл.
Сонымен қатар, MLflow қайталанымдылыққа ықпал етеді, яғни бір оқу немесе өндірістік машинаны оқыту коды бұлтта, жергілікті жұмыс станциясында немесе жазу кітапшасында қоршаған ортаға тәуелсіз бірдей нәтижелермен жұмыс істеуге арналған.
Соңында, MLflow масштабтауға арналған, сондықтан оны деректер ғалымдарының шағын тобы, сондай-ақ машиналық оқыту бойынша жүздеген тәжірибешілері бар үлкен компания пайдалана алады.
MLflow кез келген машиналық оқыту кітапханасымен, алгоритммен, орналастыру құралымен немесе тілмен үйлесімді. Оның келесі артықшылықтары да бар:
- Кез келген бұлттық қызметпен жұмыс істеуге арналған.
- Apache Spark көмегімен үлкен деректерге масштабтау.
- MLflow әртүрлі ашық бастапқы кодты машиналық оқыту жүйелерімен үйлесімді, соның ішінде Apache Spark, TensorFlow, және SciKit-Learn.
Егер сізде код бар болса, онымен MLflow пайдалануға болады. Сіз тіпті құрылымдарыңыз бен үлгілеріңізді кәсіпорындар арасында бөлісе аласыз, себебі солай Ашық көзі.
MLflow құрамдастары: олар қалай жұмыс істейді?
MLflow – тәжірибені, қайталануды, орналастыруды және бір үлгі тізілімін қамтитын ML өмірлік циклін басқаруға арналған тегін және бастапқы көзі ашық платформа. Қазіргі уақытта MLflow төрт компоненттен тұрады:
1. MLflow бақылау
Мен MLflow Tracking арқылы бастаймын. MLflow орталықтандырылған оқу метадеректерін бақылау репозиторийіне байланысты әртүрлі маңызды тұжырымдамалар жинағын қолдайды. Бірінші түсінік үлгі өнімділігіне әсер ететін маңызды гиперпараметрлердің немесе конфигурация тұтқаларының жинағы. MLflow API интерфейстерін және орталықтандырылған бақылау қызметін пайдалану бұлардың барлығын сақтай алады.
Сондай-ақ пайдаланушылар машиналық оқыту үлгілерінің сәттілігі туралы түсінік алу үшін өнімділік деректерін жаза алады. Сонымен қатар, қайталану үшін MLflow пайдаланушыларға модель жасау үшін пайдаланылған нақты бастапқы кодты, сондай-ақ оның нұсқасын Git-пен тығыз біріктіру арқылы әрбір үлгіні белгілі бір міндеттеме хэшіне байланыстыруға мүмкіндік береді.
MLflow артефактілерді тіркеу үшін пайдаланылуы мүмкін, бұл кез келген ерікті файлдар, соның ішінде оқыту, сынақ деректері және қайталану үшін үлгілердің өздері.
Бұл дегеніміз, егер мен модельді жаңа ғана үйреткен әзірлеуші болсам, оны орталықтандырылған бақылау қызметіне қолдана аламын және әріптестерімнің бірі оны кейінірек жүктей алады және белгілі бір қажеттілікті қанағаттандыру үшін сол үлгіні оқытуды және тәжірибе жасауды немесе өндіруді жалғастыра алады. .
Машинаны оқыту кодын орындаған кезде және одан кейін нәтижелерді көргенде, қадағалау параметрлерді, код нұсқаларын, көрсеткіштерді және шығыс файлдарын тіркеуге мүмкіндік беретін API болып табылады. Ол басқа тілдермен қатар Python, R және Java тілдерінде жазылған. Оған REST API ретінде де қол жеткізуге болады, ол оның үстіне қолданбаларды құру үшін пайдаланылуы мүмкін.
Басты ерекшеліктер
- Көптеген әзірлеушілер жергілікті компьютерде MLflow пайдаланады, мұнда сервер және артефакт қоймасы дискідегі каталогты ортақ пайдаланады.
- Көптеген пайдаланушылар жергілікті компьютерлерде MLflow іске қосу үшін SQLAlchemy-үйлесімді дерекқорды SQLite пайдаланады.
- MLflow сонымен қатар бөлінген архитектураларды қолдайды. Бақылау сервері, серверлік дүкен және артефакт қоймасы бұлардың барлығында әртүрлі серверлерде орналастырылған.
- Егер іске қосу MLflow жобасымен басталса, git commit хэш пайдаланылды. MLflow Python, R, Java және REST API интерфейстері іске қосу үшін деректерді тіркеу үшін пайдаланылуы мүмкін.
Қосымша ақпарат алу үшін сіз ресми түрде тексере аласыз құжаттама.
2. MLFlow жобалары
Бақылау құрамдастарынан өткеннен кейін, орындау контекстіне қарамастан үлгілік оқу сессиялары үшін қайталанатын орау құрылымы болып табылатын MLflow жобалары туралы айтқым келеді.
Кәсіпорындар машиналық оқыту технологияларының кең спектрін пайдаланады, бірақ олар сонымен бірге осы оқу құралдарын әртүрлі контексттер жинағында пайдаланады. Мысалы, олар жаттығу кодын бұлтта, жергілікті компьютерде немесе жазу кітапшасында орындауы мүмкін.
Бұл машиналық оқыту нәтижелерін қайталау қиын деген мәселеге әкеледі. Көбінесе бірдей жаттығу коды екі бөлек орында орындалмайды немесе бірдей нәтижелерді бермейді.
MLflow ұсынатын шешім машиналық оқытудың барлық оқу кодын, сондай-ақ оның нұсқалар кітапханасының тәуелділіктерін, параметрлерін және оқу және сынақ деректерін қамтитын дербес оқыту коды жобасының анықтамасы болып табылады.
MLflow машиналық оқыту процесіне қойылатын талаптардың барлық жиынтығын нақты сипаттау арқылы орындау контексттері бойынша қайталануды қамтамасыз етеді. Ол мұны сол кітапханалардың барлығын орнату және код жұмыс істейтін бірдей жүйе күйін орындау арқылы жүзеге асырады.
MLflow жобасы каталогтан басқа ештеңе емес. Бұл оқу кодын, кітапханаға тәуелділік анықтамасын және оқу сессиясына қажетті басқа деректерді, сондай-ақ осы қосымша конфигурация файлын қамтитын каталог.
Бұл кітапхана талаптарын әртүрлі тәсілдермен анықтауға болады. Пайдаланушылар, мысалы, оқу кодының кітапханасының талаптарын тізімдеу үшін YAML пішіміндегі анаконда ортасының сипаттамасын бере алады. MLflow контейнер ішінде жаттығу кодын орындайды. Мұндай жағдайда олар Docker контейнерін де қамтуы мүмкін.
Соңында, MLflow-та осы жобаларды, сондай-ақ Python және Java API интерфейстерін іске қосу үшін пәрмен жолы интерфейсі (CLI) бар. Бұл жобалар пайдаланушының жергілікті жүйесінде, сондай-ақ Databricks тапсырмаларын жоспарлаушы және Kubernetes сияқты әртүрлі қашықтағы параметрлерде іске қосылуы мүмкін. MLflow жобалары деректер ғылымының кодын негізінен стандарттарға негізделген қайталанатын және қайта пайдалануға болатын түрде пакеттеуге мүмкіндік береді.
Жобалар құрамдас бөлігі API және жобаларды басқаруға арналған пәрмен жолы утилиталарын қамтиды. Бұл мүмкіндіктер жобаларды машиналық оқыту процестерін қалыптастыру үшін біріктіруге болатынына кепілдік береді.
Басты ерекшеліктер
- MLflow жоба орталарын, соның ішінде Docker контейнер ортасын, Conda ортасын және жүйелік ортаны қолдайды.
- Кез келген Git репозиторийі немесе жергілікті каталог MLflow жобасы ретінде қарастырылуы мүмкін; әдепкі бойынша; кез келген қабықты пайдалануға болады немесе Python сценарийі каталогта жобаның кіру нүктесі ретінде.
- Java кітапханалары сияқты Python емес тәуелділіктерді Docker контейнерлері арқылы түсіруге болады.
- YAML синтаксисіндегі мәтіндік файл болып табылатын жобаның түбірлік каталогына жоба файлын қосу арқылы MLflow жобасын көбірек басқаруға болады.
Қосымша ақпарат алу үшін сіз ресми түрде тексере аласыз құжаттама.
3. MLflow үлгілері
Енді мен өндіріс контексттерінің кең ауқымын қолдайтын жалпы мақсаттағы үлгі пішімі MLflow үлгілерін талқылағым келеді. MLflow үлгілерінің себебі қазір жобаларға ұқсас.
Қайтадан, біз үлгілерді құралдардың кең ауқымын пайдалану арқылы жасауға болатынын көреміз, бірақ оларды оқыту орталарына қарағанда жағдайлардың үлкен ауқымында шығаруға немесе орналастыруға болады.
Бұл параметрлерге Kubernetes немесе Amazon SageMaker сияқты нақты уақыттағы қызмет көрсету құралдары, сондай-ақ Spark сияқты ағындық және пакеттік ұпайлар кіреді. Сонымен қатар, кейбір компаниялар модельдерді алдын ала конфигурацияланған бұлт данасында жұмыс істейтін RESTful веб-қызметі ретінде қолдануды таңдауы мүмкін.
MLflow үлгісі жоба сияқты каталог құрылымы болып табылады. Ол конфигурация файлын және бұл жолы оқу кодынан гөрі серияланған үлгі артефактісін қамтиды. Ол сонымен қатар жоба ретінде қайталану үшін тәуелділіктердің осы жинағын қамтиды. Бұл жолы біз Conda ортасының контекстіндегі бағалау тәуелділіктерін қарастырамыз.
Сонымен қатар, MLflow танымал фреймворктардың ауқымынан MLflow пішіміндегі үлгілерді сериялауға арналған үлгі құру құралдарын қамтиды. Соңында, MLflow кез келген MLflow үлгісін қызметтер ауқымына өндіру және қосу үшін орналастыруларды, API интерфейстерін қосады және бұл API Python, Java, R және CLI пішімінде қол жетімді.
Модельдер – қорытынды жасаушы серверлер немесе серверлер сияқты төменгі ағындық құралдармен пайдалануға және түсінуге болатын үлгілерді орау үшін стандартты құрылымы бар құрамдас бөлік. Мәліметтер базасы топтамалық қорытынды жасау платформасы. Бұл құрамдас модельді өндіріске орау кезінде тапсырыс беру кодының сағаттарын үнемдейді.
MLflow моделі – «дәмдер» деп аталатын әртүрлі пішіндерде машиналық оқыту үлгілерін орау стандарты. MLflow әртүрлі үлгі түрлерін орналастыруға көмектесетін көптеген құралдарды ұсынады. Әрбір MLflow үлгісі ерікті файлдарды қамтитын каталог ретінде, сондай-ақ оны пайдалануға болатын дәмдер тізімі бар ML үлгісі дескриптор файлы ретінде сақталады.
Басты ерекшеліктер
- MLflow-тың барлық кірістірілген орналастыру құралдары модельді Python функциясы ретінде іске қосу жолын түсіндіретін «Python функциясы» дәмі сияқты бірнеше «стандартты» дәмдерді ұсынады.
- Әрбір MLflow үлгісі ерікті файлдарды қамтитын каталогтан, сонымен қатар модельдің көптеген дәмдерін анықтайтын каталог түбіріндегі ML үлгісі файлынан тұрады.
- Үлгіні сақтау кезінде MLflow үлгісінің тәуелділіктерін қамтитын Conda ортасының параметрін көрсетуге мүмкіндік береді. Егер Conda ортасы көрсетілмесе, үлгі дәміне негізделген әдепкі орта құрылады. Осыдан кейін Conda ортасы conda.yaml ішінде сақталады.
Қосымша ақпарат алу үшін сіз ресми түрде тексере аласыз құжаттама.
4. MLflow үлгі тізілімі
Модельдер тізілімі үйренілген машиналық оқыту (ML) үлгілеріне арналған репозиторий болып табылады. Модельдер тізілімі API интерфейсінен және әртүрлі кезеңдерде топ ретінде үлгілерді қолдау үшін пайдаланылатын веб-негізделген қолданбадан тұрады. Модельдер тізбегіндегі үлгілер тізбегінде қол жетімді мүмкіндіктердің тек бірнешеуі ғана.
Үлгі тізілімі үлгілердің өзінен басқа, модельді құру үшін пайдаланылатын деректер мен оқыту тапсырмалары туралы ақпаратты (метадеректерді) қамтиды. ML үлгілері үшін линия жасау үшін осы қажетті кірістерді қадағалау өте маңызды. Осыған байланысты үлгі тізілімі кәдімгі бағдарламалық құрал сияқты жұмыс істейді нұсқаларды басқару жүйелер (мысалы, Git, SVN) және артефакт репозиторийлері (мысалы, Artifactory, PyPI).
Үлгі тізілімі деректер ғалымдары мен машиналық оқыту инженерлеріне басқа топтармен ынтымақтастық үшін үлгілерін жариялауға, сынауға, бақылауға, басқаруға және таратуға мүмкіндік беретін негіз болып табылады. Негізінде, үлгі тізілімі тестілеу кезеңін аяқтағаннан кейін және өз нәтижелеріңізді топпен және мүдделі тараптармен бөлісуге дайын болғаннан кейін қолданылады.
MLflow үлгі тізілімі орталық жерден үлгілерді және олардың қызмет ету мерзімін басқару үшін API және пайдаланушы интерфейсін қамтамасыз етеді. Үлгінің шығу тегі, үлгі нұсқасы, аннотациялар және кезеңдік ауысулардың барлығы тізілім арқылы қол жетімді.
MLflow ішінде тіркелген үлгі бірегей аты мен метадеректері, үлгі нұсқалары, өтпелі кезеңдері және үлгі желісі бар үлгі болып табылады. Бір немесе бірнеше үлгі нұсқаларын тіркелген үлгіде табуға болады. Жаңа үлгі тізілімде тіркелген кезде 1-нұсқа болып саналады. Келесі нұсқа аттас кез келген жаңа үлгіге қосылады.
Кез келген уақытта кез келген үлгі нұсқасына бір қадам тағайындауға болады. Дегенмен, кезеңдерді қою, өндіру және мұрағаттау сияқты ресми түрде көрсетілген MLflow кезеңдері астында тағайындау керек. Модельдік нұсқаны бір кезеңнен екіншісіне ауыстыруға болады.
MLflow жоғары деңгейлі үлгіге де, әрбір нақты нұсқаға да аннотациялау үшін белгілеуді пайдалануға мүмкіндік береді. Сипаттамаларды, сондай-ақ алгоритм түсіндірмесі, әдістеме және пайдаланылатын деректер жиындары сияқты басқа сәйкес ақпаратты қосуға болады.
Басты ерекшеліктер
- Жеке MLflow серверін орналастыру кезінде UI немесе API арқылы үлгі тізіліміне қол жеткізу үшін дерекқор қолдайтын серверлік қойманы пайдалану керек.
- Үлгі тізіліміне MLflow үлгісінің дәмі немесе MLflow Client Tracking API интерфейсі арқылы да қол жеткізуге болады. Мысалы, үлгіні MLflow экспериментін орындау кезінде немесе барлық эксперимент іске қосылғаннан кейін тіркеуге болады.
- Әрқайсысы MLflow көмегімен үлгілерін жаттықтыра бермейді. Нәтижеде MLflow қолданбас бұрын кейбір үлгілер оқытылуы мүмкін. Үлгілерді қайта оқытудың орнына, сақталған үлгілерді Үлгілер тізілімінде тіркегіңіз келеді.
Қосымша ақпарат алу үшін сіз ресми түрде тексере аласыз құжаттама.
қорытынды
MLflow - ML өмірлік циклінің тамаша және үнемі өсіп келе жатқан құралы. Сіз оны ағымдағы құралдармен және платформалармен қатар пайдалана аласыз.
Ол бірнеше бағдарламалау тілдерін, соның ішінде Python, Java және R тілдерін қолдайды. Сондай-ақ, пайдаланушыға ыңғайлы дизайнының арқасында әртүрлі модель нұсқаларын жылдам қадағалауға, сақтауға және салыстыруға болады.
MLflow қолданбасын қолданып көріңіз және тәжірибеңізді бізге айтыңыз!
пікір қалдыру