Dela via


Distribuera och poängsätta en maskininlärningsmodell med hjälp av en onlineslutpunkt

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

I den här artikeln lär du dig att distribuera din modell till en onlineslutpunkt för användning i realtidsinferens. Du börjar med att distribuera en modell på den lokala datorn för att felsöka eventuella fel. Sedan distribuerar och testar du modellen i Azure, visar distributionsloggarna och övervakar serviceavtalet (SLA). I slutet av den här artikeln har du en skalbar HTTPS/REST-slutpunkt som du kan använda för slutsatsdragning i realtid.

Onlineslutpunkter är slutpunkter som används för inferens i realtid. Det finns två typer av onlineslutpunkter: hanterade onlineslutpunkter och Kubernetes-onlineslutpunkter. Mer information om slutpunkter och skillnader mellan hanterade onlineslutpunkter och Kubernetes onlineslutpunkter finns i Vad är Azure Mašinsko učenje slutpunkter?

Med hanterade onlineslutpunkter kan du distribuera användningsklara maskininlärningsmodeller. Hanterade onlineslutpunkter körs skalbart och helt hanterat på datorer med kraftfulla processorer och grafikkort i Azure. Hanterade onlineslutpunkter betjänar, skalar om, skyddar och övervakar dina modeller så att du slipper arbetet med att konfigurera och hantera den underliggande infrastrukturen.

Huvudexemplet i det här dokumentet använder hanterade onlineslutpunkter för distribution. Om du vill använda Kubernetes i stället kan du läsa anteckningarna i det här dokumentet som är infogade i den hanterade onlineslutpunktsdiskussionen.

Förutsättningar

GÄLLER FÖR: Azure CLI ml-tillägget v2 (aktuellt)

Innan du följer stegen i den här artikeln kontrollerar du att du har följande förutsättningar:

  • Rollbaserade åtkomstkontroller i Azure (Azure RBAC) används för att bevilja åtkomst till åtgärder i Azure Machine Learning. Om du vill utföra stegen i den här artikeln måste ditt användarkonto tilldelas rollen ägare eller deltagare för Azure Mašinsko učenje-arbetsytan eller en anpassad roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Om du använder studion för att skapa/hantera onlineslutpunkter/distributioner behöver du en extra behörighet "Microsoft.Resources/deployments/write" från resursgruppens ägare. Mer information finns i Hantera åtkomst till en Azure Mašinsko učenje-arbetsyta.

  • (Valfritt) Om du vill distribuera lokalt måste du installera Docker Engine på den lokala datorn. Vi rekommenderar starkt det här alternativet, så det är enklare att felsöka problem.

  • Se till att du har tillräckligt med kvoter för virtuella datorer (VM) allokerade för distribution. Azure Mašinsko učenje reserverar 20 % av dina beräkningsresurser för att utföra uppgraderingar på vissa VM-SKU:er. Om du till exempel begär 10 instanser i en distribution måste du ha en kvot på 12 för varje antal kärnor för den virtuella datorns SKU. Om du inte tar hänsyn till de extra beräkningsresurserna resulterar det i ett fel. Det finns vissa VM-SKU:er som är undantagna från den extra kvotreservationen. Mer information om kvotallokering finns i kvotallokering för virtuella datorer för distribution.

  • Du kan också använda kvoten från Azure Mašinsko učenje delade kvotpool under en begränsad tid. Azure Mašinsko učenje tillhandahåller en delad kvotpool från vilken användare i olika regioner kan komma åt kvoten för att utföra testning under en begränsad tid, beroende på tillgänglighet. När du använder studion för att distribuera Llama-2-, Phi-, Nemotron-, Mistral-, Dolly- och Deci-DeciLM-modeller från modellkatalogen till en hanterad onlineslutpunkt kan du med Azure Mašinsko učenje få åtkomst till dess delade kvotpool under en kort tid så att du kan utföra testning. Mer information om den delade kvotpoolen finns i Azure Mašinsko učenje delad kvot.

Förbereda systemet

Ange miljövariabler

Om du inte redan har angett standardinställningarna för Azure CLI sparar du standardinställningarna. Kör den här koden för att undvika att skicka in värdena för din prenumeration, arbetsyta och resursgrupp flera gånger:

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

Klona exempellagringsplatsen

Om du vill följa med i den här artikeln klonar du först exempellagringsplatsen (azureml-examples). Kör sedan följande kod för att gå till lagringsplatsens cli/ katalog:

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

Dricks

Använd --depth 1 för att endast klona den senaste incheckningen till lagringsplatsen, vilket minskar tiden för att slutföra åtgärden.

Kommandona i den här självstudien finns i filerna deploy-local-endpoint.sh och deploy-managed-online-endpoint.sh i cli katalogen, och YAML-konfigurationsfilerna finns i underkatalogen endpoints/online/managed/sample/ .

Kommentar

YAML-konfigurationsfilerna för Kubernetes onlineslutpunkter finns i underkatalogen endpoints/online/kubernetes/ .

Definiera slutpunkten

Om du vill definiera en onlineslutpunkt anger du slutpunktsnamnet och autentiseringsläget. Mer information om hanterade onlineslutpunkter finns i Onlineslutpunkter.

Ange ett slutpunktsnamn

Kör följande kommando för att ange slutpunktsnamnet. Ersätt YOUR_ENDPOINT_NAME med ett namn som är unikt i Azure-regionen. Mer information om namngivningsreglerna finns i slutpunktsgränser.

Kör det här kommandot för Linux:

export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

Konfigurera slutpunkten

Följande kodfragment visar filen endpoints/online/managed/sample/endpoint.yml :

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

Referensen för YAML-formatet för slutpunkten beskrivs i följande tabell. Information om hur du anger dessa attribut finns i YAML-referensen för onlineslutpunkten. Information om begränsningar relaterade till hanterade slutpunkter finns i begränsningar för onlineslutpunkter.

Nyckel beskrivning
$schema (Valfritt) YAML-schemat. Om du vill se alla tillgängliga alternativ i YAML-filen kan du visa schemat i föregående kodfragment i en webbläsare.
name Namnet på slutpunkten.
auth_mode Används key för nyckelbaserad autentisering.
Använd aml_token för Azure Mašinsko učenje tokenbaserad autentisering.
Använd aad_token för Microsoft Entra-tokenbaserad autentisering (förhandsversion).
Mer information om autentisering finns i Autentisera klienter för onlineslutpunkter.

Definiera distributionen

En distribution är en uppsättning resurser som krävs för att vara värd för den modell som utför den faktiska inferensen. I det här exemplet distribuerar du en scikit-learn-modell som utför regression och använder ett bedömningsskript score.py för att köra modellen på en viss indatabegäran.

Mer information om nyckelattributen för en distribution finns i Onlinedistributioner.

Konfigurera en distribution

Distributionskonfigurationen använder platsen för den modell som du vill distribuera.

Följande kodfragment visar filen endpoints/online/managed/sample/blue-deployment.yml , med alla nödvändiga indata för att konfigurera en distribution:

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

Filen blue-deployment.yml anger följande distributionsattribut:

  • model – anger modellegenskaperna infogade med hjälp av path (var du kan ladda upp filer från). CLI laddar automatiskt upp modellfilerna och registrerar modellen med ett automatiskt genererat namn.
  • environment – Med hjälp av infogade definitioner som inkluderar var du ska ladda upp filer från laddar CLI automatiskt upp conda.yaml filen och registrerar miljön. Senare, för att skapa miljön, använder distributionen image (i det här exemplet är mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestdet ) för basavbildningen och beroendena conda_file installeras ovanpå basavbildningen.
  • code_configuration – Under distributionen laddas de lokala filerna, till exempel Python-källan för bedömningsmodellen, upp från utvecklingsmiljön.

Mer information om YAML-schemat finns i YAML-referensen för onlineslutpunkten.

Kommentar

Så här använder du Kubernetes-slutpunkter i stället för hanterade onlineslutpunkter som beräkningsmål:

  1. Skapa och koppla ditt Kubernetes-kluster som beräkningsmål till din Azure Mašinsko učenje-arbetsyta med hjälp av Azure Mašinsko učenje Studio.
  2. Använd slutpunktens YAML för att rikta in dig på Kubernetes i stället för YAML för den hanterade slutpunkten. Du måste redigera YAML för att ändra värdet compute för till namnet på ditt registrerade beräkningsmål. Du kan använda den här deployment.yaml som har ytterligare egenskaper som gäller för en Kubernetes-distribution.

Alla kommandon som används i den här artikeln för hanterade onlineslutpunkter gäller även för Kubernetes-slutpunkter, förutom följande funktioner som inte gäller för Kubernetes-slutpunkter:

Förstå bedömningsskriptet

Dricks

Formatet för bedömningsskriptet för onlineslutpunkter är samma format som används i föregående version av CLI och i Python SDK.

Bedömningsskriptet som anges i code_configuration.scoring_script måste ha en init() funktion och en run() funktion.

I det här exemplet används filen 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()

Funktionen init() anropas när containern initieras eller startas. Initieringen sker vanligtvis strax efter att distributionen har skapats eller uppdaterats. Funktionen init är platsen för att skriva logik för globala initieringsåtgärder som att cachelagra modellen i minnet (som visas i den här score.py filen).

Funktionen run() anropas varje gång slutpunkten anropas och den gör den faktiska bedömningen och förutsägelsen. I den här score.py filen run() extraherar funktionen data från en JSON-indata, anropar scikit-learn-modellens predict() metod och returnerar sedan förutsägelseresultatet.

Distribuera och felsöka lokalt med hjälp av en lokal slutpunkt

Vi rekommenderar starkt att du testkör slutpunkten lokalt för att verifiera och felsöka koden och konfigurationen innan du distribuerar till Azure. Azure CLI och Python SDK stöder lokala slutpunkter och distributioner, medan Azure Mašinsko učenje studio- och ARM-mall inte gör det.

Om du vill distribuera lokalt måste Docker Engine installeras och köras. Docker Engine startar vanligtvis när datorn startas. Om den inte gör det kan du felsöka Docker Engine.

Dricks

Du kan använda Azure Mašinsko učenje http-server python-paket för att felsöka ditt bedömningsskript lokalt utan Docker Engine. Felsökning med slutsatsdragningsservern hjälper dig att felsöka bedömningsskriptet innan du distribuerar till lokala slutpunkter så att du kan felsöka utan att påverkas av konfigurationerna av distributionscontainer.

Mer information om felsökning av onlineslutpunkter lokalt innan du distribuerar till Azure finns i Felsökning av onlineslutpunkter.

Distribuera modellen lokalt

Skapa först en slutpunkt. Om du vill kan du hoppa över det här steget för en lokal slutpunkt och direkt skapa distributionen (nästa steg), vilket i sin tur skapar nödvändiga metadata. Att distribuera modeller lokalt är användbart i utvecklings- och testsyfte.

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

Skapa nu en distribution med namnet blue under slutpunkten.

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

Flaggan --local instruerar CLI att distribuera slutpunkten i Docker-miljön.

Dricks

Använd Visual Studio Code till att testa och felsöka dina slutpunkter lokalt. Mer information finns i felsöka onlineslutpunkter lokalt i Visual Studio Code.

Kontrollera att den lokala distributionen lyckades

Kontrollera distributionsstatusen för att se om modellen distribuerades utan fel:

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

Utdata bör se ut ungefär som följande JSON. provisioning_state är Succeeded.

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

Följande tabell innehåller möjliga värden för provisioning_state:

Värde beskrivning
Skapande Resursen skapas.
Uppdatera Resursen uppdateras.
Ta bort Resursen tas bort.
Lyckades Åtgärden create/update lyckades.
Misslyckades Åtgärden create/update/delete misslyckades.

Anropa den lokala slutpunkten för att poängsätta data med hjälp av din modell

Anropa slutpunkten för att poängsätta modellen med hjälp invoke av kommandot och skicka frågeparametrar som lagras i en JSON-fil:

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

Om du vill använda en REST-klient (t.ex. curl) måste du ha bedömnings-URI:n. Kör för att hämta bedömnings-URI az ml online-endpoint show --local -n $ENDPOINT_NAME:n. Leta upp attributet i scoring_uri de returnerade data.

Granska loggarna för utdata från anropsåtgärden

I exemplet score.py fil run() loggar metoden utdata till konsolen.

Du kan visa dessa utdata med hjälp get-logs av kommandot :

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

Distribuera din onlineslutpunkt till Azure

Distribuera sedan din onlineslutpunkt till Azure. Som bästa praxis för produktion rekommenderar vi att du registrerar den modell och miljö som du ska använda i distributionen.

Registrera din modell och miljö

Vi rekommenderar att du registrerar din modell och miljö innan du distribuerar till Azure så att du kan ange deras registrerade namn och versioner under distributionen. Genom att registrera dina tillgångar kan du återanvända dem utan att behöva ladda upp dem varje gång du skapar distributioner, vilket ökar reproducerbarheten och spårbarheten.

Kommentar

Till skillnad från distribution till Azure stöder inte lokal distribution användning av registrerade modeller och miljöer. I stället använder lokal distribution lokala modellfiler och använder miljöer endast med lokala filer. För distribution till Azure kan du använda antingen lokala eller registrerade tillgångar (modeller och miljöer). I det här avsnittet i artikeln använder distributionen till Azure registrerade tillgångar, men du har möjlighet att använda lokala tillgångar i stället. Ett exempel på en distributionskonfiguration som laddar upp lokala filer som ska användas för lokal distribution finns i Konfigurera en distribution.

Om du vill registrera modellen och miljön använder du formuläret model: azureml:my-model:1 eller environment: azureml:my-env:1. För registrering kan du extrahera YAML-definitionerna för model och environment till separata YAML-filer och använda kommandona az ml model create och az ml environment create. Om du vill veta mer om dessa kommandon kör az ml model create -h du och az ml environment create -h.

  1. Skapa en YAML-definition för modellen:

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

    az ml model create -n my-model -v 1 -f ./model.yaml
    
  3. Skapa en YAML-definition för miljön:

    $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. Registrera miljön:

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

Mer information om hur du registrerar din modell som en tillgång finns i Registrera din modell som en tillgång i Mašinsko učenje med hjälp av CLI. Mer information om hur du skapar en miljö finns i Hantera Azure Mašinsko učenje-miljöer med CLI & SDK (v2).

Konfigurera en distribution som använder registrerade tillgångar

Distributionskonfigurationen använder den registrerade modell som du vill distribuera och din registrerade miljö.

Använd registrerade tillgångar (modell och miljö) i distributionsdefinitionen. Följande kodfragment visar endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml filen med alla nödvändiga indata för att konfigurera en distribution:

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

Använda olika typer och avbildningar av PROCESSOR- och GPU-instanser

Du kan ange typer och avbildningar för CPU- eller GPU-instanser i distributionsdefinitionen för både lokal distribution och distribution till Azure.

Distributionsdefinitionen i blue-deployment-with-registered-assets.yml-filen använde en generell typinstans Standard_DS3_v2 och en docker-avbildning mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestsom inte är GPU. För GPU-beräkning väljer du en SKU för GPU-beräkningstyp och en GPU Docker-avbildning.

Information om typer av generell användning och GPU-instanser som stöds finns i Hanterade onlineslutpunkter som stöds av VM-SKU:er. En lista över Azure Mašinsko učenje CPU- och GPU-basavbildningar finns i Grundavbildningar för Azure Mašinsko učenje.

Kommentar

Information om hur du använder Kubernetes, i stället för hanterade slutpunkter, som beräkningsmål finns i Introduktion till Kubernetes-beräkningsmål.

Distribuera sedan din onlineslutpunkt till Azure.

Distribuera till Azure

  1. Skapa slutpunkten i Azure-molnet.

    az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
    
  2. Skapa distributionen med namnet blue under slutpunkten.

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

    Det kan ta upp till 15 minuter att skapa distributionen, beroende på om den underliggande miljön eller avbildningen skapas för första gången. Efterföljande distributioner som använder samma miljö bearbetas snabbare.

    Dricks

    • Om du föredrar att inte blockera CLI-konsolen kan du lägga till flaggan --no-wait i kommandot. Det här alternativet stoppar dock den interaktiva visningen av distributionsstatusen.

    Viktigt!

    Flaggan --all-traffic i koden az ml online-deployment create som används för att skapa distributionen allokerar 100 % av slutpunktstrafiken till den nyligen skapade blå distributionen. Även om detta är användbart i utvecklings- och testsyfte kan det vara bra att dirigera trafik till den nya distributionen via ett explicit kommando för produktion. Exempel: az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100"

Information om hur du felsöker fel i distributionen finns i Felsöka distributioner av onlineslutpunkter.

Kontrollera slutpunktens status

  1. show Använd kommandot för att visa information i provisioning_state för slutpunkten och distributionen:

    az ml online-endpoint show -n $ENDPOINT_NAME
    
  2. Visa en lista över alla slutpunkter i arbetsytan i tabellformat med hjälp list av kommandot :

    az ml online-endpoint list --output table
    

Kontrollera statusen för onlinedistributionen

Kontrollera loggarna för att se om modellen distribuerades utan fel.

  1. Om du vill se loggutdata från en container använder du följande CLI-kommando:

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

    Som standard hämtas loggarna från inferensservercontainern. Om du vill se loggar från containern för lagringsinitieraren lägger du till --container storage-initializer flaggan. Mer information om distributionsloggar finns i Hämta containerloggar.

Anropa slutpunkten för att poängsätta data med hjälp av din modell

  1. Använd antingen kommandot invoke eller valfri REST-klient för att anropa slutpunkten och poängsätta vissa data:

    az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
    
  2. Hämta nyckeln som används för att autentisera till slutpunkten:

    Dricks

    Du kan styra vilka Microsoft Entra-säkerhetsobjekt som kan hämta autentiseringsnyckeln genom att tilldela dem till en anpassad roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action och Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action. Mer information om hur du hanterar auktorisering för arbetsytor finns i Hantera åtkomst till en Azure Mašinsko učenje-arbetsyta.

    ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
    
  3. Använd curl för att poängsätta data.

    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
    

    Observera att du använder show och get-credentials kommandon för att hämta autentiseringsuppgifterna. Observera också att du använder --query flaggan för att endast filtrera de attribut som behövs. Mer information om flaggan finns i --query Fråga azure CLI-kommandoutdata.

  4. Om du vill se anropsloggarna kör du get-logs igen.

(Valfritt) Uppdatera distributionen

Om du vill uppdatera koden, modellen eller miljön uppdaterar du YAML-filen och kör az ml online-endpoint update sedan kommandot .

Kommentar

Om du uppdaterar antalet instanser (för att skala distributionen) tillsammans med andra modellinställningar (till exempel kod, modell eller miljö) i ett enda update kommando utförs skalningsåtgärden först, sedan tillämpas de andra uppdateringarna. Det är en bra idé att utföra dessa åtgärder separat i en produktionsmiljö.

Så här förstår du hur update det fungerar:

  1. Öppna filen online/model-1/onlinescoring/score.py.

  2. Ändra den sista raden i init() funktionen: Efter logging.info("Init complete")lägger du till logging.info("Updated successfully").

  3. Spara filen.

  4. Kör följande kommando:

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

    Kommentar

    Det är deklarativt att uppdatera med YAML. Det vill säga ändringar i YAML återspeglas i de underliggande Azure Resource Manager-resurserna (slutpunkter och distributioner). En deklarativ metod underlättar GitOps: Alla ändringar av slutpunkter och distributioner (till och med instance_count) går igenom YAML.

    Dricks

    • Du kan använda allmänna uppdateringsparametrar, till exempel parametern --set , med CLI-kommandot update för att åsidosätta attribut i YAML eller för att ange specifika attribut utan att skicka dem i YAML-filen. Användning för --set enkla attribut är särskilt värdefullt i utvecklings- och testscenarier. Om du till exempel vill skala upp instance_count värdet för den första distributionen kan du använda --set instance_count=2 flaggan. Men eftersom YAML inte uppdateras underlättar inte den här tekniken GitOps.
    • Det är INTE obligatoriskt att ange YAML-filen. Om du till exempel vill testa olika samtidighetsinställningar för en viss distribution kan du prova något i stil med az ml online-deployment update -n blue -e my-endpoint --set request_settings.max_concurrent_requests_per_instance=4 environment_variables.WORKER_COUNT=4. Detta behåller all befintlig konfiguration men uppdaterar endast de angivna parametrarna.
  5. Eftersom du har ändrat init() funktionen, som körs när slutpunkten skapas eller uppdateras, visas meddelandet Updated successfully i loggarna. Hämta loggarna genom att köra:

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

Kommandot update fungerar också med lokala distributioner. Använd samma az ml online-deployment update kommando med --local flaggan.

Kommentar

Uppdateringen av distributionen i det här avsnittet är ett exempel på en löpande uppdatering på plats.

  • För en hanterad onlineslutpunkt uppdateras distributionen till den nya konfigurationen med 20 % noder åt gången. Om distributionen har 10 noder uppdateras alltså 2 noder åt gången.
  • För en Kubernetes online-slutpunkt skapar systemet iterativt en ny distributionsinstans med den nya konfigurationen och tar bort den gamla.
  • För produktionsanvändning bör du överväga blågrön distribution, vilket är ett säkrare alternativ för att uppdatera en webbtjänst.

(Valfritt) Konfigurera automatisk skalning

Med autoskalning körs automatiskt rätt mängd resurser för att hantera arbetsbelastningen i appen. Hanterade onlineslutpunkter stöder automatisk skalning genom integrering med autoskalningsfunktionen i Azure Monitor. Information om hur du konfigurerar automatisk skalning finns i Så här autoskalar du onlineslutpunkter.

(Valfritt) Övervaka serviceavtal med hjälp av Azure Monitor

Om du vill visa mått och ange aviseringar baserat på ditt serviceavtal slutför du stegen som beskrivs i Övervaka onlineslutpunkter.

(Valfritt) Integrera med Log Analytics

Kommandot get-logs för CLI eller get_logs metoden för SDK innehåller endast de senaste hundra raderna med loggar från en automatiskt vald instans. Log Analytics är dock ett sätt att lagra och analysera loggar på ett korrekt sätt. Mer information om hur du använder loggning finns i Övervaka onlineslutpunkter.

Ta bort slutpunkten och distributionen

Ta bort slutpunkten och alla dess underliggande distributioner:

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