GitHub Actions

Завершено

Если вы хотите автоматизировать рабочие процессы с помощью GitHub, воспользуйтесь GitHub Actions.

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

Примечание.

Чтобы использовать GitHub Actions с конвейерами Машинного обучения Azure, необходимо предоставить репозиторию GitHub доступ к рабочей области Машинного обучения Azure через безопасное подключение.

Вы научитесь использовать GitHub Actions для запуска конвейера Машинного обучения Azure.

Создание действия GitHub

Диаграмма: иерархия конвейеров.

  1. Определите событие, которое будет активировать рабочий процесс.
  2. Запустите рабочий процесс, состоящий из заданий.
  3. Задание состоит из одного или нескольких этапов.
  4. В рамках одного из этапов запустите конвейер Машинного обучения Azure.
  5. Конвейер Машинного обучения Azure состоит из скриптов или компонентов Машинного обучения Azure.

Чтобы создать рабочий процесс для GitHub Actions, определите в файле YAML этапы, которые необходимо выполнить. В файле YAML необходимо указать следующие сведения:

  • Событие: как активировать рабочий процесс.
  • Задание: группа этапов, которые необходимо выполнить в средстве выполнения. Для рабочих нагрузок машинного обучения вы, вероятно, будете использовать виртуальную машину Ubuntu Linux.
  • Этап: скрипт или действие, которое необходимо выполнить. Например, команда CLI для инициации конвейера Машинного обучения Azure (az ml job create).

Совет

Дополнительные сведения об основных понятиях GitHub Actions.

Чтобы запускать конвейер Машинного обучения Azure при каждой отправке изменений в репозиторий, можно использовать файл YAML, аналогичный приведенному ниже:

name: Train model

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest 
    steps:
    - name: check out repo
      uses: actions/checkout@v2
    - name: install az ml extension
      run: az extension add -n ml -y
    - name: azure login
      uses: azure/login@v1
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}
    - name: set current directory
      run: cd src
    - name: run pipeline
      run: az ml job create --file src/aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws

Рабочий процесс в примере выполняет следующие действия:

  1. Проверяет репозиторий, чтобы сделать его доступным в средстве выполнения.
  2. установить расширение Машинного обучения Azure для CLI;
  3. Выполняет вход в Azure с помощью заранее определенных AZURE_CREDENTIALS.
  4. Выполняет переход в папку src, содержащую весь рабочий код.
  5. Запускает конвейер Машинного обучения Azure.

Выполнение рабочего процесса с помощью GitHub Actions

Предположим, что вы создали файл YAML для определения рабочего процесса. Он хранится в каталоге .github/workflows/ в вашем репозитории.

Чтобы просмотреть рабочий процесс, перейдите на вкладку Действия в репозитории GitHub.

Снимок экрана: обзор GitHub Actions.

GitHub автоматически отбирает все рабочие процессы, хранящиеся в каталоге .github/workflows/.

Совет

Если добавить workflow_dispatch: в файл YAML, можно вручную активировать выполнение рабочего процесса с вкладки Действия.

Можно активировать рабочий процесс с событиями, указанными в файле YAML вашего рабочего процесса. В этом примере отправка изменений в репозиторий активирует выполнение рабочего процесса. При каждом внесении изменений и отправке фиксаций в репозиторий (локально в Visual Studio Code или напрямую в GitHub) будет запускаться рабочий процесс.

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

Снимок экрана: успешное выполнение рабочего процесса.

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