Introduktion till Kubernetes-beräkningsmål i Azure Machine Learning
GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)
Azure Machine Learning CLI och Python SDK v2 ger stöd för ett Kubernetes-beräkningsmål. Du kan aktivera ett befintligt AkS-kluster (Azure Kubernetes Service) eller Ett Azure Arc-aktiverat Kubernetes-kluster (Arc Kubernetes) som kubernetes-beräkningsmål. Använd beräkningen i Machine Learning för att träna eller distribuera modeller.
Den här artikeln beskriver hur du kan använda Kubernetes-beräkningsmålet i Machine Learning, inklusive användningsscenarier, rekommenderade metodtips och en jämförelse av och KubernetesCompute
äldre AksCompute
mål.
Så här fungerar Kubernetes-beräkningsmålet
Azure Machine Learning Kubernetes-beräkning stöder två typer av Kubernetes-kluster.
Compute | Plats | beskrivning |
---|---|---|
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 maskininlärningsarbetsbelastning. |
Arc Kubernetes-kluster | Utanför Azure | Med Arc Kubernetes-kluster kan du träna eller distribuera modeller i valfri lokal infrastruktur eller flera molninfrastrukturer eller gränsen. |
Med en enkel klustertilläggsdistribution i AKS- eller Arc Kubernetes-kluster stöds Kubernetes-klustret sömlöst i Machine Learning för att köra tränings- eller slutsatsdragningsarbetsbelastningar. Det är enkelt att aktivera och använda ett befintligt Kubernetes-kluster för Machine Learning-arbetsbelastning med följande process:
Steg 1: Förbereda ett Azure Kubernetes Service-kluster eller Arc Kubernetes-kluster.
Steg 2: Distribuera Azure Machine Learning-klustertillägget.
Steg 3: Koppla Kubernetes-klustret till din Azure Machine Learning-arbetsyta.
Steg 4: Använd Kubernetes-beräkningsmålet från CLI v2, SDK v2 eller Azure Machine Learning-studio användargränssnittet.
Här är de primära ansvarsområdena i den här processen:
IT-driftsteamet ansvarar för steg 1, 2 och 3. Det här teamet förbereder ett AKS- eller Arc Kubernetes-kluster, distribuerar Machine Learning-klustertillägget och kopplar Kubernetes-klustret till Machine Learning-arbetsytan. Förutom dessa viktiga konfigurationssteg för beräkning använder IT-driftteamet även välbekanta verktyg, till exempel Azure CLI eller kubectl, för att utföra följande uppgifter för datavetenskapsteamet:
Konfigurera nätverks- och säkerhetsalternativ, till exempel utgående proxyserveranslutning eller Azure-brandvägg, installation av inferensrouter (azureml-fe), SSL/TLS-avslutning och konfiguration av virtuella nätverk.
Skapa och hantera instanstyper för olika scenarier för maskininlärningsarbetsbelastningar och få effektiv användning av beräkningsresurser.
Felsöka arbetsbelastningsproblem som rör Kubernetes-kluster.
Datavetenskapsteamet börjar sina uppgifter när IT-driftsteamet har slutfört beräkningskonfigurationen och skapandet av beräkningsmålen. Det här teamet identifierar en lista över tillgängliga beräkningsmål och instanstyper på Machine Learning-arbetsytan. Beräkningsresurserna kan användas för tränings- eller slutsatsdragningsarbetsbelastning. Data science-teamet anger namnet på beräkningsmål och instanstyp med hjälp av de verktyg eller API:er som de föredrar. De kan använda Azure Machine Learning CLI v2, Python SDK v2 eller Machine Learning Studio-användargränssnittet.
Användningsscenarier för Kubernetes
Med Arc Kubernetes-kluster kan du skapa, träna och distribuera modeller i valfri lokal infrastruktur och multimolninfrastruktur med hjälp av Kubernetes. Den här strategin öppnar några nya användningsmönster som tidigare inte var möjliga i en molnmiljö. Följande tabell innehåller en sammanfattning av de nya användningsmönster som är aktiverade när du arbetar med Azure Machine Learning Kubernetes-beräkning:
Användningsmönster | Plats för data | Mål och krav | Scenariokonfiguration |
---|---|---|---|
Träna modell i molnet, distribuera modell lokalt | Moln | Använd molnbaserad beräkning för att stödja elastiska beräkningsbehov eller särskild maskinvara, till exempel en GPU. Modelldistributionen måste vara lokal för krav på säkerhet, efterlevnad eller svarstid. |
– Azure-hanterad beräkning i molnet – Kundhanterad Lokal Kubernetes – Fullständigt automatiserade maskininlärningsåtgärder i hybridläge, inklusive utbildnings- och modelldistributionssteg som sömlöst övergår mellan molnet och lokalt – Repeterbar, alla tillgångar spåras korrekt, modellen tränas om efter behov, distributionen uppdateras automatiskt efter omträning |
Träna modellen lokalt och i molnet, distribuera till både molnet och lokalt | Moln | Kombinera lokala investeringar med skalbarhet i molnet. Ta med molnbaserad och lokal beräkning under en enda fönsterruta. Få åtkomst till en enda sanningskälla för data i molnet och replikera lokalt (latt om användning eller proaktivt). Aktivera primär användning av molnberäkning när lokala resurser inte är tillgängliga (används eller under underhåll) eller inte uppfyller specifika maskinvarukrav (GPU). |
– Azure-hanterad beräkning i molnet. Kundhanterad Lokal Kubernetes – Fullständigt automatiserade maskininlärningsåtgärder i hybridläge, inklusive utbildnings- och modelldistributionssteg som sömlöst övergår mellan molnet och lokalt – Repeterbar, alla tillgångar spåras korrekt, modellen tränas om efter behov, distributionen uppdateras automatiskt efter omträning |
Träna modell lokalt, distribuera modell i molnet | Lokal | Lagra data lokalt för att uppfylla kraven på datahemvist. Distribuera modellen i molnet för global tjänståtkomst eller för att aktivera beräkningselasticitet för skalning och dataflöde. |
– Azure-hanterad beräkning i molnet – Kundhanterad Lokal Kubernetes – Fullständigt automatiserade maskininlärningsåtgärder i hybridläge, inklusive utbildnings- och modelldistributionssteg som sömlöst övergår mellan molnet och lokalt – Repeterbar, alla tillgångar spåras korrekt, modellen tränas om efter behov, distributionen uppdateras automatiskt efter omträning |
Ta med din egen AKS i Azure | Moln | Få mer säkerhet och kontroller. Upprätta all privat IP-maskininlärning för att förhindra dataexfiltrering. |
– AKS-kluster bakom ett virtuellt Azure-nätverk – Privata slutpunkter i samma virtuella nätverk för Azure Machine Learning-arbetsytan och associerade resurser Helt automatiserade maskininlärningsåtgärder |
Fullständig livscykel för maskininlärning lokalt | Lokal | Skydda känsliga data eller upphovsrättsskyddade IP-adresser, till exempel maskininlärningsmodeller, kod och skript. | – Lokal anslutning till utgående proxyserver – Privat Azure ExpressRoute- och Azure Arc-länk till Azure-resurser – Kundhanterad Lokal Kubernetes – Helt automatiserade maskininlärningsåtgärder |
Begränsningar för Kubernetes-beräkningsmål
Ett KubernetesCompute
mål i Azure Machine Learning-arbetsbelastningar (tränings- och modellinferens) har följande begränsningar:
- Tillgängligheten för förhandsversionsfunktioner i Azure Machine Learning garanteras inte.
- Modeller (inklusive den grundläggande modellen) från modellkatalogen och registret stöds inte på Kubernetes onlineslutpunkter.
- Processen för att skapa en modellinferensdistribution i klustret har en tidsgräns på 20 minuter. Detta inkluderar att ladda ned avbildningen, ladda ned modellen och initiera användarskripten.
Rekommenderade metodtips
I det här avsnittet sammanfattas rekommenderade metodtips för att arbeta med en Kubernetes-beräkning.
Ansvarsfördelning mellan IT-driftsteamet och datavetenskapsteamet. Som vi beskrev tidigare är det en komplex uppgift att hantera din egen beräkning och infrastruktur för maskininlärningsarbetsbelastningar. Det bästa sättet är att låta IT-driftsteamet hantera uppgiften, så att datavetenskapsteamet kan fokusera på maskininlärningsmodeller för organisationens effektivitet.
Skapa och hantera instanstyper för olika scenarier för maskininlärningsarbetsbelastningar. Varje maskininlärningsarbetsbelastning använder olika mängder beräkningsresurser, till exempel CPU/GPU och minne. Azure Machine Learning implementerar instanstypen som en anpassad Kubernetes-resursdefinition (CRD) med egenskaperna nodeSelector
och resource request/limit
. Med en noggrant utvärderad lista över instanstyper kan IT-åtgärder rikta in sig på maskininlärningsarbetsbelastningar på specifika noder och hantera beräkningsresursanvändning effektivt.
Flera Azure Machine Learning-arbetsytor delar samma Kubernetes-kluster. Du kan koppla ett Kubernetes-kluster flera gånger till samma Machine Learning-arbetsyta eller olika arbetsytor. Den här processen skapar flera beräkningsmål på en enda arbetsyta eller flera arbetsytor. Eftersom många kunder organiserar datavetenskapsprojekt runt Machine Learning-arbetsytan kan flera datavetenskapsprojekt nu dela samma Kubernetes-kluster. Den här metoden minskar kostnaderna för hantering av maskininlärningsinfrastruktur avsevärt och förbättrar besparingen av IT-kostnader.
Isolering av team-/projektarbetsbelastning med kubernetes-namnrymd. När du kopplar ett Kubernetes-kluster till en Machine Learning-arbetsyta 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.
Jämförelse av KubernetesCompute och äldre AksCompute-mål
Med Azure Machine Learning CLI/Python SDK v1 kan du distribuera modeller på AKS med hjälp av det äldre AksCompute
målet. KubernetesCompute
Både målen och AksCompute
stöder AKS-integrering, men supportmetoden är annorlunda. I följande tabell sammanfattas de viktigaste skillnaderna:
Kapacitet | AksCompute (äldre) | KubernetesCompute |
---|---|---|
Använda CLI/SDK v1 | Ja | Nej |
Använda CLI/SDK v2 | Nej | Ja |
Konfigurera utbildning | Nej | Ja |
Tillämpa slutsatsdragning i realtid | Ja | Ja |
Tillämpa batchinferens | Nej | Ja |
Få åtkomst till nya funktioner för slutsatsdragning i realtid | Ingen utveckling av nya funktioner | Aktiv översikt tillgänglig |
Med hänsyn till dessa skillnader och den övergripande Machine Learning-utvecklingen för att använda CLI/SDK v2 rekommenderar vi att du använder Kubernetes beräkningsmål (KubernetesCompute
) för AKS-modelldistribution.
Mer information finns i följande artiklar:
- Granska Kubernetes-versioner och -regioner som stöds
- Ansluta Machine Learning-jobb med anpassad datalagring
Exempel på maskininlärning
Maskininlärningsexempel är tillgängliga på lagringsplatsen Azure Machine Learning (azureml-examples) på GitHub. I alla exempel ersätter du beräkningsmålnamnet med ditt Kubernetes-beräkningsmål och kör exemplet.
Här är flera alternativ:
- Träna jobbexempel med CLI v2
- Träna jobbexempel med SDK v2
- Modelldistribution med onlineslutpunktsexempel och CLI v2
- Modelldistribution med slutpunktsexempel online och SDK v2
- Batch-slutpunktsexempel med CLI v2