使用 GitHub Actions 进行模型训练
GitHub Actions 是一个平台,让你能够自动执行由 GitHub 存储库中发生的事件触发的任务。 GitHub Actions 工作流由作业组成。 作业将一组你可以定义的步骤分组在一起。 其中一个步骤可以使用 CLI (v2) 运行 Azure 机器学习作业来训练模型。
若要使用 GitHub Actions 自动执行模型训练,需要:
- 使用 Azure CLI 创建服务主体。
- 将 Azure 凭据存储在 GitHub 机密中。
- 在 YAML 中定义 GitHub 操作。
创建服务主体
使用 GitHub Actions 自动执行 Azure 机器学习作业时,需要使用服务主体对 GitHub 进行身份验证以管理 Azure 机器学习工作区。 例如,要使用 Azure 机器学习计算训练模型,你或你使用的任何工具都需要获得使用该计算的授权。
提示
存储 Azure 凭据
需要进行身份验证的 Azure 凭据不应存储在代码或纯文本中,而是应该存储在 GitHub 机密中。
若要将机密添加到 GitHub 存储库:
导航至 Settings 选项卡。
在“设置”选项卡的“安全性”下,展开“机密”选项,并选择“操作”。
输入 Azure 凭据作为机密并将该机密命名为
AZURE_CREDENTIALS
。若要在 GitHub 操作中使用包含 Azure 凭据的机密,请参阅 YAML 文件中的机密。
on: [push] name: Azure Login Sample jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Log in with Azure uses: azure/login@v1 with: creds: '${{secrets.AZURE_CREDENTIALS}}'
定义 GitHub 操作
若要定义工作流,需要创建 YAML 文件。 可以手动触发训练模型的工作流,也可以使用推送事件触发。 手动触发工作流非常适合测试,而使用事件自动触发工作流更适合自动化。
若要配置 GitHub Actions 工作流,以便可以手动触发它,请使用 on: workflow_dispatch
。 若要使用推送事件触发工作流,请使用 on: [push]
。
触发 GitHub Actions 工作流后,可以向作业添加各种步骤。 例如,可以使用步骤运行 Azure 机器学习作业:
name: Manually trigger an Azure Machine Learning job
on:
workflow_dispatch:
jobs:
train-model:
runs-on: ubuntu-latest
steps:
- name: Trigger Azure Machine Learning job
run: |
az ml job create --file src/job.yml
提示