Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 Learning. Vytrénujete model lineární regrese scikit-learn v datové sadě taxi NYC.
Ve vašem úložišti GitHub Actions používá soubor pracovního postupu YAML (.yml) nacházející se v cestě /.github/workflows/. Tato definice obsahuje různé kroky a parametry, které tvoří pracovní postup.
Požadavky
Pracovní prostor služby Azure Machine Learning. Postup vytvoření pracovního prostoru najdete v tématu Vytvoření pracovního prostoru.
Sada nástrojů Azure Machine Learning SDK pro Python, verze 2 K instalaci sady SDK použijte následující příkaz:
pip install azure-ai-ml azure-identityPokud 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-identityDalší informace najdete v klientské knihovně balíčku Azure Machine Learning pro Python.
- Účet GitHub. Pokud ho nemáte, vytvořte bezplatný účet.
Krok 1: Získání kódu
Na GitHubu forkněte následující úložiště.
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 definujte, jak se ověřovat pomocí Azure. Doporučenou, bezpečnější možností je přihlásit se pomocí OpenID Connect s aplikací Microsoft Entra nebo spravovanou identitou přiřazenou uživatelem. V případě potřeby se můžete také přihlásit pomocí principála služby a tajemství. Tento přístup je méně zabezpečený a nedoporučuje se.
Generování přihlašovacích údajů pro nasazení
Pokud chcete s OIDC použít akci přihlášení k Azure, musíte nakonfigurovat přihlašovací údaje federované identity v aplikaci Microsoft Entra nebo spravované identitě přiřazené uživatelem.
Možnost 1: Aplikace Microsoft Entra
- Vytvořte aplikaci Microsoft Entra s hlavní službou pomocí Azure portal, Azure CLI nebo Azure PowerShell.
- Zkopírujte hodnoty ID klienta, ID předplatného a ID adresáře (tenanta) a použijte je později v pracovním postupu GitHub Actions.
- Přiřaďte k instančnímu objektu příslušnou roli pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu.
- Nakonfigurujte přihlašovací údaje federované identity v aplikaci Microsoft Entra tak, aby důvěřovaly tokenům vydaným GitHub Actions do vašeho úložiště GitHub.
Možnost 2: Spravovaná identita přiřazená uživatelem
- Vytvořte spravovanou identitu přiřazenou uživatelem.
- Zkopírujte hodnoty ID klienta, ID předplatného a ID adresáře (tenanta) a použijte je později v pracovním postupu GitHub Actions.
- Přiřaďte uživatelem přiřazené spravované identitě odpovídající roli.
- Nakonfigurujte přihlašovací údaje federované identity pro spravovanou identitu přiřazenou uživatelem tak, aby důvěřovaly tokenům vydaným GitHub Actions ve vašem úložišti GitHub.
Vytváření tajných kódů
K akci přihlášení musíte zadat ID klienta, ID adresáře (tenanta) a ID předplatného vaší aplikace. Tyto hodnoty je možné zadat buď přímo v pracovním postupu, nebo je můžete uložit v tajných kódech GitHubu a odkazovat na je ve vašem pracovním postupu. Uložením hodnot jako tajných kódů GitHubu je bezpečnější možnost.
Na GitHubu přejděte do svého úložiště.
Vyberte Zabezpečení > Tajemství a proměnné > Akce.
Vyberte Nové tajemství úložiště.
Poznámka:
Pokud chcete zvýšit zabezpečení pracovního postupu ve veřejných úložištích, používejte tajné kódy prostředí místo tajných kódů úložiště. Pokud prostředí vyžaduje schválení, úloha nemůže získat přístup k tajným kódům prostředí, dokud ho některý z požadovaných kontrolorů neschválí.
Vytváření tajných kódů pro
AZURE_CLIENT_ID,AZURE_TENANT_IDaAZURE_SUBSCRIPTION_ID. Zkopírujte tyto hodnoty z vaší aplikace Microsoft Entra nebo spravované identity přiřazené uživatelem pro tajné kódy GitHubu:Tajný kód GitHubu Identita spravovaná aplikací Microsoft Entra nebo přiřazená uživatelem AZURE_CLIENT_ID ID klienta AZURE_PŘEDPLATNÉ_ID Identifikátor předplatného AZURE_TENANT_ID ID adresáře (klienta) Poznámka:
Z bezpečnostních důvodů doporučujeme místo předávání hodnot přímo pracovnímu postupu používat tajné kódy GitHubu.
Krok 3: Aktualizujte setup.sh tak, aby se připojil k pracovnímu prostoru Azure Machine Learning
Aktualizujte proměnné instalačního souboru rozhraní příkazového řádku tak, aby odpovídaly vašemu pracovnímu prostoru.
Ve vámi vytvořeném forku úložiště přejděte na
azureml-examples/cli/.Upravte a aktualizujte
setup.shtyto proměnné v souboru.Proměnná Popis GROUPNázev skupiny prostředků LOCATIONUmístění pracovního prostoru (příklad: eastus2)WORKSPACENázev pracovního prostoru Azure Machine Learning
Krok 4: Aktualizace pipeline.yml názvu výpočetního clusteru
Použijte soubor pipeline.yml k nasazení pipeline v Azure Machine Learning. Pipeline je pipeline strojového učení, nikoli pipeline DevOps. Tuto aktualizaci musíte provést jenom v případě, že používáte jiný název než cpu-cluster název výpočetního clusteru.
- Ve vašem forknutém úložišti přejděte na
azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml. - Pokaždé, když uvidíte
compute: azureml:cpu-cluster, aktualizujte hodnotu názvem výpočetníhocpu-clusterclusteru. Pokud je váš cluster například pojmenovanýmy-cluster, bude nová hodnotaazureml:my-cluster. Existuje pět aktualizací.
Krok 5: Spuštění pracovního postupu GitHub Actions
Váš pracovní postup se ověřuje pomocí Azure, nastavuje rozhraní příkazového řádku služby Azure Machine Learning a používá rozhraní příkazového řádku k trénování modelu ve službě Azure Machine Learning.
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 vytvoření pull requestu 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 si projděte kód a přihlaste se k Azure pomocí akce přihlášení k Azure pomocí OpenID Connect.
- Sekce úloh také obsahuje akci nastavení, která nainstaluje a nastaví CLI pro strojové učení (v2). Po instalaci CLI spustí příkaz spuštění váš soubor Azure Machine Learning
pipeline.ymlk trénování modelu s daty NYC taxi.
Aktivujte svůj pracovní postup
V rozvětveném úložišti otevřete
.github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.ymla ověřte, že váš pracovní postup vypadá nějak takto.Poznámka:
Soubor pracovního postupu v úložišti může obsahovat další kroky (například bootstrapping a ověřování), které se zde nezobrazují. Následující příklad ukazuje základní kroky.
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-taxiVyberte Zobrazit běhy.
Povolte pracovní postupy výběrem možnosti Rozumím svým pracovním postupům, pokračujte a povolte je.
Vyberte pracovní postup cli-jobs-pipelines-nyc-taxi-pipeline a aktivujte pracovní postup.
Vyberte Spustit pracovní postup a zvolte možnost Spustit pracovní postup .
Krok 6: Ověření spuštění pracovního postupu
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á značka zaškrtnutí.
Otevřete Azure Machine Learning Studio a přejděte na příklad nyc-taxi-pipeline-example. 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í.
Úklid 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.