Slutpunkter för slutsatsdragning i produktion

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

När du har tränat maskininlärningsmodeller eller pipelines, eller hittat lämpliga modeller från modellkatalogen, 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å en maskininlärningsmodell eller pipeline för att generera utdata. Även om dessa utdata vanligtvis kallas "förutsägelser" kan slutsatsdragning generera utdata för andra maskininlärningsuppgifter, till exempel klassificering och klustring. I Azure Machine Learning utför du slutsatsdragning med hjälp av endpoints.

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 tar emot utdata. Azure Machine Learning stöder standarddistributioner, onlineslutpunkter och batchslutpunkter. En slutpunkt innehåller:

  • En stabil och varaktig URL (till exempel en hanterad url för slutpunktsbedömning online, till exempel https://<endpoint-name>.<region>.inference.ml.azure.com/score). Det exakta URL-formatet varierar beroende på slutpunktstyp.
  • En autentiseringsmekanism
  • En auktoriseringsmekanism

En distribution är en uppsättning resurser och beräkning som krävs för att vara värd för den modell eller komponent som utför den faktiska slutsatsdragningen. En slutpunkt innehåller en distribution. För online- och batchslutpunkter kan en slutpunkt innehålla flera distributioner. Distributionerna kan vara värdar för oberoende tillgångar och använda olika resurser baserat på tillgångarnas behov. En slutpunkt har också en routningsmekanism som kan dirigera begäranden till någon av dess distributioner.

Vissa typer av slutpunkter i Azure Machine Learning använder dedikerade resurser i sina distributioner. För att dessa slutpunkter ska kunna köras måste du ha beräkningskvot för din Azure prenumeration. Vissa modeller stöder dock en serverlös distribution, vilket gör att de inte kan använda någon kvot från din prenumeration. För serverlösa distributioner debiteras du baserat på användning.

Intuition

Anta att du arbetar med ett program som förutsäger typ och färg på en bil från ett 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.

Ett diagram som visar begreppet slutpunkt.

Anta nu att en dataexpert, Alice, implementerar programmet. Alice har omfattande TensorFlow-erfarenhet och bestämmer sig för att implementera modellen med hjälp av en sekventiell Keras-klassificerare med en ResNet-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 för att köras. I det här scenariot utgör Alices modell och de resurser, till exempel koden och beräkningen, som krävs för att köra modellen en distribution under slutpunkten.

Ett diagram som visar begreppet distribution.

Efter några månader upptäcker organisationen att programmet presterar dåligt på bilder med dåliga ljusförhållanden. Bob, en annan dataexpert, har expertis inom dataförstoringstekniker som hjälper modeller att bygga robusthet för den här faktorn. Bob föredrar dock att använda PyTorch för att implementera modellen och träna en ny modell med PyTorch. Bob vill testa den här modellen i produktion gradvis tills organisationen är redo att dra tillbaka den gamla modellen. Den nya modellen fungerar också bättre när den distribueras till GPU, så distributionen måste innehålla en GPU. I det här scenariot utgör Bobs modell och de resurser, till exempel koden och beräkningen, som krävs för att köra modellen en annan distribution under samma slutpunkt.

Ett diagram som visar begreppet slutpunkt med flera distributioner.

Endpunkter: standarddistribution, online och batch

Azure Machine Learning stöder standarddistributioner, online-slutpunkter och batchslutpunkter.

Standarddistributioner och onlineslutpunkter är utformade för slutsatsdragning i realtid. När du anropar slutpunkten returneras resultatet i slutpunktens svar. Standarddistributioner förbrukar inte kvoter från din prenumeration. I stället debiteras de med standardfakturering.

Batchslutpunkter är utformade för långvarig batchinferens. När du anropar en batchslutpunkt genererar du ett batchjobb som utför det faktiska arbetet.

När du ska använda standarddistribution, online och batchslutpunkter

Standarddistribution:

Använd standarddistributioner för att använda stora grundläggande modeller för realtidsinferensering med färdiga lösningar eller för finjustering av sådana modeller. Alla modeller är inte tillgängliga för distribution till standarddistributioner. De modeller som du kan distribuera på det här sättet finns i Distribuera modeller som standarddistributioner. Använd det här distributionsläget när:

  • Din modell är en grundläggande modell eller en finjusterad version av en grundläggande modell som är tillgänglig för standarddistributioner.
  • Du kan dra nytta av en distribution som inte förbrukar din prenumerations beräkningskvot.
  • Du behöver inte anpassa slutsatsdragningsstacken som används för att köra modellen.

Onlineslutpunkter:

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:

  • Din modell är en grundläggande modell eller en finjusterad version av en grundläggande modell, men den stöds inte i standarddistributionen.
  • Du har krav på låg latens.
  • Din modell kan besvara begäran på relativt kort tid.
  • Modellens indata får plats i HTTP-nyttolasten för begäran.
  • Du måste skala upp när det gäller antalet begäranden.

Batch-slutpunkter:

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 genomfö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 standarddistribution, online och batchslutpunkter

Alla standarddistributioner, onlineslutpunkter och batchslutpunkter baseras på idén om slutpunkter. Därför kan du enkelt övergå från en till en annan. Online- och batchslutpunkter kan också hantera flera distributioner för samma slutpunkt.

Kort och kort: använd standarddistributioner för grundmodeller som stöds, onlineslutpunkter för slutsatsdragning med låg latens med anpassade modeller och batchslutpunkter för asynkron slutsatsdragning över stora mängder data.

Slutpunkter

I följande tabell visas en sammanfattning av de olika funktioner som är tillgängliga för standarddistributioner, onlineslutpunkter och batchslutpunkter på slutpunktsnivå.

Funktion Standardimplementeringar Onlineslutpunkter Batch-slutpunkter
Stabil anrop-URL Ja Ja Ja
Stöd för flera distributioner Nej Ja Ja
Utrullningens ruttning Ingen Trafikdelning Växla till standard
Speglingstrafik för säker distribution Nej Ja Nej
Swagger-stöd Ja Ja Nej
Autentisering Nyckel Nyckel och Microsoft Entra ID (förhandsversion) Microsoft Entra ID
Stöd för privat nätverk (äldre) Nej Ja Ja
Hanterad nätverksisolering Ja Ja Ja (se nödvändig ytterligare konfiguration)
Kundhanterade nycklar NA Ja Ja
Kostnadsbas Per slutpunkt, per minut1 Ingen Ingen

1En liten fraktion debiteras för standarddistribution per minut. Se avsnittet distributioner för de avgifter som är relaterade till förbrukning, som faktureras per token.

Implementeringar

I följande tabell visas en sammanfattning av de olika funktioner som är tillgängliga för standarddistributioner, onlineslutpunkter och batchslutpunkter på distributionsnivå. De här begreppen gäller för varje distribution under slutpunkten (för online- och batchslutpunkter) och gäller för standarddistributioner (där begreppet distribution är inbyggt i slutpunkten).

Funktion Standardimplementeringar Onlineslutpunkter Batch-slutpunkter
Distributionstyper Modeller Modeller Modeller och pipelinekomponenter
MLflow-modelldistribution Nej, endast specifika modeller i katalogen Ja Ja
Distribution av anpassad modell Nej, endast specifika modeller i katalogen Ja, med bedömningsskript Ja, med bedömningsskript
Slutsatsdragningsserver 2 Azure API för AI-modellinferens – Azure Machine Learning slutsatsdragningsserver
-Triton
– Anpassad (med BYOC)
Batch-slutsatsdragning
Förbrukad beräkningsresurs Ingen (serverlös) Instanser eller detaljerade resurser Klusterinstanser
Beräkningstyp Ingen (serverlös) Hanterad beräkning och Kubernetes Hanterad beräkning och Kubernetes
Beräkning med låg prioritet NA Nej Ja
Skala beräkning till noll Inbyggd Nej Ja
Automatisk skalning av beräkningskapacitet3 Inbyggd Ja, baserat på resursanvändning Ja, baserat på antal jobb
Hantering av överkapacitet Strypning Strypning Köhantering
Kostnadsbas4 Per token Per distribution: beräkningsinstanser som är i drift Per jobb: beräkningsinstanser som förbrukas i jobbet (begränsas till det maximala antalet instanser av klustret)
Lokal testning av distributioner Nej Ja Nej

2Inferenceserver avser den teknik som hanterar 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 baserat på de resurser som förbrukas. I online-distributioner tillhandahålls resurser under distribution. I batchdistributioner förbrukas inte resurser vid distributionstillfället, utan vid den tidpunkt då jobbet körs. Därför finns det ingen kostnad som är associerad med själva batchdistributionen. På samma sätt förbrukar inte köade jobb resurser heller.

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 portal (IT/administratör)
  • Stöd för CI/CD MLOps-pipelines med hjälp av Azure CLI-gränssnittet och REST/ARM-gränssnitt