Что такое компонент Машинного обучения Azure?

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

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

Компонент состоит из трех частей:

  • Метаданные — name, display_name, version, type и т. д.
  • Интерфейс: спецификации входных и выходных данных (имя, тип, описание, значение по умолчанию и т. д.).
  • Команда, код и среда: команда, код и среда, необходимые для запуска компонента.

Diagram of what a component looks like and how it looks in a pipeline. In addition to screenshots of a component in the CLI, SDK, and portal UI.

Преимущества компонентов

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

  • Четко определенный интерфейс — для компонентов требуется четко определенный интерфейс (вход и выход). Интерфейс позволяет пользователю легко создавать и подключать шаги. Интерфейс также скрывает сложную логику шага и избавляет от необходимости понимать, как реализуется шаг.

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

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

Модульное тестирование — компонент представляет автономный фрагмент кода. Написать модульный тест для компонента легко.

Компонент и конвейер

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

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

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

Теперь пришло время разработать код выполнения шага. Вы можете использовать предпочитаемые языки (Python, R и т. д.). Код должен выполняться командой оболочки. Во время разработки может потребоваться добавить разные входные данные для управления выполнением этого шага. Например, для этапа обучения вы можете добавить скорость обучения, количество эпох в качестве входных данных для управления обучением. Эти дополнительные входные данные, а также входные и выходные данные, необходимые для подключения к другим шагам, являются интерфейсом компонента. С помощью аргумента команды оболочки входные и выходные данные передаются в код. Необходимо указать среду для выполнения команды и код. Среда может быть курированной Машинное обучение Azure средой, образом Docker или средой conda.

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

Дополнительные сведения о создании компонента:

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