Použití GitHub Actions se službou Azure Machine Učení

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)

Začněte s využitím GitHub Actions k natrénování modelu ve službě Azure Machine Learning.

Tento článek vás naučí, jak vytvořit pracovní postup GitHub Actions, který sestaví a nasadí model strojového učení do služby Azure Machine Učení. Natrénujete model lineární regrese scikit-learn na datové sadě Taxi NYC.

GitHub Actions v cestě ve vašem úložišti používá soubor /.github/workflows/ YAML (.yml) pracovního postupu. Tato definice obsahuje různé kroky a parametry, které tvoří pracovní postup.

Požadavky

Než budete postupovat podle kroků v tomto článku, ujistěte se, že máte následující požadavky:

  • Pracovní prostor služby Azure Machine Learning. Pokud ho nemáte, vytvořte ho pomocí kroků v rychlém startu : Vytvoření článku o prostředcích pracovního prostoru.

  • K instalaci sady Python SDK v2 použijte následující příkaz:

    pip install azure-ai-ml azure-identity
    

    Pokud chcete aktualizovat existující instalaci sady SDK na nejnovější verzi, použijte následující příkaz:

    pip install --upgrade azure-ai-ml azure-identity
    

    Další informace najdete v tématu Instalace sady Python SDK v2 pro azure machine Učení.

Krok 1: Získání kódu

Fork následující úložiště na GitHubu:

https://github.com/azure/azureml-examples

Naklonujte své forkované úložiště místně.

git clone https://github.com/YOUR-USERNAME/azureml-examples

Krok 2: Ověření pomocí Azure

Nejprve budete muset definovat, jak se ověřovat v Azure. Můžete použít instanční objekt nebo openID Připojení.

Generování přihlašovacích údajů pro nasazení

Pomocí příkazu az ad sp create-for-rbac v Azure CLI vytvořte instanční objekt. Spusťte tento příkaz pomocí Azure Cloud Shellu na webu Azure Portal nebo výběrem tlačítka Vyzkoušet .

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

--json-auth Parametr je k dispozici ve verzích >Azure CLI = 2.51.0. Verze před tímto použitím --sdk-auth s upozorněním na vyřazení.

V předchozím příkladu nahraďte zástupné symboly ID vašeho předplatného, názvem skupiny prostředků a názvem aplikace. Výstupem je objekt JSON s přihlašovacími údaji pro přiřazení role, které poskytují přístup k vaší aplikaci App Service podobně jako v následujícím příkladu. Zkopírujte tento objekt JSON pro pozdější použití.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

Vytváření tajných kódů

  1. Na GitHubu přejděte do svého úložiště.

  2. V navigační nabídce přejděte na Nastavení.

  3. Vyberte Akce tajných kódů zabezpečení > a proměnných>.

    Snímek obrazovky s přidáním tajného kódu

  4. Vyberte Nový tajný klíč úložiště.

  5. Celý výstup JSON z příkazu Azure CLI vložte do pole hodnoty tajného kódu. Dejte tajnému názvu AZURE_CREDENTIALS.

  6. Vyberte Add secret (Přidat tajný kód).

Krok 3: Aktualizace setup.sh připojení k pracovnímu prostoru Azure Machine Učení

Budete muset aktualizovat proměnné instalačního souboru rozhraní příkazového řádku tak, aby odpovídaly vašemu pracovnímu prostoru.

  1. Ve forku úložiště přejděte na azureml-examples/cli/.

  2. Upravte a aktualizujte setup.sh tyto proměnné v souboru.

    Proměnná Popis
    GROUP Název skupiny prostředků
    UMÍSTĚNÍ Umístění pracovního prostoru (příklad: eastus2)
    PRACOVNÍ PROSTOR Název pracovního prostoru Azure Machine Učení

Krok 4: Aktualizace pipeline.yml názvu výpočetního clusteru

K nasazení kanálu azure machine Učení použijete pipeline.yml soubor. Jedná se o kanál strojového učení, nikoli kanál DevOps. Tuto aktualizaci musíte provést jenom v případě, že používáte jiný název než cpu-cluster název clusteru počítače.

  1. Ve forku úložiště přejděte na azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml.
  2. Pokaždé, když uvidíte compute: azureml:cpu-cluster, aktualizujte hodnotu názvem výpočetního cpu-cluster clusteru. Pokud je váš cluster například pojmenovaný my-cluster, bude nová hodnota azureml:my-cluster. Existuje pět aktualizací.

Krok 5: Spuštění pracovního postupu GitHub Actions

Váš pracovní postup se ověřuje pomocí Azure, nastaví rozhraní příkazového řádku azure Učení a pomocí rozhraní příkazového řádku vytrénuje model ve službě Azure Machine Učení.

Soubor pracovního postupu se skládá z oddílu triggeru a úloh:

  • Trigger spustí pracovní postup v on části. Pracovní postup se spouští ve výchozím nastavení podle plánu cron a při vytváření žádosti o přijetí změn z odpovídajících větví a cest. Přečtěte si další informace o událostech, které aktivují pracovní postupy.
  • V části úlohy pracovního postupu rezervujete kód a přihlásíte se k Azure pomocí tajného kódu instančního objektu.
  • Část Úlohy obsahuje také akci nastavení, která nainstaluje a nastaví rozhraní příkazového řádku Učení (v2) počítače. Po instalaci rozhraní příkazového řádku spustí akce úlohy spuštění váš soubor azure machine Učení pro pipeline.yml trénování modelu s daty taxislužby NYC.

Povolení pracovního postupu

  1. V rozvětveném úložišti otevřete .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml a ověřte, že váš pracovní postup vypadá takto.

    name: cli-jobs-pipelines-nyc-taxi-pipeline
    on:
      workflow_dispatch:
      schedule:
        - cron: "0 0/4 * * *"
      pull_request:
        branches:
          - main
          - sdk-preview
        paths:
          - cli/jobs/pipelines/nyc-taxi/**
          - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml
          - cli/run-pipeline-jobs.sh
          - cli/setup.sh
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
        - name: check out repo
          uses: actions/checkout@v2
        - name: azure login
          uses: azure/login@v1
          with:
            creds: ${{secrets.AZURE_CREDENTIALS}}
        - name: setup
          run: bash setup.sh
          working-directory: cli
          continue-on-error: true
        - name: run job
          run: bash -x ../../../run-job.sh pipeline.yml
          working-directory: cli/jobs/pipelines/nyc-taxi
    
  2. Vyberte Zobrazit spuštění.

  3. Povolte pracovní postupy tak , že vyberu, že rozumím svým pracovním postupům, pokračujte a povolte je.

  4. Vyberte pracovní postup cli-jobs-pipelines-nyc-taxi-pipeline a zvolte povolit pracovní postup. Snímek obrazovky s povolením pracovního postupu GitHub Actions

  5. Vyberte Spustit pracovní postup a zvolte možnost Spustit pracovní postup . Snímek obrazovky se spuštěním pracovního postupu GitHub Actions

Krok 6: Ověření spuštění pracovního postupu

  1. Otevřete dokončené spuštění pracovního postupu a ověřte, že se úloha sestavení úspěšně spustila. Vedle úlohy se zobrazí zelené zaškrtnutí.

  2. Otevřete studio Azure Machine Learning a přejděte na příklad nyc-taxi-pipeline-pipeline. Ověřte, že každá část úlohy (příprava, transformace, trénování, předpověď, skóre) byla dokončena a že se zobrazí zelené zaškrtnutí.

    Snímek obrazovky úspěšného spuštění nástroje Machine Učení Studio

Vyčištění prostředků

Pokud už skupinu prostředků a úložiště nepotřebujete, vyčistěte prostředky, které jste nasadili, odstraněním skupiny prostředků a úložiště GitHub.

Další kroky