Tutorial – Bereitstellen eines Machine Learning-Modells mit dem Designer

Verwenden Sie den Designer, für die Bereitstellung eines Machine Learning-Modells, um den Preis von Autos vorherzusagen. Dieses Tutorial ist der zweite Teil einer zweiteiligen Reihe.

Hinweis

Der Designer unterstützt zwei Komponententypen: klassische vorkonfigurierte Komponenten (v1) und benutzerdefinierte Komponenten (v2). Diese beiden Komponententypen sind NICHT kompatibel.

Klassische vorkonfigurierte Komponenten bieten vordefinierte Komponenten, die vor allem für die Datenverarbeitung und für herkömmliche Machine Learning-Aufgaben wie Regression und Klassifizierung genutzt werden. Dieser Komponententyp wird weiterhin unterstützt, aber es werden keine neuen Komponenten hinzugefügt.

Benutzerdefinierte Komponenten ermöglichen es Ihnen, Ihren eigenen Code als Komponente bereitzustellen. Sie unterstützen die arbeitsbereichübergreifende Freigabe und die reibungslose Erstellung über Studio-, CLI (v2)- und SDK (v2)-Schnittstellen.

Für neue Projekte wird dringend empfohlen, eine benutzerdefinierte Komponente zu verwenden, die mit AzureML V2 kompatibel ist und weiterhin neue Updates erhält.

Dieser Artikel gilt für klassische vordefinierte Komponenten und ist nicht mit CLI v2 und SDK v2 kompatibel.

Im Teil des Tutorials haben Sie Training für ein lineares Regressionsmodell für Autopreise erhalten. In Teil 2 stellen Sie das Modell bereit, um anderen die Möglichkeit zu geben, es zu verwenden. In diesem Tutorial:

  • Erstellen einer Echtzeit-Rückschlusspipeline
  • Erstellen eines Rückschlussclusters
  • Bereitstellen des Echtzeitendpunkts
  • Testen des Echtzeitendpunkts

Voraussetzungen

Absolvieren Sie den ersten Teil des Tutorials, um zu erfahren, wie Sie im Designer ein Machine Learning-Modell trainieren und bewerten.

Wichtig

Falls die in diesem Dokument erwähnten grafischen Elemente bei Ihnen nicht angezeigt werden, z. B. Schaltflächen in Studio oder Designer, verfügen Sie unter Umständen nicht über die richtige Berechtigungsebene. Wenden Sie sich an Ihren Azure-Abonnementadministrator, um sich zu vergewissern, dass Ihnen die richtige Zugriffsebene gewährt wurde. Weitere Informationen finden Sie unter Verwalten von Benutzern und Rollen.

Erstellen einer Echtzeit-Rückschlusspipeline

Zum Bereitstellen Ihrer Pipeline müssen Sie zunächst die Trainingspipeline in eine Echtzeit-Rückschlusspipeline konvertieren. Dadurch werden die Trainingskomponenten entfernt und Webdiensteingaben und -ausgaben für die Verarbeitung von Anforderungen hinzugefügt.

Hinweis

Das Erstellen einer Rückschlusspipeline unterstützt nur Trainingspipelines, die nur die im Designer integrierten Komponenten enthalten und über eine Komponente wie Modell trainieren verfügen müssen, die das trainierte Modell ausgibt.

Erstellen einer Echtzeit-Rückschlusspipeline

  1. Wählen Sie auf der Seite mit den Pipelineauftragsdetails oberhalb der Pipelinecanvas die Optionen Rückschlusspipeline erstellen>Echtzeit-Rückschlusspipeline.

    Screenshot: Pipeline zum Erstellen von Rückschlüssen auf der Seite mit den Details zum Pipelineauftrag

    Ihre neue Pipeline sieht nun wie folgt aus:

    Screenshot der erwarteten Pipelinekonfiguration nach Vorbereitung der Bereitstellung

    Wenn Sie Rückschlusspipeline erstellen auswählen, passiert Folgendes:

    • Das trainierte Modell wird als Komponente Dataset in der Komponentenpalette gespeichert. Sie finden es unter My Datasets (Meine Datasets).
    • Trainingskomponenten wie Modell trainieren und Daten aufteilen werden entfernt.
    • Das gespeicherte trainierte Modell wird wieder der Pipeline hinzugefügt.
    • Die Komponenten Webdiensteingabe und Webdienstausgabe werden hinzugefügt. Diese Komponenten zeigen, wo Benutzerdaten in die Pipeline gelangen und wo sie zurückgegeben werden.

    Hinweis

    Standardmäßig erwartet die Webdiensteingabe dasselbe Datenschema wie die Komponentenausgabedaten, die eine Verbindung mit demselben Downstreamport herstellen. In diesem Beispiel stellen Webdiensteingabe und Automobilpreisdaten (Rohdaten) eine Verbindung mit demselben Downstreammodul her. Daher erwartet Webdiensteingabe dasselbe Datenschema wie Automobilpreisdaten (Rohdaten) , und die Zielvariablenspalte price ist im Schema enthalten. Wenn Sie die Daten bewerten, sind Ihnen jedoch normalerweise die Zielvariablenwerte nicht bekannt. In diesem Fall können Sie die Zielvariablenspalte in der Rückschlusspipeline mithilfe der Komponente Spalten im Dataset auswählen entfernen. Stellen Sie sicher, dass die Ausgabe von Spalten im Dataset auswählen, die die Zielvariablenspalte entfernt, mit demselben Port wie die Ausgabe der Komponente Webdiensteingabe verbunden ist.

  2. Wählen Sie Übermitteln aus, und verwenden Sie das gleiche Computeziel und Experiment wie im ersten Teil.

    Falls dies der erste Auftrag ist, kann es bis zu 20 Minuten dauern, bis die Ausführung der Pipeline vollständig abgeschlossen ist. In den Standardcomputeeinstellungen ist eine minimale Knotengröße von 0 festgelegt. Das bedeutet, dass der Designer Ressourcen nach dem Leerlauf zuordnen muss. Wiederholte Pipeline-Aufträge nehmen weniger Zeit in Anspruch, da die Rechenressourcen bereits zugewiesen sind. Außerdem verwendet der Designer für jede Komponente zwischengespeicherte Ergebnisse, um die Effizienz weiter zu steigern.

  3. Wechseln Sie zu den Auftragsdetails der Echtzeit-Rückschlusspipeline, indem Sie den Link Auftragsdetails im linken Bereich auswählen.

  4. Wählen Sie Bereitstellen auf der Auftragsdetailseite aus.

    Screenshot: Bereitstellung auf der Detailseite des Auftrags

Erstellen eines Rückschlussclusters

Im angezeigten Dialogfeld können Sie auswählen, in welchen vorhandenen AKS-Clustern (Azure Kubernetes Service) Sie Ihr Modell bereitstellen möchten. Sollten Sie über keinen AKS-Cluster verfügen, gehen Sie wie folgt vor, um einen zu erstellen:

  1. Wählen Sie im angezeigten Dialogfeld die Option Compute aus, um zur Seite Compute zu gelangen.

  2. Wählen Sie auf dem Navigationsmenüband Rückschlusscluster>+ Neu aus.

    Screenshot: Navigation zum Bereich für den neuen Rückschlusscluster

  3. Konfigurieren Sie im Bereich des Rückschlussclusters einen neuen Kubernetes-Dienst.

  4. Geben Sie unter Computename den Namen aks-compute ein.

  5. Wählen Sie unter Region eine verfügbare Region in der Nähe aus.

  6. Klicken Sie auf Erstellen.

    Hinweis

    Die Erstellung eines neuen AKS-Diensts dauert etwa 15 Minuten. Der Bereitstellungsstatus kann auf der Seite Rückschlusscluster überprüft werden.

Bereitstellen des Echtzeitendpunkts

Kehren Sie nach Abschluss der Bereitstellung des AKS-Diensts zur Echtzeit-Rückschlusspipeline zurück, um deren Bereitstellung abzuschließen.

  1. Wählen Sie über der Canvas die Option Bereitstellen aus.

  2. Wählen Sie Neuen Echtzeitendpunkt bereitstellen aus.

  3. Wählen Sie den erstellten AKS-Cluster aus.

    Screenshot: Einrichtung eines neuen Echtzeit-Endpunkts

    Sie können auch die Einstellung Erweitert für Ihren Echtzeitendpunkt ändern.

    Einstellung „Erweitert“ BESCHREIBUNG
    Application Insights-Diagnose und -Datensammlung aktivieren Gibt an, ob Azure Application Insights zum Sammeln von Daten von den bereitgestellten Endpunkten aktiviert werden soll.
    Standardwert: false.
    Zeitlimit für Bewertung Ein Timeout in Millisekunden, das für Bewertungsaufrufe an den Webdienst erzwungen werden soll.
    Standardwert: 60.000.
    Automatische Skalierung aktiviert Gibt an, ob die automatische Skalierung für den Webdienst aktiviert werden soll.
    Standardwert: true.
    Mindestanzahl Replikate Die Mindestanzahl von Containern, die bei der automatischen Skalierung dieses Webdiensts verwendet werden soll.
    Standardwert: 1.
    Maximale Anzahl Replikate Die maximale Anzahl von Containern, die bei der automatischen Skalierung dieses Webdiensts verwendet werden sollen.
    Standardeinstellung: 10.
    Zielauslastung Die Zielauslastung (in Prozent), die von der automatischen Skalierung für diesen Webdienst beibehalten werden soll.
    Standardeinstellung: 70.
    Aktualisierungszeitraum Gibt an, wie oft (in Sekunden) die automatische Skalierung versucht, diesen Webdienst zu skalieren.
    Standardeinstellung: 1.
    CPU-Reservekapazität Die Anzahl der CPU-Kerne, die für diesen Webdienst zuzuordnen sind.
    Standardeinstellung: 0,1.
    Arbeitsspeicher-Reservekapazität Der Arbeitsspeicherumfang (in GB), der für diesen Webdienst zugeordnet werden soll.
    Standardeinstellung: 0,5.
  4. Klicken Sie auf Bereitstellen.

    Nach Abschluss der Bereitstellung wird eine Erfolgsmeldung im Benachrichtigungscenter angezeigt. Dies kann einige Minuten dauern.

    Screenshot: Bereitstellungsbenachrichtigung

Tipp

Sie können auch eine Bereitstellung in Azure Container Instances (ACI) ausführen, wenn Sie im Feld mit den Einstellungen für den Echtzeitendpunkt unter Computetyp die Option Azure Container Instances auswählen. Azure Container Instances wird für Tests oder für die Entwicklung verwendet. Verwenden Sie ACI für CPU-basierte Workloads im kleinen Maßstab, die weniger als 48 GB Arbeitsspeicher erfordern.

Testen des Echtzeitendpunkts

Nach Abschluss der Bereitstellung können Sie Ihren Echtzeitendpunkt anzeigen, indem Sie zur Seite Endpunkte navigieren.

  1. Wählen Sie auf der Seite Endpunkte den bereitgestellten Endpunkt aus.

    Auf der Registerkarte Details werden weitere Informationen angezeigt, z. B. REST-URI, Swagger-Definition, Status und Tags.

    Auf der Registerkarte Consume (Nutzen) finden Sie Beispielnutzungscode, Sicherheitsschlüssel und Optionen zum Festlegen der Authentifizierungsmethoden.

    Auf der Registerkarte Bereitstellungsprotokolle finden Sie ausführliche Bereitstellungsprotokolle für den Echtzeitendpunkt.

  2. Navigieren Sie zum Testen des Endpunkts zur Registerkarte Test. Hier können Sie Testdaten eingeben und Testen auswählen, um die Ausgabe des Endpunkts zu überprüfen.

Aktualisieren des Echtzeitendpunkts

Sie können den Onlineendpunkt mit einem neuen, im Designer trainierten Modell aktualisieren. Suchen Sie auf der Detailseite des Onlineendpunkts nach Ihrem vorherigen Trainingspipeline- und Rückschlusspipelineauftrag.

  1. Sie können Ihren Trainingspipelineentwurf direkt auf der Designer-Homepage finden und ändern.

    Sie können aber auch den Link des Trainingspipelineauftrags öffnen und ihn dann in einen neuen Pipelineentwurf klonen, um die Bearbeitung fortzusetzen.

    Screenshot: Link zum Trainingsauftrag auf der Detailseite für den Endpunkt

  2. Nachdem Sie die geänderte Trainingspipeline übermittelt haben, wechseln Sie zur Seite mit den Auftragsdetails.

  3. Wenn der Auftrag abgeschlossen ist, klicken Sie mit der rechten Maustaste auf Modell trainieren, und wählen Sie Daten registrieren aus.

    Screenshot: Registrierung des trainierten Modells als Dataset

    Geben Sie den Namen ein, und wählen Sie den Typ Datei aus.

    Screenshot: „Als Datenressource registrieren“ mit ausgewählter neuer Datenressource

  4. Nachdem das Dataset erfolgreich registriert wurde, öffnen Sie Ihren Rückschlusspipelineentwurf, oder klonen Sie den vorherigen Rückschlusspipelineauftrag in einen neuen Entwurf. Ersetzen Sie im Entwurf der Rückschlusspipeline das zuvor trainierte Modell, das als Knoten MD-XXXX mit der Komponente Modell bewerten verbunden ist, durch das neu registrierte Dataset.

    Screenshot: Ändern der Rückschlusspipeline

  5. Wenn Sie den Teil der Datenvorverarbeitung in Ihrer Trainingspipeline aktualisieren müssen und diesen in die Rückschlusspipeline übernehmen möchten, ist die Verarbeitung ähnlich wie bei den obigen Schritten.

    Sie müssen lediglich die Transformationsausgabe der Transformationskomponente als Dataset registrieren.

    Ersetzen Sie anschließend die TD- -Komponente in der Rückschlusspipeline manuell durch das registrierte Dataset.

    Screenshot: Ersetzen der Transformationskomponente

  6. Nachdem Sie Ihre Rückschlusspipeline mit dem neu trainierten Modell oder der Transformation geändert haben, übermitteln Sie sie. Wenn der Auftrag abgeschlossen ist, stellen Sie ihn auf dem bestehenden Onlineendpunkt, der zuvor bereitgestellt wurde.

    Screenshot: Ersetzen eines vorhandenen Echtzeitendpunkts

Einschränkungen

  • Enthält Ihre Rückschlusspipeline die Komponente Daten importieren oder Daten exportieren, werden diese aufgrund der Datenspeicherzugriffsbeschränkung automatisch entfernt, wenn sie auf einem Echtzeitendpunkt bereitgestellt werden.

  • Wenn Sie Datasets in der Echtzeit-Rückschlusspipeline haben und sie auf einem Echtzeitendpunkt bereitstellen möchten, unterstützt dieser Fluss derzeit nur Datasets, die von Blob-Datenspeicher aus registriert sind. Wenn Sie Datasets aus anderen Typdatenspeichern verwenden möchten, können Sie „Spalte auswählen“ verwenden, um eine Verbindung mit Ihrem anfänglichen Dataset mit den Einstellungen für die Auswahl aller Spalten herzustellen, die Ausgaben von „Spalte auswählen“ als Dateidataset zu registrieren und dann das erste Dataset in der Echtzeit-Rückschlusspipeline durch dieses neu registrierte Dataset zu ersetzen.

  • Wenn Ihr Rückschlussgraph die Komponente „Daten manuell eingeben“ enthält, die nicht mit demselben Port wie die Komponente „Webdiensteingabe“ verbunden ist, wird die Komponente „Daten manuell eingeben“ während der HTTP-Aufrufverarbeitung nicht ausgeführt. Eine Problemumgehung ist, die Ausgaben dieser Komponente „Daten manuell eingeben“ als Dataset zu registrieren und dann im Entwurf der Rückschlusspipeline die Komponente „Daten manuell eingeben“ durch das registrierte Dataset zu ersetzen.

    Screenshot, der zeigt, wie Sie die Rückschlusspipeline ändern, die die Komponente „Daten manuell eingeben“ enthält.

Bereinigen von Ressourcen

Wichtig

Sie können die von Ihnen bei der Vorbereitung erstellten Ressourcen auch in anderen Tutorials und Anleitungen für Azure Machine Learning verwenden.

Alles löschen

Wenn Sie die erstellten Ressourcen nicht mehr benötigen, löschen Sie die gesamte Ressourcengruppe, damit Ihnen keine Kosten entstehen.

  1. Wählen Sie im Azure-Portal links im Fenster Ressourcengruppen aus.

    Löschen der Ressourcengruppe im Azure-Portal

  2. Wählen Sie in der Liste die Ressourcengruppe aus, die Sie erstellt haben.

  3. Klicken Sie auf Ressourcengruppe löschen.

Durch das Löschen einer Ressourcengruppe werden auch alle im Designer erstellten Ressourcen gelöscht.

Löschen einzelner Objekte

In dem Designer, in dem Sie Ihr Experiment erstellt haben, können Sie einzelne Ressourcen löschen, indem Sie erst die gewünschten Ressourcen und dann die Schaltfläche Löschen auswählen.

Das hier erstellte Computeziel wird automatisch auf null Knoten skaliert, wenn es nicht verwendet wird. Diese Aktion wird durchgeführt, um Gebühren zu minimieren. Wenn Sie das Computeziel löschen möchten, führen Sie die folgenden Schritte aus:

Löschen von Assets

Die Registrierung von Datasets im Arbeitsbereich kann aufgehoben werden, indem Sie die einzelnen Datasets und anschließend Registrierung aufheben auswählen.

Aufheben der Registrierung eines Datasets

Zum Löschen eines Datasets wechseln Sie im Azure-Portal oder Azure Storage-Explorer zum Speicherkonto, und löschen Sie diese Ressourcen manuell.

Nächste Schritte

In diesem Tutorial wurden die wichtigsten Schritte zum Erstellen, Bereitstellen und Verwenden eines Machine Learning-Modells im Designer vermittelt. Weitere Informationen zur Verwendung des Designers finden Sie unter den folgenden Links: