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 リポジトリにシークレットを追加するには、次のようにします。

  1. [設定] タブに移動します。

    Screenshot of settings tab in GitHub repository.

  2. [設定] タブの [セキュリティ] で、[シークレット] オプションを展開し、[アクション] を選択します。

    Screenshot of secrets option in security section.

  3. シークレットとして Azure 資格情報を入力し、シークレットに AZURE_CREDENTIALS と名前を付けます。

  4. 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 の詳細について説明します。