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:Pokud chcete nainstalovat Azure CLI a rozšíření, přečtěte si téma Instalace, nastavení a použití rozhraní příkazového řádku (v2).
Důležité
Příklady rozhraní příkazového řádku v tomto článku předpokládají, že používáte prostředí Bash (nebo kompatibilní). Například ze systému Linux nebo Subsystém Windows pro Linux.
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.
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.