Slutpunkter för slutsatsdragning i produktion

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

När du har tränat maskininlärningsmodeller eller pipelines måste du distribuera dem till produktion så att andra kan använda dem för slutsatsdragning. Slutsatsdragning är processen att tillämpa nya indata på maskininlärningsmodellen eller pipelinen för att generera utdata. Även om dessa utdata vanligtvis kallas "förutsägelser" kan slutsatsdragning användas för att generera utdata för andra maskininlärningsuppgifter, till exempel klassificering och klustring. I Azure Machine Learning utför du slutsatsdragning med hjälp av slutpunkter och distributioner. Med slutpunkter och distributioner kan du frikoppla gränssnittet för din produktionsarbetsbelastning från implementeringen som hanterar den.

Intuition

Anta att du arbetar med ett program som förutsäger typen och färgen på en bil, med tanke på dess foto. För det här programmet gör en användare med vissa autentiseringsuppgifter en HTTP-begäran till en URL och ger en bild av en bil som en del av begäran. I gengäld får användaren ett svar som innehåller bilens typ och färg som strängvärden. I det här scenariot fungerar URL:en som en slutpunkt.

A diagram showing the concept of an endpoint.

Anta dessutom att en dataexpert, Alice, arbetar med att implementera programmet. Alice vet mycket om TensorFlow och bestämmer sig för att implementera modellen med hjälp av en sekventiell Keras-klassificerare med en RestNet-arkitektur från TensorFlow Hub. Efter att ha testat modellen är Alice nöjd med sina resultat och bestämmer sig för att använda modellen för att lösa problemet med bilförutsägelse. Modellen är stor och kräver 8 GB minne med 4 kärnor att köra. I det här scenariot utgör Alices modell och resurserna, till exempel koden och beräkningen, som krävs för att köra modellen en distribution under slutpunkten.

A diagram showing the concept of a deployment.

Slutligen antar vi att organisationen efter ett par månader upptäcker att programmet presterar dåligt på bilder med mindre än idealiska belysningsförhållanden. Bob, en annan dataexpert, vet mycket om dataförstoringstekniker som hjälper en modell att bygga robusthet på den faktorn. Bob känner sig dock mer bekväm med torch för att implementera modellen och träna en ny modell med Torch. Bob vill prova den här modellen i produktion gradvis tills organisationen är redo att dra tillbaka den gamla modellen. Den nya modellen visar också bättre prestanda när den distribueras till GPU, så distributionen måste innehålla en GPU. I det här scenariot utgör Bobs modell och resurser, till exempel koden och beräkningen, som krävs för att köra modellen en annan distribution under samma slutpunkt.

A diagram showing the concept of an endpoint with multiple deployments.

Slutpunkter och distributioner

En slutpunkt är en stabil och varaktig URL som kan användas för att begära eller anropa en modell. Du anger nödvändiga indata till slutpunkten och får tillbaka utdata. En slutpunkt innehåller:

  • en stabil och hållbar URL (till exempel endpoint-name.region.inference.ml.azure.com),
  • en autentiseringsmekanism och
  • en auktoriseringsmekanism.

En distribution är en uppsättning resurser och beräkningar som krävs för att vara värd för modellen eller komponenten som utför den faktiska inferensen. En enskild slutpunkt kan innehålla flera distributioner. Dessa distributioner kan vara värdar för oberoende tillgångar och använda olika resurser baserat på tillgångarnas behov. Slutpunkter har en routningsmekanism som kan dirigera begäranden till specifika distributioner i slutpunkten.

För att fungera korrekt måste varje slutpunkt ha minst en distribution. Slutpunkter och distributioner är oberoende Azure Resource Manager-resurser som visas i Azure-portalen.

Online- och batchslutpunkter

Med Azure Machine Learning kan du implementera onlineslutpunkter och batchslutpunkter. Onlineslutpunkter är utformade för realtidsinferens – när du anropar slutpunkten returneras resultaten i slutpunktens svar. Batchslutpunkter är å andra sidan utformade för långvarig batchinferens. Varje gång du anropar en batchslutpunkt genererar du ett batchjobb som utför det faktiska arbetet.

När du ska använda online eller batchslutpunkt för ditt användningsfall

Använd onlineslutpunkter för att operationalisera modeller för realtidsinferens i synkrona begäranden med låg svarstid. Vi rekommenderar att du använder dem när:

  • Du har krav på låg latens.
  • Din modell kan besvara begäran på relativt kort tid.
  • Modellens indata får plats på HTTP-nyttolasten för begäran.
  • Du måste skala upp när det gäller antalet begäranden.

Använd batchslutpunkter för att operationalisera modeller eller pipelines för långvarig asynkron slutsatsdragning. Vi rekommenderar att du använder dem när:

  • Du har dyra modeller eller pipelines som kräver längre tid att köra.
  • Du vill operationalisera maskininlärningspipelines och återanvända komponenter.
  • Du måste utföra slutsatsdragning för stora mängder data som distribueras i flera filer.
  • Du har inte krav på låg svarstid.
  • Modellens indata lagras i ett lagringskonto eller i en Azure Machine Learning-datatillgång.
  • Du kan dra nytta av parallellisering.

Jämförelse av online- och batchslutpunkter

Både online- och batchslutpunkter baseras på idén om slutpunkter och distributioner, vilket hjälper dig att enkelt övergå från en till en annan. Men när du flyttar från en till en annan finns det vissa skillnader som är viktiga att ta hänsyn till. Några av dessa skillnader beror på arbetets natur:

Slutpunkter

I följande tabell visas en sammanfattning av de olika funktionerna som är tillgängliga för online- och batchslutpunkter.

Funktion Onlineslutpunkter Batch-slutpunkter
Stabil anrops-URL Ja Ja
Stöd för flera distributioner Ja Ja
Distributionens routning Trafikdelning Växla till standard
Speglingstrafik för säker distribution Ja Nej
Swagger-stöd Ja Nej
Autentisering Nyckel och token Microsoft Entra-ID
Stöd för privat nätverk Ja Ja
Hanterad nätverksisolering Ja Ja (se nödvändig ytterligare konfiguration)
Kundhanterade nycklar Ja Ja
Kostnadsbas Ingen Ingen

Distributioner

I följande tabell visas en sammanfattning av de olika funktionerna som är tillgängliga för online- och batchslutpunkter på distributionsnivå. Dessa begrepp gäller för varje distribution under slutpunkten.

Funktion Onlineslutpunkter Batch-slutpunkter
Distributionstyper Modeller Modeller och pipelinekomponenter
MLflow-modelldistribution Ja Ja
Distribution av anpassad modell Ja, med bedömningsskript Ja, med bedömningsskript
Distribution av modellpaket 1 Ja (förhandsversion) Nej
Slutsatsdragningsserver 2 – Azure Machine Learning Inferencing Server
-Triton
– Anpassad (med BYOC)
Batch-slutsatsdragning
Förbrukad beräkningsresurs Instanser eller detaljerade resurser Klusterinstanser
Typ av beräkning Hanterad beräkning och Kubernetes Hanterad beräkning och Kubernetes
Beräkning med låg prioritet Nej Ja
Skala beräkning till noll Nej Ja
Automatisk skalningsberäkning3 Ja, baserat på resursernas belastning Ja, baserat på antal jobb
Hantering av överkapacitet Begränsning Queuing
Kostnadsbas4 Per distribution: beräkningsinstanser som körs Per jobb: beräkningsinstanser som förbrukas i jobbet (begränsas till det maximala antalet instanser av klustret).
Lokal testning av distributioner Ja Nej

1 Distribution av MLflow-modeller till slutpunkter utan utgående Internetanslutning eller privata nätverk kräver att modellen först paketeras.

2Slutsatsdragningsservern refererar till den serveringsteknik som tar begäranden, bearbetar dem och skapar svar. Slutsatsdragningsservern avgör också formatet på indata och förväntade utdata.

3Autoskalning är möjligheten att dynamiskt skala upp eller skala ned distributionens allokerade resurser baserat på belastningen. Online- och batchdistributioner använder olika strategier för automatisk skalning. Medan onlinedistributioner skalas upp och ned baserat på resursanvändningen (t.ex. PROCESSOR, minne, begäranden osv.), skalas batchslutpunkter upp eller ned baserat på antalet jobb som skapats.

4 Både online- och batchdistributioner debiteras av de resurser som förbrukas. I onlinedistributioner etableras resurser vid distributionstillfället. I batchdistributionen förbrukas dock inga resurser vid distributionstillfället, men när jobbet körs. Därför finns det ingen kostnad som är associerad med själva distributionen. Observera att köade jobb inte heller förbrukar resurser.

Utvecklargränssnitt

Slutpunkter är utformade för att hjälpa organisationer att operationalisera arbetsbelastningar på produktionsnivå i Azure Machine Learning. Slutpunkter är robusta och skalbara resurser och de ger de bästa funktionerna för att implementera MLOps-arbetsflöden.

Du kan skapa och hantera batch- och onlineslutpunkter med flera utvecklarverktyg:

  • Azure CLI och Python SDK
  • Azure Resource Manager/REST API
  • Azure Machine Learning-studio webbportal
  • Azure-portalen (IT/administratör)
  • Stöd för CI/CD MLOps-pipelines med hjälp av Azure CLI-gränssnittet och REST/ARM-gränssnitt

Nästa steg