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)
Med Azure Mašinsko učenje CLI/Python SDK v2 introducerade Azure Mašinsko učenje ett nytt beräkningsmål – Kubernetes-beräkningsmål. Du kan enkelt aktivera ett befintligt AkS-kluster (Azure Kubernetes Service) eller Ett Azure Arc-aktiverat Kubernetes-kluster (Arc Kubernetes) för att bli ett Kubernetes-beräkningsmål i Azure Mašinsko učenje och använda det för att träna eller distribuera modeller.
I den här artikeln lär du dig mer om:
- Hur det fungerar
- Användningsscenarier
- Rekommenderade metodtips
- KubernetesCompute och äldre AksCompute
Hur det fungerar
Azure Mašinsko učenje 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 klustertilläggsdistribution i AKS- eller Arc Kubernetes-kluster stöds Kubernetes-klustret sömlöst i Azure Mašinsko učenje för att köra tränings- eller slutsatsdragningsarbetsbelastningar. Det är enkelt att aktivera och använda ett befintligt Kubernetes-kluster för Azure Mašinsko učenje arbetsbelastning med följande enkla steg:
- Förbereda ett Azure Kubernetes Service-kluster eller Arc Kubernetes-kluster.
- Distribuera Azure Mašinsko učenje-tillägget.
- Koppla Kubernetes-klustret till din Azure Mašinsko učenje-arbetsyta.
- Använd Kubernetes-beräkningsmålet från CLI v2, SDK v2 och Studio-användargränssnittet.
IT-driftsteamet. IT-driftsteamet ansvarar för de tre första stegen: förbereda ett AKS- eller Arc Kubernetes-kluster, distribuera Azure Mašinsko učenje klustertillägg och koppla Kubernetes-klustret till Azure Mašinsko učenje arbetsyta. Förutom dessa viktiga konfigurationssteg för beräkning använder IT-driftsteamet ä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 konfiguration av virtuella nätverk.
- 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äkningsmål och beräkningsmål kan datavetenskapsteamet identifiera en lista över tillgängliga beräkningsmål och instanstyper i Azure Mašinsko učenje arbetsyta. Dessa beräkningsresurser kan användas för tränings- eller slutsatsdragningsarbetsbelastningar. Data science anger namn på beräkningsmål och instanstyp med hjälp av de verktyg eller API:er som de föredrar. Dessa namn kan till exempel vara Azure Mašinsko učenje CLI v2, Python SDK v2 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 Azure Mašinsko učenje Kubernetes-beräkning:
Användningsmönster | Plats för data | Motivation | Infrainstallation och Azure Mašinsko učenje-implementering |
---|---|---|---|
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 korrekt spårade. Modellen tränas om vid behov och modelldistributionen uppdateras automatiskt efter omträning. |
Träna modellen lokalt och i molnet, distribuera till både molnet och lokalt | Moln | Organisationer som vill kombinera lokala investeringar med skalbarhet i molnet. Ta med molnbaserad och lokal beräkning under en enda fönsterruta. En enda sanningskälla för data finns i molnet, kan replikeras till en lokal plats (det vill säga lazily vid användning eller proaktivt). Primär användning av molnberäkning är när lokala resurser inte är tillgängliga (används, underhålls) eller inte har specifika maskinvarukrav (GPU). | 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 korrekt spårade. Modellen tränas om vid behov och modelldistributionen uppdateras automatiskt efter omträning. |
Träna modell lokalt, distribuera modell i molnet | Lokal | Data måste förbli lokala 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 korrekt spårade. 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 Azure Mašinsko učenje arbetsyta och dess associerade resurser. 3. Fullständigt automatiserad MLOps. |
Fullständig ML-livscykel lokalt | Lokal | 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 automatiserade MLOps. |
Begränsningar
KubernetesCompute
målet i Azure Mašinsko učenje arbetsbelastningar (träning och modellinferens) har följande begränsningar:
- Tillgängligheten för förhandsversionsfunktioner i Azure Mašinsko učenje är inte garanterad.
- Identifierad begränsning: Modeller (inklusive den grundläggande modellen) från modellkatalogen och registret stöds inte på Kubernetes onlineslutpunkter.
Rekommenderade metodtips
Ansvarsfördelning mellan IT-driftsteamet och datavetenskapsteamet. Som vi nämnde i föregående avsnitt är det en komplex uppgift att hantera din egen beräkning och infrastruktur för ML-arbetsbelastningar. Det är bäst att göra det av IT-driftsteamet 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. Azure Mašinsko učenje implementerar instanstyp som Kubernetes anpassad resursdefinition (CRD) med egenskaper för nodeSelector och resursbegäran/gräns. Med en noggrant utvärderad lista över instanstyper kan IT-åtgärder rikta ML-arbetsbelastningar på specifika noder och hantera beräkningsresursanvändning effektivt.
Flera Azure-Mašinsko učenje-arbetsytor delar samma Kubernetes-kluster. Du kan koppla Kubernetes-klustret flera gånger till samma Azure-Mašinsko učenje-arbetsyta eller olika Azure-Mašinsko učenje-arbetsytor, vilket skapar flera beräkningsmål på en arbetsyta eller flera arbetsytor. Eftersom många kunder organiserar datavetenskapsprojekt i Azure Mašinsko učenje arbetsyta 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-klustret till Azure Mašinsko učenje 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.
KubernetesCompute och äldre AksCompute
Med Azure Mašinsko učenje CLI/Python SDK v1 kan du distribuera modeller på AKS med 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. I följande tabell visas de viktigaste skillnaderna:
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 för slutsatsdragning i realtid | Ingen utveckling av nya funktioner | Aktiv översikt |
Med dessa viktiga skillnader och övergripande Azure Mašinsko učenje utveckling för att använda SDK/CLI v2 rekommenderar Azure Mašinsko učenje 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.
Andra resurser
Exempel
Alla Azure Mašinsko učenje-exempel finns i https://github.com/Azure/azureml-examples.git.
För alla Azure-Mašinsko učenje exempel behöver du bara uppdatera beräkningsmålnamnet till ditt Kubernetes-beräkningsmål. Då är du klar.
- Utforska exempel på träningsjobb med CLI v2 – https://github.com/Azure/azureml-examples/tree/main/cli/jobs
- Utforska modelldistribution med onlineslutpunktsexempel med CLI v2 – https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/online/kubernetes
- Utforska batchslutpunktsexempel med CLI v2 – https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/batch
- Utforska exempel på träningsjobb med SDK v2 –https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs
- Utforska modelldistribution med onlineslutpunktsexempel med SDK v2 –https://github.com/Azure/azureml-examples/tree/main/sdk/python/endpoints/online/kubernetes