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í:

Snímek obrazovky znázorňující strukturu místních složek obsahující více modelů

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.pklinit()) 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:

Snímek obrazovky znázorňující strukturu složek umístění úložiště pro více modelů

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:

Snímek obrazovky struktury složek zobrazující artefakty modelu registrovaného modelu

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:

Snímek obrazovky se strukturou složek zobrazující více modelů

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.