GitHub 動作

已完成

若要使用 GitHub 將工作流程自動化,請使用 GitHub Actions

GitHub 主要是用來裝載程式碼專案。 當您在 GitHub 存放庫中裝載機器學習程式碼時,可以建立 GitHub Actions 來自動組建、測試及部署程式碼。

注意

若要搭配 Azure Machine Learning 管線使用 GitHub Actions,必須允許 GitHub 存放庫透過安全連線存取您的 Azure Machine Learning 工作區

您會了解如何使用 GitHub Actions 來執行 Azure Machine Learning 管線。

建立 GitHub Actions

管線階層的圖表。

  1. 定義將觸發工作流程的事件
  2. 執行包含多項工作的工作流程
  3. 一項工作包含一或多個步驟。
  4. 執行 Azure Machine Learning 管線是一項步驟。
  5. Azure Machine Learning 管線是由指令碼或 Azure Machine Learning 元件所組成。

若要建立 GitHub Actions 的工作流程,需定義要在 YAML 檔案中執行的步驟。 需在 YAML 檔案納入以下項目:

  • 事件:想要觸發工作流程的方式。
  • 工作:想要在執行器上執行的一系列步驟。 針對機器學習工作負載,建議使用 Ubuntu Linux 虛擬機器。
  • 步驟:想要執行的指令碼或動作。 例如,用來起始 Azure Machine Learning 管線 (az ml job create) 的 CLI 命令。

若要在將變更推送至存放庫時執行 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/ 目錄中的任何工作流程。

提示

如果您將 workflow_dispatch: 新增至工作流程 YAML 檔案,可以手動觸發工作流程,以便從 [動作] 索引標籤執行。

您可以使用工作流程 YAML 檔案中指定的事件來觸發工作流程。 在此範例中,推送至存放庫將會觸發工作流程執行。 每當您進行變更並將認可推送至存放庫 (本機位置在 Visual Studio Code 中,或是直接在 GitHub 中) 時,工作流程就會執行。

選取最近一次執行,並進一步檢查是否已順利執行所有步驟,或是收到哪些錯誤訊息。

成功執行工作流程的螢幕擷取畫面。

當工作流程觸發 Azure Machine Learning 管線時,也需在 Azure Machine Learning 工作區中檢閱管線的執行狀況,因為 Azure Machine Learning 管線中仍可能發生錯誤。 在 Azure Machine Learning 管線實驗執行的 outputs 資料夾中,可檢視任何錯誤訊息。