Это часть I серии, иллюстрирующая, как я автоматизировал обучение, оценку и развертывание моделей машинного обучения для одного из моих клиентов и разработал полнофункциональную структуру на основе Kubeflow и MLOps.

Часть I. Здесь я познакомлю вас с постановкой проблемы, потребностью в MLOps и 10000-футовым обзором цели проекта и жизненного цикла модели.

Часть II — в ней основное внимание уделяется архитектуре, высокоуровневому проектированию и услугам, необходимым для реализации решения.

Часть III — охватывает конвейеры Kubeflow — конвейер обучения и проверки, оценку предварительно обученных моделей, развертывание обученной модели

Часть IV — Оркестратор для конвейеров Kubeflow, настройка аутентификации (SSO) с помощью Kubeflow, Istio, Dex и Cognito

Часть V — Управление версиями набора данных с использованием DVC, Использование EFS для совместного использования наборов данных на разных этапах.

Часть VI. Автоматическое развертывание моделей с использованием Kserve/Helmcharts для обслуживания моделей и упаковки моделей на лету.

Часть VII. Мониторинг углеродного следа/выбросов с помощью Kubernetes, Newrelic и использование MLFlow для отслеживания параметров и показателей обучения модели.

Постановка задачи

Модели машинного обучения (ML), построенные учеными, представляющими небольшую часть компонентов, которые составляют рабочий процесс развертывания производства корпоративного производства. Для организации моделей ML ученые должны тесно сотрудничать с несколькими другими командами, такими как бизнес, инжиниринг и операции. Это представляет собой организационные проблемы с точки зрения коммуникации, сотрудничества и координации.

млн операций в секунду

MLOps, или операции машинного обучения, — это инфраструктура, методы и практики, используемые для оптимизации жизненного цикла машинного обучения от проектирования модели и подготовки данных до мониторинга модели в производстве.

MLOps взяли многие принципы из DevOps. И DevOps, и MLOps поощряют и облегчают сотрудничество между людьми, которые занимаются разработкой (инженерами-программистами и специалистами по данным), людьми, которые управляют инфраструктурой, и другими заинтересованными сторонами. Оба делают упор на автоматизацию процессов в непрерывном развитии, чтобы скорость и эффективность были максимальными.

В отличие от традиционной разработки программного обеспечения, на машинное обучение влияют не только изменения в его коде. Данные — это еще один важный вход, которым необходимо управлять, как и параметры, метаданные, журналы и, наконец, модель.

Помимо решения организационной проблемы, MLOps решает и техническую: как сделать процесс воспроизводимым и поддающимся проверке. Используя аналогичные инструменты и следуя общим рабочим процессам, команды могут легко автоматизировать доставку комплексной системы машинного обучения, гарантируя ее воспроизводимость. Это, в свою очередь, повышает доверие к прогнозам модели ML и облегчает ее аудит.

Я не собираюсь подробно описывать MLOps. В сети много ресурсов. Некоторые ссылки -

Непрерывная доставка для машинного обучения
Введение в MLOps от O’Reilly media.
https://martinfowler.com/articles/cd4ml.html

Вы также можете пройти онлайн-курс специализации: Специализация Machine Learning Engineering for Production (MLOps).

Миссия проекта

Рискуя упростить, миссия моего проекта состояла в том, чтобы

  • Снимите работу с специалистов по данным, чтобы внедрить машинное обучение (автоматическое обучение моделей, развертывание и т. д.)​
  • Установите общепринятые методы с воспроизводимостью обучения модели и надежностью за счет дизайна​
  • Автоматизируйте большую часть инфраструктуры и сборок, необходимых в течение жизненного цикла разработки модели.

Обзор варианта использования

Как и в любом проекте, команды специалистов по данным работают над выполнением задачи, например. Извлекайте авторов из исследовательских работ, находите ссылки, цитаты из рукописей и т. д. Для любой задачи необходимо оценить несколько архитектур моделей, и позже будет развернута наиболее подходящая модель, основанная на целях и показателях.

На рисунке выше показан жизненный цикл разработки, развертывания и обслуживания модели. MLOps несут ответственность за упрощение инструментов, конвейеров и базовой инфраструктуры, чтобы сделать сквозной процесс бесшовным.

Если вас это заинтриговало, прочитайте Часть II, в которой основное внимание уделяется архитектуре, высокоуровневому проектированию и службам, задействованным для реализации решения.