Vytváření a používání vlastních prostředí
Pokud potřebujete vytvořit vlastní prostředí ve službě Azure Machine Learning, abyste mohli zobrazit seznam všech potřebných balíčků, knihoven a závislostí pro spouštění skriptů, můžete vytvořit vlastní prostředí.
Prostředí můžete definovat z image Dockeru, kontextu sestavení Dockeru a specifikace conda s imagí Dockeru.
Vytvoření vlastního prostředí z image Dockeru
Nejjednodušším přístupem bude pravděpodobně vytvoření prostředí z image Dockeru. Image Dockeru je možné hostovat ve veřejném registru, jako je Docker Hub nebo soukromě uložené ve službě Azure Container Registry.
Mnoho open-source frameworků je zapouzdřeno ve veřejných obrazech, které se nacházejí na Docker Hubu. Můžete například najít veřejnou image Dockeru, která obsahuje všechny potřebné balíčky pro trénování modelu hloubkového učení pomocí PyTorchu.
K vytvoření prostředí z image Dockeru můžete použít sadu Python SDK:
from azure.ai.ml.entities import Environment
env_docker_image = Environment(
image="pytorch/pytorch:latest",
name="public-docker-image-example",
description="Environment created from a public Docker image.",
)
ml_client.environments.create_or_update(env_docker_image)
Základní obrazy Azure Machine Learning můžete použít také k vytvoření prostředí, které jsou podobné obrazům používaným kurátorovanými prostředími:
from azure.ai.ml.entities import Environment
env_docker_image = Environment(
image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04",
name="aml-docker-image-example",
description="Environment created from a Azure ML Docker image.",
)
ml_client.environments.create_or_update(env_docker_image)
Vytvoření vlastního prostředí se souborem specifikace conda
I když image Dockeru obsahují všechny potřebné balíčky při práci s konkrétní architekturou, může být nutné zahrnout další balíčky ke spuštění kódu.
Můžete například chtít vytrénovat model pomocí PyTorchu a sledovat model pomocí MLflow.
Pokud potřebujete do prostředí zahrnout další balíčky nebo knihovny, můžete do image Dockeru přidat soubor specifikace Conda při vytváření prostředí.
Soubor specifikace conda je soubor YAML, který uvádí balíčky, které je potřeba nainstalovat pomocí conda nebo pip. Takový soubor YAML může vypadat takto:
name: basic-env-cpu
channels:
- conda-forge
dependencies:
- python=3.7
- scikit-learn
- pandas
- numpy
- matplotlib
Návod
Projděte si dokumentaci ke conda o tom, jak vytvořit prostředí ručně , kde najdete informace o standardním formátu souborů conda.
Pokud chcete vytvořit prostředí ze základní image Dockeru a ze souboru specifikace conda, můžete použít následující kód:
from azure.ai.ml.entities import Environment
env_docker_conda = Environment(
image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04",
conda_file="./conda-env.yml",
name="docker-image-plus-conda-example",
description="Environment created from a Docker image plus Conda environment.",
)
ml_client.environments.create_or_update(env_docker_conda)
Poznámka:
Vzhledem k tomu, že všechna kurátorovaná prostředí mají předponu AzureML, nemůžete vytvořit prostředí se stejnou předponou.
Použijte prostředí
Prostředí nejčastěji používáte, když chcete spustit skript jako úlohu (příkaz).
Pokud chcete určit, které prostředí chcete použít ke spuštění skriptu, odkazujete na prostředí pomocí <curated-environment-name>:<version> syntaxe nebo <curated-environment-name>@latest syntaxe.
Následující kód například ukazuje, jak nakonfigurovat úlohu příkazu se sadou Python SDK, která používá kurátorované prostředí včetně Scikit-Learn:
from azure.ai.ml import command
# configure job
job = command(
code="./src",
command="python train.py",
environment="docker-image-plus-conda-example:1",
compute="aml-cluster",
display_name="train-custom-env",
experiment_name="train-custom-env"
)
# submit job
returned_job = ml_client.create_or_update(job)
Když úlohu odešlete, prostředí se sestaví. Při prvním použití prostředí může sestavení prostředí trvat 10 až 15 minut. Protokoly sestavení prostředí můžete zkontrolovat v protokolech úlohy.
Když Azure Machine Learning sestaví nové prostředí, přidá se do seznamu vlastních prostředí v pracovním prostoru. Image prostředí je hostovaná v registru kontejneru Azure přidruženém k pracovnímu prostoru. Kdykoli použijete stejné prostředí pro jinou úlohu (a jiný skript), je prostředí připravené a nemusí se znovu sestavovat.