Різниця між DevOps і MLOps: суть, вплив та перспективи
Якщо ви хоч якось пов’язані з машинним навчанням (ML), вам потрібно розуміти, що таке MLOps. Для розробників ПЗ найпростіший спосіб зрозуміти MLOps — провести паралель з DevOps. Розберімося, що спільного і відмінного у цих понять. Приємного читання.
Спочатку про DevOps
Мета цієї методології — з’єднати процеси розробки, тестування та експлуатації ПЗ, і зробити з цього безперервний цикл.
Основні принципи DevOps включають:
- автоматизацію процесів,
- безперервне доставлення і розгортання,
- зворотний зв’язок.
Ці принципи можуть працювати тільки при постійній і якісній комунікації між командами. Важливий також набір інструментів, який робить ці процеси стабільнішими та швидшими. Наприклад, системи CI/CD.
Безперервне доставлення та автоматизація
Безперервне доставлення об’єднує процеси розробки, тестування і розгортання в одну оптимізовану операцію. Тут дуже важлива автоматизація всього циклу.
Якщо ваші групи розробників практикують DevOps, вони можуть швидко усувати проблеми та швидко пропонувати поліпшення. Ризик несправності знижується, а працювати на перспективу стає простіше. Найважливіші параметри — швидкість і якість.
За допомогою безперервного доставлення користувачі швидше отримують оновлення та виправлення. Чекати реліз по пів року тепер не потрібно.
Гнучке планування
Якщо традиційні підходи до управління проєктами побудовані на довгих термінах впровадження оновлень, то DevOps виступає за те, щоб випусків було якомога більше.
У гнучкого планування конкретні великі цілі, але деталі — адаптивні. Так розробники можуть тестувати ідеї на ранній стадії. А бізнес розуміє, чи підходить обрана бізнес-стратегія.
Поліпшення корпоративної культури
DevOps покращує комунікацію і корпоративну культуру компанії. Поширена практика — створювати проміжне середовище для нових функцій, які можна переглядати в процесі розробки. Через це кілька відділів будуть працювати разом навколо тестового середовища, а їх робота стане ефективнішою.
Що таке MLOps?
Тепер, коли у нас є розуміння DevOps, визначмося з MLOps.
MLOps (операції машинного навчання) — це методи, які потрібні для оптимізації життєвого циклу ML від початку до кінця. Вони усувають розрив між проєктуванням, розробкою моделі та експлуатацією. Часто при розробці ML, формування моделі й операції повністю розділені. Через це на роботу йде більше часу.
MLOps об’єднує в єдиний процес збір даних, попередню обробку, навчання моделей, оцінку, розгортання і перепідготовку. Розуміння того, як розробляються і підтримуються виробничі моделі, приходить саме під час такого співробітництва (аналогічно тому, що DevOps робить для ПЗ).
Час для розробки моделей
Без методів та інструментів MLOps, є дві альтернативи створення моделей машинного навчання. Перша полягає в тому, що фахівець з даних бере на себе все. Від очищення даних і вибору моделі до налаштування кластера Kubernetes і управління інфраструктурою. Друга — розподіл обов’язків між фахівцем з обробки даних (займається розробкою моделі) та інженером по машинному навчанні (займається виробництвом моделі). Використовуючи при цьому ручне перемикання.
Це відбирає час фахівця з даних. Він не може зосередитися на своїй основній ролі — обробляти дані та розробляти моделі.
Надійний інструментарій MLOps (зчитування наскрізних конвеєрів ML) дозволяє фахівцям займатися своєю роботою. Тоді модель розробляється без пробілів.
Скорочення часу виходу на ринок
MLOps робить ставку на автоматизацію процесу навчання і перепідготовки. Це скорочує час виведення алгоритмів ML на ринок. Методи безперервної інтеграції та доставлення дозволяють набагато швидше запустити ці системи в виробництво.
Важливо, щоб виробничі моделі завжди давали точні прогнози. Автоматизація допоможе вчасно реагувати на зміни в даних. Більшість незначних проблем (таких, як дрейф даних) можна вирішити за допомогою автоматично запущеного конвеєра ML. Серйозніші проблеми можуть вимагати деяких змін в самому конвеєрі. У будь-якому випадку робота ніколи не почнеться з нуля.
Значно вищий показник впевненості в прогнозах
Важлива частина MLOps не тільки автоматизація процесів, але і виявлення проблем. Щоб гарантувати високу якість прогнозів, система повинна мати можливість вимірювати дрейф моделі. Це зведе до мінімуму ризик помилкових висновків. І ви зможете впевнено використовувати ML в критично важливих моментах для бізнесу.
Чим вони схожі?
Між DevOps і MLOps є подібності. Все тому, що такий підхід до машинного навчання еволюціонував з підходу до розробки.
І DevOps, і MLOps заохочують і полегшують співробітництво між людьми, які:
- займаються розробкою (програмістами та фахівцями з даними),
- управляють інфраструктурою.
Обидві методології роблять акцент на таких речах:
- автоматизація процесів;
- безперервний розвиток;
- максимальна швидкість;
- найвища ефективність.
Основні відмінності між DevOps і MLOps
Ці методології схожі, але неможливо взяти інструменти DevOps і використовувати їх для реалізації MLOps.
/1 Управління версіями для машинного навчання
У DevOps контроль версій коду використовується для отримання чіткої документації, що стосується будь-яких змін в ПЗ, що розробляється. У разі ML управляти потрібно не тільки кодом, а й даними.
/2 Потрібне обладнання
Моделі навчання ML зазвичай вимагають великих обчислювальних ресурсів. Для ML може знадобитися від кількох годин до тижнів (навіть на машинах з графічними процесорами). Це означає, що налаштування MLOps стає складнішим в залежності від того, якими машинами вона управляє.
Для більшості програмних проєктів час складання не має значення. А значить і обладнання, на якому це робиться, не має значення.
Безперервний моніторинг
Моніторинг також є частиною практики DevOps. В останні кілька років інженерія надійності сайту (SRE) була в моді. Різниця між моніторингом в DevOps і MLOps полягає в тому, що ПЗ не погіршується, на відміну від моделей ML.
Після розгортання моделі у виробничому середовищі вона починає генерувати прогнози на основі нових даних. Вони будуть продовжувати змінюватися та адаптуватися в міру зміни бізнес-середовища. Це призведе до погіршення якості моделі.
MLOps передбачає процедури, які полегшують безперервний моніторинг і перепідготовку. Це потрібно для того, щоб продовжувати використовувати алгоритми у виробничому середовищі.
ПІДСУМОК
У 2021 році просто немає успішної компанії-розробника ПЗ, яка могла б стабільно працювати без використання принципів та інструментів DevOps. Ймовірно, в майбутньому просто не буде можливості управляти розробкою і виробництвом моделей машинного навчання без загальних принципів та інструментів MLOps.
Продовжуємо набір курс «DevOps з нуля», на якому ти опануєш всі необхідні технології DevOps-інженера: Linux, Ansible, Docker, Kubernetes, Jenkins, AWS, Terraform, GitHub, CI/CD.