GitHub Actions
Если вы хотите автоматизировать рабочие процессы с помощью GitHub, воспользуйтесь GitHub Actions.
GitHub в основном используется для размещения проектов кода. При размещении кода машинного обучения в репозитории GitHub можно создать GitHub Actions, чтобы выполнять автоматическую сборку, проверку и развертывание кода.
Примечание.
Чтобы использовать GitHub Actions с конвейерами Машинного обучения Azure, необходимо предоставить репозиторию GitHub доступ к рабочей области Машинного обучения Azure через безопасное подключение.
Вы научитесь использовать GitHub Actions для запуска конвейера Машинного обучения Azure.
Создание действия GitHub
- Определите событие, которое будет активировать рабочий процесс.
- Запустите рабочий процесс, состоящий из заданий.
- Задание состоит из одного или нескольких этапов.
- В рамках одного из этапов запустите конвейер Машинного обучения Azure.
- Конвейер Машинного обучения 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
Рабочий процесс в примере выполняет следующие действия:
- Проверяет репозиторий, чтобы сделать его доступным в средстве выполнения.
- установить расширение Машинного обучения Azure для CLI;
- Выполняет вход в Azure с помощью заранее определенных
AZURE_CREDENTIALS
. - Выполняет переход в папку
src
, содержащую весь рабочий код. - Запускает конвейер Машинного обучения Azure.
Выполнение рабочего процесса с помощью GitHub Actions
Предположим, что вы создали файл YAML для определения рабочего процесса. Он хранится в каталоге .github/workflows/
в вашем репозитории.
Чтобы просмотреть рабочий процесс, перейдите на вкладку Действия в репозитории GitHub.
GitHub автоматически отбирает все рабочие процессы, хранящиеся в каталоге .github/workflows/
.
Совет
Если добавить workflow_dispatch:
в файл YAML, можно вручную активировать выполнение рабочего процесса с вкладки Действия.
Можно активировать рабочий процесс с событиями, указанными в файле YAML вашего рабочего процесса. В этом примере отправка изменений в репозиторий активирует выполнение рабочего процесса. При каждом внесении изменений и отправке фиксаций в репозиторий (локально в Visual Studio Code или напрямую в GitHub) будет запускаться рабочий процесс.
Выберите последний запуск, чтобы подробно изучить выполнение этапов и полученные сообщения об ошибках.
Когда рабочий процесс активирует конвейер Машинного обучения Azure, следует также просмотреть выполнение конвейера в рабочей области Машинного обучения Azure, так как в конвейере по-прежнему могут возникать ошибки. Все сообщения об ошибках можно просмотреть в папке выходных данных запуска экспериментального конвейера Машинного обучения Azure.