Sdílet prostřednictvím


Správa prostředí Azure Machine Learning 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 Learning 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 Learning pomocí sady SDK a rozhraní příkazového řádku (v2).

Požadavky

Návod

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

Naklonovat příklady z repozitáře

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

Parametr --depth 1 naklonuje do úložiště pouze nejnovější potvrzení, což zkracuje dobu dokončení operace.

Připojení k pracovnímu prostoru

Návod

Pomocí následujících karet 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 zadat tyto parametry pro každý příkaz, 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 <Azure Machine Learning workspace name><resource group>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 Learning 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í jsou poskytována službou Azure Machine Learning a jsou ve výchozím nastavení dostupná. Azure Machine Learning tyto prostředí pravidelně aktualizuje nejnovějšími verzemi rozhraní 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 vaše vlastní přizpůsobené prostředí úpravou souborů Dockerfile, které tvoří základ těchto kurátorovaných prostředí.

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.

Návod

Když pracujete s kurátorovanými prostředími v rozhraní příkazového řádku nebo sadě SDK, název prostředí začíná AzureML- názvem kurátorovaného prostředí. Pokud používáte Azure Machine Learning Studio, nemají tuto předponu. Důvodem tohoto rozdílu je, že uživatelské rozhraní studia zobrazuje kurátorovaná a vlastní prostředí na samostatných kartách, takže předpona není nutná. CLI a SDK nemají toto rozdělení, takže se používá předpona k rozlišení mezi kurátorskými a vlastními prostředími.

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

Chcete-li definovat prostředí z Docker image, zadejte identifikátor URI image uložené 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. Obrázek z oficiálního úložiště PyTorch na Docker Hubu je určen prostřednictvím vlastnosti image 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

Návod

Azure Machine Learning udržuje sadu základních imagí založených na CPU a GPU Ubuntu Linuxu se společnými závislostmi systému. Například obrazy GPU 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ý slouží 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 vynecháte soubor YAML build.dockerfile_path, vyhledá Azure Machine Learning v kořenovém adresáři kontextu sestavení soubor s názvem Dockerfile Dockerfile.

V tomto příkladu kontext sestavení obsahuje soubor Dockerfile Dockerfile a requirements.txt soubor, který je odkazován v Dockerfile pro instalaci Python balíčků.

$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 Learning 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 Learning sestaví prostředí Conda nad poskytnutou image 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 Learning ve výchozím nastavení sestaví prostředí Conda se závislostmi, které jste zadali, a spustí úlohu v tomto prostředí místo toho, aby používala knihovny Pythonu nainstalované na základní imagi.

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 Learning určena conda_file prostřednictvím vlastnosti. Můžete alternativně definovat specifikaci conda pomocí vlastnosti conda_file místo toho, abyste ji definovali 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 Learning sestaví konečnou image Dockeru z této specifikace prostředí při použití prostředí 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 prostředků prostředí Azure Machine Learning.

Seznam

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í jej ve výchozím nastavení skryje ze seznamových dotazů (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, všechny verze prostředí pod tímto názvem se archivují. 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

Důležité

Archivace verze prostředí neodstraní image uložené v mezipaměti v registru kontejneru. Pokud chcete odstranit image uloženou v mezipaměti přidruženou k určitému prostředí, můžete použít příkaz az acr repository delete v přidruženém úložišti prostředí.

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. Buď můžete odkazovat na existující zaregistrované prostředí Azure Machine Learning prostřednictvím environment: azureml:<environment-name>:<environment-version> nebo environment: azureml:<environment-name>@latest (pokud chcete odkazovat na nejnovější verzi prostředí), nebo definovat specifikaci prostředí přímo ve vloženém textu. Pokud definujete vložené prostředí, nezadávejte pole name a version, protože tato prostředí se považují za neregistrovaná a nejsou sledována 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í. Služba ukládá provozy do mezipaměti. Pokud tedy definice prostředí zůstane beze změny, celý čas potřebný pro nastavení pocítíte 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 v konfiguraci YAML nasazení zadáte pole environment.

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