Introduktion till Kubernetes-beräkningsmål i AzureML

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

Med AzureML CLI/Python SDK v2 introducerade AzureML ett nytt beräkningsmål – Kubernetes-beräkningsmål. Du kan enkelt aktivera ett befintligt Azure Kubernetes Service-kluster (AKS) eller Ett Azure Arc-aktiverat Kubernetes-kluster (Arc Kubernetes) för att bli ett Kubenetes-beräkningsmål i AzureML och använda det för att träna eller distribuera modeller.

Diagram som illustrerar hur Azure ML ansluter till Kubernetes.

I den här artikeln lär du dig mer om:

  • Så här fungerar det
  • Användningsscenarier
  • Rekommenderade metodtips
  • KubernetesCompute och äldre AksCompute

Så här fungerar det

AzureML Kubernetes-beräkning stöder två typer av Kubernetes-kluster:

  • AKS-kluster i Azure. Med ditt självhanterade AKS-kluster i Azure kan du få säkerhet och kontroller för att uppfylla efterlevnadskrav och flexibilitet för att hantera teamets ML-arbetsbelastning.
  • Arc Kubernetes-kluster utanför Azure. Med Arc Kubernetes-kluster kan du träna eller distribuera modeller i valfri infrastruktur lokalt, i flera moln eller på gränsen.

Med en enkel distribution av klustertillägg i AKS- eller Arc Kubernetes-kluster stöds Kubernetes-klustret sömlöst i AzureML för att köra tränings- eller slutsatsdragningsarbetsbelastningar. Det är enkelt att aktivera och använda ett befintligt Kubernetes-kluster för AzureML-arbetsbelastning med följande enkla steg:

  1. Förbereda ett Azure Kubernetes Service kluster eller Arc Kubernetes-kluster.
  2. Distribuera AzureML-tillägget.
  3. Koppla Kubernetes-klustret till din Azure ML-arbetsyta.
  4. Använd Kubernetes-beräkningsmålet från CLI v2, SDK v2 och Studio-användargränssnittet.

IT-driftsteam. IT-åtgärdsteamet ansvarar för de tre första stegen ovan: förbereda ett AKS- eller Arc Kubernetes-kluster, distribuera Azure ML-klustertillägget och koppla Kubernetes-klustret till Azure ML-arbetsytan. Förutom dessa viktiga konfigurationssteg för beräkning använder IT-driftteamet även välbekanta verktyg som Azure CLI eller kubectl för att ta hand om följande uppgifter för datavetenskapsteamet:

  • Nätverks- och säkerhetskonfigurationer, till exempel utgående proxyserveranslutning eller Azure-brandväggskonfiguration, inferensrouter (azureml-fe) installation, SSL/TLS-avslutning och VNET-konfiguration.
  • Skapa och hantera instanstyper för olika ML-arbetsbelastningsscenarier och få effektiv beräkningsresursanvändning.
  • Felsöka arbetsbelastningsproblem som rör Kubernetes-kluster.

Datavetenskapsteam. När IT-driftsteamet har slutfört skapandet av beräkningsinställningar och beräkningsmål kan datavetenskapsteamet identifiera en lista över tillgängliga beräkningsmål och instanstyper i AzureML-arbetsytan. Dessa beräkningsresurser kan användas för tränings- eller slutsatsdragningsarbetsbelastning. Datavetenskap anger namn på beräkningsmål och instanstyp med hjälp av de verktyg eller API:er som de föredrar, till exempel AzureML CLI v2, Python SDK v2 (förhandsversion) eller Studio UI.

Användningsscenarier för Kubernetes

Med Arc Kubernetes-kluster kan du skapa, träna och distribuera modeller i valfri infrastruktur lokalt och i flera moln med Kubernetes. Detta öppnar några nya användningsmönster som tidigare inte var möjliga i molninställningsmiljön. Följande tabell innehåller en sammanfattning av de nya användningsmönster som aktiveras av AzureML Kubernetes-beräkning:

Användningsmönster Plats för data Motivation Konfigurera Azure ML-implementering av & Infra
Träna modell i molnet, distribuera modell lokalt Moln Använd molnberäkning. Antingen på grund av elastiska beräkningsbehov eller särskild maskinvara, till exempel en GPU.
Modellen måste distribueras lokalt på grund av krav på säkerhet, efterlevnad eller svarstid
1. Azure-hanterad beräkning i molnet.
2. Kundhanterade Kubernetes lokalt.
3. Fullständigt automatiserade MLOps i hybridläge, inklusive utbildnings- och modelldistributionssteg som sömlöst övergår från molnet till lokalt och vice versa.
4. Repeterbar, med alla tillgångar spåras korrekt. Modellen tränas om vid behov och modelldistributionen uppdateras automatiskt efter omträning.
Träna modell lokalt, distribuera modell i molnet Lokalt Data måste finnas kvar lokalt på grund av krav på datahemvist.
Distribuera modellen i molnet för global tjänståtkomst eller för beräkningselasticitet för skalning och dataflöde.
1. Azure-hanterad beräkning i molnet.
2. Kundhanterade Kubernetes lokalt.
3. Fullständigt automatiserade MLOps i hybridläge, inklusive utbildnings- och modelldistributionssteg som sömlöst övergår från molnet till lokalt och vice versa.
4. Repeterbar, med alla tillgångar spåras korrekt. Modellen tränas om vid behov och modelldistributionen uppdateras automatiskt efter omträning.
Ta med din egen AKS i Azure Moln Mer säkerhet och kontroller.
All privat IP-maskininlärning för att förhindra dataexfiltrering.
1. AKS-kluster bakom ett virtuellt Azure-nätverk.
2. Skapa privata slutpunkter i samma virtuella nätverk för AzureML-arbetsytan och dess associerade resurser.
3. Fullständigt automatiserad MLOps.
Fullständig ML-livscykel lokalt Lokalt Skydda känsliga data eller upphovsrättsskyddade IP-adresser, till exempel ML-modeller och kod/skript. 1. Utgående proxyserveranslutning lokalt.
2. Privat Azure ExpressRoute- och Azure Arc-länk till Azure-resurser.
3. Kundhanterade Kubernetes lokalt.
4. Fullständigt automatiserad MLOps.

Ansvarsfördelning mellan IT-driftsteamet och datavetenskapsteamet. Som vi nämnde ovan är det komplicerat att hantera din egen beräkning och infrastruktur för ML-arbetsbelastningar, och det är bäst att det görs av IT-driftteamet så att datavetenskapsteamet kan fokusera på ML-modeller för organisationens effektivitet.

Skapa och hantera instanstyper för olika ML-arbetsbelastningsscenarier. Varje ML-arbetsbelastning använder olika mängder beräkningsresurser, till exempel CPU/GPU och minne. AzureML implementerar instanstyp som Kubernetes anpassad resursdefinition (CRD) med egenskaper för nodeSelector och resursbegäran/gräns. Med en noggrant granskad lista över instanstyper kan IT-åtgärder rikta ML-arbetsbelastningen mot specifika noder och hantera beräkningsresursanvändningen effektivt.

Flera AzureML-arbetsytor delar samma Kubernetes-kluster. Du kan koppla Kubernetes-kluster flera gånger till samma AzureML-arbetsyta eller olika AzureML-arbetsytor och skapa flera beräkningsmål på en arbetsyta eller flera arbetsytor. Eftersom många kunder organiserar datavetenskapsprojekt runt AzureML-arbetsytan kan flera datavetenskapsprojekt nu dela samma Kubernetes-kluster. Detta minskar kostnaderna för HANTERING av ML-infrastruktur avsevärt och besparingen av IT-kostnader.

Isolering av team-/projektarbetsbelastning med Kubernetes-namnrymd. När du kopplar Kubernetes-kluster till AzureML-arbetsytan kan du ange en Kubernetes-namnrymd för beräkningsmålet. Alla arbetsbelastningar som körs av beräkningsmålet placeras under det angivna namnområdet.

KubernetesCompute och äldre AksCompute

Med AzureML CLI/Python SDK v1 kan du distribuera modeller på AKS med hjälp av AksCompute-målet. Både KubernetesCompute-målet och AksCompute-målet stöder AKS-integrering, men de stöder det på olika sätt. Följande tabell visar viktiga skillnader.

Funktioner AKS-integrering med AksCompute (äldre) AKS-integrering med KubernetesCompute
CLI/SDK v1 Ja Inga
CLI/SDK v2 Inga Ja
Utbildning Inga Ja
Slutsatsdragning i realtid Ja Ja
Batch-slutsatsdragning Inga Ja
Nya funktioner i realtidsslutsatsdragning Ingen ny funktionsutveckling Aktiv översikt

Med dessa viktiga skillnader och övergripande AzureML utvecklas till att använda SDK/CLI v2 rekommenderar AzureML att du använder Kubernetes beräkningsmål för att distribuera modeller om du bestämmer dig för att använda AKS för modelldistribution.

Nästa steg

Andra resurser

Exempel

Alla AzureML-exempel finns i https://github.com/Azure/azureml-examples.git.

För alla AzureML-exempel behöver du bara uppdatera beräkningsmålnamnet till ditt Kubernetes-beräkningsmål, då är allt klart.