Správa prostředí Azure Machine Učení pomocí rozhraní příkazového řádku a sady SDK (v2)

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

Prostředí služby Azure Machine Learning definují spouštěcí prostředí pro úlohy nebo nasazení a zapouzdřují závislosti kódu. Azure Machine Učení používá specifikaci prostředí k vytvoření kontejneru Dockeru, ve kterém se váš trénovací nebo bodovací kód spouští v zadaném cílovém výpočetním objektu. Prostředí můžete definovat pomocí specifikace Conda, image Dockeru nebo kontextu sestavení Dockeru.

V tomto článku se dozvíte, jak vytvářet a spravovat prostředí Azure Machine Učení pomocí sady SDK a rozhraní příkazového řádku (v2).

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.

  • Azure CLI a ml rozšíření nebo Azure Machine Učení Python SDK v2:

Tip

Pro plnohodnotné vývojové prostředí použijte Visual Studio Code a rozšíření Azure Machine Učení ke správě prostředků azure Machine Učení atrénování modelů strojového učení.

Úložiště klonování příkladů

Pokud chcete spustit trénovací příklady, nejprve naklonujte úložiště příkladů. V příkladech rozhraní příkazového řádku přejděte do cli adresáře. V příkladech sady SDK přejděte do sdk/python/assets/environment adresáře:

git clone --depth 1 https://github.com/Azure/azureml-examples

Všimněte si, že --depth 1 klonuje pouze nejnovější potvrzení do úložiště, což zkracuje čas dokončení operace.

Připojení do pracovního prostoru

Tip

Pomocí karet níže vyberte metodu, kterou chcete použít pro práci s prostředími. Když vyberete kartu, automaticky se přepne všechny karty v tomto článku na stejnou kartu. Kdykoli můžete vybrat jinou kartu.

Při použití Azure CLI potřebujete parametry identifikátoru – předplatné, skupina prostředků a název pracovního prostoru. I když můžete pro každý příkaz zadat tyto parametry, můžete také nastavit výchozí hodnoty, které se použijí pro všechny příkazy. K nastavení výchozích hodnot použijte následující příkazy. Nahraďte <subscription ID>hodnotu a <resource group><Azure Machine Learning workspace name>nahraďte hodnotami pro vaši konfiguraci:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

Kurátorovaná prostředí

Ve službě Azure Machine Učení existují dva typy prostředí: kurátorovaná a vlastní prostředí. Kurátorovaná prostředí jsou předdefinovaná prostředí obsahující oblíbená rozhraní ML a nástroje. Vlastní prostředí jsou definovaná uživatelem a lze je vytvořit prostřednictvím az ml environment create.

Kurátorovaná prostředí poskytuje služba Azure Machine Učení a jsou ve výchozím nastavení dostupná. Azure Machine Učení tato prostředí pravidelně aktualizuje nejnovějšími verzemi verzí architektury a udržuje je pro opravy chyb a opravy zabezpečení. Jsou podporovány imagemi Dockeru uloženými v mezipaměti, což snižuje náklady na přípravu úloh a dobu nasazení modelu.

Tato kurátorovaná prostředí můžete použít k trénování nebo nasazení tak, že odkazujete na konkrétní verzi nebo nejnovější verzi prostředí. Použijte následující syntaxi: azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> nebo azureml://registries/azureml/environment/<curated-environment-name>/labels/latest. Můžete je také použít jako referenci pro vlastní prostředí úpravou souborů Dockerfile, které tyto kurátorovaná prostředí zpět.

Sadu dostupných kurátorovaných prostředí můžete zobrazit v uživatelském rozhraní studio Azure Machine Learning nebo pomocí rozhraní příkazového řádku (v2) prostřednictvím az ml environment list.

Vytvoření vlastního prostředí

Prostředí můžete definovat z image Dockeru, kontextu sestavení Dockeru a specifikace conda s imagí Dockeru.

Vytvoření prostředí z image Dockeru

Pokud chcete definovat prostředí z image Dockeru, zadejte identifikátor URI image image hostované v registru, jako je Docker Hub nebo Azure Container Registry.

Následující příklad je soubor specifikace YAML pro prostředí definované z image Dockeru. Image z oficiálního úložiště PyTorch v Docker Hubu je určena prostřednictvím image vlastnosti v souboru YAML.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-example
image: pytorch/pytorch:latest
description: Environment created from a Docker image.

Vytvoření prostředí:

az ml environment create --file assets/environment/docker-image.yml

Tip

Azure Machine Učení udržuje sadu základních imagí založených na CPU a GPU Ubuntu Linuxu se společnými závislostmi systému. Image GPU například obsahují Miniconda, OpenMPI, CUDA, cuDNN a NCCL. Tyto image můžete použít pro vaše prostředí nebo jako referenci použít odpovídající soubory Dockerfile při vytváření vlastních imagí.

Sadu základních imagí a jejich odpovídajících souborů Dockerfile najdete v úložišti AzureML-Containers.

Vytvoření prostředí z kontextu sestavení Dockeru

Místo definování prostředí z předem připravené image můžete také definovat prostředí z kontextu sestavení Dockeru. Uděláte to tak, že zadáte adresář, který bude sloužit jako kontext sestavení. Tento adresář by měl obsahovat soubor Dockerfile (ne větší než 1 MB) a všechny další soubory potřebné k sestavení image.

Následující příklad je soubor specifikace YAML pro prostředí definované z kontextu sestavení. V poli je zadána místní cesta ke složce kontextu sestavení a v poli je zadaná build.pathbuild.dockerfile_path relativní cesta k souboru Dockerfile v rámci této složky kontextu sestavení. Pokud build.dockerfile_path soubor YAML vynecháte, Azure Machine Učení vyhledá soubor Dockerfile s názvem Dockerfile v kořenovém adresáři kontextu sestavení.

V tomto příkladu obsahuje kontext sestavení název Dockerfile Souboru Dockerfile a requirements.txt soubor odkazovaný v souboru Dockerfile pro instalaci balíčků Pythonu.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-context-example
build:
  path: docker-contexts/python-and-pip

Vytvoření prostředí:

az ml environment create --file assets/environment/docker-context.yml

Azure Machine Učení začne při vytváření prostředí vytvářet image z kontextu sestavení. Můžete monitorovat stav sestavení a zobrazit protokoly sestavení v uživatelském rozhraní studia.

Vytvoření prostředí ze specifikace conda

Prostředí můžete definovat pomocí standardního konfiguračního souboru CONDA YAML, který obsahuje závislosti pro prostředí conda. Informace o tomto standardním formátu najdete v tématu Ruční vytvoření prostředí.

Musíte také zadat základní image Dockeru pro toto prostředí. Azure Machine Učení sestaví prostředí Conda nad poskytnutou imagí Dockeru. Pokud do image Dockeru nainstalujete některé závislosti Pythonu, tyto balíčky v spouštěcím prostředí nebudou existovat, což způsobí selhání modulu runtime. Azure Machine Učení ve výchozím nastavení sestaví prostředí Conda se závislostmi, které jste zadali, a místo použití knihoven Pythonu, které jste nainstalovali na základní image, spustí úlohu v tomto prostředí.

Následující příklad je soubor specifikace YAML pro prostředí definované ze specifikace conda. Zde je relativní cesta k souboru conda ze souboru YAML prostředí Azure Machine Učení je zadána conda_file prostřednictvím vlastnosti. Specifikace conda můžete alternativně definovat pomocí conda_file vlastnosti, nikoli ji definovat v samostatném souboru.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-plus-conda-example
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
conda_file: conda-yamls/pydata.yml
description: Environment created from a Docker image plus Conda environment.

Vytvoření prostředí:

az ml environment create --file assets/environment/docker-image-plus-conda.yaml

Azure Machine Učení sestaví konečnou image Dockeru z této specifikace prostředí, když se prostředí použije v úloze nebo nasazení. Sestavení prostředí můžete také aktivovat ručně v uživatelském rozhraní studia.

Správa prostředí

Sada SDK a rozhraní příkazového řádku (v2) také umožňují spravovat životní cyklus vašich prostředků prostředí azure machine Učení.

List

Vypište všechna prostředí v pracovním prostoru:

az ml environment list

Uveďte všechny verze prostředí pod daným názvem:

az ml environment list --name docker-image-example

Zobrazit

Získejte podrobnosti o konkrétním prostředí:

az ml environment show --name docker-image-example --version 1

Aktualizovat

Aktualizujte proměnlivé vlastnosti konkrétního prostředí:

az ml environment update --name docker-image-example --version 1 --set description="This is an updated description."

Důležité

Pouze pro prostředí description a tags je možné je aktualizovat. Všechny ostatní vlastnosti jsou neměnné; pokud potřebujete některou z těchto vlastností změnit, měli byste vytvořit novou verzi prostředí.

Archiv

Archivace prostředí ho ve výchozím nastavení skryje v dotazech seznamu (az ml environment list). V pracovních postupech můžete i nadále odkazovat na archivované prostředí a používat ho. Můžete archivovat buď všechny verze prostředí, nebo jenom konkrétní verzi.

Pokud nezadáte verzi, budou všechny verze prostředí pod tímto názvem archivovány. Pokud vytvoříte novou verzi prostředí v kontejneru archivovaného prostředí, tato nová verze se automaticky nastaví i jako archivovaná.

Archivujte všechny verze prostředí:

az ml environment archive --name docker-image-example

Archivace konkrétní verze prostředí:

az ml environment archive --name docker-image-example --version 1

Použití prostředí pro trénování

Pokud chcete pro trénovací úlohu použít vlastní prostředí , zadejte environment pole konfigurace YAML úlohy. Můžete odkazovat na existující zaregistrované prostředí Azure Machine Učení prostřednictvím environment: azureml:<environment-name>:<environment-version> nebo environment: azureml:<environment-name>@latest (odkazovat na nejnovější verzi prostředí) nebo definovat specifikaci prostředí vloženou. Pokud definujete vložené prostředí, nezadávejte name pole a version pole, protože tato prostředí se považují za neregistrovaná prostředí a nesledují se v registru prostředků vašeho prostředí.

Když odešlete trénovací úlohu, může vytvoření nového prostředí trvat několik minut. Doba trvání závisí na velikosti požadovaných závislostí. Prostředí jsou službou uložená v mezipaměti. Pokud tedy definice prostředí zůstane beze změny, získáte úplnou dobu nastavení pouze jednou.


Další informace o tom, jak používat prostředí v úlohách, najdete v tématu Trénování modelů.

Použití prostředí pro nasazení modelů

Pro nasazení modelu můžete také použít prostředí pro online i dávkové vyhodnocování. Uděláte to tak, že environment zadáte pole v konfiguraci YAML nasazení.

Další informace o tom, jak používat prostředí v nasazeních, najdete v tématu Nasazení a určení skóre modelu strojového učení pomocí online koncového bodu.

Další kroky