建立和使用自定義環境
當您需要在 Azure Machine Learning 中建立自己的環境,以列出執行腳本所需的所有套件、連結庫和相依性時,您可以建立 自定義環境。
您可以從 Docker 映像、Docker 組建內容,以及包含 Docker 映像的 conda 規格來定義環境。
從 Docker 映像建立自定義環境
最簡單的方法可能是從 Docker 映像建立環境。 Docker 映射可以裝載在公用登錄中,例如 Docker Hub 或私下儲存在 Azure Container Registry 中。
許多開放原始碼架構會封裝在 Docker Hub 上的公用映射中。 例如,您可以找到包含所有必要的套件的公用 Docker 映射,以使用 PyTorch定型深度學習模型。
若要從 Docker 映射建立環境,您可以使用 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)
您也可以使用 Azure Machine Learning 基底映射來建立環境(這類似於策劃環境所使用的映射):
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)
使用 conda 規格檔案建立自定義環境
雖然 Docker 映像在處理特定架構時包含所有必要的套件,但您可能需要包含其他套件來執行程序代碼。
例如,您可能想要使用 PyTorch 來定型模型,並使用 MLflow 追蹤模型。
當您需要在環境中包含其他套件或連結庫時,您可以在建立環境時,將 conda 規格檔案新增至 Docker 映像。
conda 規格檔案是 YAML 檔案,其中列出需要使用 conda 或 pip安裝的套件。 這類 YAML 檔案可能如下所示:
name: basic-env-cpu
channels:
- conda-forge
dependencies:
- python=3.7
- scikit-learn
- pandas
- numpy
- matplotlib
提示
請檢閱 conda 文件,以了解如何手動建立環境,以取得 conda 檔案的標準格式資訊。
若要從基底 Docker 映射和 conda 規格檔案建立環境,您可以使用下列程式代碼:
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)
注意
由於所有策展環境前面都會加上 AzureML-,因此您無法建立具有相同前置詞的環境。
使用環境
最常見的是,當您想要將指令碼作為 (命令) 作業執行時,您會使用環境。
若要指定您想要用來執行文稿的環境,請使用 <curated-environment-name>:<version> 或 <curated-environment-name>@latest 語法來參考環境。
例如,下列程式代碼示範如何使用 Python SDK 設定命令作業,其使用包含 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)
當您提交作業後,即會建置環境。 第一次使用環境時,建置環境可能需要 10-15 分鐘的時間。 您可以在作業的記錄中檢閱環境組建的記錄。
當 Azure Machine Learning 建置新的環境時,它會新增至工作區中的自定義環境清單。 環境的映像裝載在與工作區相關聯的 Azure Container Registry 中。 每當您將相同的環境用於另一個作業(和另一個腳本),環境就已準備好進行,而且不需要再次建置。