MLOps: DevOps у світі Machine Learning

У 2018 році у професійних колах та на тематичних конференціях, присвячених AI, з'явилося поняття MLOps, яке швидко закріпилося в галузі та зараз розвивається як самостійний напрямок. У перспективі MLOps може стати однією з найбільш популярних сфер в IT. Що ж це таке і з чим його їдять, знаємося під катом.

MLOps: DevOps у світі Machine Learning

Що таке MLOps

MLOps (об'єднання технологій та процесів машинного навчання та підходів до впровадження розроблених моделей у бізнес-процеси) – це новий спосіб співпраці між представниками бізнесу, науковцями, математиками, фахівцями у галузі машинного навчання та IT-інженерами при створенні систем штучного інтелекту.

Іншими словами, це спосіб перетворення методів та технологій машинного навчання на корисний інструмент для вирішення завдань бізнесу. 

Потрібно розуміти, що ланцюг продуктивізації починається задовго до розробки моделі. Її першим кроком є ​​визначення завдання бізнесу, гіпотези про цінність, яку можна отримати з даних, та бізнес-ідеї щодо її застосування. 

Саме поняття MLOps виникло як аналогія поняття DevOps стосовно моделей і технологій машинного навчання. DevOps - це підхід до розробки ПЗ, що дозволяє підвищити швидкість впровадження окремих змін при збереженні гнучкості та надійності за допомогою низки підходів, серед яких безперервна розробка, поділ функцій на ряд незалежних мікросервісів, автоматизоване тестування та деплоймент окремих змін, глобальний моніторинг працездатності, система оперативного реагування на виявлені збої та ін. 

DevOps визначив життєвий цикл програмного забезпечення і в співтоваристві фахівців виникла ідея використовувати ту ж методику стосовно великих даних. DataOps — спроба адаптувати та розширити методику з урахуванням особливостей зберігання, передачі та обробки великих масивів даних у різноманітних та взаємодіючих один з одним платформах.
  
З появою певної критичної маси моделей машинного навчання, впроваджених у бізнес-процеси підприємств, було помічено сильну схожість життєвого циклу математичних моделей машинного навчання та життєвого циклу програмного забезпечення. Різниця лише в тому, що алгоритми моделей створюються за допомогою інструментів та методів машинного навчання. Тому природним чином виникла ідея застосувати та адаптувати для моделей машинного навчання вже відомі підходи до розробки програмного забезпечення. Таким чином, у життєвому циклі моделей машинного навчання можна виділити такі ключові етапи:

  • визначення бізнес-ідеї;
  • навчання моделі;
  • тестування та впровадження моделі в бізнес-процес;
  • експлуатація моделі.

Коли в процесі експлуатації виникає необхідність змінити або донавчити модель нових даних, цикл запускається заново — модель допрацьовується, тестується, і деплоїться нова версія.

Відступ. Чому донавчити, а не перенавчити? Термін «перенавчання моделі» має двояке тлумачення: серед фахівців він означає дефект моделі, коли модель добре пророкує, фактично повторює прогнозований параметр на навчальній вибірці, але набагато гірше працює на зовнішній вибірці даних. Звичайно, така модель є шлюбом, оскільки даний дефект не дозволяє її застосовувати.

У цьому життєвому циклі виглядає логічним використання DevOps-інструментів: автоматизоване тестування, деплоймент та моніторинг, оформлення розрахунку моделей у вигляді окремих мікросервісів. Але є й низка особливостей, які перешкоджають прямому застосуванню цих інструментів без додаткової ML-обв'язки.

MLOps: DevOps у світі Machine Learning

Як змусити моделі працювати та приносити прибуток

Як приклад, на якому ми продемонструємо застосування підходу MLOps, візьмемо класичне завдання роботизації чату підтримки банківського (або будь-якого іншого) продукту. Зазвичай бізнес-процес підтримки за допомогою чату виглядає наступним чином: клієнт вводить у чаті повідомлення з питанням і отримує відповідь спеціаліста в рамках наперед визначеного дерева діалогів. Завдання автоматизації такого чату зазвичай вирішується за допомогою експертно визначених наборів правил, дуже трудомістких у створенні та супроводі. Ефективність такої автоматизації, залежно від рівня складності завдання, може становити 20-30%. Природно, виникає ідея, що вигіднішим є впровадження модуля штучного інтелекту — моделі, розробленої за допомогою машинного навчання, яка:

  • здатна обробити без участі оператора більше запитів (залежно від теми, у деяких випадках ефективність може досягати 70–80%);
  • краще адаптується під нестандартні формулювання в діалозі – вміє визначати інтент, реальне бажання користувача за не чітко сформульованим запитом;
  • вміє визначати, коли відповідь моделі адекватна, а коли як «усвідомленість» цієї відповіді є сумніви і потрібно задати додаткове уточнююче питання або переключитися на оператора;
  • може бути донавчена автоматизовано (замість групи розробників, що постійно адаптують та коригують сценарії відповідей, модель донавчає фахівець з Data Science, застосовуючи відповідні бібліотеки машинного навчання). 

MLOps: DevOps у світі Machine Learning

Як змусити таку сучасну модель працювати? 

Як і при вирішенні будь-якого іншого завдання, перш ніж розробляти такий модуль, необхідно визначити бізнес-процес і формально описати конкретне завдання, яке ми вирішуватимемо із застосуванням методу машинного навчання. У цій точці починається процес операціоналізації, позначений в абревіатурі Ops. 

Наступним кроком фахівець Data science у співпраці з інженером за даними перевіряє доступність та достатність даних та гіпотезу бізнесу про працездатність бізнес-ідеї, розробляючи прототип моделі та перевіряючи її фактичну ефективність. Тільки після підтвердження бізнесом може починатися перехід від розробки моделі до вбудовування їх у системи, що виконують конкретний бізнес-процес. Наскрізне планування впровадження, глибоке розуміння кожному етапі, як модель використовуватиметься і який економічний ефект вона принесе, є основним моментом у процесах впровадження підходів MLOps в технологічний ландшафт компанії.

З розвитком технологій ІІ лавиноподібно збільшується кількість та різноманітність завдань, які можуть бути вирішені за допомогою машинного навчання. Кожен такий бізнес-процес — це економія компанії за рахунок автоматизації праці працівників масових позицій (кол-центр, перевірка та сортування документів тощо), це розширення клієнтської бази за рахунок додавання нових привабливих та зручних функцій, економія коштів за рахунок оптимального їх використання та перерозподілу ресурсів та багато іншого. Зрештою, будь-який процес орієнтований на створення цінності і, як наслідок, повинен приносити певний економічний ефект. Тут дуже важливо чітко сформулювати бізнес-ідею та розрахувати гаданий прибуток від впровадження моделі у загальній структурі створення цінності компанії. Трапляються ситуації, коли впровадження моделі не виправдовує себе, і час, витрачений фахівцями з машинного навчання, коштує набагато дорожче, ніж робоче місце оператора, що виконує це завдання. Саме тому такі випадки необхідно намагатися виявляти на ранніх етапах створення ІІ систем.

Отже, прибуток моделі починають приносити лише тоді, коли в процесі MLOps було чітко сформульовано бізнес-завдання, розставлено пріоритети і на ранніх етапах розробки сформульовано процес впровадження моделі в систему.

Новий процес – нові виклики

Вичерпна відповідь на принципове питання бізнесу про те, наскільки ML-моделі застосовні для вирішення завдань, спільне питання довіри до ІІ – це один із ключових викликів у процесі розвитку та впровадження підходів MLOps. Спочатку бізнес скептично сприймає впровадження машинного навчання у процеси — складно покладатися на моделі у тих місцях, де раніше, як правило, працювали люди. Для бізнесу програми видаються «чорною скринькою», релевантність відповідей якої ще треба довести. Крім того, у банківській діяльності, у бізнесі операторів зв'язку та інших є жорсткі вимоги державних регуляторів. Аудиту піддаються всі системи та алгоритми, які впроваджено у банківські процеси. Щоб вирішити це завдання, довести бізнесу та регуляторам обґрунтованість та коректність відповідей штучного інтелекту, разом із моделлю впроваджуються засоби моніторингу. Крім того, існує процедура незалежної валідації, яка є обов'язковою для регуляторних моделей, яка відповідає вимогам ЦП. Незалежна експертна група проводить аудит результатів, одержаних моделлю з урахуванням вхідних даних.

Другий виклик – оцінка та облік модельних ризиків при впровадженні моделі машинного навчання. Якщо навіть людина не може зі стовідсотковою впевненістю відповісти на запитання, білою була та сама сукня або блакитна, то й штучний інтелект теж має право на помилку. Також варто врахувати, що згодом дані можуть змінюватись, і моделям необхідно донавчати, щоб видавати досить точний результат. Щоб бізнес-процес не постраждав, необхідно керувати модельними ризиками та відстежувати роботу моделі, регулярно донавчаючи її на нових даних.

MLOps: DevOps у світі Machine Learning

Але після першої стадії недовіри починає проявлятися зворотний ефект. Чим більше моделей успішно впроваджується у процеси, тим більше у бізнесу зростає апетит до використання штучного інтелекту — є нові та нові завдання, які можна вирішити методами машинного навчання. Кожне завдання запускає цілий процес, що вимагає тих чи інших компетенцій:

  • дата-інженери готують та обробляють дані;
  • дата-саентисти застосовують інструменти машинного навчання та розробляють модель;
  • IT впроваджують модель у систему;
  • ML-інженер визначає, як цю модель коректно вбудувати у процес, який IT-інструментарій використовувати залежно від вимог до режиму застосування моделі з урахуванням потоку звернень, часу відповіді тощо. 
  • ML-архітектор проектує, як фізично можна реалізувати програмний продукт у промисловій системі.

Весь цикл потребує великої кількості висококваліфікованих спеціалістів. У певній точці розвитку та ступеня проникнення ML-моделей у бізнес-процеси виявляється, що лінійно масштабувати кількість фахівців пропорційно зростанню кількості завдань стає дорого та неефективно. Тому постає питання автоматизації процесу MLOps — визначення кількох стандартних класів завдань машинного навчання, розробка типових пайплайнів обробки даних та донавчання моделей. В ідеальній картині для вирішення таких завдань потрібні професіонали, які однаково добре володіють компетенціями на стику BigData, Data Science, DevOps та IT. Тому найбільша проблема в індустрії Data Science і найбільший виклик при організації процесів MLOps — відсутність такої компетенції на ринку підготовки кадрів. Фахівці, які задовольняють такі вимоги, зараз поодинокі на ринку праці та цінуються на вагу золота.

До питання про компетенції

Теоретично всі завдання MLOps можна вирішувати класичними інструментами DevOps і не вдаватися до спеціалізованого розширення рольової моделі. Тоді, як ми вже зазначили вище, дата-саентист має бути не тільки математиком і фахівцем з аналітики даних, але й гуру всього пайплайну — на його плечі лягає розробка архітектури, програмування моделей кількома мовами залежно від архітектури, підготовка вітрини даних та деплоймент самого додатка. Однак створення технологічної обв'язки, що реалізується в наскрізному процесі MLOps, займає до 80% трудовитрат, а це означає, що кваліфікований математик, яким є якісний Data Scientist, лише 20% часу присвячуватиме своїй спеціальності. Тому розмежування ролей фахівців, які здійснюють процес впровадження моделей машинного навчання, стає життєво необхідним. 

Наскільки детально мають розмежовуватись ролі, залежить від масштабів підприємства. Одна річ, коли у стартапі один фахівець, трудівник на запасі енергетиків, сам собі і інженер, і архітектор, і DevOps. Зовсім інша річ, коли на великому підприємстві всі процеси розробки моделей сконцентровані на кількох Data Science фахівцях високого рівня, тоді як програміст або фахівець з роботи з базами даних – більш поширена та менш дорога компетенція на ринку праці – може взяти на себе більшу частину рутинних завдань.

Таким чином, від того, де ж проходить кордон у виборі фахівців для забезпечення процесу MLOps і як організований процес операціоналізації моделей, що розробляються, безпосередньо залежить швидкість і якість розроблюваних моделей, продуктивність команди і мікроклімат в ній.

Що вже зараз зроблено нашою командою

Ми нещодавно почали будувати структуру компетенцій та процеси MLOps. Але вже зараз у стадії тестування MVP знаходяться наші проекти з управління життєвим циклом моделей та застосування моделей як сервіс.

Також ми визначили оптимальну для великого підприємства структуру компетенцій та організаційну структуру взаємодії між усіма учасниками процесу. Були організовані Agile-команди, вирішальні завдання для всього спектру бізнес-замовників, а також налагоджений процес взаємодії з проектними командами зі створення платформ, інфраструктури, яка є фундаментом будівлі MLOps, що будується.

Запитання на майбутнє

MLOps — напрямок, що розвивається, який відчуває брак компетенцій і в майбутньому набере обертів. А поки що найкраще відштовхуватися від напрацювань та практик DevOps. Основною метою MLOps є ефективніше використання ML-моделей на вирішення завдань бізнесу. Але при цьому виникає безліч питань:

  • Як скоротити час для запуску моделей у виробництво?
  • Як зменшити бюрократичні тертя між командами різних компетенцій та підвищити націленість на співпрацю?
  • Як відстежувати моделі, керувати версіями та організовувати ефективний моніторинг?
  • Як створити справді циклічний життєвий цикл для сучасної моделі ML?
  • Як стандартизувати процес машинного навчання?

Від відповіді ці питання багато в чому залежатиме, наскільки швидко MLOps розкриє свій потенціал повністю.

Джерело: habr.com

Додати коментар або відгук