Кілька світових секторів починають інвестувати більш значні кошти в машинне навчання (ML).
Моделі ML можуть спочатку запускатися та працювати командами спеціалістів, але однією з найбільших перешкод є передача отриманих знань наступній моделі, щоб процеси можна було розширити.
Для покращення та стандартизації процесів, пов’язаних із керуванням життєвим циклом моделі, методи MLOps все частіше використовуються командами, які створюють моделі машинного навчання.
Продовжуйте читати, щоб дізнатися більше про деякі з найкращих доступних на сьогодні інструментів і платформ MLOps і про те, як вони можуть полегшити машинне навчання з точки зору інструментів, розробників і процедур.
Що таке MLOps?
Техніка створення політик, норм і найкращих практик для моделей машинного навчання відома як «операції машинного навчання» або «MLOps».
MLOps має на меті гарантувати, що весь життєвий цикл розробки ML — від задуму до розгортання — буде ретельно задокументований і керований для отримання найкращих результатів, замість того, щоб вкладати в це багато часу та ресурсів без стратегії.
Метою MLOps є систематизація найкращих практик таким чином, щоб розробка машинного навчання була більш масштабованою для операторів і розробників ML, а також для підвищення якості та безпеки моделей ML.
Деякі називають MLOps «DevOps для машинного навчання», оскільки він успішно застосовує принципи DevOps до більш спеціалізованої сфери технологічного розвитку.
Це корисний спосіб думати про MLOps, оскільки, як і DevOps, він наголошує на обміні знаннями, співпраці та найкращих практиках між командами та інструментами.
MLOps надає розробникам, дослідникам обробки даних і операційним командам основу для співпраці та, як результат, створення найпотужніших моделей ML.
Навіщо використовувати інструменти MLOps?
Інструменти MLOps можуть виконувати широкий спектр завдань для команди ML, однак їх часто поділяють на дві групи: адміністрування платформи та керування окремими компонентами.
У той час як деякі продукти MLOps зосереджені лише на одній основній функції, наприклад, на управлінні даними або метаданими, інші інструменти використовують більш всеохоплюючу стратегію та надають платформу MLOps для контролю кількох аспектів життєвого циклу ML.
Шукайте рішення MLOps, які допоможуть вашій команді в управлінні цими напрямками розробки ML, незалежно від того, чи шукаєте ви спеціаліста чи більш широкий інструмент:
- Обробка даних
- Проектування та моделювання
- Управління проектами та робочим місцем
- Розгортання та постійне обслуговування моделі ML
- Управління життєвим циклом від початку до кінця, яке зазвичай пропонують повнофункціональні платформи MLOps.
Інструменти MLOps
1. MLFlow
Життєвий цикл машинного навчання контролюється платформою з відкритим кодом MLflow і включає центральну реєстрацію моделі, розгортання та експериментування.
MLflow може використовуватися командою будь-якого розміру, як індивідуально, так і колективно. Бібліотеки не мають ніякого відношення до інструменту.
Його може використовувати будь-яка мова програмування та бібліотека машинного навчання.
Щоб спростити навчання, розгортання та керування програмами машинного навчання, MLFlow взаємодіє з низкою фреймворків машинного навчання, зокрема TensorFlow і Pytorch.
Крім того, MLflow надає прості у використанні API, які можна включити в будь-які існуючі програми або бібліотеки машинного навчання.
MLflow має чотири ключові функції, які полегшують відстеження та планування експериментів:
- MLflow Tracking – API та інтерфейс користувача для реєстрації параметрів, версій, показників і артефактів коду машинного навчання, а також для подальшого відображення та порівняння результатів
- MLflow Projects – упаковка коду машинного навчання у багаторазовий, відтворюваний формат для передачі у виробництво або спільного використання з іншими дослідниками даних
- Моделі MLflow – підтримка та розгортання моделей для ряду систем обслуговування моделей і систем логічного висновку з різних бібліотек ML
- Реєстр моделей MLflow – центральне сховище моделей, яке забезпечує спільне керування моделлю MLflow протягом усього терміну служби, включаючи версії моделі, переходи між етапами та анотації.
2. KubeFlow
Набір інструментів ML для Kubernetes називається Kubeflow. Упаковка та керування контейнерами Docker, допомога в обслуговуванні системи машинного навчання.
Спрощуючи оркестровку запуску та розгортання робочих процесів машинного навчання, це сприяє масштабованості моделей машинного навчання.
Це проект із відкритим вихідним кодом, який включає ретельно підібрану групу додаткових інструментів і фреймворків, адаптованих до різних потреб ML.
Довгі навчальні завдання ML, експерименти вручну, повторюваність і виклики DevOps можна впоратися за допомогою Kubeflow Pipelines.
Для кількох етапів машинного навчання, включаючи навчання, розробку конвеєра та обслуговування Блокноти Юпітера, Kubeflow пропонує спеціалізовані послуги та інтеграцію.
Це спрощує керування та відстеження тривалості робочих навантажень ШІ, а також розгортання моделей машинного навчання (ML) і конвеєрів даних у кластерах Kubernetes.
Він пропонує:
- Ноутбуки для використання SDK для взаємодії з системою
- інтерфейс користувача (UI) для контролю та моніторингу прогонів, завдань і експериментів
- Для швидкого проектування наскрізних рішень без необхідності кожного разу перебудовувати та повторно використовувати компоненти та конвеєри.
- Як ключовий компонент Kubeflow або як окрема установка пропонується Kubeflow Pipelines.
3. Контроль версій даних
Рішення для керування версіями з відкритим кодом для проектів машинного навчання називається DVC або Data Version Control.
Яку б мову ви не вибрали, це експериментальний інструмент, який допомагає визначити конвеєр.
DVC використовує код, версії даних і відтворюваність, щоб допомогти вам заощадити час, коли ви виявите проблему з попередньою версією вашої моделі ML.
Крім того, ви можете використовувати конвеєри DVC для навчання своєї моделі та розповсюдження її членам вашої команди. Організація великих даних і версії можуть бути оброблені DVC, а дані можуть зберігатися в легкодоступний спосіб.
Хоча він включає деякі (обмежені) функції відстеження експерименту, він здебільшого зосереджений на версії даних і конвеєрі та керуванні ними.
Він пропонує:
- Він не залежить від зберігання, тому можна використовувати різні типи зберігання.
- Він також надає статистику відстеження.
- попередньо створений засіб об’єднання етапів машинного навчання в DAG і виконання всього конвеєра від початку до кінця
- Повний розвиток кожної моделі ML можна прослідкувати, використовуючи весь її код і джерело даних.
- Відтворюваність завдяки точному збереженню початкової конфігурації, вхідних даних і програмного коду для експерименту.
4. Пахидерм
Pachyderm — це програма керування версіями для машинного навчання та науки про дані, подібна до DVC.
Крім того, оскільки його створено за допомогою Docker і Kubernetes, він може виконувати та розгортати програми машинного навчання на будь-якій хмарній платформі.
Pachyderm гарантує, що кожну частину даних, яка використовується в моделі машинного навчання, можна відстежувати та версії.
Він використовується для створення, розповсюдження, керування та спостереження за моделями машинного навчання. Реєстр моделей, система керування моделями та панель інструментів CLI включені.
Розробники можуть автоматизувати та розширити свій життєвий цикл машинного навчання за допомогою бази даних Pachyderm, яка також забезпечує повторюваність.
Він підтримує суворі стандарти управління даними, знижує витрати на обробку та зберігання даних і допомагає компаніям швидше виводити на ринок свої ініціативи з обробки даних.
5. Поліаксон
Використовуючи платформу Polyaxon, проекти машинного навчання та програми глибокого навчання можна тиражувати та керувати ними протягом усього життєвого циклу.
Polyaxon може розміщувати та адмініструвати інструмент, і його можна розмістити в будь-якому центрі обробки даних або хмарному провайдері. Такі як Torch, Tensorflow і MXNet, які підтримують усі найпопулярніші фреймворки глибокого навчання.
Коли справа доходить до оркестровки, Polyaxon дає змогу максимально ефективно використовувати кластер, плануючи завдання та тести через їх CLI, інформаційну панель, SDK або REST API.
Він пропонує:
- Ви можете використовувати версію з відкритим вихідним кодом прямо зараз, але вона також включає вибір для корпорації.
- Незважаючи на те, що він охоплює повний життєвий цикл, включаючи оркестрування запуску, він здатний на набагато більше.
- Завдяки технічній довідковій документації, інструкціям із початку роботи, навчальним матеріалам, посібникам, підручникам, журналам змін тощо, це добре задокументована платформа.
- За допомогою інформаційної панелі статистики експерименту можна стежити, відстежувати та оцінювати кожен експеримент оптимізації.
6. комета
Comet — це платформа для метамашинного навчання, яка відстежує, порівнює, пояснює та покращує експерименти та моделі.
Усі ваші експерименти можна переглянути та порівняти в одному місці.
Він працює для будь-яких завдань машинного навчання, будь-де, де виконується ваш код, і з будь-якою бібліотекою машинного навчання.
Comet підходить групам, окремим особам, академічним установам, компаніям і всім, хто бажає швидко візуалізувати експерименти, оптимізувати роботу та проводити експерименти.
Вчені з обробки даних і команди можуть відстежувати, уточнювати, покращувати та порівнювати експерименти та моделі за допомогою хмарної платформи метамашинного навчання Comet.
Він пропонує:
- Для членів команди є багато можливостей для спільного виконання завдань.
- Він має кілька інтеграцій, які спрощують зв’язування його з іншими технологіями
- Добре працює з поточними бібліотеками ML
- Піклується про керування користувачами
- Увімкнено порівняння експериментів, включаючи порівняння коду, гіперпараметрів, метрик, прогнозів, залежностей і системних метрик.
- Надає окремі модулі для зображення, аудіо, тексту та табличних даних, які дозволяють візуалізувати зразки.
7. Оптуна
Optuna — це система для автономної оптимізації гіперпараметрів, яка може бути застосована як для машинного, так і для глибокого навчання, а також для інших областей.
Він містить різноманітні найсучасніші алгоритми, з яких ви можете вибрати (або зв’язати), дуже легко розподіляти навчання між численними комп’ютерами та пропонує привабливу візуалізацію результатів.
Такі популярні бібліотеки машинного навчання, як PyTorch, TensorFlow, Keras, FastAI, sci-kit-learn, LightGBM і XGBoost, інтегровані з ним.
Він надає передові алгоритми, які дозволяють клієнтам швидше отримувати результати шляхом швидкого скорочення вибірок, які не виглядають багатообіцяючими.
Використовуючи алгоритми на основі Python, він автоматично шукає ідеальні гіперпараметри. Optuna заохочує паралельний пошук гіперпараметрів у багатьох потоках без зміни вихідного коду.
Він пропонує:
- Він підтримує розподілене навчання на кластері, а також на одному комп’ютері (багатопроцесний) (багатовузловий)
- Він підтримує кілька методів обрізки для прискорення конвергенції (і використання менше обчислень)
- Він має різноманітні потужні візуалізації, такі як розріз, контур і паралельні координати.
8. Кедро
Kedro — це безкоштовний фреймворк Python для написання коду, який можна оновлювати та підтримувати для наукових проектів даних.
Він переносить ідеї від передового досвіду розробки програмного забезпечення до коду машинного навчання. Python є основою цього інструменту оркестровки робочого процесу.
Щоб зробити ваші процеси ML простішими та точнішими, ви можете розробити відтворювані, придатні для обслуговування та модульні робочі процеси.
Kedro використовує такі принципи розробки програмного забезпечення, як модульність, розподіл обов’язків і керування версіями в середовищі машинного навчання.
На основі Cookiecutter Data Science він забезпечує загальну адаптовану структуру проекту.
Декілька простих з’єднувачів даних, які використовуються для зберігання та завантаження даних у кількох файлових системах і форматах файлів, керуються каталогом даних. Це робить проекти машинного навчання ефективнішими та спрощує створення конвеєра даних.
Він пропонує:
- Kedro дозволяє як розпорошене, так і поодиноке розгортання машин.
- Ви можете автоматизувати залежності між кодом Python і візуалізацією робочого процесу за допомогою абстракції конвеєра.
- Завдяки використанню модульного багаторазового коду ця технологія полегшує командну співпрацю на різних рівнях і підвищує продуктивність у середовищі кодування.
- Основна мета полягає в тому, щоб подолати недоліки блокнотів Jupyter, одноразових сценаріїв і клею-коду, написавши програмне забезпечення для обробки даних.
9. BentoML
Створення кінцевих точок API машинного навчання стало простіше з BentoML.
Він надає типову, але стислу інфраструктуру для переміщення навчених моделей машинного навчання у виробництво.
Це дає змогу пакувати вивчені моделі для використання у виробничих умовах, інтерпретуючи їх за допомогою будь-якої структури ML. Підтримується як офлайн-пакетне обслуговування, так і онлайн-обслуговування API.
Високопродуктивний модельний сервер і гнучкий робочий процес є особливостями BentoML.
Крім того, сервер пропонує адаптивне мікропакетування. Уніфікований підхід до організації моделей і відстеження процедур розгортання забезпечується панеллю інтерфейсу користувача.
Сервер не буде простоїв, оскільки операційний механізм є модульним, а конфігурацію можна використовувати повторно. Це гнучка платформа для надання, організації та розгортання моделей ML.
Він пропонує:
- Він має модульну конструкцію, яка адаптується.
- Це дозволяє розгортати на кількох платформах.
- Він не може автоматично обробляти горизонтальне масштабування.
- Це забезпечує єдиний формат моделі, керування моделлю, упаковку моделі та високоефективне обслуговування моделі.
10. Seldon
Науковці даних можуть створювати, розгортати та керувати моделями машинного навчання та експериментами в масштабі Kubernetes за допомогою фреймворку Seldon Core з відкритим кодом.
TensorFlow, sci-kit-learn, Spark, R, Java і H2O – лише деякі з наборів інструментів, які він підтримує.
Він також взаємодіє з Kubeflow і OpenShift від RedHat. Ядро Seldon перетворює моделі машинного навчання (моделі ML) або мовні оболонки (мови Python, Java тощо) у робочі мікросервіси REST/GRPC.
Цей один із найкращих інструментів MLOps для вдосконалення процесів машинного навчання.
За допомогою Seldon Core легко контейнеризувати моделі ML і тестувати зручність використання та безпеку.
Він пропонує:
- Розгортання моделі можна спростити за допомогою кількох альтернатив, наприклад розгортання Canary.
- Щоб зрозуміти, чому були зроблені конкретні прогнози, скористайтеся пояснювачами моделей.
- Коли виникають проблеми, слідкуйте за серійними моделями за допомогою системи оповіщення.
Висновок
MLOs може допомогти покращити операції машинного навчання. MLOps може пришвидшити розгортання, спростити збір даних і налагодження, а також покращити співпрацю між інженерами та дослідниками даних.
Щоб вибрати інструмент MLOps, який найкраще відповідає вашим потребам, у цій публікації розглянуто 10 популярних рішень MLOps, більшість із яких є відкритим кодом.
залишити коментар