Конвейеры Машинного обучение 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.

После преобразования рабочих нагрузок машинного обучения в скрипты Python и группировки задач в конвейере ваша модель будет готова к запуску в рабочей среде. Определение конвейера в файле YAML позволяет автоматизировать обучение и повторное обучение путем активации выполнения конвейера с помощью CLI (версии 2). Можно выполнить команду CLI, ссылающуюся на файл YAML конвейера, из Azure Pipelines (DevOps) или GitHub Actions.