Určení modelu, který se má nasadit pro použití v online koncovém bodu
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)
V tomto článku se dozvíte o různých způsobech určení modelů, které chcete použít v online nasazeních. Při nasazování modelu do online koncového bodu služby Azure Machine Learning je potřeba model zadat jedním ze dvou způsobů:
- Zadejte cestu k umístění modelu v místním počítači.
- Zadejte odkaz na model s verzí, který je již zaregistrovaný ve vašem pracovním prostoru.
Způsob určení modelu pro nasazení online koncového bodu závisí na tom, kde je model uložený.
Ve službě Azure Machine Learning po vytvoření nasazení proměnná AZUREML_MODEL_DIR
prostředí odkazuje na umístění úložiště v Rámci Azure, kde je váš model uložený.
Nasazení pro modely uložené místně
Tato část používá tento příklad struktury místních složek k zobrazení toho, jak můžete určit modely pro použití v online nasazení:
Nasazení pro jeden místní model
Pokud chcete použít jeden model, který máte na místním počítači v nasazení, zadejte path
hodnotu do konfiguračního model
souboru YAML nasazení. Následující kód je příkladem YAML nasazení s místní cestou /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl
:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
Po vytvoření nasazení do online koncového bodu ve službě Azure Machine Learning odkazuje proměnná AZUREML_MODEL_DIR
prostředí na umístění úložiště v Rámci Azure, kde je váš model uložený. Například /var/azureml-app/azureml-models/aaa-aaa-aaa-aaa-aaa/1
nyní obsahuje model sample_m1.pkl
.
V bodovacím skriptu (score.py
) můžete načíst model (v tomto příkladusample_m1.pkl
init()
) ve funkci skriptu:
def init():
model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "sample_m1.pkl")
model = joblib.load(model_path)
Nasazení pro několik místních modelů
Přestože Azure CLI, Python SDK a další klientské nástroje umožňují v definici nasazení zadat pouze jeden model na jedno nasazení, můžete v nasazení stále používat více modelů registrací složky modelu, která obsahuje všechny modely jako soubory nebo podadresáře. Další informace o registraci prostředků, jako jsou modely, abyste mohli během nasazování zadat jejich registrované názvy a verze, najdete v tématu Registrace modelu a prostředí.
V ukázkové struktuře místních složek si všimnete, že ve models
složce je několik modelů. Pokud chcete použít tyto modely, zadejte ve svém nasazení YAML cestu ke models
složce následujícím způsobem:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: /Downloads/multi-models-sample/models/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
Po vytvoření nasazení proměnná AZUREML_MODEL_DIR
prostředí odkazuje na umístění úložiště v Azure, kde jsou vaše modely uložené. Teď například /var/azureml-app/azureml-models/bbb-bbb-bbb-bbb-bbb/1
obsahuje modely a strukturu souborů.
V tomto příkladu AZUREML_MODEL_DIR
vypadá obsah složky takto:
V bodovacím skriptu (score.py
) můžete načíst modely ve init()
funkci. Následující kód načte sample_m1.pkl
model:
def init():
model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "models","model_1","v1", "sample_m1.pkl ")
model = joblib.load(model_path)
Příklad nasazení několika modelů do jednoho nasazení najdete v tématu Nasazení více modelů do jednoho nasazení (příklad rozhraní příkazového řádku) a nasazení více modelů do jednoho nasazení (příklad sady SDK).
Tip
Pokud máte k registraci více než 1500 souborů, zvažte komprimaci souborů nebo podadresářů jako .tar.gz při registraci modelů. Pokud chcete používat modely, můžete rozbalit soubory nebo podadresáře ve init()
funkci hodnoticího skriptu. Alternativně při registraci modelů nastavte azureml.unpack
vlastnost na True
, aby se automaticky rozbalily soubory nebo podadresáře. V obou případech dojde k rozbalení souborů jednou ve fázi inicializace.
Nasazení pro modely zaregistrované ve vašem pracovním prostoru
Registrované modely v definici nasazení můžete použít tak, že v YAML nasazení odkazujete na jejich názvy. Například následující konfigurace YAML nasazení určuje registrovaný model
název takto azureml:local-multimodel:3
:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model: azureml:local-multimodel:3
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
V tomto příkladu zvažte, že local-multimodel:3
obsahuje následující artefakty modelu, které lze zobrazit na kartě Modely v studio Azure Machine Learning:
Po vytvoření nasazení proměnná AZUREML_MODEL_DIR
prostředí odkazuje na umístění úložiště v Azure, kde jsou vaše modely uložené. Obsahuje například /var/azureml-app/azureml-models/local-multimodel/3
modely a strukturu souborů. AZUREML_MODEL_DIR
odkazuje na složku obsahující kořen artefaktů modelu. Na základě tohoto příkladu AZUREML_MODEL_DIR
vypadá obsah složky takto:
V bodovacím skriptu (score.py
) můžete načíst modely ve init()
funkci. Například načtěte diabetes.sav
model:
def init():
model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR"), "models", "diabetes", "1", "diabetes.sav")
model = joblib.load(model_path)
Nasazení pro modely, které jsou k dispozici v katalogu modelů
Pro každý model v katalogu modelů s výjimkou modelů, které jsou v kolekci Azure OpenAI, můžete použít ID modelu zobrazeného na kartě modelu pro nasazení. ID modelu jsou ve formuláři azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}
. Například ID modelu pro Meta Llama 3-8 B Instruct model je azureml://registries/azureml-meta/models/Meta-Llama-3-8B-Instruct/versions/2
.
Některé karty modelu zahrnují ukázkové poznámkové bloky, které ukazují, jak použít ID modelu pro nasazení.
Nasazení pro modely, které jsou k dispozici v registru vaší organizace
Každý model v registru organizace má ID modelu formuláře azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}
. Můžete se také rozhodnout použít prostředí zaregistrovaná ve stejném registru.