Použití GitHub Actions se službou Azure Machine Learning
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. 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 Learning.
- Účet GitHub. Pokud ho nemáte, zdarma se zaregistrujte.
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 Connect.
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ů
Na GitHubu přejděte do svého úložiště.
V navigační nabídce přejděte na Nastavení .
Vyberte Akce tajných kódů zabezpečení > a proměnných>.
Vyberte Nový tajný klíč úložiště.
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
.Vyberte Add secret (Přidat tajný kód).
Krok 3: Aktualizace setup.sh
připojení k pracovnímu prostoru Azure Machine Learning
Budete muset aktualizovat proměnné instalačního souboru rozhraní příkazového řádku tak, aby odpovídaly vašemu pracovnímu prostoru.
Ve forku úložiště přejděte na
azureml-examples/cli/
.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 Learning
Krok 4: Aktualizace pipeline.yml
názvu výpočetního clusteru
K nasazení kanálu Azure Machine Learning 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.
- Ve forku úložiště 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-cluster
clusteru. 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 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 služby Machine Learning (v2). Po instalaci rozhraní příkazového řádku spustí akce spuštění úlohy soubor Služby Azure Machine Learning
pipeline.yml
pro trénování modelu s daty taxislužby NYC.
Povolení pracovního postupu
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
Vyberte Zobrazit spuštění.
Povolte pracovní postupy tak , že vyberu, že rozumím svým pracovním postupům, pokračujte a povolte je.
Vyberte pracovní postup cli-jobs-pipelines-nyc-taxi-pipeline a zvolte povolit 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é zaškrtnutí.
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í.
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.