Обзор трех лучших инструментов MLOps

Современные инструменты для развертывания моделей машинного обучения и управления ими

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

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

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

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

Кубефлоу

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

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

Kubeflow обычно более полезен для инженеров DevOp, тесно работающих с учеными по данным. Вероятно, это лучший выбор для масштабной модели.

Млфлоу

Другой аналогичный инструментарий — MLflow, разработанный Databricks. MLflow имеет четыре основных компонента: отслеживание, проекты, модели и реестр.

Как указано на схеме, каждый компонент MLflow используется для экспериментов с моделями, воспроизводимых запусков, развертывания и хранения моделей соответственно.

Отслеживание

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

Проекты

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

Модели

Компонент моделей используется для обслуживания моделей. Например, его можно использовать с REST API для обслуживания прогнозов моделей в реальном времени.

Реестр

Наконец, компонент реестра имеет несколько инструментов для управления полным жизненным циклом модели MLflow. К ним относятся централизованные хранилища моделей, API-интерфейсы, пользовательские интерфейсы, которые можно использовать для отслеживания происхождения модели, контроля версий, подготовки модели и аннотаций.

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

AWS SageMaker

AWS SageMaker — еще один популярный инструмент MLOps. Это очень удобный вариант для специалистов по данным и бизнес-аналитиков, поскольку он предоставляет IDE и пользовательские интерфейсы без кода для каждого соответствующего персонажа. Он также имеет инструменты для доступа, маркировки и обработки как структурированных, так и неструктурированных данных. Кроме того, подобно Kubeflow и MLflow, он обеспечивает простое развертывание и мониторинг моделей машинного обучения.

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

Сравнение Kubeflow, MLflow и AWS SageMaker

Между тремя платформами, которые мы здесь обсуждали, есть много сходств и различий. На высоком уровне каждый из них можно использовать для развертывания, обслуживания и обслуживания моделей машинного обучения. Большая разница между Kubeflow и двумя другими платформами заключается в том, что она зависит от Kubernetes. Кроме того, MLflow — это библиотека Python, которая позволяет специалистам по данным очень легко запускать и сохранять эксперименты для моделирования. MLflow также можно использовать с AWS SageMaker для развертывания модели. Kubeflow также отличается от SageMaker тем, что он бесплатный и с открытым исходным кодом, а SageMaker требует оплаты услуг AWS (даже в рамках бесплатного уровня). Кроме того, AWS SageMaker — лучший выбор для задач инженерии данных и обработки данных по сравнению с Kubeflow и MLflow. Учитывая, что у каждой платформы есть свои плюсы и минусы, инженерам DevOps, специалистам по данным и инженерам по машинному обучению полезно иметь некоторое представление о каждой из них.

Выводы

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