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.
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.
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.
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
- Så här distribuerar du onlineslutpunkter med Azure CLI och Python SDK
- Distribuera modeller med batchslutpunkter
- Distribuera pipelines med batchslutpunkter
- Så här använder du onlineslutpunkter med studion
- Övervaka hanterade onlineslutpunkter
- Hantera och öka kvoter för resurser med Azure Machine Learning