Конвейеры Машинного обучение Azure
Как специалист по обработке и анализу данных для обучения моделей и управления ими вы будете в основном использовать службу Машинного обучения Azure. После проведения экспериментов следует преобразовать результаты в рабочий код Python, чтобы обеспечить автоматизацию с помощью Azure Pipelines (DevOps) или GitHub Actions.
Эксперименты в службе Машинного обучения Azure
Машинное обучение Azure предоставляет набор возможностей, позволяющих организовывать работу. Например, Машинное обучение Azure позволяет выполнять следующие действия:
- Регистрировать наборы данных, чтобы легко повторно использовать данные, хранимые в озере данных.
- Обучать модель в удаленных вычислительных экземплярах или кластерах в зависимости от ваших требований.
- Отслеживать все выполненные скрипты с экспериментами, чтобы легко сравнивать работу.
- Регистрировать обученные модели и разворачивать их для пакетного использования или использования в режиме реального времени.
Основную часть работы специалиста по обработке и анализу данных составляет проведение экспериментов: проверка различных конфигураций для обучения модели и метрик производительности для определения подходящей модели для развертывания в рабочей среде.
Если вы будете проводить эксперименты в записной книжке Jupyter (файлы .ipynb
), необходимо преобразовать эксперименты в рабочий код Python. Для этого выполните следующие действия:
- Удалите весь ненужный код.
- Выполните рефакторинг кода на функции.
- Объедините связанные функции в скрипты Python (файлы
.py
). - Создайте модульные тесты для каждого скрипта Python.
- Создайте конвейер для объединения скриптов в рабочий процесс, который можно автоматизировать.
Когда код будет готов для использования в рабочей среде, можно автоматизировать выполнение скриптов с помощью конвейеров Машинного обучения Azure.
Создание конвейеров Машинного обучения Azure
Конвейеры используются в различных средствах, чаще всего для группировки задач определенным образом. Основным преимуществом конвейера является возможность его планирования и активации его выполнения.
Конвейер Машинного обучения Azure создается в рабочей области Машинного обучения Azure. Чтобы создать конвейер, можно определить этапы с помощью скриптов Python.
При необходимости можно создать конвейер с помощью компонентов Машинного обучения Azure. При создании компонента скрипт будет храниться с такими метаданными, как необходимая среда, в рабочей области Машинного обучения Azure. Компоненты могут совместно использоваться всеми пользователями в одной рабочей области, что упрощает создание новых конвейеров для развития вашей работы.
Чтобы создать конвейер для автоматизации, рекомендуется определить задание конвейера в YAML, которое можно активировать с помощью команды CLI (версии 2).
В файле YAML, который определяет конвейер, должны быть указаны следующие сведения:
- Объекты выполнения: этапы, определенные как скрипты Python или компоненты.
- Методы выполнения: входные и выходные данные, которые могут понадобиться на этапах.
- Область выполнения: вычислительные ресурсы, необходимые для выполнения кода (обычно это вычислительный кластер Машинного обучения Azure).
Например, в файле pipeline-job.yml
можно определить конвейер, который принимает необработанные данные в качестве входных, преобразует их и обучает модель:
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc-taxi-pipeline-example
experiment_name: nyc-taxi-pipeline-example
jobs:
transform-job:
type: command
raw_data:
type: uri_folder
path: ./data
outputs:
transformed_data:
mode: rw_mount
code: src/transform
environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest
compute: azureml:cpu-cluster
command: >-
python transform.py
--raw_data ${{inputs.raw_data}}
--transformed_data ${{outputs.transformed_data}}
train-job:
type: command
inputs:
training_data: ${{parent.jobs.transform-job.outputs.transformed_data}}
outputs:
model_output:
mode: rw_mount
test_data:
mode: rw_mount
code: src/train
environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest
compute: azureml:cpu-cluster
command: >-
python train.py
--training_data ${{inputs.training_data}}
--test_data ${{outputs.test_data}}
--model_output ${{outputs.model_output}}
Чтобы запустить конвейер в Машинном обучении Azure, используйте следующую команду CLI:
az ml job create --file pipeline-job.yml
После завершения выполнения конвейера его можно проверить с выполненными этапами в рабочей области Машинного обучения Azure.
Совет
См. сведения о создании конвейера в службе Машинного обучения Azure с помощью CLI (версии 2).
После преобразования рабочих нагрузок машинного обучения в скрипты Python и группировки задач в конвейере ваша модель будет готова к запуску в рабочей среде. Определение конвейера в файле YAML позволяет автоматизировать обучение и повторное обучение путем активации выполнения конвейера с помощью CLI (версии 2). Можно выполнить команду CLI, ссылающуюся на файл YAML конвейера, из Azure Pipelines (DevOps) или GitHub Actions.