Что такое конвейеры Машинного обучения Azure?

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

Чем полезны конвейеры Машинного обучения Azure?

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

Стандартизация практики MLOps и поддержка масштабируемой совместной работы команд

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

Например, типичный проект машинного обучения включает этапы сбора данных, подготовки данных, обучения модели, оценки модели и развертывания модели. Как правило, инженеры по обработке и анализу данных сосредоточены на этапах, связанных с данными, специалисты по обработке и анализу данных большую часть времени занимаются обучением и оценкой модели, а инженеры по машинному обучению сосредоточены на развертывании модели и автоматизации всего рабочего процесса. При использовании конвейера машинного обучения каждой команде достаточно работать только над собственными этапами. Лучший способ создания шагов — использование компонента Машинное обучение Azure (версии 2) — автономный фрагмент кода, который выполняет один шаг в конвейере машинного обучения. Все эти этапы, созданные различными пользователями, интегрируются в единый рабочий процесс с помощью определения конвейера. Конвейер — это средство для совместной работы всех участников проекта. Процесс определения конвейера и всех его этапов можно стандартизировать с помощью предпочитаемой компанией практики DevOps. Для конвейера можно организовать управление версиями и автоматизировать его. Если проекты Машинного обучения описываются как конвейер, то наилучшая практика MLOps уже применяется.

Эффективность обучения и сокращение затрат.

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

Рекомендации по началу работы

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

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

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

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

Машинное обучение Azure предлагает различные методы создания конвейера. Пользователям, знакомых с методиками DevOps, рекомендуем использовать CLI. Для специалистов по обработке и анализу данных, знакомых с Python, рекомендуется писать конвейеры с помощью пакета SDK Машинное обучение Azure версии 2. Для пользователей, которые предпочитают использовать пользовательский интерфейс, они могут использовать конструктор для создания конвейеров с помощью зарегистрированных компонентов.

Какую технологию конвейера Azure следует использовать?

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

Сценарий Первичный персонаж Предложение Azure Предложение OSS Канонический канал Преимущества
Оркестрация модели (машинное обучение) Специалист по обработке и анализу данных Конвейеры Машинного обучение Azure Конвейеры Kubeflow Данные —> Модель Распространение, кэширование, сначала код, повторное использование
Оркестрация данных (подготовка данных) Инженер данных Конвейеры фабрики данных Azure Apache Airflow Данные —> Данные Строго типизированное перемещение, действия, ориентированные на данные
Согласование кода & приложений (CI/CD) Разработчик приложений / рабочие процессы Azure Pipelines Jenkins Код + Модель —> Приложения или службы Поддержка наиболее открытых и гибких действий, очереди утверждений, фазы с ограничением

Следующие шаги

Машинное обучение Azure конвейеры — это мощное средство, которое начинает доставку ценности на стадии раннего развертывания.