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)
Die Azure Machine Learning-Befehlszeilenschnittstelle und das Python SDK v2 unterstützen Kubernetes-Computeziele. Sie können einen bestehenden AKS-Cluster (Azure Kubernetes Service) oder Arc Kubernetes-Cluster (Kubernetes mit Azure Arc-Unterstützung) zu einem Kubernetes-Computeziel machen. Verwenden Sie die Computeressource in Machine Learning, um Modelle zu trainieren oder bereitzustellen.
In diesem Artikel wird beschrieben, wie Sie das Kubernetes-Computeziel in Machine Learning verwenden, und es werden Anwendungsszenarien und empfohlene bewährte Methoden beschrieben. Außerdem finden Sie hier einen Vergleich der von KubernetesCompute
und AksCompute
-Legacyzielen.
Funktionsweise des Kubernetes-Computeziels
Azure Machine Learning-Kubernetes-Computeziele unterstützen zwei Typen von Kubernetes-Clustern.
Compute | Standort | Beschreibung |
---|---|---|
AKS-Cluster | Innerhalb von Azure | Mit Ihrem eigenen verwalteten AKS-Cluster in Azure verfügen Sie die Sicherheits- und Kontrollfunktionen, um Complianceanforderungen zu erfüllen, sowie die Flexibilität, um die ML-Workload Ihrer 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 hinweg oder am Edge trainieren oder bereitstellen. |
Mit einer einfachen Clustererweiterung in einem AKS- oder Arc Kubernetes-Cluster werden Kubernetes-Cluster in Machine Learning nahtlos für Trainings- oder Rückschlussworkloads unterstützt. Mit der folgenden Vorgehensweise können Sie einen vorhandenen Kubernetes-Cluster für eine Machine Learning-Workload aktivieren und verwenden:
Schritt 1: Bereiten Sie einen Azure Kubernetes Service-Cluster oder Arc Kubernetes-Cluster vor.
Schritt 2: Stellen Sie die Azure Machine Learning-Clustererweiterung bereit.
Schritt 3: Fügen Sie einen Kubernetes-Cluster an Ihren Azure Machine Learning-Arbeitsbereich an.
Schritt 4: Verwenden Sie das Kubernetes-Computeziel in der Befehlszeilenschnittstelle v2, im SDK v2 oder auf der Benutzeroberfläche von Azure Machine Learning Studio.
Die Aufgaben in diesem Prozess sind wie folgt verteilt:
Das IT-Betriebsteam ist für die Schritte 1, 2 und 3 verantwortlich. Dieses Team bereitet einen AKS- oder Arc Kubernetes-Cluster vor, stellt die Machine Learning-Clustererweiterung bereit und fügt den Kubernetes-Cluster an den Machine Learning-Arbeitsbereich an. Zusätzlich zu diesen wichtigen Schritten der Computeeinrichtung verwendet das IT-Betriebsteam auch vertraute Tools wie die Azure-Befehlszeilenschnittstelle oder kubectl, um die folgenden Aufgaben für das Data Science-Team zu erledigen:
Konfigurieren Sie Netzwerk- und Sicherheitsfunktionen, z. B. ausgehende Proxyserververbindung oder Azure Firewall, das Setup des Rückschlussrouters (azureml-fe), SSL/TLS-Abschluss und das VNet-Setup.
Erstellen und verwalten Sie Instanztypen für verschiedene Machine Learning-Workloadszenarien, und nutzen Sie Computeressourcen effizient.
Beheben Sie Workloadprobleme im Zusammenhang mit Kubernetes-Clustern.
Das Data Science-Team beginnt seine Aufgaben, nachdem das IT-Betriebsteam das Computesetup und die Erstellung der Computeziele abgeschlossen hat. Dieses Team ermittelt eine Liste der verfügbaren Computeziele und Instanztypen im Machine Learning-Arbeitsbereich. Diese Computeressourcen können für die Workload für das Training oder Rückschlüsse verwendet werden. Das Data Science-Team gibt den Namen für das Computeziel und den Instanztyp mithilfe der bevorzugten Tools oder APIs an. Es kann dazu die Azure Machine Learning CLI v2, das Python SDK v2 oder die Benutzeroberfläche von Machine Learning Studio verwenden.
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. Diese Strategie eröffnet einige neue Verwendungsmöglichkeiten, die bisher in einer 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 | Ziele und Anforderungen | Szenariokonfiguration |
---|---|---|---|
Trainieren des Modells in der Cloud, lokale Bereitstellung des Modells | Cloud | Verwenden Sie Cloudcomputing, um flexible Computeanforderungen oder spezielle Hardware wie eine GPU zu unterstützen. Die Modellimplementierung muss für Sicherheits-, Compliance- oder Latenzanforderungen lokal sein. |
- Von Azure verwaltete Computeressourcen in der Cloud - Kundenseitig verwaltetes lokales Kubernetes - Vollautomatisierte Machine Learning Operations im Hybridmodus, einschließlich Schritten für Training und Modellimplementierung, die nahtlos zwischen Cloud und lokal wechseln - Der Vorgang ist wiederholbar. Alle Ressourcen werden ordnungsgemäß nachverfolgt, das Modell wird nach Bedarf neu trainiert, und die Bereitstellung wird nach dem erneuten Training automatisch aktualisiert. |
Trainieren des Modells lokal und in der Cloud, Bereitstellung sowohl in der Cloud als auch lokal | Cloud | Kombinieren Sie lokale Investitionen mit der Skalierbarkeit der Cloud. Bringen Sie Cloud- und lokale Compute-Instanzen unter einen Hut. Greifen Sie für Daten in der Cloud auf eine Single Source of Truth zu, und replizieren Sie diese lokal (verzögert bei Verwendung oder proaktiv). Aktivieren Sie Cloudcomputing in erster Linie dann, wenn lokale Ressourcen nicht zur Verfügung stehen (im Einsatz oder bei einer Wartung) oder wenn sie spezielle Hardwareanforderungen (GPU) nicht erfüllen. |
- Von Azure verwaltete Computeressourcen in der Cloud Kundenseitig verwaltetes lokales Kubernetes - Vollautomatisierte Machine Learning Operations im Hybridmodus, einschließlich Schritten für Training und Modellimplementierung, die nahtlos zwischen Cloud und lokal wechseln - Der Vorgang ist wiederholbar. Alle Ressourcen werden ordnungsgemäß nachverfolgt, das Modell wird nach Bedarf neu trainiert, und die Bereitstellung wird nach dem erneuten Training automatisch aktualisiert. |
Lokales Trainieren des Modells, Bereitstellung des Modells in der Cloud | Lokal | Speichern Sie Daten lokal, um die Anforderungen an die Datenresidenz zu erfüllen. Stellen Sie das Modell in der Cloud bereit, um Zugriff auf globale Dienste zu ermöglichen oder die Flexibilität der Cloud bei Skalierung und Durchsatz zu nutzen. |
- Von Azure verwaltete Computeressourcen in der Cloud - Kundenseitig verwaltetes lokales Kubernetes - Vollautomatisierte Machine Learning Operations im Hybridmodus, einschließlich Schritten für Training und Modellimplementierung, die nahtlos zwischen Cloud und lokal wechseln - Der Vorgang ist wiederholbar. Alle Ressourcen werden ordnungsgemäß nachverfolgt, das Modell wird nach Bedarf neu trainiert, und die Bereitstellung wird nach dem erneuten Training automatisch aktualisiert. |
Eigener AKS in Azure | Cloud | Erzielen Sie mehr Sicherheit und Steuerungsmöglichkeiten. Richten Sie maschinelles Lernen als privates geistiges Eigentum ein, um Datenexfiltration zu verhindern. |
- AKS-Cluster hinter einem virtuellen Azure-Netzwerk - Private Endpunkte im selben virtuellen Netzwerk für den Azure Machine Learning-Arbeitsbereich und die zugehörigen Ressourcen Vollautomatisierte Machine Learning Operations |
Vollständig lokaler Machine Learning-Lebenszyklus | Lokal | Schützen Sie vertrauliche Daten oder proprietäres geistiges Eigentum, z. B. Machine Learning-Modelle, Code und Skripts. | - Ausgehende lokale Proxyserververbindung - Azure ExpressRoute und private Azure Arc-Verknüpfung mit Azure-Ressourcen - Kundenseitig verwaltetes lokales Kubernetes - Vollautomatisierte Machine Learning Operations |
Einschränkungen für Kubernetes-Computeziele
Für ein KubernetesCompute
-Ziel in Azure Machine Learning-Workloads (Training und Modellinferenz) gelten folgende Einschränkungen:
- Die Verfügbarkeit von Previewfunktionen in Azure Machine Learning ist nicht garantiert.
- Modelle (einschließlich des Basismodells) aus dem Modellkatalog und der Registrierung werden an Kubernetes-Onlineendpunkten nicht unterstützt.
- Für das Erstellen einer Modellinferenzbereitstellung innerhalb des Clusters gilt ein Timeoutgrenzwert von 20 Minuten. Dies umfasst das Herunterladen des Bilds, das Herunterladen des Modells und das Initialisieren der Benutzerskripts.
Empfohlene bewährte Methoden
In diesem Abschnitt werden die empfohlenen bewährten Methoden für die Verwendung mit einem Kubernetes-Computeziel zusammengefasst.
Trennung der Zuständigkeiten zwischen dem IT-Betriebsteam und dem Data Science-Team. Wie bereits beschrieben, ist die Verwaltung Ihrer eigenen Computeressourcen und Infrastruktur für Machine Learning-Workloads eine komplexe Aufgabe. Der beste Ansatz aus Sicht der organisatorischen Effizienz besteht darin, die Aufgabe durch das IT-Betriebsteam erledigen zu lassen, damit sich das Data Science-Team auf Machine Learning-Modelle konzentrieren kann.
Erstellen und verwalten Sie Instanztypen für unterschiedliche Szenarien mit Machine Learning-Workloads. Jede Machine Learning-Workload verwendet unterschiedliche Mengen an Computeressourcen wie CPU/GPU und Arbeitsspeicher. Azure Machine Learning implementiert den Instanztyp als benutzerdefinierte Kubernetes-Ressourcendefinition (CRD) mit Eigenschaften für nodeSelector
und resource request/limit
. Mit einer sorgfältig kuratierten Liste von Instanztypen können IT-Vorgänge auf Machine Learning-Workloads auf bestimmten Knoten ausgerichtet werden, um den Verbrauch von Computeressourcen effizient zu verwalten.
Mehrere Azure Machine Learning-Arbeitsbereiche nutzen denselben Kubernetes-Cluster. Sie können einen Kubernetes-Cluster mehrmals an denselben Machine Learning-Arbeitsbereich oder an verschiedene Arbeitsbereiche anfügen. Bei diesem Prozess werden mehrere Computeziele in einem einzelnen Arbeitsbereich oder in mehreren Arbeitsbereichen erstellt. Da viele Kunden Data Science-Projekte in Machine Learning-Arbeitsbereichen organisieren, können mehrere Data Science-Projekte jetzt denselben Kubernetes-Cluster nutzen. Durch diesen Ansatz wird der Verwaltungsaufwand für die Machine Learning-Infrastruktur erheblich reduziert und Kosten für die IT eingespart.
Isolation von Team-/Projektworkload mithilfe des Kubernetes-Namespace. Wenn Sie einen Kubernetes-Cluster an einen 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.
Vergleich von KubernetesCompute- und AksCompute-Legacyzielen
Mit der Azure Machine Learning-Befehlszeilenschnittstelle oder dem Python SDK v1 können Sie Modelle mithilfe des AksCompute
-Legacyziels in AKS bereitstellen. Die beiden Ziele KubernetesCompute
und AksCompute
unterstützen die AKS-Integration, aber der Supportansatz unterscheidet sich. In der folgenden Tabelle sind die wichtigsten Unterschiede zusammengefasst:
Funktion | AksCompute (Legacy) | KubernetesCompute |
---|---|---|
Verwenden von Befehlszeilenschnittstelle/SDK v1 | Ja | No |
Verwenden von Befehlszeilenschnittstelle/SDK v2 | No | Ja |
Einrichten des Trainings | No | Ja |
Anwenden von Echtzeitrückschlüssen | Ja | Ja |
Anwenden von Batchrückschlüssen | No | Ja |
Zugriff auf neue Features für die Echtzeitrückschlüsse | Keine Entwicklung neuer Features | Aktive Roadmap verfügbar |
In Anbetracht dieser Unterschiede und der allgemeinen Entwicklung beim maschinellen Lernen hin zur Verwendung von v2 der Befehlszeilenschnittstelle oder des SDK besteht der empfohlene Ansatz darin, das Kubernetes-Computeziel (KubernetesCompute
) für die AKS-Modellimplementierung zu verwenden.
Weitere Informationen finden Sie in den folgenden Artikeln:
- Überprüfen der unterstützten Kubernetes-Versionen und -Regionen
- Verbinden von Machine Learning-Aufträgen mit benutzerdefinierten Datenspeichern
Beispiele für Machine Learning
Beispiele für maschinelles Lernen sind im Repository für Azure Machine Learning (azureml-examples) auf GitHub verfügbar. Ersetzen Sie in den Beispielen den Namen des Computeziels durch Ihr Kubernetes-Computeziel, und führen Sie das Beispiel dann aus.
Sie haben mehrere Möglichkeiten:
- Beispiele für Trainingsaufträge mit der Befehlszeilenschnittstelle v2
- Beispiele für Trainingsaufträge mit dem SDK v2
- Beispiele für die Modellimplementierung mit einem Onlineendpunkt und der Befehlszeilenschnittstelle v2
- Beispiele für die Modellimplementierung mit einem Onlineendpunkt und dem SDK v2
- Beispiele für Batchendpunkte mit der Befehlszeilenschnittstelle v2