GitHub Actions

完了

GitHub でワークフローを自動化する場合は、 GitHub Actions を使用します

GitHub は、主にコード プロジェクトをホストするために使用されます。 機械学習のコードを GitHub リポジトリでホストすると、コードのビルド、テスト、デプロイを自動的に行う GitHub Actions を作成できます。

ここでは、GitHub Actions を使用して Azure Machine Learning パイプラインを実行する方法について学習します。

GitHub アクションを作成する

パイプラインの階層の図。

  1. ワークフローをトリガーする イベント を定義します。
  2. ジョブで構成される ワークフローを実行します。
  3. 1 つの ジョブ に 1 つ以上のステップが含まれています。
  4. 手順として、 Azure Machine Learning パイプラインを実行します。
  5. Azure Machine Learning パイプラインは、 スクリプト または Azure Machine Learning コンポーネントで構成 されます

GitHub Actions 用のワークフローを作成するには、YAML ファイルで実行する手順を定義します。 YAML ファイルには次の項目を含めます。

  • イベント: ワークフローをトリガーする方法。
  • ジョブ: ランナーに対して実行するステップのグループ。 機械学習ワークロードの場合は、 Ubuntu Linux 仮想マシンを使用する可能性があります。
  • ステップ: 実行するスクリプトまたはアクション。 たとえば、Azure Machine Learning パイプラインを開始する CLI コマンド (az ml job create) などです。

ヒント

GitHub Actions で使用される主要な概念の詳細について説明します。

変更がリポジトリにプッシュされるたびに Azure Machine Learning パイプラインを実行するには、次のような 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. CLI 用の Azure Machine Learning 拡張機能をインストールします。
  3. あらかじめ定義されている AZURE_CREDENTIALS を使用して Azure にサインインします。
  4. すべての運用コードが含まれる src フォルダーに移動します。
  5. Azure Machine Learning パイプラインを実行します。

GitHub Actions でワークフローを実行する

ワークフローを定義する YAML ファイルを作成したとします。 YAML ファイルはリポジトリ内の .github/workflows/ ディレクトリに格納します。

ワークフローを表示するには、リポジトリの GitHub Actions タブに移動します。

GitHub Actions の概要のスクリーンショット。

GitHub によって、.github/workflows/ ディレクトリに格納されているすべてのワークフローが自動的に選択されます。

ヒント

ワークフロー YAML ファイルに workflow_dispatch: を追加する場合は、[ アクション] タブからワークフローを手動でトリガーして実行できます。

ワークフローの YAML ファイルで指定したイベントを使用してワークフローをトリガーできます。 この例では、リポジトリへのプッシュによってワークフローの実行がトリガーされます。 変更を行い、リポジトリにコミットをプッシュするたびに (Visual Studio Code でローカルに、または GitHub に直接)、ワークフローが実行されます。

最新の実行を選択して、すべてのステップが正常に実行されたかどうか、または受け取ったエラー メッセージをさらに調べます。

正常に実行されたワークフローのスクリーンショット。

ワークフローによって Azure Machine Learning パイプラインがトリガーされたときは、Azure Machine Learning パイプライン内でエラーが発生する可能性があるため、Azure Machine Learning ワークスペースでもパイプラインの実行を確認する必要があります。 エラー メッセージは、Azure Machine Learning パイプライン実験の実行の出力フォルダーに表示されます。