GitHub Actions をモデルのトレーニングに使用する
GitHub Actions は、GitHub リポジトリ内で発生するイベントによってトリガーされるタスクを自動化できるプラットフォームです。 GitHub Actions ワークフローはジョブで構成されます。 ジョブは、定義できる一連のステップをグループ化します。 これらのステップの 1 つは、CLI (v2) を使用して Azure Machine Learning ジョブを実行してモデルをトレーニングできます。
GitHub Actions を使用してモデル トレーニングを自動化するには、次のことを行う必要があります。
- Azure CLI を使用してサービス プリンシパルを作成する。
- Azure 資格情報を GitHub シークレットに格納する。
- YAML で GitHub アクションを定義する。
サービス プリンシパルの作成
GitHub Actions を使用して Azure Machine Learning ジョブを自動化する場合は、サービス プリンシパルを使用して GitHub を認証し、Azure Machine Learning ワークスペースを管理する必要があります。 たとえば、Azure Machine Learning コンピューティングを使用してモデルをトレーニングするには、そのコンピューティングを使用するユーザーまたは使用するツールの承認を行ってそのコンピューティングを使用する必要があります。
ヒント
GitHub Actions を使用して Azure に接続する方法の詳細を確認します
Azure 資格情報を格納する
認証に必要な Azure 資格情報は、コードまたはプレーン テキストに格納しないでください。代わりに GitHub シークレットに格納する必要があります。
GitHub リポジトリにシークレットを追加するには、次のようにします。
[設定] タブに移動します。
[設定] タブの [セキュリティ] で、[シークレット] オプションを展開し、[アクション] を選択します。
シークレットとして 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 Machine Learning ジョブを実行できます。
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
ヒント
コア概念や重要な用語など、GitHub Actions の詳細について説明します。