A GitHub Actions használata az Azure Machine Learning használatával

ÉRVÉNYES: Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

Ismerkedés a GitHub Actions szolgáltatással az Azure Machine Learning-modellek betanítására vonatkozóan

Ez a cikk bemutatja, hogyan hozhat létre egy GitHub Actions-munkafolyamatot, amely gépi tanulási modellt hoz létre és helyez üzembe az Azure Machine Learningben. Betanít egy scikit-learn lineáris regressziós modellt az NYC Taxi adatkészleten.

A GitHub Actions egy YAML munkafolyamat-fájlt (.yml) használ a /.github/workflows/ adattár elérési útvonalán. Ez a definíció a munkafolyamatot alkotó különböző lépéseket és paramétereket tartalmazza.

Előfeltételek

  • Egy Azure Machine Learning-munkaterület. A munkaterület létrehozásának lépéseit a munkaterület létrehozása című témakörben találja.

  • Az Azure Machine Learning SDK Python v2 számára. Az SDK telepítéséhez használja a következő parancsot:

    pip install azure-ai-ml azure-identity
    

    Ha frissíteni szeretné az SDK meglévő telepítését a legújabb verzióra, használja a következő parancsot:

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

    További információ: Azure Machine Learning Package ügyfélkódtár Pythonhoz.

1. lépés: A kód lekérése

Forkolja a következő tárházat a GitHubon:

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

Klónozza helyileg az elágazott adattárat.

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

2. lépés: Hitelesítés az Azure-ral

Először határozza meg, hogyan hitelesíthető az Azure-ral. Az ajánlott, biztonságosabb megoldás a bejelentkezés az OpenID Connect használatával Egy Microsoft Entra-alkalmazással vagy egy felhasználó által hozzárendelt felügyelt identitással. Szükség esetén szolgáltatásnév és titkos kód használatával is használhatja a bejelentkezést. Ez a megközelítés kevésbé biztonságos, és nem ajánlott.

Üzembehelyezési hitelesítő adatok létrehozása

Az Azure Bejelentkezési művelet OIDC-vel történő használatához konfigurálnia kell egy összevont identitás-hitelesítő adatot egy Microsoft Entra alkalmazáson vagy egy felhasználó által hozzárendelt felügyelt identitáson.

1. lehetőség: Microsoft Entra-alkalmazás

2. lehetőség: Felhasználó által hozzárendelt felügyelt identitás

Titkos kulcsok létrehozása

A bejelentkezési művelethez meg kell adnia az alkalmazás ügyfél-, címtár- (bérlői) azonosítóját és előfizetés-azonosítóját. Ezek az értékek közvetlenül a munkafolyamatban is megadhatók, vagy tárolhatók a GitHub titkokban, és a munkafolyamatban hivatkozhatók. Az értékek GitHub-titkos kulcsként való mentése a biztonságosabb megoldás.

  1. A GitHubon nyissa meg az adattárat.

  2. Válassza ki a Biztonsági > titkos kulcsok és változók > műveletek lehetőséget.

    Képernyőkép egy titkos kód hozzáadásáról

  3. Válassza az Új tárház titkos kódját.

    Megjegyzés

    A nyilvános adattárak munkafolyamat-biztonságának javítása érdekében tárházi titkos kulcsok helyett használjon környezeti titkos kulcsokat . Ha a környezet jóváhagyást igényel, a feladatok nem férhetnek hozzá a környezeti titkos kódokhoz, amíg az egyik szükséges véleményező nem hagyja jóvá.

  4. Titkos kulcsok létrehozása a következőhöz AZURE_CLIENT_ID: , AZURE_TENANT_IDés AZURE_SUBSCRIPTION_ID. Másolja ki ezeket az értékeket a Microsoft Entra-alkalmazásból vagy a felhasználó által hozzárendelt felügyelt identitásból a GitHub-titkos kulcsokhoz:

    GitHub-titkos kód Microsoft Entra-alkalmazás vagy felhasználó által hozzárendelt felügyelt identitás
    AZURE_CLIENT_ID (Az Azure ügyfélazonosító) Ügyfél azonosítója
    AZURE_SUBSCRIPTION_ID Előfizetés azonosítója
    AZURE_TENANT_ID Címtár (bérlő) azonosítója

    Megjegyzés

    Biztonsági okokból azt javasoljuk, hogy a GitHub Titkos kulcsokat használja ahelyett, hogy közvetlenül a munkafolyamatnak ad át értékeket.

3. lépés: Frissítés setup.sh az Azure Machine Learning-munkaterülethez való csatlakozáshoz

Frissítse a parancssori felület beállítási fájlváltozóit, hogy megfeleljenek a munkaterületnek.

  1. Az elágazott adattárban nyissa meg a következőt azureml-examples/cli/: .

  2. Szerkeszd setup.sh és frissítsd ezeket a változókat a fájlban.

    Változó Leírás
    GROUP Erőforráscsoport neve
    LOCATION A munkaterület helye (például: eastus2)
    WORKSPACE Az Azure Machine Learning-munkaterület neve

4. lépés: Frissítsd a pipeline.yml a számítási fürt nevére

pipeline.yml Az Azure Machine Learning-folyamat üzembe helyezéséhez használjon egy fájlt. A folyamat egy gépi tanulási folyamat, nem pedig DevOps-folyamat. Ezt a frissítést csak akkor kell elvégeznie, ha a számítási fürt neve nem cpu-cluster, hanem egy másik név.

  1. Az elágazott adattárban nyissa meg a következőt azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml: .
  2. Minden alkalommal, amikor megjelenik compute: azureml:cpu-cluster, frissítse a cpu-cluster értékét a számítási fürt nevére. Ha például a környezet neve my-cluster, akkor az új érték azureml:my-cluster lesz. Öt frissítés van.

5. lépés: A GitHub Actions-munkafolyamat futtatása

A munkafolyamat hitelesíti az Azure-t, beállítja az Azure Machine Learning CLI-t, és a parancssori felület használatával betanít egy modellt az Azure Machine Learningben.

A munkafolyamat-fájl egy eseményindító szakaszból és feladatokból áll:

Munkafolyamat engedélyezése

  1. Az elágazott adattárban nyissa meg .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml és ellenőrizze, hogy a munkafolyamat ehhez hasonló-e.

    Megjegyzés

    Az adattárban található munkafolyamat-fájl tartalmazhat olyan további lépéseket (például a rendszerindítást és az érvényesítést), amely nem jelenik meg itt. Az alábbi példa az alapvető lépéseket mutatja be.

    name: cli-jobs-pipelines-nyc-taxi-pipeline
    on:
      workflow_dispatch:
      schedule:
        - cron: "0 0/4 * * *"
      pull_request:
        branches:
          - main
        paths:
          - cli/jobs/pipelines/nyc-taxi/**
          - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml
          - cli/run-pipeline-jobs.sh
          - cli/setup.sh
    permissions:
      id-token: write
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
        - name: check out repo
          uses: actions/checkout@v4
        - name: azure login
          uses: azure/login@v2
          with:
              client-id: ${{ secrets.AZURE_CLIENT_ID }}
              tenant-id: ${{ secrets.AZURE_TENANT_ID }}
              subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
        - 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. Válassza a Futtatások megtekintése lehetőséget.

  3. A munkafolyamatok engedélyezéséhez válassza Értem a munkafolyamataimat, engedélyezze őket.

  4. Válassza ki a cli-jobs-pipelines-nyc-taxi-pipeline munkafolyamatot , és válassza a Munkafolyamat engedélyezése lehetőséget.

    Képernyőkép a GitHub Actions-munkafolyamat engedélyezéséről.

  5. Válassza a Munkafolyamat futtatása lehetőséget, majd válassza a Munkafolyamat futtatása most opciót.

    Képernyőkép a GitHub Actions-munkafolyamat futtatásáról.

6. lépés: A munkafolyamat futtatásának ellenőrzése

  1. Nyissa meg a befejezett munkafolyamatot, és ellenőrizze, hogy a buildelési feladat sikeresen futott-e. Egy zöld pipa jelenik meg a feladat mellett.

  2. Nyissa meg az Azure Machine Learning Studiót, és lépjen a nyc-taxi-pipeline-example webhelyre. Ellenőrizze, hogy a feladat egyes részei (előkészítés, átalakítás, tanítás, előrejelzés, kiértékelés) befejeződtek-e és látható-e egy zöld pipa.

    Képernyőkép a Machine Learning Studio sikeres futtatásáról.

Az erőforrások tisztítása

Ha már nincs szüksége az erőforráscsoportra és az adattárra, törölje az üzembe helyezett erőforrásokat az erőforráscsoport és a GitHub-adattár törlésével.

Következő lépések