Was ist eine Azure Machine Learning-Komponente?

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

Eine Azure Machine Learning-Komponente ist ein eigenständiger Code, der einen Schritt in einer Machine Learning-Pipeline ausführt. Eine Komponente ist vergleichbar mit einer Funktion – sie besitzt einen Namen, Eingaben, Ausgaben und einen Textkörper. Komponenten sind die Bausteine der Azure Machine Learning-Pipelines.

Eine Komponente besteht aus drei Teilen:

  • Metadaten: Name, Anzeigename, Version, Typ usw.
  • Schnittstelle: Eingabe-/Ausgabespezifikationen (Name, Typ, Beschreibung, Standardwert usw.).
  • Befehl, Code und Umgebung: Der Befehl, der Code und die Umgebung, die zum Ausführen der Komponente erforderlich sind.

Diagram of what a component looks like and how it looks in a pipeline. In addition to screenshots of a component in the CLI, SDK, and portal UI.

Warum sollte ich eine Komponente verwenden?

Es ist bewährte Praxis, eine Machine Learning-Pipeline zu erstellen, um eine vollständige Machine Learning-Aufgabe in einen mehrstufigen Workflow aufzuteilen. Auf diese Weise kann dann jeder unabhängig an dem spezifischen Schritt arbeiten. In Azure Machine Learning stellt eine Komponente einen wiederverwendbaren Schritt in einer Pipeline dar. Komponenten sind so konzipiert, dass die Produktivität der Pipelineerstellung verbessert wird. Insbesondere bieten Komponenten:

  • Gut definierte Schnittstelle: Komponenten erfordern eine gut definierte Schnittstelle (Eingabe und Ausgabe). Die Schnittstelle ermöglicht es dem Benutzer, Schritte zu erstellen und Schritte einfach miteinander zu verbinden. Die Schnittstelle blendet auch die komplexe Logik eines Schritts aus und entfernt so die belastende Notwendigkeit, zu verstehen, wie der Schritt implementiert ist.

  • Freigeben und Wiederverwenden: Als Bausteine einer Pipeline können Komponenten einfach über Pipelines, Arbeitsbereiche und Abonnements hinweg freigegeben und wiederverwendet werden. Komponenten, die von einem Team erstellt wurden, können von einem anderen Team entdeckt und verwendet werden.

  • Versionskontrolle: Komponenten erhalten eine Versionsverwaltung. Die Komponentenhersteller können Komponenten weiter verbessern und neue Versionen veröffentlichen. Anwender können bestimmte Komponentenversionen in ihren Pipelines verwenden. Dadurch erreichen sie Kompatibilität und Reproduzierbarkeit.

Komponententestfähig: Eine Komponente ist ein eigenständiger Codeteil. Komponententests lassen sich einfach für eine Komponente schreiben.

Komponente und Pipeline

Eine Machine Learning-Pipeline ist der Workflow für eine vollständige Machine Learning-Aufgabe. Komponenten sind die Bausteine einer Azure Machine Learning-Pipeline. Wenn Sie an eine Komponente denken, muss dies im Kontext der Pipeline erfolgen.

Beim Erstellen von Komponenten definieren Sie als Erstes die Machine Learning-Pipeline. Dies erfordert die Aufschlüsselung der gesamten Machine Learning-Aufgabe in einen mehrstufigen Workflow. Jeder Schritt ist eine Komponente. Wenn Sie beispielsweise eine einfache Machine Learning-Aufgabe betrachten, bei der historische Daten zum Trainieren eines Verkaufsvorhersagemodells verwendet werden, sollten Sie einen sequenziellen Workflow mit Datenverarbeitungs-, Modelltrainings- und Modellbewertungsschritten erstellen. Für komplexe Aufgaben sollte die Aufschlüsselung noch detaillierter erfolgen. Teilen Sie beispielsweise einen einzelnen Datenverarbeitungsschritt in Datenerfassungs-, Datenbereinigungs-, Datenvorverarbeitungs- und Feature Engineering-Schritte auf.

Sind die Schritte im Workflow definiert, muss als Nächstes angegeben werden, wie jeder Schritt in der Pipeline verbunden ist. Wenn Sie beispielsweise Ihren Datenverarbeitungsschritt und den Modelltrainingsschritt verbinden möchten, sollten Sie eine Datenverarbeitungskomponente so definieren, dass sie einen Ordner ausgibt, der die verarbeiteten Daten enthält. Eine Trainingskomponente verwendet einen Ordner als Eingabe und gibt einen Ordner aus, der das trainierte Modell enthält. Diese Definition von Eingaben und Ausgaben wird Teil der Definition Ihrer Komponentenschnittstelle.

Jetzt ist es an der Zeit, den Code für die Ausführung eines Schritts zu entwickeln. Sie können Ihre bevorzugten Sprachen (Python, R usw.) verwenden. Der Code muss durch einen Shellbefehl ausgeführt werden können. Während der Entwicklung sollten Sie einige Eingaben hinzufügen, um zu kontrollieren, wie dieser Schritt ausgeführt werden soll. Beispielsweise können Sie für einen Trainingsschritt die Lerngeschwindigkeit und die Anzahl der Epochen als Eingaben zum Steuern des Trainings hinzufügen. Diese zusätzlichen Eingaben sowie die Eingaben und Ausgabe, die für die Verbindung mit anderen Schritten erforderlich sind, sind die Schnittstelle der Komponente. Das Argument eines Shellbefehls wird verwendet, um Eingaben und Ausgaben an den Code zu übergeben. Die Umgebung zum Ausführen des Befehls und des Codes muss angegeben werden. Die Umgebung könnte eine zusammengestellte Azure Machine Learning-Umgebung, ein Docker-Image oder eine Conda-Umgebung sein.

Schließlich können Sie alles zusammen, einschließlich Code, Befehl (cmd), Umgebung, Eingabe, Ausgaben und Metadaten, in eine Komponente packen. Verbinden Sie diese Komponenten dann miteinander, um Pipelines für Ihren Machine Learning-Workflow zu erstellen. Eine Komponente kann in mehreren Pipelines verwendet werden.

Weitere Informationen zum Erstellen einer Komponente finden Sie unter:

Nächste Schritte