Tutorial: Trainieren und Bereitstellen eines Azure Machine Learning-Modells
Gilt für: IoT Edge 1.1
Wichtig
IoT Edge 1.1: Datum für das Supportende war der 13. Dezember 2022. Informationen zur Unterstützung für dieses Produkt, diesen Dienst, diese Technologie oder diese API finden Sie in der Microsoft Lifecycle-Richtlinie. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Update IoT Edge.
In diesem Artikel führen Sie die folgenden Aufgaben aus:
- Trainieren eines Machine Learning-Modells mithilfe von Azure Machine Learning Studio
- Packen des trainierten Modells als Containerimage
- Bereitstellen des Containerimages als Azure IoT Edge-Modul
Machine Learning Studio ist eine grundlegende Komponente für das Experimentieren, Trainieren und Bereitstellen von Machine Learning-Modellen.
Normalerweise werden die Schritte in diesem Artikel von Data Scientists ausgeführt.
In diesem Abschnitt des Tutorials lernen Sie Folgendes:
- Erstellen von Jupyter-Notebooks in einem Azure Machine Learning-Arbeitsbereich zum Trainieren eines Machine Learning-Modells
- Containerisieren des trainiertes Machine Learning-Modells
- Erstellen eines IoT Edge-Moduls auf der Grundlage des containerisierten Machine Learning-Modells
Voraussetzungen
Dieser Artikel ist Teil einer Tutorialreihe zur Verwendung von Machine Learning für IoT Edge. Jeder Artikel in der Reihe baut auf der Arbeit im vorherigen Artikel auf. Wenn Sie diesen Artikel direkt aufgerufen haben, wechseln Sie zum ersten Artikel in der Reihe.
Einrichten von Azure Machine Learning
Wir verwenden Machine Learning Studio, um die beiden Jupyter-Notebooks und die unterstützenden Dateien zu hosten. Hier erstellen und konfigurieren wir ein Azure Machine Learning-Projekt. Wenn Sie Jupyter oder Machine Learning Studio noch nicht verwendet haben, lesen Sie diese beiden Einführungsdokumente:
- Jupyter Notebook: Arbeiten mit Jupyter-Notebooks in Visual Studio Code
- Azure Machine Learning: Tutorial: Machen Sie sich mit den ersten Schritten mit Azure Machine Learning in Jupyter-Notebooks vertraut
Hinweis
Sobald der Dienst eingerichtet ist, kann von jedem Computer aus auf Machine Learning zugegriffen werden. Während der Einrichtung sollten Sie den virtuellen Entwicklungscomputer nutzen, auf dem alle benötigten Dateien vorhanden sind.
Installieren der Azure Machine Learning-Erweiterung für Visual Studio Code
Diese Erweiterung für Visual Studio Code muss auf dem virtuellen Entwicklungscomputer installiert sein. Wenn Sie eine andere Instanz ausführen, installieren Sie die Erweiterung erneut, wie unter Einrichten der Azure Machine Learning-Erweiterung für Visual Studio Code beschrieben.
Erstellen eines Azure Machine Learning-Kontos
Um in Azure Ressourcen bereitzustellen und Workloads auszuführen, melden Sie sich mit Ihren Anmeldeinformationen für Ihr Azure-Konto an.
Öffnen Sie in Visual Studio Code die Befehlspalette, indem Sie auf der Menüleiste Ansicht>Befehlspalette auswählen.
Geben Sie in der Befehlspalette den Befehl
Azure: Sign In
ein, um den Anmeldeprozess zu starten. Folgen Sie den Anweisungen, um die Anmeldung abzuschließen.Erstellen Sie eine Machine Learning-Compute-Instanz, um die Workload auszuführen. Geben Sie in der Befehlspalette den Befehl
Azure ML: Create Compute
ein.Wählen Sie Ihr Azure-Abonnement.
Wählen Sie + Neuen Azure ML-Arbeitsbereich erstellen aus, und geben Sie den Namen turbofandemo ein.
Wählen Sie die Ressourcengruppe aus, die Sie für diese Demo verwendet haben.
Der Status der Arbeitsbereichserstellung wird in der unteren rechten Ecke des Visual Studio Code-Fensters angezeigt: Arbeitsbereich wird erstellt: turbofandemo. Dieser Schritt kann einige Minuten dauern.
Warten Sie, bis der Arbeitsbereich erstellt wurde. Die Meldung Azure ML workspace turbofandemo created (Der Azure ML-Arbeitsbereich 'turbofandemo' wurde erstellt.) sollte angezeigt werden.
Hochladen von Jupyter Notebook-Dateien
Wir laden Beispiel-Notebook-Dateien in einen neuen Machine Learning-Arbeitsbereich hoch.
Wechseln Sie zu ml.azure.com, und melden Sie sich an.
Wählen Sie Ihr Microsoft-Verzeichnis, Ihr Azure-Abonnement und den neu erstellten Machine Learning-Arbeitsbereich aus.
Nachdem Sie sich beim Machine Learning-Arbeitsbereich angemeldet haben, wechseln Sie über das Menü auf der linken Seite zum Abschnitt Notebooks.
Wählen Sie die Registerkarte Eigene Dateien aus.
Wählen Sie Hochladen (Pfeil nach oben) aus.
Wechseln Sie zu C:\source\IoTEdgeAndMlSample\AzureNotebooks. Wählen Sie alle Dateien in der Liste aus, und klicken Sie auf Öffnen.
Aktivieren Sie das Kontrollkästchen Ich vertraue dem Inhalt dieser Dateien.
Wählen Sie Hochladen aus, um mit dem Upload zu beginnen. Wenn der Prozess abgeschlossen ist, wählen Sie Fertig aus.
Jupyter Notebook-Dateien
Sehen wir uns die Dateien einmal genauer an, die Sie in Ihren Machine Learning-Arbeitsbereich hochgeladen haben. Die Aktivitäten in diesem Teil des Tutorials umfassen zwei Notebook-Dateien, die einige unterstützende Dateien verwenden.
01-turbofan_regression.ipynb: Dieses Notebook verwendet den Machine Learning-Arbeitsbereich zum Erstellen und Ausführen eines Machine Learning-Experiments. Mit dem Notebook werden im Allgemeinen die folgenden Schritte ausgeführt:
- Herunterladen von Daten aus dem Azure Storage-Konto, das von der Geräteumgebung erstellt wurde
- Untersucht die Daten, bereitet sie vor und verwendet sie dann zum Trainieren des Klassifizierungsmodells.
- Wertet das Modell aus dem Experiment mithilfe eines Testdatasets („Test_FD003.txt“) aus.
- Veröffentlicht das beste Klassifizierungsmodell im Machine Learning-Arbeitsbereich.
02-turbofan_deploy_model.ipynb: Dieses Notebook verwendet das im vorherigen Notebook erstellte Modell für die Erstellung eines Containerimages, das für die Bereitstellung auf einem IoT Edge-Gerät bereit ist. Mit diesem Notebook werden die folgenden Schritte ausgeführt:
- Erstellen eines Bewertungsskripts für das Modell
- Erstellt ein Containerimage mithilfe des Klassifizierungsmodells, das im Machine Learning-Arbeitsbereich gespeichert wurde.
- Stellt das Image als Webdienst in Azure Container Instances bereit.
- Verwenden des Webdiensts zum Überprüfen, ob das Modell und das Image wie erwartet funktionieren Das überprüfte Image wird im Teil Erstellen und Bereitstellen von benutzerdefinierten IoT Edge-Modulen dieses Tutorials auf unserem IoT Edge-Gerät bereitgestellt.
Test_FD003.txt: Diese Datei enthält die Daten, die wir beim Überprüfen unseres trainierten Klassifizierers als Testsatz verwenden. Der Einfachheit halber haben wir die Testdaten so genutzt, wie sie ursprünglich bereitgestellt wurden.
RUL_FD003.txt: Diese Datei enthält die verbleibende Nutzungsdauer (Remaining Useful Life, RUL) für den letzten Zyklus jedes Geräts in der Datei „Test_FD003.txt“. Die Dateien „readme.txt“ und „Damage Propagation Modeling.pdf“ unter „C:\source\IoTEdgeAndMlSample\data\Turbofan“ enthalten eine ausführliche Beschreibung der Daten.
Utils.py: Enthält eine Reihe von Python-Hilfsfunktionen für die Arbeit mit Daten. Das erste Notebook enthält eine ausführliche Beschreibung der Funktionen.
README.md: Diese Datei beschreibt die Verwendung der Notebooks.
Ausführen der Jupyter-Notebooks
Der Arbeitsbereich wurde erstellt, und Sie können nun die Notebooks ausführen.
Wählen Sie auf der Seite Eigene Dateien die Option 01-turbofanregression.ipynb aus.
Falls das Notebook als Nicht vertrauenswürdig aufgeführt ist, wählen Sie oben rechts im Notebook das Widget Nicht vertrauenswürdig aus. Wenn das Dialogfeld angezeigt wird, wählen Sie Vertrauen aus.
Lesen Sie die Dokumentation für jede Zelle, und führen Sie sie einzeln aus, um optimale Ergebnisse zu erzielen. Wählen Sie auf der Symbolleiste Ausführen aus. Später ist es zweckdienlich, mehrere Zellen auszuführen. Sie können Upgrade- und Ablaufwarnungen ignorieren.
Wenn eine Zelle ausgeführt wird, wird dafür ein Sternchen zwischen eckigen Klammern angezeigt ([*]). Wenn der Vorgang für die Zelle abgeschlossen ist, wird das Sternchen durch eine Zahl ersetzt und ggf. die relevante Ausgabe angezeigt. Die Zellen in einem Notebook werden nacheinander erstellt, und es kann jeweils nur eine Zelle ausgeführt werden.
Sie können auch Ausführungsoptionen im Menü Zelle verwenden. Drücken Sie STR+EINGABETASTE, um eine Zelle auszuführen, und UMSCHALTTASTE+EINGABETASTE, um eine Zelle auszuführen und mit der nächsten Zelle fortzufahren.
Tipp
Führen Sie das gleiche Notebook nicht auf mehreren Tabs im Browser aus, um konsistente Zellvorgänge zu gewährleisten.
Geben Sie die Werte für Ihr Azure-Abonnement, die Einstellungen und die Ressourcen in die Zelle nach den Anweisungen Globale Eigenschaften festlegen ein. Führen Sie anschließend die Zelle aus.
Suchen Sie nach der Ausführung in der Zelle vor den Details zum Arbeitsbereich nach dem Link, der Sie anweist, sich zur Authentifizierung anzumelden.
Öffnen Sie den Link, und geben Sie den angegebenen Code ein. Dieses Anmeldeverfahren authentifiziert das Jupyter-Notebook für den Zugriff auf Azure-Ressourcen unter Verwendung der plattformübergreifenden Microsoft Azure-Befehlszeilenschnittstelle.
Kopieren Sie in der Zelle vor Untersuchen der Ergebnisse den Wert der Ausführungs-ID, und fügen Sie ihn für die Ausführungs-ID in die Zelle nach Wiederherstellen einer Ausführung ein.
Führen Sie die übrigen Zellen im Notebook aus.
Speichern Sie das Notebook, und kehren Sie zur Projektseite zurück.
Öffnen Sie 02-turbofan_deploy_model.ipynb, und führen Sie die einzelnen Zellen aus. Zur Authentifizierung müssen Sie sich in der Zelle nach Konfigurieren des Arbeitsbereichs anmelden.
Speichern Sie das Notebook, und kehren Sie zur Projektseite zurück.
Überprüfen des erfolgreichen Abschlusses
Überprüfen Sie, ob Elemente erstellt wurden, um sich zu vergewissern, dass die Notebooks erfolgreich abgeschlossen wurden.
Klicken Sie auf der Registerkarte Meine Dateien des Machine Learning-Notebooks auf Aktualisieren.
Überprüfen Sie, ob die folgenden Dateien erstellt wurden.
Datei BESCHREIBUNG ./aml_config/.azureml/config.json Die zum Erstellen des Machine Learning-Arbeitsbereichs verwendete Konfigurationsdatei. ./aml_config/model_config.json Die Konfigurationsdatei, die Sie zum Bereitstellen des Modells im Machine Learning-Arbeitsbereich turbofanDemo in Azure benötigen. myenv.yml Diese Datei enthält Informationen zu den Abhängigkeiten für das bereitgestellte Machine Learning-Modell. Überprüfen Sie, ob die folgenden Azure-Ressourcen erstellt wurden. An einige Ressourcennamen werden zufällig gewählte Zeichen angefügt.
Azure-Ressource Name Azure Machine Learning-Arbeitsbereich turborfanDemo Azure Container Registry turbofandemoxxxxxxxx Application Insights turbofaninsightxxxxxxxx Azure-Schlüsseltresor turbofankeyvaultbxxxxxxxx Azure Storage turbofanstoragexxxxxxxxx
Debuggen
Sie können Python-Anweisungen zum Debuggen in das Notebook einfügen, etwa den Befehl print()
zum Anzeigen von Werten. Wenn nicht definierte Variablen oder Objekte angezeigt werden, führen Sie die Zellen aus, in denen sie zum ersten Mal deklariert oder instanziiert werden.
Möglicherweise müssen Sie zuvor erstellte Dateien und Azure-Ressourcen löschen, falls Sie die Notebooks wiederholen müssen.
Bereinigen von Ressourcen
Dieses Tutorial ist Teil einer Reihe, in der jeder Artikel auf den Schritten aufbaut, die jeweils im vorherigen Artikel ausgeführt wurden. Warten Sie mit dem Bereinigen von Ressourcen, bis Sie das letzte Tutorial abgeschlossen haben.
Nächste Schritte
In diesem Artikel haben wir zwei in Machine Learning Studio ausgeführte Jupyter-Notebooks verwendet, um mithilfe der Daten aus den Triebwerksgeräten folgende Aktionen durchzuführen:
- Trainieren eines RUL-Klassifizierers
- Speichern des Klassifizierers als Modell
- Erstellen eines Containerimages
- Bereitstellen und Testen des Images als Webdienst
Fahren Sie mit dem nächsten Artikel fort, um ein IoT Edge-Gerät zu erstellen.