Einführung in das Kubernetes-Computeziel in Azure Machine Learning

GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)

Mit der Azure Machine Learning CLI bzw. dem Python SDK v2 hat Azure Machine Learning ein neues Computeziel eingeführt: das Kubernetes-Computeziel. Sie können ganz einfach einen vorhandenen AKS-Cluster (Azure Kubernetes Service) oder Arc Kubernetes-Cluster (Kubernetes mit Azure Arc-Unterstützung) zu einem Kubernetes-Computeziel in Azure Machine Learning machen und dieses zum Trainieren oder Bereitstellen von Modellen verwenden.

Diagramm: Verknüpfung zwischen Azure Machine Learning und Kubernetes

In diesem Artikel lernen Sie Folgendes:

  • Funktionsweise
  • Verwendungsszenarios
  • Empfohlene bewährte Methoden
  • KubernetesCompute und Legacy-AksCompute

Funktionsweise

Azure Machine Learning-Kubernetes-Computeziele unterstützen zwei Arten von Kubernetes-Clustern:

  • AKS-Cluster in Azure. Mit Ihrem eigenen verwalteten AKS-Cluster in Azure haben Sie die Sicherheit und die Kontrollfunktionen, um Complianceanforderungen zu erfüllen, sowie die Flexibilität, um die ML-Workload von Teams zu verwalten.
  • Arc Kubernetes-Cluster außerhalb von Azure. Mit dem Arc Kubernetes-Cluster können Sie Modelle in jeder Infrastruktur lokal, über mehrere Clouds oder den Edge hinweg trainieren oder bereitstellen.

Mit einer einfachen Clustererweiterung in einem AKS- oder Arc Kubernetes-Cluster werden Kubernetes-Cluster in Azure Machine Learning nahtlos für Trainings- oder Rückschlussworkloads unterstützt. Mit den folgenden einfachen Schritten können Sie einen vorhandenen Kubernetes-Cluster für eine Azure Machine Learning-Workload aktivieren und verwenden:

  1. Bereiten Sie einen Azure Kubernetes Service-Cluster oder Arc Kubernetes-Cluster vor.
  2. Stellen Sie die Azure Machine Learning-Erweiterung bereit.
  3. Fügen Sie einen Kubernetes-Cluster an Ihren Azure Machine Learning-Arbeitsbereich an.
  4. Verwenden Sie das Kubernetes-Computeziel von CLI v2, SDK v2 und der Studio-Benutzeroberfläche.

IT-Betriebsteam. Das IT-Betriebsteam ist für die ersten drei Schritte verantwortlich: Vorbereiten eines AKS- oder Arc Kubernetes-Clusters, Bereitstellen der Azure Machine Learning-Clustererweiterung und Anfügen des Kubernetes-Clusters an den Azure Machine Learning-Arbeitsbereich. Zusätzlich zu diesen wesentlichen Schritten der Computeeinrichtung verwendet das IT-Betriebsteam auch vertraute Tools wie die Azure CLI oder kubectl, um die folgenden Aufgaben für das Data Science-Team zu erledigen:

  • Netzwerk- und Sicherheitskonfigurationen, z. B. ausgehende Proxyserververbindung oder Azure-Firewallkonfiguration, Einrichtung des Rückschlussrouters (azureml-fe), SSL/TLS-Abschluss und VNet-Konfiguration.
  • Erstellen und verwalten Sie Instanztypen für verschiedene ML-Workloadszenarien, und nutzen Sie Computeressourcen effizient.
  • Problembehandlung bei Workloadproblemen im Zusammenhang mit Kubernetes-Clustern.

Data Science-Team. Sobald das IT-Betriebsteam die Computeeinrichtung und die Erstellung von Computezielen abgeschlossen hat, findet das Data Science-Team eine Liste der verfügbaren Computeziele und Instanztypen im Azure Machine Learning-Arbeitsbereich. Diese Computeressourcen können für das Training oder für Rückschlüsse auf die Workload verwendet werden. Data Science gibt den Namen und den Instanztyp des Computeziels mithilfe der bevorzugten Tools oder APIs an. Diese Namen können beispielsweise „Azure Machine Learning CLI v2“, „Python SDK v2“ oder „Studio UI“ lauten.

Kubernetes-Verwendungsszenarien

Mit dem Arc Kubernetes-Cluster können Sie Modelle in jeder Infrastruktur lokal und über mehrere Clouds hinweg mithilfe von Kubernetes erstellen, trainieren und bereitstellen. Dies eröffnet einige neue Verwendungsmöglichkeiten, die bisher in der Cloudumgebung nicht möglich waren. Die folgende Tabelle enthält eine Zusammenfassung der neuen Verwendungsmuster, die durch das Azure Machine Learning-Kubernetes-Computeziel ermöglicht werden:

Nutzungsmuster Speicherort der Daten Motivation Infrastruktureinrichtung und Azure Machine Learning-Implementierung
Trainieren des Modells in der Cloud, lokale Bereitstellung des Modells Cloud Nutzen Sie die Cloudcompute-Instanz. Entweder wegen des Bedarfs an elastischen Compute-Instanzen oder spezieller Hardware wie einer GPU.
Das Modell muss aufgrund von Sicherheits-, Compliance- oder Wartezeitanforderungen lokal bereitgestellt werden.
1. Von Azure verwaltete Compute-Instanz in der Cloud.
2. Kundenseitig verwaltetes lokales Kubernetes.
3. Vollständig automatisierte MLOps im Hybridmodus, einschließlich Training und Bereitstellung von Modellen, die nahtlos von der Cloud zum lokalen Standort und umgekehrt übergehen.
4. Wiederholbar, wobei alle Ressourcen ordnungsgemäß nachverfolgt werden. Das Modell wird bei Bedarf neu trainiert, und die Modellimplementierung wird nach dem erneuten Training automatisch aktualisiert.
Trainieren des Modells lokal und in der Cloud, Bereitstellung sowohl in der Cloud als auch lokal Cloud Organisationen, die lokale Investitionen mit der Skalierbarkeit der Cloud kombinieren möchten. Bringen Sie Cloud und lokale Compute-Instanz unter einen Hut. Eine Single Source of Truth für Daten befindet sich in der Cloud und kann lokal repliziert werden (d. h. verzögert nach Bedarf oder proaktiv). Cloudcomputing wird in erster Linie dann verwendet, wenn lokale Ressourcen nicht zur Verfügung stehen (im Einsatz, Wartung) oder keine speziellen Hardwareanforderungen (GPU) aufweisen. 1. Von Azure verwaltete Compute-Instanz in der Cloud.
2. Kundenseitig verwaltetes lokales Kubernetes.
3. Vollständig automatisierte MLOps im Hybridmodus, einschließlich Training und Bereitstellung von Modellen, die nahtlos von der Cloud zum lokalen Standort und umgekehrt übergehen.
4. Wiederholbar, wobei alle Ressourcen ordnungsgemäß nachverfolgt werden. Das Modell wird bei Bedarf neu trainiert, und die Modellimplementierung wird nach dem erneuten Training automatisch aktualisiert.
Lokales Trainieren des Modells, Bereitstellung des Modells in der Cloud Lokal Die Daten müssen aufgrund der Anforderungen an die Datenresidenz lokal verbleiben.
Stellen Sie das Modell in der Cloud für den globalen Dienstzugriff oder für die Compute-Elastizität für Skalierung und Durchsatz bereit.
1. Von Azure verwaltete Compute-Instanz in der Cloud.
2. Kundenseitig verwaltetes lokales Kubernetes.
3. Vollständig automatisierte MLOps im Hybridmodus, einschließlich Training und Bereitstellung von Modellen, die nahtlos von der Cloud zum lokalen Standort und umgekehrt übergehen.
4. Wiederholbar, wobei alle Ressourcen ordnungsgemäß nachverfolgt werden. Das Modell wird bei Bedarf neu trainiert, und die Modellimplementierung wird nach dem erneuten Training automatisch aktualisiert.
Eigener AKS in Azure Cloud Mehr Sicherheit und Kontrollen.
Maschinelles Lernen als privates geistiges Eigentum, um Datenexfiltration zu verhindern.
1. AKS-Cluster hinter einem virtuellen Azure-Netzwerk
2. Erstellen Sie private Endpunkte im selben virtuellen Netzwerk für den Azure Machine Learning-Arbeitsbereich und die zugehörigen Ressourcen.
3. Vollständig automatisierte MLOps.
Vollständiger lokaler ML-Lebenszyklus Lokal Sichern Sie vertrauliche Daten oder urheberrechtlich geschütztes geistiges Eigentum, wie ML-Modelle und Code/Skripts. 1. Ausgehende lokale Proxyserververbindung.
2. Azure ExpressRoute und Azure Arc Private Link zu Azure-Ressourcen.
3. Kundenseitig verwaltetes lokales Kubernetes.
4. Vollständig automatisierte MLOps.

Begrenzungen

Für das KubernetesCompute-Ziel in Azure Machine Learning-Workloads (Training und Modellrückschluss) gelten folgende Einschränkungen:

  • Die Verfügbarkeit von Previewfunktionen in Azure Machine Learning ist nicht garantiert.
    • Bekannte Einschränkung: Modelle (einschließlich des Basismodells) aus dem Modellkatalog und Registrierung werden an Kubernetes-Onlineendpunkten nicht unterstützt.

Trennung der Zuständigkeiten zwischen dem IT-Betriebsteam und dem Data Science-Team. Wie im vorherigen Abschnitt erwähnt, ist die Verwaltung Ihrer Compute- und Infrastruktur für ML-Workloads eine komplexe Aufgabe. Das IT-Betriebsteam sollte diese erledigen, damit sich das Data-Science-Team auf ML-Modelle für die organisatorische Effizienz konzentrieren kann.

Erstellen und Verwalten von Instanztypen für verschiedene ML-Workloadszenarien. Jede ML-Workload verwendet unterschiedliche Mengen an Computeressourcen wie CPU/GPU und Arbeitsspeicher. Azure Machine Learning implementiert den Instanztyp als benutzerdefinierte Ressourcendefinition (Custom Resource Definition, CRD) von Kubernetes mit Eigenschaften für nodeSelector und Ressourcenanforderung/-limit. Mit einer sorgfältig kuratierten Liste der Instanztypen können IT-Vorgänge auf ML-Workloads auf bestimmten Knoten ausgerichtet werden und die Computeressourcenverwendung effizient verwalten.

Mehrere Azure Machine Learning-Arbeitsbereiche nutzen denselben Kubernetes-Cluster. Sie können Kubernetes-Cluster mehrmals an denselben Azure Machine Learning-Arbeitsbereich oder an verschiedene Azure Machine Learning-Arbeitsbereiche anfügen. Dabei werden mehrere Computeziele in einem oder mehreren Arbeitsbereichen erstellt. Da viele Kunden Data Science-Projekte in Azure Machine Learning-Arbeitsbereichen organisieren, können mehrere Data Science-Projekte jetzt denselben Kubernetes-Cluster nutzen. Dies verringert den ML-Infrastrukturverwaltungsaufwand deutlich und sorgt für IT-Kosteneinsparungen.

Isolation von Team-/Projektworkload mithilfe des Kubernetes-Namespace. Wenn Sie einen Kubernetes-Cluster an einen Azure Machine Learning-Arbeitsbereich anfügen, können Sie einen Kubernetes-Namespace für das Computeziel angeben. Alle vom Computeziel ausgeführten Workloads werden unter dem angegebenen Namespace platziert.

KubernetesCompute und Legacy-AksCompute

Mit der Azure Machine Learning CLI bzw. dem Python SDK v1 können Sie Modelle unter Verwendung des Ziels „AksCompute“ in AKS bereitstellen. Sowohl das KubernetesCompute-Ziel als auch das AksCompute-Ziel unterstützen die AKS-Integration, allerdings auf unterschiedliche Weise. In der folgenden Tabelle sind die wichtigsten Unterschiede aufgeführt:

Funktionen AKS-Integration mit AksCompute (Legacy) AKS-Integration mit KubernetesCompute
CLI/SDK v1 Ja Nein
CLI/SDK v2 Nein Ja
Training Nein Ja
Echtzeitrückschluss Ja Ja
Batchrückschluss Nein Ja
Neue Features für den Rückschluss in Echtzeit Keine Entwicklung neuer Features Aktive Roadmap

Aufgrund dieser wesentlichen Unterschiede und der allgemeinen Entwicklung von Azure Machine Learning hin zur Verwendung von SDK/CLI v2 empfiehlt sich die Verwendung des Kubernetes-Computeziels zum Bereitstellen von Modellen, wenn Sie AKS für die Modellimplementierung verwenden möchten.

Weitere Ressourcen

Beispiele

Alle Azure Machine Learning-Beispiele finden Sie unter https://github.com/Azure/azureml-examples.git.

Sie müssen für jedes Azure Machine Learning-Beispiel lediglich den Namen des Computeziels in Ihr Kubernetes-Computeziel ändern – das ist alles.

Nächste Schritte