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

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение Машинного обучения для Azure CLI версии 1пакет SDK для Python azureml версии 1

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)пакет SDK для Python azure-ai-ml версии 2 (предварительная версия)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Дальнейшие действия

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