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: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 Učení.
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.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 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.