Eindpunten voor deductie in productie

VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

Nadat u machine learning-modellen of pijplijnen hebt getraind, moet u ze implementeren in productie, zodat anderen ze kunnen gebruiken voor deductie. Deductie is het proces van het toepassen van nieuwe invoergegevens op het machine learning-model of de pijplijn om uitvoer te genereren. Hoewel deze uitvoer doorgaans 'voorspellingen' wordt genoemd, kan deductie worden gebruikt om uitvoer te genereren voor andere machine learning-taken, zoals classificatie en clustering. In Azure Machine Learning voert u deductie uit met behulp van eindpunten en implementaties. Met eindpunten en implementaties kunt u de interface van uw productieworkload loskoppelen van de implementatie die deze dient.

Intuïtie

Stel dat u aan een toepassing werkt die het type en de kleur van een auto voorspelt op basis van de foto. Voor deze toepassing maakt een gebruiker met bepaalde referenties een HTTP-aanvraag naar een URL en geeft een afbeelding van een auto als onderdeel van de aanvraag. Als resultaat krijgt de gebruiker een antwoord met het type en de kleur van de auto als tekenreekswaarden. In dit scenario fungeert de URL als eindpunt.

A diagram showing the concept of an endpoint.

Stel dat een data scientist, Alice, werkt aan de implementatie van de toepassing. Alice weet veel over TensorFlow en besluit het model te implementeren met behulp van een Keras-sequentiële classificatie met een RestNet-architectuur van de TensorFlow Hub. Na het testen van het model is Alice tevreden met de resultaten en besluit het model te gebruiken om het probleem met de autovoorspelling op te lossen. Het model is groot en vereist 8 GB geheugen met vier kernen om uit te voeren. In dit scenario vormen het model van Alice en de resources, zoals de code en de berekening, die nodig zijn om het model uit te voeren, een implementatie onder het eindpunt.

A diagram showing the concept of a deployment.

Laten we ons ten slotte voorstellen dat de organisatie na een paar maanden ontdekt dat de toepassing slecht presteert op afbeeldingen met minder dan ideale verlichtingsomstandigheden. Bob, een andere data scientist, weet veel over technieken voor gegevensvergroting die een model helpen om robuustheid op te bouwen op die factor. Bob voelt zich echter comfortabeler met behulp van Torch om het model te implementeren en traint een nieuw model met Torch. Bob wil dit model geleidelijk in productie proberen totdat de organisatie klaar is om het oude model buiten gebruik te stellen. Het nieuwe model toont ook betere prestaties wanneer het wordt geïmplementeerd op GPU, dus de implementatie moet een GPU bevatten. In dit scenario vormen het model en de resources van Bob, zoals de code en de berekening, die nodig zijn om het model uit te voeren, een andere implementatie onder hetzelfde eindpunt.

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

Eindpunten en implementaties

Een eindpunt is een stabiele en duurzame URL die kan worden gebruikt om een model aan te vragen of aan te roepen. U geeft de vereiste invoer op voor het eindpunt en haalt de uitvoer terug. Een eindpunt biedt:

  • een stabiele en duurzame URL (zoals endpoint-name.region.inference.ml.azure.com),
  • een verificatiemechanisme en
  • een autorisatiemechanisme.

Een implementatie is een set resources en berekeningen die nodig zijn voor het hosten van het model of onderdeel dat de werkelijke deductie uitvoert. Eén eindpunt kan meerdere implementaties bevatten. Deze implementaties kunnen onafhankelijke assets hosten en verschillende resources verbruiken op basis van de behoeften van de assets. Eindpunten hebben een routeringsmechanisme waarmee aanvragen naar specifieke implementaties in het eindpunt kunnen worden omgeleid.

Om goed te kunnen functioneren, moet elk eindpunt ten minste één implementatie hebben. Eindpunten en implementaties zijn onafhankelijke Azure Resource Manager-resources die worden weergegeven in Azure Portal.

Online- en batch-eindpunten

Met Azure Machine Learning kunt u online-eindpunten en batcheindpunten implementeren. Online-eindpunten zijn ontworpen voor realtime deductie. Wanneer u het eindpunt aanroept, worden de resultaten geretourneerd in het antwoord van het eindpunt. Batch-eindpunten zijn daarentegen ontworpen voor langdurige batchdeductie. Telkens wanneer u een batch-eindpunt aanroept, genereert u een batchtaak waarmee het werkelijke werk wordt uitgevoerd.

Wanneer u online versus batch-eindpunt gebruikt voor uw use-case

Gebruik online-eindpunten om modellen operationeel te maken voor realtime deductie in synchrone aanvragen met lage latentie. U wordt aangeraden deze te gebruiken wanneer:

  • U hebt vereisten voor lage latentie.
  • Uw model kan de aanvraag in relatief korte tijd beantwoorden.
  • De invoer van uw model past bij de HTTP-nettolading van de aanvraag.
  • U moet omhoog schalen in termen van het aantal aanvragen.

Gebruik batcheindpunten om modellen of pijplijnen operationeel te maken voor langlopende asynchrone deductie. U wordt aangeraden deze te gebruiken wanneer:

  • U hebt dure modellen of pijplijnen waarvoor langere tijd nodig is om uit te voeren.
  • U wilt machine learning-pijplijnen operationeel maken en onderdelen opnieuw gebruiken.
  • U moet deductie uitvoeren op grote hoeveelheden gegevens die in meerdere bestanden worden gedistribueerd.
  • U hebt geen vereisten voor lage latentie.
  • De invoer van uw model wordt opgeslagen in een opslagaccount of in een Azure Machine Learning-gegevensasset.
  • U kunt profiteren van parallelle uitvoering.

Vergelijking van online- en batcheindpunten

Zowel online- als batcheindpunten zijn gebaseerd op het idee van eindpunten en implementaties, waarmee u eenvoudig kunt overstappen van het ene naar het andere eindpunt. Wanneer u echter overstapt van het ene naar het andere, zijn er enkele verschillen die belangrijk zijn om rekening mee te houden. Sommige van deze verschillen zijn te wijten aan de aard van het werk:

Eindpunten

In de volgende tabel ziet u een overzicht van de verschillende functies die beschikbaar zijn voor online- en batcheindpunten.

Functie Online-eindpunten Batch-eindpunten
Stabiele aanroep-URL Ja Ja
Ondersteuning voor meerdere implementaties Ja Ja
Routering van implementatie Verkeer splitsen Overschakelen naar de standaardinstelling
Verkeer spiegelen voor veilige implementatie Ja Nr.
Ondersteuning voor Swagger Ja Nr.
Verificatie Sleutel en token Microsoft Entra ID
Ondersteuning voor privénetwerk Ja Ja
Beheerde netwerkisolatie Ja Ja (zie vereiste aanvullende configuratie)
Door klant beheerde sleutels Ja Ja
Kostenbasis Geen Geen

Installaties

In de volgende tabel ziet u een overzicht van de verschillende functies die beschikbaar zijn voor online- en batcheindpunten op implementatieniveau. Deze concepten zijn van toepassing op elke implementatie onder het eindpunt.

Functie Online-eindpunten Batch-eindpunten
Implementatietypen Modellen Modellen en pijplijnonderdelen
MLflow-modelimplementatie Ja Ja
Aangepaste modelimplementatie Ja, met scorescript Ja, met scorescript
Modelpakketimplementatie 1 Ja (preview) Nee
Deductieserver 2 - Azure Machine Learning-deductieserver
-Triton
- Aangepast (met BYOC)
Batchdeductie
Verbruikte rekenresource Exemplaren of gedetailleerde resources Clusterexemplaren
Rekentype Beheerde rekenkracht en Kubernetes Beheerde rekenkracht en Kubernetes
Berekening met lage prioriteit Nr. Ja
Rekenkracht schalen naar nul Nr. Ja
Berekening automatisch schalen3 Ja, op basis van de belasting van resources Ja, op basis van het aantal taken
Beheer van overcapaciteit Beperking Queuing
Kostenbasis4 Per implementatie: rekeninstanties die worden uitgevoerd Per taak: rekenproces dat in de taak is verbruikt (beperkt tot het maximum aantal exemplaren van het cluster).
Lokale tests van implementaties Ja Nr.

1 Voor het implementeren van MLflow-modellen op eindpunten zonder uitgaande internetverbinding of particuliere netwerken moet het model eerst worden verpakt.

2Deductieserver verwijst naar de ondersteunende technologie die aanvragen accepteert, verwerkt en reacties maakt. De deductieserver bepaalt ook de indeling van de invoer en de verwachte uitvoer.

3Automatisch schalen is de mogelijkheid om de toegewezen resources van de implementatie dynamisch omhoog of omlaag te schalen op basis van de belasting. Online- en batchimplementaties gebruiken verschillende strategieën voor automatisch schalen. Terwijl onlineimplementaties omhoog en omlaag worden geschaald op basis van het resourcegebruik (zoals CPU, geheugen, aanvragen, enzovoort), worden batcheindpunten omhoog of omlaag geschaald op basis van het aantal gemaakte taken.

4 Zowel online- als batchimplementaties brengen kosten in rekening door de verbruikte resources. In online-implementaties worden resources ingericht tijdens de implementatie. In batchimplementatie worden er echter geen resources verbruikt tijdens de implementatie, maar wanneer de taak wordt uitgevoerd. Er zijn dus geen kosten verbonden aan de implementatie zelf. U ziet dat taken in de wachtrij ook geen resources verbruiken.

Ontwikkelaarsinterfaces

Eindpunten zijn ontworpen om organisaties te helpen bij het operationeel maken van workloads op productieniveau in Azure Machine Learning. Eindpunten zijn robuuste en schaalbare resources en bieden het beste van de mogelijkheden voor het implementeren van MLOps-werkstromen.

U kunt batch- en online-eindpunten maken en beheren met meerdere ontwikkelhulpprogramma's:

  • De Azure CLI en de Python SDK
  • Azure Resource Manager/REST API
  • Azure Machine Learning-studio webportal
  • Azure Portal (IT/Beheer)
  • Ondersteuning voor CI/CD MLOps-pijplijnen met behulp van de Azure CLI-interface & REST/ARM-interfaces

Volgende stappen