Sdílet prostřednictvím


Nasazení a určení skóre modelu strojového učení pomocí online koncového bodu

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)

V tomto článku se naučíte nasadit model do online koncového bodu pro použití při odvozování v reálném čase. Začnete tím, že na místním počítači nasadíte model, abyste mohli ladit případné chyby. Pak model nasadíte a otestujete v Azure, zobrazíte protokoly nasazení a budete monitorovat smlouvu o úrovni služeb (SLA). Na konci tohoto článku budete mít škálovatelný koncový bod HTTPS/REST, který můžete použít k odvozování v reálném čase.

Online koncové body jsou koncové body, které se používají k odvozování v reálném čase. Existují dva typy online koncových bodů: spravované online koncové body a online koncové body Kubernetes. Další informace o koncových bodech a rozdílech mezi spravovanými online koncovými body a online koncovými body Kubernetes najdete v tématu Co jsou koncové body služby Azure Machine Learning?

Spravované online koncové body pomáhají s nasazováním modelů strojového učení na klíč. Spravované online koncové body pracují s výkonnými procesory a GPU v Azure škálovatelným a plně spravovaným způsobem. Spravované online koncové body se starají o obsluhu, škálování, zabezpečení a monitorování vašich modelů a osvobodí vás od režijních nákladů na nastavení a správu základní infrastruktury.

Hlavní příklad v tomto dokumentu používá spravované online koncové body pro nasazení. Pokud chcete místo toho používat Kubernetes, podívejte se na poznámky v tomto dokumentu, které jsou vložené do diskuze o spravovaném online koncovém bodu.

Požadavky

PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)

Než budete postupovat podle kroků v tomto článku, ujistěte se, že máte následující požadavky:

  • Řízení přístupu na základě role v Azure (Azure RBAC) slouží k udělení přístupu k operacím ve službě Azure Machine Learning. Pokud chcete provést kroky v tomto článku, musí mít váš uživatelský účet přiřazenou roli vlastníka nebo přispěvatele pro pracovní prostor Služby Azure Machine Learning nebo vlastní roli, která povoluje Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Pokud k vytváření a správě online koncových bodů/nasazení používáte studio, budete potřebovat další oprávnění Microsoft.Resources/deployments/write od vlastníka skupiny prostředků. Další informace najdete v tématu Správa přístupu k pracovnímu prostoru Azure Machine Learning.

  • (Volitelné) Pokud chcete nasadit místně, musíte do místního počítače nainstalovat Modul Dockeru . Tuto možnost důrazně doporučujeme , aby se snadněji ladily problémy.

  • Ujistěte se, že máte přidělenou dostatečnou kvótu virtuálního počítače pro nasazení. Azure Machine Learning si vyhrazuje 20 % výpočetních prostředků pro provádění upgradů u některých skladových položek virtuálních počítačů. Pokud například v nasazení požadujete 10 instancí, musíte mít kvótu pro 12 pro každý počet jader skladové položky virtuálního počítače. Chyba při zohlednění dodatečných výpočetních prostředků způsobí chybu. Existují některé skladové položky virtuálních počítačů, které jsou z rezervace navíc vyloučené. Další informace o přidělení kvóty najdete v tématu Přidělení kvóty virtuálních počítačů pro nasazení.

  • Případně můžete použít kvótu ze sdíleného fondu kvót služby Azure Machine Learning po omezenou dobu. Azure Machine Learning poskytuje fond sdílených kvót, ze kterého mají uživatelé v různých oblastech přístup k kvótě, aby mohli provádět testování po omezenou dobu v závislosti na dostupnosti. Když pomocí studia nasadíte modely Llama-2, Phi, Nemotron, Mistral, Dolly a Deci-Deci-DeciLM z katalogu modelů do spravovaného online koncového bodu, Azure Machine Learning vám umožní získat přístup k fondu sdílených kvót na krátkou dobu, abyste mohli provést testování. Další informace o sdíleném fondu kvót najdete v tématu Sdílená kvóta služby Azure Machine Learning.

Příprava systému

Nastavení proměnných prostředí

Pokud jste ještě nenastavili výchozí hodnoty pro Azure CLI, uložte výchozí nastavení. Pokud se chcete vyhnout předávání hodnot pro vaše předplatné, pracovní prostor a skupinu prostředků několikrát, spusťte tento kód:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

Klonování úložiště příkladů

Pokud chcete postupovat podle tohoto článku, nejprve naklonujte úložiště příkladů (azureml-examples). Potom spuštěním následujícího kódu přejděte do adresáře úložiště cli/ :

git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli

Tip

Slouží --depth 1 ke klonování pouze nejnovějšího potvrzení do úložiště, což zkracuje dobu dokončení operace.

Příkazy v tomto kurzu jsou v souborech deploy-local-endpoint.sh a deploy-managed-online-endpoint.sh v cli adresáři a konfigurační soubory YAML jsou v endpoints/online/managed/sample/ podadresáři.

Poznámka:

Konfigurační soubory YAML pro online koncové body Kubernetes jsou v endpoints/online/kubernetes/ podadresáři.

Definování koncového bodu

Pokud chcete definovat online koncový bod, zadejte název koncového bodu a režim ověřování. Další informace o spravovaných online koncových bodech najdete v tématu Online koncové body.

Nastavení názvu koncového bodu

Pokud chcete nastavit název koncového bodu, spusťte následující příkaz. Nahraďte YOUR_ENDPOINT_NAME jedinečným názvem v oblasti Azure. Další informace o pravidlech pojmenování najdete v tématu Omezení koncových bodů.

V případě Linuxu spusťte tento příkaz:

export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

Konfigurace koncového bodu

Následující fragment kódu ukazuje koncové body,online/managed/sample/endpoint.yml soubor:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key

Referenční informace pro formát YAML koncového bodu jsou popsány v následující tabulce. Informace o tom, jak tyto atributy zadat, najdete v referenčních informacích k YAML online koncového bodu. Informace o limitech souvisejících se spravovanými koncovými body najdete v omezeních pro online koncové body.

Key Popis
$schema (Volitelné) Schéma YAML. Pokud chcete zobrazit všechny dostupné možnosti v souboru YAML, můžete schéma zobrazit v předchozím fragmentu kódu v prohlížeči.
name Název koncového bodu
auth_mode Používá se key pro ověřování založené na klíčích.
Používá se aml_token pro ověřování na základě tokenů služby Azure Machine Learning.
Používá se aad_token pro ověřování založené na tokenech Microsoft Entra (Preview).
Další informace o ověřování najdete v tématu Ověřování klientů pro online koncové body.

Definování nasazení

Nasazení je sada prostředků vyžadovaných pro hostování modelu, který provádí skutečné odvozování. V tomto příkladu nasadíte model scikit-learn, který provádí regresi, a použijete bodovací skript score.py ke spuštění modelu na daném vstupním požadavku.

Další informace o klíčových atributech nasazení najdete v tématu Online nasazení.

Konfigurace nasazení

Konfigurace nasazení používá umístění modelu, který chcete nasadit.

Následující fragment kódu ukazuje koncové body,online/managed/sample/blue-deployment.yml soubor se všemi požadovanými vstupy pro konfiguraci nasazení:

blue-deployment.yml

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: 
  conda_file: ../../model-1/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

Soubor blue-deployment.yml určuje následující atributy nasazení:

  • model – určuje vložené vlastnosti modelu pomocí objektu path (kam se mají nahrát soubory). Rozhraní příkazového řádku automaticky nahraje soubory modelu a zaregistruje model s automaticky vygenerovaným názvem.
  • environment – pomocí vložených definic, které zahrnují, odkud se mají nahrát soubory, rozhraní příkazového řádku soubor automaticky nahraje conda.yaml a zaregistruje prostředí. Později k sestavení prostředí použije image nasazení základní image (v tomto příkladu) mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latesta conda_file závislosti se nainstalují nad základní image.
  • code_configuration – během nasazení se místní soubory, jako je zdroj Pythonu pro model bodování, nahrají z vývojového prostředí.

Další informace o schématu YAML najdete v referenčních informacích k YAML online koncového bodu.

Poznámka:

Použití koncových bodů Kubernetes místo spravovaných online koncových bodů jako cílového výpočetního objektu:

  1. Vytvořte a připojte cluster Kubernetes jako cílový výpočetní objekt k pracovnímu prostoru Azure Machine Learning pomocí studio Azure Machine Learning.
  2. Použijte YAML koncového bodu k cílení Na Kubernetes místo YAML spravovaného koncového bodu. Pokud chcete změnit hodnotu na název zaregistrovaného cílového výpočetního compute objektu, musíte upravit YAML. Můžete použít tento soubor deployment.yaml s dalšími vlastnostmi použitelnými pro nasazení Kubernetes.

Všechny příkazy, které se používají v tomto článku pro spravované online koncové body, platí také pro koncové body Kubernetes, s výjimkou následujících funkcí, které se nevztahují na koncové body Kubernetes:

Vysvětlení hodnoticího skriptu

Tip

Formát bodovacího skriptu pro online koncové body je stejný formát, který se používá v předchozí verzi rozhraní příkazového řádku a v sadě Python SDK.

Bodovací skript zadaný v code_configuration.scoring_script sadě musí mít init() funkci a run() funkci.

Tento příklad používá soubor score.py: score.py

import os
import logging
import json
import numpy
import joblib


def init():
    """
    This function is called when the container is initialized/started, typically after create/update of the deployment.
    You can write the logic here to perform init operations like caching the model in memory
    """
    global model
    # AZUREML_MODEL_DIR is an environment variable created during deployment.
    # It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)
    # Please provide your model's folder name if there is one
    model_path = os.path.join(
        os.getenv("AZUREML_MODEL_DIR"), "model/sklearn_regression_model.pkl"
    )
    # deserialize the model file back into a sklearn model
    model = joblib.load(model_path)
    logging.info("Init complete")


def run(raw_data):
    """
    This function is called for every invocation of the endpoint to perform the actual scoring/prediction.
    In the example we extract the data from the json input and call the scikit-learn model's predict()
    method and return the result back
    """
    logging.info("model 1: request received")
    data = json.loads(raw_data)["data"]
    data = numpy.array(data)
    result = model.predict(data)
    logging.info("Request processed")
    return result.tolist()

Funkce init() se volá při inicializaci nebo spuštění kontejneru. Inicializace se obvykle vyskytuje krátce po vytvoření nebo aktualizaci nasazení. Funkce init je místo pro zápis logiky pro operace globální inicializace, jako je ukládání modelu do mezipaměti v paměti (jak je znázorněno v tomto souboru score.py ).

Funkce run() se volá při každém vyvolání koncového bodu a provede skutečné bodování a předpověď. V tomto souboru run() score.py funkce extrahuje data ze vstupu JSON, zavolá metodu modelu predict() scikit-learn a vrátí výsledek předpovědi.

Místní nasazení a ladění pomocí místního koncového bodu

Důrazně doporučujeme , abyste koncový bod testovali místně, abyste před nasazením do Azure ověřili a ladili kód a konfiguraci. Azure CLI a Python SDK podporují místní koncové body a nasazení, zatímco studio Azure Machine Learning a šablona ARM ne.

Pokud chcete nasadit místně, musí být nainstalovaný a spuštěný Modul Dockeru. Modul Dockeru se obvykle spustí při spuštění počítače. Pokud ne, můžete řešit potíže s Docker Enginem.

Tip

Balíček Pythonu pro odvozování serveru HTTP pro Azure Machine Learning můžete použít k místnímu ladění hodnoticího skriptu bez Modulu Dockeru. Ladění pomocí serveru odvozování vám pomůže ladit bodovací skript před nasazením do místních koncových bodů, abyste mohli ladit bez ovlivnění konfigurací kontejneru nasazení.

Další informace o místním ladění online koncových bodů před nasazením do Azure najdete v tématu Online ladění koncových bodů.

Místní nasazení modelu

Nejprve vytvořte koncový bod. Volitelně můžete pro místní koncový bod přeskočit tento krok a přímo vytvořit nasazení (další krok), který pak vytvoří požadovaná metadata. Místní nasazení modelů je užitečné pro účely vývoje a testování.

az ml online-endpoint create --local -n $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml

Teď vytvořte nasazení pojmenované blue pod koncovým bodem.

az ml online-deployment create --local -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml

Příznak --local nasměruje rozhraní příkazového řádku k nasazení koncového bodu v prostředí Dockeru.

Tip

K místnímu testování a ladění koncových bodů použijte Visual Studio Code. Další informace najdete v tématu ladění online koncových bodů místně v editoru Visual Studio Code.

Ověření úspěšného místního nasazení

Zkontrolujte stav nasazení a zjistěte, jestli se model nasadil bez chyby:

az ml online-endpoint show -n $ENDPOINT_NAME --local

Výstup by se měl podobat následujícímu formátu JSON. To provisioning_state je Succeeded.

{
  "auth_mode": "key",
  "location": "local",
  "name": "docs-endpoint",
  "properties": {},
  "provisioning_state": "Succeeded",
  "scoring_uri": "http://localhost:49158/score",
  "tags": {},
  "traffic": {}
}

Následující tabulka obsahuje možné hodnoty pro provisioning_state:

Hodnota Popis
Tvoření Prostředek se vytváří.
Aktualizace Prostředek se aktualizuje.
Mazání Prostředek se odstraňuje.
Uspěl Operace vytvoření/aktualizace byla úspěšná.
Neúspěch Operace vytvoření, aktualizace nebo odstranění se nezdařila.

Vyvolání místního koncového bodu pro určení skóre dat pomocí modelu

Pomocí příkazu a předáním parametrů dotazu uložených v souboru JSON vyvolejte koncový bod pro určení skóre modelu invoke :

az ml online-endpoint invoke --local --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json

Pokud chcete použít klienta REST (například curl), musíte mít identifikátor URI bodování. Pokud chcete získat identifikátor URI bodování, spusťte az ml online-endpoint show --local -n $ENDPOINT_NAMEpříkaz . Ve vrácených datech vyhledejte scoring_uri atribut.

Kontrola výstupu z operace vyvolání v protokolech

V příkladu score.py souboru run() metoda zaznamená výstup do konzoly.

Tento výstup můžete zobrazit pomocí get-logs příkazu:

az ml online-deployment get-logs --local -n blue --endpoint $ENDPOINT_NAME

Nasazení online koncového bodu do Azure

Dále nasaďte online koncový bod do Azure. Jako osvědčený postup pro produkční prostředí doporučujeme zaregistrovat model a prostředí, které budete používat ve svém nasazení.

Registrace modelu a prostředí

Před nasazením do Azure doporučujeme zaregistrovat model a prostředí, abyste mohli během nasazení zadat jejich registrované názvy a verze. Registrace prostředků vám umožní je opakovaně používat bez nutnosti je nahrávat při každém vytváření nasazení, což zvyšuje reprodukovatelnost a sledovatelnost.

Poznámka:

Na rozdíl od nasazení do Azure místní nasazení nepodporuje používání registrovaných modelů a prostředí. Místní nasazení místo toho používá soubory místního modelu a používá prostředí pouze s místními soubory. Pro nasazení do Azure můžete použít místní nebo registrované prostředky (modely a prostředí). V této části článku nasazení do Azure používá registrované prostředky, ale místo toho máte možnost používat místní prostředky. Příklad konfigurace nasazení, která nahrává místní soubory, které se mají použít pro místní nasazení, najdete v tématu Konfigurace nasazení.

K registraci modelu a prostředí použijte formulář model: azureml:my-model:1 nebo environment: azureml:my-env:1. Pro registraci můžete extrahovat definice YAML a environment do samostatných model souborů YAML a používat příkazy az ml model create a az ml environment create. Další informace o těchtopříkazch az ml model create -h az ml environment create -h

  1. Vytvořte definici YAML pro model:

    $schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
    name: my-model
    path: ../../model-1/model/
    
  2. Zaregistrujte model:

    az ml model create -n my-model -v 1 -f ./model.yaml
    
  3. Vytvořte definici YAML pro prostředí:

    $schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
    name: my-env
    image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
    conda_file: ../../model-1/environment/conda.yaml
    
  4. Zaregistrujte prostředí:

    az ml environment create -n my-env -v 1 -f ./environment.yaml
    

Další informace o registraci modelu jako prostředku najdete v tématu Registrace modelu jako prostředku ve službě Machine Learning pomocí rozhraní příkazového řádku. Další informace o vytváření prostředí najdete v tématu Správa prostředí Azure Machine Learning pomocí rozhraní příkazového řádku a sady SDK (v2).

Konfigurace nasazení, které používá registrované prostředky

Konfigurace nasazení používá registrovaný model, který chcete nasadit, a registrované prostředí.

V definici nasazení použijte registrované prostředky (model a prostředí). Následující fragment kódu ukazuje endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml soubor se všemi požadovanými vstupy ke konfiguraci nasazení:

blue-deployment-with-registered-assets.yml

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model: azureml:my-model:1
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: azureml:my-env:1
instance_type: Standard_DS3_v2
instance_count: 1

Použití různých typů instancí PROCESORu a GPU a imagí

V definici nasazení můžete určit typy instancí PROCESORu nebo GPU a image pro místní nasazení i nasazení do Azure.

Definice nasazení v souboru blue-deployment-with-registered-assets.yml používala instanci typu Standard_DS3_v2 pro obecné účely a image mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestDockeru bez GPU . U výpočetních prostředků GPU zvolte skladovou položku typu výpočetního prostředí GPU a image Dockeru GPU.

Podporované typy instancí pro obecné účely a GPU najdete v tématu Spravované online koncové body podporované skladovými jednotkami virtuálních počítačů. Seznam základních imagí procesoru a GPU ve službě Azure Machine Learning najdete v základních imagích služby Azure Machine Learning.

Poznámka:

Pokud chcete používat Kubernetes místo spravovaných koncových bodů jako cílové výpočetní objekty, přečtěte si téma Úvod do cílového výpočetního prostředí Kubernetes.

Dále nasaďte online koncový bod do Azure.

Nasazení do Azure

  1. Vytvořte koncový bod v cloudu Azure.

    az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
    
  2. Vytvořte nasazení pojmenované blue pod koncovým bodem.

    az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml --all-traffic
    

    Vytvoření nasazení může trvat až 15 minut v závislosti na tom, jestli se podkladové prostředí nebo image sestavují poprvé. Následná nasazení, která používají stejné prostředí, se zpracovávají rychleji.

    Tip

    • Pokud nechcete blokovat konzolu rozhraní příkazového řádku, můžete k příkazu přidat příznak --no-wait . Tato možnost ale zastaví interaktivní zobrazení stavu nasazení.

    Důležité

    Příznak --all-traffic v kódu az ml online-deployment create , který se používá k vytvoření nasazení, přidělí 100 % provozu koncového bodu nově vytvořenému modrému nasazení. I když je to užitečné pro účely vývoje a testování, v produkčním prostředí můžete chtít směrovat provoz do nového nasazení prostřednictvím explicitního příkazu. Například az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".

Informace o ladění chyb v nasazení najdete v tématu Řešení potíží s nasazeními online koncových bodů.

Kontrola stavu koncového bodu

  1. show Pomocí příkazu zobrazíte informace v koncovém provisioning_state bodu a nasazení:

    az ml online-endpoint show -n $ENDPOINT_NAME
    
  2. Pomocí příkazu vypište všechny koncové body v pracovním prostoru ve formátu list tabulky:

    az ml online-endpoint list --output table
    

Kontrola stavu online nasazení

V protokolech zkontrolujte, jestli se model nasadil bez chyby.

  1. Pokud chcete zobrazit výstup protokolu z kontejneru, použijte následující příkaz rozhraní příkazového řádku:

    az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
    

    Ve výchozím nastavení se protokoly načítají z kontejneru odvozování serveru. Pokud chcete zobrazit protokoly z kontejneru inicializátoru úložiště, přidejte --container storage-initializer příznak. Další informace o protokolech nasazení najdete v tématu Získání protokolů kontejneru.

Vyvolání koncového bodu pro určení skóre dat pomocí modelu

  1. invoke K vyvolání koncového bodu a určení skóre některých dat použijte příkaz nebo klienta REST podle vašeho výběru:

    az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
    
  2. Získejte klíč použitý k ověření koncového bodu:

    Tip

    Můžete určit, které objekty zabezpečení Microsoft Entra mohou získat ověřovací klíč tím, že je přiřadíte k vlastní roli, která umožňuje Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action a Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action. Další informace o správě autorizace pro pracovní prostory najdete v tématu Správa přístupu k pracovnímu prostoru Azure Machine Learning.

    ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
    
  3. K určení skóre dat použijte curl.

    SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
    
    curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @endpoints/online/model-1/sample-request.json
    

    Všimněte si, show že používáte a get-credentials příkazy k získání přihlašovacích údajů pro ověření. Všimněte si také, že příznak používáte --query k filtrování pouze potřebných atributů. Další informace o příznaku najdete v tématu Dotazování výstupu --querypříkazu Azure CLI.

  4. Pokud chcete zobrazit protokoly vyvolání, spusťte get-logs to znovu.

(Volitelné) Aktualizace nasazení

Pokud chcete aktualizovat kód, model nebo prostředí, aktualizujte soubor YAML a spusťte az ml online-endpoint update příkaz.

Poznámka:

Pokud aktualizujete počet instancí (pro škálování nasazení) spolu s dalšími nastaveními modelu (jako je kód, model nebo prostředí) v jednom update příkazu, provede se nejprve operace škálování, pak se použijí další aktualizace. Tyto operace je vhodné provádět samostatně v produkčním prostředí.

Vysvětlení toho, jak update funguje:

  1. Otevřete soubor online/model-1/onlinescoring/score.py.

  2. Změňte poslední řádek init() funkce: Za logging.info("Init complete"), přidat logging.info("Updated successfully").

  3. Uložte soubor.

  4. Spusťte tento příkaz:

    az ml online-deployment update -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml
    

    Poznámka:

    Aktualizace pomocí YAML je deklarativní. To znamená, že změny v YAML se projeví v podkladových prostředcích Azure Resource Manageru (koncových bodech a nasazeních). Deklarativní přístup usnadňuje GitOps: Všechny změny koncových bodů a nasazení (dokonce instance_count) procházejí YAML.

    Tip

    • Pomocí příkazu ROZHRANÍ příkazového řádku můžete přepsat atributy v YAML nebo nastavit konkrétní atributy bez jejich předání do souboru YAML.update --set Použití --set pro jednotlivé atributy je zvláště cenné ve scénářích vývoje a testování. Pokud například chcete vertikálně navýšit kapacitu instance_count hodnoty pro první nasazení, můžete použít --set instance_count=2 příznak. Protože se ale YAML neaktualizuje, tato technika nepodporuje GitOps.
    • Zadání souboru YAML není povinné. Pokud například chcete otestovat jiné nastavení souběžnosti pro dané nasazení, můžete zkusit něco podobného az ml online-deployment update -n blue -e my-endpoint --set request_settings.max_concurrent_requests_per_instance=4 environment_variables.WORKER_COUNT=4. Tím se zachová veškerá existující konfigurace, ale aktualizuje se jenom zadané parametry.
  5. Protože jste upravili init() funkci, která se spustí při vytvoření nebo aktualizaci koncového bodu, Updated successfully zpráva bude v protokolech. Načtěte protokoly spuštěním příkazu:

    az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
    

Příkaz update také funguje s místními nasazeními. Použijte stejný az ml online-deployment update příkaz s příznakem --local .

Poznámka:

Příkladem místní kumulativní aktualizace je aktualizace nasazení v této části.

  • U spravovaného online koncového bodu se nasazení aktualizuje na novou konfiguraci s 20% uzly najednou. To znamená, že pokud má nasazení 10 uzlů, aktualizují se současně 2 uzly.
  • V případě online koncového bodu Kubernetes vytvoří systém iterativní vytvoření nové instance nasazení s novou konfigurací a odstraní starou instanci.
  • V případě produkčního využití byste měli zvážit modré-zelené nasazení, které nabízí bezpečnější alternativu k aktualizaci webové služby.

(Volitelné) Konfigurace automatického škálování

Automatické škálování automaticky spustí správné množství prostředků ke zvládnutí zatížení u vaší aplikace. Spravované online koncové body podporují automatické škálování prostřednictvím integrace s funkcí automatického škálování služby Azure Monitor. Informace o konfiguraci automatického škálování najdete v tématu Postup automatického škálování online koncových bodů.

(Volitelné) Monitorování smlouvy SLA pomocí služby Azure Monitor

Pokud chcete zobrazit metriky a nastavit upozornění na základě vaší smlouvy SLA, proveďte kroky popsané v online koncových bodech monitorování.

(Volitelné) Integrace s Log Analytics

Příkaz get-logs pro rozhraní příkazového řádku nebo metodu get_logs sady SDK poskytuje pouze posledních několik stovek řádků protokolů z automaticky vybrané instance. Log Analytics ale poskytuje způsob, jak trvale ukládat a analyzovat protokoly. Další informace o používání protokolování najdete v tématu Monitorování online koncových bodů.

Odstranění koncového bodu a nasazení

Odstraňte koncový bod a všechna jeho základní nasazení:

az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait