GitHub Actions
GitHub でワークフローを自動化する場合は、 GitHub Actions を使用します。
GitHub は、主にコード プロジェクトをホストするために使用されます。 機械学習のコードを GitHub リポジトリでホストすると、コードのビルド、テスト、デプロイを自動的に行う GitHub Actions を作成できます。
注意
Azure Machine Learning パイプラインで GitHub Actions を使用するには、GitHub リポジトリがセキュリティで保護された接続を介して Azure Machine Learning ワークスペースにアクセスできるようにする必要があります。
ここでは、GitHub Actions を使用して Azure Machine Learning パイプラインを実行する方法について学習します。
GitHub アクションを作成する
- ワークフローをトリガーする イベント を定義します。
- ジョブで構成される ワークフローを実行します。
- 1 つの ジョブ に 1 つ以上のステップが含まれています。
- 手順として、 Azure Machine Learning パイプラインを実行します。
- 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
ワークフローの例は次のようになります。
- リポジトリをチェックアウトして、ランナーで使用できるようにします。
- CLI 用の Azure Machine Learning 拡張機能をインストールします。
- あらかじめ定義されている
AZURE_CREDENTIALSを使用して Azure にサインインします。 - すべての運用コードが含まれる
srcフォルダーに移動します。 - Azure Machine Learning パイプラインを実行します。
GitHub Actions でワークフローを実行する
ワークフローを定義する YAML ファイルを作成したとします。 YAML ファイルはリポジトリ内の .github/workflows/ ディレクトリに格納します。
ワークフローを表示するには、リポジトリの 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 パイプライン実験の実行の出力フォルダーに表示されます。