Какие проблемы решает MLOps и лучшие практики

Создание модели машинного обучения включает в себя создание модели, ее обучение, настройку и развертывание. Этот процесс должен быть:

  • Масштабируемость
  • Совместный
  • Воспроизводимый

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

DevOps против MLOps против Data Ops

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

Какие проблемы решает MLOps?

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

Версии

Управление версиями — это обычная практика в разработке программного обеспечения, когда для управления версиями кода используются такие инструменты, как Git и GitHub. Помимо управления версиями кода, в машинном обучении необходимо управлять версиями и других вещей. Эти элементы включают в себя:

  • Данные, используемые при обучении модели
  • Артефакты модели

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

Мониторинг производительности модели

Модели, запущенные в производство, со временем могут ухудшиться. Это вызвано различиями в данных обучения и данных тестирования. Обычно это называют дрейфом данных. Отслеживая производительность модели, эти проблемы можно быстро выявить и устранить.

Генерация функций

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

Какие навыки вам нужны для MLOps?

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

  • Умение сформулировать бизнес-задачу и цели
  • Соберите данные, необходимые для решения выявленной проблемы
  • Подготовьте и обработайте данные, чтобы они были приемлемыми для моделей машинного обучения.
  • Создайте функции, которые важны для рассматриваемой проблемы
  • Создавайте и обучайте модели машинного обучения
  • Разработайте конвейер для приема данных, создания функций, обучения и оценки модели.
  • Разверните модель, чтобы ее могли использовать реальные пользователи. Это также может быть частью вышеуказанного конвейера.
  • Следите за тем, как модель работает в реальном мире

Избавившись от этих основ, давайте теперь рассмотрим основные компоненты MLOps.

Части MLOps

Несмотря на то, что поле довольно широкое, несколько частей объединяются, чтобы сделать его одним целым. В этом разделе мы рассмотрим эти части.

Магазин функций

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

Версии данных

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

Хранилище метаданных машинного обучения

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

  • Семя, используемое при разделении данных. Это гарантирует, что вы используете одно и то же разделение при создании набора для обучения и тестирования.
  • Случайное состояние, используемое для инициализации модели. Случайное состояние влияет на воспроизводимость обучения модели
  • Метрики модели
  • Гиперпараметры
  • Кривые обучения
  • Учебный код и файлы конфигурации
  • Код, используемый для создания функций
  • Журналы оборудования

Хранение метаданных модели жизненно важно по нескольким причинам:

  • Построение дашборда с разными моделями
  • Включение возможности поиска моделей на основе гиперпараметров

Управление версиями модели

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

Реестр моделей

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

  • Гиперпараметры
  • Метрики
  • Версия элемента, используемая для создания модели
  • Версия набора данных, используемая при обучении модели

..чтобы упомянуть несколько

Упомянутые выше метаданные модели важны для:

  • Соблюдение правил
  • Управление моделями
  • Определение конечных точек моделей в производстве

Артефакты модели обычно сохраняются автоматически в зависимости от используемого вами инструмента MLOps. Вы также можете указать инструменту сохранять контрольные точки лучших моделей и загружать их в реестр.

Подача модели

Как только модель находится в реестре, ее можно развернуть и предоставить пользователям. Обслуживание модели означает создание конечных точек, которые можно использовать для выполнения логического вывода по модели. Артефакт модели также можно загрузить и упаковать с помощью приложения. Однако развертывание конечных точек API упрощает использование модели в различных приложениях. Тем не менее, есть смысл упаковать модель в такие приложения, как мобильные приложения, чтобы уменьшить задержку логического вывода.

Мониторинг модели

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

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

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

Переподготовка моделей

Модели машинного обучения можно переобучить по двум основным причинам:

  • Для улучшения производительности модели
  • Когда станут доступны новые обучающие данные

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

CI/CD

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

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

Как реализовать MLOps

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

Решения Млопс

Выбор инструмента оркестровки машинного обучения будет зависеть от нескольких факторов, в том числе:

  • Навыки вашей команды
  • Ваш бюджет
  • Хотите ли вы автоматизировать часть конвейера или весь конвейер
  • Простота интеграции нового инструмента

Просто упомянем несколько.

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

  • MLflow — это платформа с открытым исходным кодом для управления жизненным циклом машинного обучения. Платформу можно использовать для отслеживания экспериментов машинного обучения, развертывания, а также в качестве центрального реестра моделей.
  • Sacred — это библиотека с открытым исходным кодом, которую можно использовать для организации, регистрации и воспроизведения экспериментов по машинному обучению. Он не поставляется с веб-интерфейсом. Omniboard — популярная фронтенд-библиотека для Sacred.
  • ModelDB — это инструмент с открытым исходным кодом для управления версиями моделей, хранения метаданных моделей и управления экспериментами по машинному обучению. Его можно использовать для воспроизводимости конвейеров машинного обучения, а также для отображения панелей мониторинга производительности моделей.

Лучшие практики MLOps

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

  • Используйте инструменты для совместной работы. Это упрощает для всех членов команды доступ к коду, данным и информации о проекте, например к сгенерированным функциям. Это также упрощает постановку и отслеживание проблем.
  • Начните с простой модели. Если вы начнете с простой модели, у вас будет достаточно времени, чтобы убедиться в правильности инфраструктуры. Сложная модель означает, что вам нужно отлаживать сложную модель и оптимизировать инфраструктуру, в которой она будет работать.
  • Просто запустите. Не тратьте месяцы на создание и развертывание модели машинного обучения. Лучше запустить модель как можно раньше, чтобы начать тестировать ее на реальных пользователях. Вы можете предоставить модель небольшому количеству пользователей, чтобы начать получать первоначальные отзывы. Эта обратная связь может использоваться для итерации модели и инфраструктуры по мере необходимости.
  • Выполняйте автоматические регрессионные тесты. Это очень важно для того, чтобы новый код не приводил к ошибкам в существующем коде. Код, не прошедший тесты, не объединяется с основным исходным кодом. Регрессионное тестирование гарантирует, что новый код не нарушит существующие функции.
  • Автоматическое развертывание моделей. Это гарантирует, что новые модели, прошедшие определенные тесты, автоматически станут доступными для пользователей. Это также освобождает инженеров от ручного процесса упаковки моделей для производства. Этот процесс включает в себя автоматическую упаковку моделей вместе с их зависимостями и доставку их в производственную или промежуточную среду. Модели следует постоянно контролировать и автоматически откатывать, когда они работают плохо.
  • Прикрепите прогнозы к версиям модели и данным. Это упрощает отслеживание каждого прогноза для конкретной модели и данных. Это важно для прослеживаемости, воспроизводимости и соответствия требованиям. Регистрация прогнозов с данными и версиями моделей также упрощает отладку моделей в случае неожиданного поведения.
  • Измерение перекоса в обучении и обслуживании. Модели машинного обучения не всегда могут работать должным образом, когда используются для использования с невидимыми данными. В результате крайне важно измерить разницу между эффективностью обучения и невидимыми данными. Если разница неприемлема по вашим стандартам, вам придется реализовать способ ее смягчить, например, переработав функции.
  • Реализовать теневое производство. Это включает использование производственных данных для прогнозирования модели. Прогнозы, однако, не должны использоваться для принятия реальных решений. Они сравниваются с решениями, принимаемыми существующей системой принятия решений, даже если эта система является ручной. Когда решения, принимаемые моделью, приемлемы, ее можно продвигать к принятию реальных решений.
  • Оптимизация настройки гиперпараметров. Выбор и поиск лучших параметров модели вручную может быть головной болью. Автоматизация процесса ускорит процесс экспериментов с машинным обучением. Затем результаты оптимизации гиперпараметров можно сравнить, и для производства будут выбраны лучшие алгоритмы и параметры.

Последние мысли

Эта статья была введением в мир операций машинного обучения, широко известных как MLOps. Мы рассмотрели различные аспекты MLOps, а также несколько лучших практик. Мы также рассмотрели некоторые инструменты, которые можно использовать для автоматизации процесса MLOps. В частности, вы узнали:

  • Что такое Млопс
  • Разница между MLOps и DevOps
  • Проблемы, которые решают MLOps
  • Навыки, необходимые для работы в пространстве MLOps
  • Различные компоненты MLOps
  • Комплексные решения MLOps

Просто упомянем несколько.

Подпишитесь на меня в LinkedIn для получения дополнительных технических ресурсов.

Первоначально опубликовано на https://learn.layer.ai.

Изображения предоставлены Layer с разрешения.