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

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 sada Azure Machine Learning Python SDK v2:

Tip

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í.

Ú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í k pracovnímu prostoru

Tip

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 <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 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 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.

Tip

Při práci s kurátorovanými prostředími v rozhraní příkazového řádku nebo sadě SDK začíná AzureML- název prostředí následovaný názvem kurátorovaného prostředí. Při použití studio Azure Machine Learning 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á. Rozhraní příkazového řádku a sady SDK toto oddělení nemají, takže se předpona používá k rozlišení mezi kurátorovaný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

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 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. 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ý 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.path build.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 Learning 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 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 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 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. 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 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.

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, 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, 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í 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