DevOps преобразовал процесс разработки программного обеспечения в соответствии с практикой Agile. Использование подходов DevOps в ML как MLOps — хорошая стратегия с передовыми приложениями машинного обучения.

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

Начнем с вопроса: могут ли методы DevOps помочь улучшить машинное обучение?

DevOps против MLOps

Возможно, вы знакомы с DevOps.

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

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

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

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

Трехэтапный процесс использования DevOps в ML

Машинное обучение состоит из различных этапов, от подготовки данных до обучения и развертывания модели.

Здесь мы предоставим общий обзор процесса.

Шаг 1: Подготовка данных

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

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

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

Шаг 2: Обучение модели

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

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

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

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

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

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

Шаг 3. Развертывание модели машинного обучения

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

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

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

Основные практики DevOps

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

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

В ML важно преобразовывать данные и особенности дизайна, чтобы данные были машиночитаемыми.

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

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

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

Существуют различные компоненты, необходимые для создания сквозных конвейеров. Инструменты CI/CD и текущие интеграции не созданы специально для машинного обучения. Рекомендуется использовать инструмент, специально созданный для машинного обучения (для подготовки данных и обучения модели) и имеющий уровень оркестрации CI/CD для реализации методов CI/CD.

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

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

Путь клиента в автоматизации машинного обучения

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

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

Рабочий процесс ML включает в себя различные практики MLOps, такие как:

  • Репозиторий кода
  • Контроль версий данных
  • Feature Store (для обмена и открытия избранных функций)
  • Управление версиями артефактов модели (управление версиями модели в масштабе и обеспечение прослеживаемости)

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

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

Ускоритель MLOps

Ускоритель MLOps, созданный на базе сервиса Amazon Sagemaker Pipelines, представляет собой новую возможность Amazon Sagemaker, которая позволяет специалистам по данным и инженерам легко создавать, автоматизировать и масштабировать сквозные конвейеры машинного обучения.

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

Подведение итогов

Принятие подхода DevOps приносит пользу проектам ML за счет MLOps и специально создано для работы с проектами, управляемыми данными.

Более того, такие инструменты, как Amazon SageMaker Feature Store и другие, позволяют быстрее, безопаснее и эффективнее преобразовывать данные и ускорять проекты машинного обучения. Организации должны внедрить эти инструменты, чтобы как можно раньше получить конкурентное преимущество.