Машина үйрөнүүнү өнүктүрүүгө аракет кылгандардын баары анын канчалык кыйын экенин түшүнүшөт. Программалык камсыздоону иштеп чыгуудагы стандарттык көйгөйлөрдөн тышкары, машиналык үйрөнүүнү (ML) иштеп чыгуу бир катар кошумча тоскоолдуктарды киргизет.
Жүздөгөн ачык булак куралдары ML жашоо циклинин ар бир этабында, маалыматтарды даярдоодон баштап моделди окутууга чейин жардам берет.
Салттуу программалык камсыздоону иштеп чыгуудан айырмаланып, командалар ар бир кадам үчүн бир куралды тандаганда, ML менен сиз жалпысынан анын натыйжаларды жакшыртып же жакшыртпагандыгын көрүү үчүн ар бир жеткиликтүү куралды (мисалы, алгоритм) изилдегиңиз келет.
Натыйжада, ML иштеп чыгуучулар жүздөгөн китепканаларды колдонушу жана чыгарышы керек.
Машина үйрөнүү алгоритмдеринде миңдеген ыңгайлаштырылган параметрлер бар жана сиз жалгыз иштейсизби же командада иштейсизби, моделди түзүү үчүн ар бир экспериментке кайсы параметрлер, код жана маалыматтар киргенин аныктоо кыйын.
Тиешелүү мониторинг болбосо, командалар ошол эле кодду кайра иштетүү үчүн күрөшүп келишет. Окутуу кодуңузду инженерге өндүрүштө колдонуу үчүн өткөрүп жаткан маалымат таануучусузбу же көйгөйдү аныктоо үчүн мурунку жумушуңузга кайтып барасызбы, ML иш процессинин кадамдарын артка кайтаруу өтө маанилүү.
Моделди өндүрүшкө жылдыруу көптөгөн жайылтуу ыкмаларынан жана колдонулушу керек болгон чөйрөлөрдөн улам кыйын болушу мүмкүн (мисалы, REST тейлөөсү, пакеттик жыйынтык же мобилдик колдонмолор). Ар бир китепканадан бул куралдардын бирине моделдерди жылдыруунун жалпы ыкмасы жок, демек, ар бир жаңы жайгаштыруу коркунучту киргизет.
Ушул көйгөйлөрдөн улам, MLди өнүктүрүү салттуу программалык камсыздоону иштеп чыгуу сыяктуу туруктуу, алдын ала айтууга боло турган жана кеңири колдонулушу үчүн олуттуу түрдө жакшырыш керек экени айдан ачык.
ML Challenges
- Ар түрдүү куралдар көп. Жүздөгөн программалык чечимдер машинаны үйрөнүү циклинин ар бир этабында, маалыматтарды даярдоодон баштап моделди окутууга чейин жардам берет. Андан тышкары, салттуу программалык камсыздоону иштеп чыгуудан айырмаланып, командалар машиналык үйрөнүүдө (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 Tracking
Мен MLflow Tracking менен баштайын деп жатам. MLflow борборлоштурулган окуу метаберилиштерин көзөмөлдөө репозиторийине байланышкан ар кандай маанилүү түшүнүктөрдүн жыйнагын колдойт. Биринчи түшүнүк моделдин иштешине таасир этүүчү критикалык гиперпараметрлердин же конфигурация баскычтарынын жыйындысы. MLflow'тун API'лерин жана борборлоштурулган көзөмөлдөө кызматын колдонуу булардын бардыгын сактап калышы мүмкүн.
Колдонуучулар ошондой эле алардын машина үйрөнүү моделдеринин ийгилиги жөнүндө түшүнүк алуу үчүн өндүрүмдүүлүк маалыматтарын жаздыра алышат. Мындан тышкары, кайталануу үчүн, MLflow колдонуучуларга моделди түзүү үчүн колдонулган белгилүү бир баштапкы кодду, ошондой эле анын версиясын Git менен тыгыз интеграциялоо аркылуу ар бир моделди белгилүү бир хэш менен байланыштырууга мүмкүндүк берет.
MLflow артефакттарды каттоо үчүн колдонулушу мүмкүн, алар ар кандай ыктыярдуу файлдар, анын ичинде тренинг, тест маалыматтары жана кайталануу үчүн моделдердин өздөрү.
Бул эгер мен моделди жаңы эле үйрөткөн иштеп чыгуучу болсом, аны борборлоштурулган көзөмөлдөө кызматына уланта алам жана менин кесиптештеримдин бири аны кийинчерээк жүктөй алат жана белгилүү бир муктаждыкты канааттандыруу үчүн ошол моделди үйрөтүп, эксперимент кылып же чыгара алат дегенди билдирет. .
Машина үйрөнүү кодун аткарып жатканда жана андан кийин натыйжаларды көрүп жатканда, көзөмөлдөө - бул параметрлерди, код версияларын, метрикаларды жана чыгуу файлдарын журналга киргизүүгө мүмкүндүк берген API. Ал башка тилдердин арасында Python, R жана Java тилдеринде жазылган. Ал REST API катары да жеткиликтүү, анын үстүнө колдонмолорду куруу үчүн колдонулушу мүмкүн.
Негизги өзгөчөлүктөр
- Көптөгөн иштеп чыгуучулар MLflow'ту жергиликтүү компьютерде колдонушат, мында сервер жана артефакт сактагычы дисктеги каталогду бөлүшөт.
- Көптөгөн колдонуучулар дагы SQLite, SQLAlchemy шайкеш маалымат базасы, MLflow локалдык компьютерлеринде иштетүү үчүн колдонушат.
- 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.yaml сакталат.
Көбүрөөк маалымат алуу үчүн, сиз расмий текшере аласыз документтер.
4. MLflow моделдин реестри
Модель реестри - бул машина үйрөнүү (ML) моделдери үчүн репозиторий. Моделдер реестри API'лерден жана веб-негизделген тиркемеден турат, ал команда катары ар кандай фазаларда моделдерди колдоо үчүн колдонулат. Model Lineage, Model Versioning, Easy Stage Transition, and Annotation – бул Модель реестриндеги мүмкүнчүлүктөрдүн бир нечеси гана.
Модель реестри моделдердин өзүнөн тышкары, моделди куруу үчүн колдонулган маалыматтар жана окутуу тапшырмалары жөнүндө маалыматты (металыматтарды) камтыйт. ML моделдери үчүн линияны түзүү үчүн бул талап кылынган киргизүүлөргө көз салуу абдан маанилүү. Бул жагынан алганда, моделдик реестр кадимки программалык камсыздоо сыяктуу иштейт версия башкаруу системалар (мисалы, Git, SVN) жана артефакт репозиторийлери (мисалы, Artifactory, PyPI).
Модель реестри бул маалымат илимпоздоруна жана машина үйрөнүү инженерлерине башка командалар менен кызматташуу үчүн моделдерин жарыялоого, сыноого, көзөмөлдөөгө, башкарууга жана жайылтууга мүмкүндүк берген негиз. Негизи, моделдик реестр сиз тестирлөө фазасын аяктагандан кийин жана команда жана кызыкдар тараптар менен жыйынтыктарыңызды бөлүшүүгө даяр болгондон кийин ишке кирет.
MLflow моделдер реестри борбордук жерден моделдериңизди жана алардын иштөө мөөнөтүн башкаруу үчүн API жана колдонуучу интерфейсин камсыз кылат. Модель линиясы, моделдин версиясы, аннотациялары жана этапка өтүүлөрү реестр аркылуу жеткиликтүү.
MLflow'та катталган модель уникалдуу аталышы жана метаберилиштери, моделдин версиялары, өткөөл фазалары жана моделдин тукуму бар модель болуп саналат. Бир же бир нече моделдин версиясын катталган моделден тапса болот. Жаңы модель реестрде катталганда 1-версия болуп эсептелет. Төмөнкү версия ошол эле аталыштагы каалаган жаңы моделге кошулат.
Каалаган убакта каалаган моделдин версиясына бир кадамды дайындай аласыз. Бирок этаптар формалдуу түрдө белгиленген MLflow фазаларынын астында дайындалышы керек, мисалы, коюу, өндүрүү жана архивдештирүү. Моделдик версия бир этаптан экинчи баскычка өтүшү мүмкүн.
MLflow жогорку деңгээлдеги моделге да, ар бир конкреттүү версияга да аннотациялоо үчүн markdown колдонууга мүмкүндүк берет. Сиз сүрөттөмөлөрдү, ошондой эле алгоритмдик түшүндүрмөлөр, методология жана колдонулган маалымат топтомдору сыяктуу башка тиешелүү маалыматты камтый аласыз.
Негизги өзгөчөлүктөр
- Өзүңүздүн MLflow сервериңизди жайгаштыруу учурунда UI же API аркылуу модель реестрине кирүү үчүн, сиз маалымат базасы колдоого алынган бэкенд дүкөнүн колдонушуңуз керек.
- Модель реестрине MLflow моделинин даамы же MLflow Client Tracking API интерфейси аркылуу да кирүүгө болот. Сиз, мисалы, MLflow эксперименти учурунда же бардык экспериментиңизден кийин үлгүнү каттай аласыз.
- Ар бир адам MLflow аркылуу моделдерин үйрөтө бербейт. Натыйжада, сизде MLflow колдонуудан мурун кээ бир моделдер үйрөтүлгөн болушу мүмкүн. Моделдерди кайра даярдоонун ордуна, сиз сакталган моделдериңизди Үлгү реестринде каттагыңыз келет.
Көбүрөөк маалымат алуу үчүн, сиз расмий текшере аласыз документтер.
жыйынтыктоо
MLflow - бул эң сонун жана тынымсыз өсүп жаткан ML өмүр циклинин куралы. Сиз аны учурдагы куралдарыңыз жана платформаларыңыз менен бирге колдонсоңуз болот.
Ал бир нече программалоо тилдерин, анын ичинде Python, Java жана R тилдерин колдойт. Ошондой эле колдонуучуга ыңгайлуу дизайнынын аркасында ар кандай моделдин версияларына тез көз салып, сактап жана салыштыра аласыз.
MLflow'ту сынап көрүңүз жана тажрыйбаңызды бизге билдириңиз!
Таштап Жооп