MLOps — парадыгма распрацоўкі праграмнага забеспячэння, накіраваная на надзейнае і эфектыўнае разгортванне і падтрыманне мадэлей машыннага навучання для практычнага выкарыстання. Слова з’яўляецца спалучэннем «машыннага навучання» () і практыкі распрацоўкі DevOps.
MLOs пачынаўся як набор перадавых практык, і цяпер паступова ператвараецца ў незалежны падыход да кіравання жыццёвым цыклам сістэм машыннага навучання. MLOps прымяняецца на ўсіх этапах жыццёвага цыкла — ад распрацоўкі да , і маніторынгу мадэлей.
Гісторыя У пачатку 2000-х для распрацоўкі бізнес-рашэнняў на базе машыннага навучання выкарыстоўвалася такое як , і . З пашырэннем адкрытага праграмнага забеспячэння, усё больш распрацоўшчыкаў пачалі выкарыстоўваць бібліятэкі Python і R для трэніроўкі мадэлей. Для разгортвання мадэлей з мэтай іх практычнага выкарыстання ужываліся такія інструменты як Docker і . З цягам часу паўсталі так званыя MLOps-платформы, якія пакрываюць увесь цыкл эксперыментавання, трэніроўкі, разгортвання і маніторынгу мадэлей.
Рост папулярнасці MLOps абумоўлены патрэбнасцю ў стандартызацыі працэсаў распрацоўкі машыннага навучання. Рынак MLOps-інструментаў ацэньваўся ў $1.1 млрд у 2022 годзе, з прагнозам росту да $5.9 млрд да 2027 года, то бок у сярэднім на 41 % штогод.
Параўнанне з DevOps
Асаблівасць сістэм з машынным навучаннем заключаецца ў наяўнасці трох узаемазвязаных кампанентаў: даных, мадэлі машыннага навучання і кода. Пры распрацоўцы звычайнага праграмнага забеспячэння мадэль, а часам і даныя адсутнічаюць.
Акрамя таго, існуе шэраг характэрных праблем, якія ўплываюць на працэс распрацоўкі рашэнняў з машынным навучаннем: Паступовае зніжэнне якасці мадэлі пасля разгортвання, што выклікае неабходнасць у зборы найноўшых даных і ператрэніроўцы мадэлі. Недастатковасць даных для развязання пастаўленай задачы. Неадпаведнасць даных для трэніроўкі тым даным, з якімі мадэль мусіць працаваць пасля разгортвання. Напрыклад, калі мадэль прымяняецца ў тым рэгіёне, даныя з якога не ўваходзілі ў трэніровачны набор. Збор новых або абнаўленне ў старых даных, што патрабуе ператрэніроўкі мадэлі. Некарэктнасць дапушчэнняў, зробленых на этапе стварэння мадэлі. Змена патрабаванняў да мадэлі ў часе распрацоўкі.
Неабходнасць вырашэння гэтых праблем адрознівае MLOps ад звычайных DevOps-працэсаў.
Асноўныя прынцыпы Пашырэнне прадуктаў і сэрвісаў з машынным навучаннем прывяло да неабходнасці стварэння практык эфектыўнага тэставання, разгортвання, кіравання і маніторынгу такіх сістэм для змяншэння іх . MLOps імкнецца да таго, каб рэсурсы, звязаныя з машынным навучаннем (мадэль, яе параметры і гіперпараметры, код для навучання мадэлі, даныя для навучання і тэставання), разглядаліся нароўні з іншымі рэсурсамі ў асяроддзі, а мадэлі машыннага навучання разгортваліся ў рамках уніфікаванага працэсу разам з сэрвісамі, што іх выкарыстоўваюць і забяспечваюць выкарыстанне.
Аўтаматызацыя Аўтаматызаванымі могуць быць такія працэсы, як напрыклад навучанне, тэставанне і разгортванне мадэлі. Аўтаматызацыя паскарае распрацоўку мадэлі, а аўтаматызаванае тэставанне дазваляе хутка і своечасова знаходзіць і вырашаць праблемы. Аўтаматычнае навучанне і разгортванне мадэлі могуць быць выкліканы рэгулярна па раскладзе або ў выніку пэўных падзей, напрыклад змяншэння якасці мадэлі да крытычнага значэння ці змены кода мадэлі.
Існуюць наступныя ўзроўні аўтаматызацыі: Ручны працэс. Поўная адсутнасць аўтаматызацыі, характэрная для першых, эксперыментальных этапаў распрацоўкі. Часта выкарыстоўваюцца інструменты для хуткай распрацоўкі, такія як . Пайплайн машыннага навучання. Аўтаматызавана навучанне мадэлі ў выпадку з’яўлення новых даных. Сюды ж уваходзяць аўтаматычная валідацыя даных і мадэлі. CI/CD пайплайн. Існуе CI/CD працэс для разгортвання мадэлі машыннага навучання ў production-асяроддзі. Аўтаматызавана зборка, тэставанне і разгортванне ўсіх кампанентаў сістэмы.
Бесперапыннасць Шэраг прынцыпаў бесперапыннасці забяспечвае стабільнасць і даступнасць для выкарыстання мадэлі, кода і даных: () — тэставанне і валідацыя, што пашыраецца не толькі на код, але і на мадэль і даныя. () — стварэнне пайплайна навучання мадэлі, які аўтаматычна разгортвае сэрвіс для прадказвання. Бесперапыннае навучанне () — аўтаматычнае рэгулярнае навучанне мадэлей для разгортвання. Бесперапынны маніторынг () — кантроль за данымі і вынікамі працы мадэлі ў production-асяроддзі, у тым ліку падлік бізнес-метрык.
Кіраванне версіямі Акрамя стандартнага кіравання версіямі для кода, MLOps прадугледжвае аналагічнае версіянаванне для мадэлей і даных. Гэта абумоўлена тым, што як даныя, так і мадэль змяняюцца з часам пад уплывам розных фактараў, напрыклад абнаўлення крыніц даных і паўторнага навучання мадэлі. Кіраванне версіямі дапамагае хутка адкаціць мадэль або даныя да папярэдняй версіі, калі абнаўленне прынесла непажаданыя вынікі. Захоўванне ўсіх версій мадэлі і даных можа таксама быць патрабаваннем з боку кампаніі або дзяржавы для таго, каб сістэму можна было праверыць на адпаведнасць заканадаўству і іншым стандартам.
Улік эксперыментаў У адрозненне ад класічнага праграмнага забеспячэння, машыннае навучанне патрабуе вялікай колькасці эксперыментаў каб зразумець, якую мадэль лепей выкарыстоўваць. Вядзенне ўліку эксперыментаў дазваляе пабачыць, з якімі параметрамі пэўны эксперымент запускаўся і як ён паўплываў на якасць мадэлі, а таксама правесці параўнанне паміж вынікамі вялікай колькасці эксперыментаў. Адзін з падыходаў да ўліку — стварэнне асобнай git-галіны для кожнага эксперыменту. Існуюць таксама інструменты для аўтаматычнага запісу гіперпараметраў і метрык для ўсіх эксперыментаў, напрыклад Weights & Biases.
Тэставанне Тэставанне сістэм з машынным навучаннем складаецца з трох кампанентаў: тэставанне даных, мадэлі і інфраструктуры.
Тэставанне даных уключае этапы валідацыі даных (аўтаматызаваная праверка на адпаведнасць структуры), падліку важнасці для адсейвання неістотных даных, праверку на адпаведнасць рэгуляцыям, такім як . Сюды ж уваходзіць кода для падліку прыкмет.
Для тэставання мадэлі ацэньваецца яе якасць з дапамогай адмысловых метрык (, і г.д.), якія павінны мець карэляцыю з бізнес-метрыкамі (прыбытак, зацікаўленасць карыстальнікаў і г.д.) Такія метрыкі падлічваюць на адкладзеным наборы даных для тэставання, што не выкарыстоўваецца ў часе навучання мадэлі. Складаныя мадэлі мусяць параўноўвацца з больш простай, так званай бэйзлайн-мадэллю. Напрыклад, няма рацыі ў выкарыстанні , калі лінейная рэгрэсія паказвае нягоршыя вынікі для пэўнай задачы. Акрамя таго, правяраецца , то бок яе карэктная праца для розных катэгорый карыстальнікаў. Для параўнання розных версій мадэлі можа прымяняцца .
Тэсты для інфраструктуры правяраюць такія ўласцівасці як навучання (навучанне з аднолькавымі наборамі даных павінна даваць аднолькавыя параметры мадэлі), памяншэнне значэння у ходзе навучання, адпаведнасць памылкі ў асяроддзі навучання памылцы ў production-асяроддзі. Існуюць таксама краш-тэсты, якія правяраюць аднаўленне стану мадэлі ў кантрольным пункце, калі ў працэсе навучання здарыўся збой. Інтэграцыйныя тэсты праганяюць увесь пайплайн цалкам і правяраюць, што кожны этап навучання завяршаецца паспяхова.
Маніторынг Каб праверыць, ці працуе мадэль як запланавана пасля разгортвання, ажыццяўляецца яе маніторынг. Сістэма маніторынгу павінна паведамляць пра павольны або рэзкі спад якасці мадэлі. Пры атрыманні такога сігналу можа аўтаматычна запускацца перанавучанне і абнаўленне версіі мадэлі.
Акрамя гэтага, маніторынг можа закранаць змены ў даных і кодзе, абнаўленні ў залежнасцях, выхад значэнняў у даных за звычны дыяпазон, адпаведнасць прыкмет у працоўным і навучальным асяроддзях, мадэлі (адсутнасць бесканечных і -значэнняў у падліках), хуткасць падлікаў, выкарыстанне вылічальных рэсурсаў (памяць, месца на дыску, і інш.), час з апошняга абнаўлення мадэлі і гэтак далей.
Рабочы працэс MLOps Распрацоўка праграмнага забеспячэння з машынным навучаннем уключае ў сябе такія этапы як аналіз задачы, інжынірынг даных, распрацоўка і інтэграцыя мадэлі.
Аналіз бізнес-задачы і патрабаванняў
Першапачатковы этап праекта па распрацоўцы праграмнага забеспячэння мае сваёй мэтай зразумець задачу і той працэс, у якім будзе выкарыстоўвацца гатовае рашэнне. У выпадку з машынным навучаннем, патрабаванні да рашэння мусяць быць перакладзены ў патрабаванні да мадэлі, яе структуры і якасці.
У пачатку такога аналізу пэўны разбіваецца на асобныя . З гэтых задач вылучаюцца тыя, для выканання якіх патэнцыйна можа выкарыстоўвацца машыннае навучанне. Для кожнай задачы ацэньваецца у яе аўтаматызацыю. Задачы з найбольшай акупнасцю разглядаюцца больш падрабязна.
Абмеркаванне дапамагае зразумець сапраўдныя мэты і магчымыя выдаткі. Адным з вынікаў гэтага этапу можа быць рашэнне не распрацоўваць мадэль машыннага навучання, напрыклад таму што працэс не дапускае некарэктных адказаў мадэлі, рашэнне будзе мець нізкую акупнасць, або сістэму не магчыма будзе падтрымліваць.
AI Canvas Адзін з метадаў аналізу бізнес-задач з пункту гледжання машыннага навучання, AI Canvas, быў прапанаваны у кнізе «Машыны прагназавання. Простая эканоміка штучнага інтэлекту» (). AI Canvas складаецца з сямі пытанняў, якія павінны дапамагчы ў прыняцці рашэння аб распрацоўцы: Прадказанне. У чым заключаецца нявызначанасць, якую можна вырашыць з дапамогай машыннага навучання? Ацэнка. Як ацаніць эфект магчымых вынікаў, як станоўчых, так і памылковых? Дзеянне. Якія дзеянні могуць быць абраныя? Вынік. Як можна зразумець, што задача была выканана карэктна? Навучанне. Якія даныя патрэбны для навучання мадэлі? Уваход. Якія даныя патрэбны для таго, каб гатовая мадэль магла зрабіць прагноз? Зваротная сувязь. Як можна выкарыстаць вынікі для паляпшэння якасці мадэлі?
Напрыклад разгледзім праблему лжывых спрацоўванняў . Калі доля лжывых спрацоўванняў высокая, шмат рэсурсаў паліцыі або аховы марнуецца. Пры разгляданні магчымасці вырашыць гэтую праблему з дапамогай машыннага навучання, адказы на пытанні AI Canvas могуць гучаць наступным чынам:
Прадказанне. Прадказаць, ці сапраўды за спрацоўваннем сігналізацыі стаіць пагроза. Ацэнка. Параўнаць кошт рэагавання на лжывае спрацоўванне сігналізацыі з коштам адсутнасці рэакцыі на сапраўднае спрацоўванне. Дзеянне. Выклікаць або не выклікаць ахову ў адказ на спрацоўванне. Вынік. Спраўдзіць, ці абранае дзеянне было слушным. Навучанне. Гістарычныя даныя датчыкаў і адпаведных ілжывых і карэктных спрацоўванняў сігналізацыі. Уваход. Даныя з датчыкаў у той момант, калі спрацавала сігналізацыя. Зваротная сувязь. Падзяліць новыя даныя з датчыкаў на дзве катэгорыі: ілжывыя і карэктныя спрацоўванні. Дадаць гэтыя даныя да гістарычных і абнавіць мадэль.
Machine Learning Canvas Яшчэ адзін метад аналізу задачы — Machine Learning Canvas. Ён складаецца з дзесяці блокаў, кожны з якіх з дапамогай пытанняў дазваляе паглядзець на задачу з таго ці іншага боку.
Асноўны блок — значная прапанова. У межах гэтага блока разглядаюцца пытанні аб тым, у чым заключаецца праблема, чаму гэта важна і хто будзе рашэння. У выніку фармулюецца прапанова, у якой згадваецца праблема і прадукт або сэрвіс, які плануецца распрацаваць для яе рашэння.
Іншыя блокі бяруць пад увагу крыніцы даных, тып задачы (класіфікацыя, , і г.д.), для мадэлі, ацэнку якасці, працэс на аснове адказаў мадэлі, працэдуру выкарыстання мадэлі (на запыт, паводле раскладу і інш.), новых даных, абнаўленне і маніторынг мадэлі.
Інжынірынг даных Асноўныя задачы — збор і для далейшага навучання мадэлі. Гэты этап мае вялікае значэнне, бо недастатковая можа прывесці да некарэктнай працы мадэлі. Залежнасць паміж якасцю даных і мадэлі апісваецца прынцыпам «» (). Звычайна даныя збіраюцца з некалькіх крыніц у розных . У працэсе падрыхтоўкі даных праводзіцца іх даследаванне, ачыстка, камбінаванне і трансфармацыя. Зыходнае і прамежкавае захоўванне звычайна ажыццяўляецца ў азёрах даных на базе аб'ектных сховішчаў кшталту AWS S3, Google Cloud Storage і іншых.
Інжынірынг даных падзяляецца на наступныя элементы: