Erkunden verwalteter Onlineendpunkte

Abgeschlossen

Um ein Machine Learning-Modell für andere Anwendungen verfügbar zu machen, können Sie das Modell an einem verwalteten Onlineendpunkt bereitstellen.

Sie erfahren, wie Sie verwaltete Onlineendpunkte für Echtzeitvorhersagen verwenden.

Echtzeitvorhersagen

Um Echtzeitvorhersagen zu erhalten, können Sie ein Modell auf einem Endpunkt bereitstellen. Ein Endpunkt ist ein HTTPS-Endpunkt, an den Sie Daten senden können und der (fast) sofort eine Antwort zurückgibt.

Alle Daten, die Sie an den Endpunkt senden, dienen als Eingabe für das Bewertungsskript, das auf dem Endpunkt gehostet wird. Das Bewertungsskript lädt das trainierte Modell, um die Bezeichnung für die neuen Eingabedaten vorherzusagen. Dies wird auch als Rückschließen bezeichnet. Die Bezeichnung ist dann Teil der zurückgegebenen Ausgabe.

Verwalteter Onlineendpunkt

In Azure Machine Learning gibt es zwei Arten von Onlineendpunkten:

  • Verwaltete Onlineendpunkte: Azure Machine Learning verwaltet die gesamte zugrunde liegende Infrastruktur.
  • Kubernetes-Onlineendpunkte: Benutzer*innen verwalten den Kubernetes-Cluster, der die erforderliche Infrastruktur bereitstellt.

Als Data Scientist arbeiten Sie möglicherweise lieber mit verwalteten Onlineendpunkten, um zu testen, ob Ihr Modell bei der Bereitstellung wie erwartet funktioniert. Wenn ein Kubernetes-Onlineendpunkt für die Steuerung und Skalierbarkeit erforderlich ist, wird er wahrscheinlich von anderen Teams verwaltet.

Wenn Sie einen verwalteten Onlineendpunkt verwenden, müssen Sie nur den Typ des virtuellen Computers (VM) und die Skalierungseinstellungen angeben. Alles andere, z. B. das Bereitstellen von Computeleistung und das Aktualisieren des Hostbetriebssystems, erfolgt automatisch.

Bereitstellen Ihres Modells

Nachdem Sie einen Endpunkt im Azure Machine Learning-Arbeitsbereich erstellt haben, können Sie ein Modell für diesen Endpunkt bereitstellen. Um Ihr Modell auf einem verwalteten Onlineendpunkt bereitzustellen, müssen Sie vier Dinge angeben:

  • Modellressourcen wie die Pickle-Datei des Modells oder ein registriertes Modell im Azure Machine Learning-Arbeitsbereich.
  • Bewertungsskript, das das Modell lädt.
  • Umgebung, die alle erforderlichen Pakete auflistet, die auf dem Compute des Endpunkts installiert werden müssen.
  • Die Computekonfiguration, einschließlich der benötigten Computegröße und den Skalierungseinstellungen. Dadurch können Sie sicherzustellen, dass Sie die Menge der Anforderungen verarbeiten können, die der Endpunkt empfängt.

Wichtig

Wenn Sie MLFlow-Modelle auf einem Onlineendpunkt bereitstellen, müssen Sie kein Bewertungsskript und keine Umgebung bereitstellen, da beide automatisch generiert werden.

Alle diese Elemente werden in der Bereitstellung definiert. Bei der Bereitstellung handelt es sich im Wesentlichen um eine Gruppe von Ressourcen, die zum Hosten des Modells erforderlich sind, das den tatsächlichen Rückschlussvorgang durchführt.

Blau/Grün-Bereitstellung

Ein Endpunkt kann mehrere Bereitstellungen aufweisen. Ein Ansatz ist die Blau/Grün-Bereitstellung.

Sehen wir uns das Beispiel mit dem Empfehlungsmodell für Restaurants an. Wählen Sie nach dem Experimentieren das Modell mit der besten Leistung aus. Sie verwenden die blaue Bereitstellung für die erste Version des Modells. Wenn neue Daten gesammelt werden, kann das Modell neu trainiert werden, und eine neue Version wird im Azure Machine Learning-Arbeitsbereich registriert. Zum Testen des neuen Modells können Sie die grüne Bereitstellung für die zweite Version des Modells verwenden.

Beide Versionen des Modells werden auf demselben Endpunkt bereitgestellt, der mit der Anwendung integriert ist. In der Anwendung wählt ein*e Benutzer*in ein Restaurant aus und sendet eine Anforderung an den Endpunkt, um neue Echtzeitempfehlungen zu anderen Restaurants zu erhalten, die dem*der Benutzer*in gefallen könnten.

Wenn eine Anforderung an den Endpunkt gesendet wird, können 90 % des Datenverkehrs an die blaue Bereitstellung* und 10 % des Datenverkehrs an die grüne Bereitstellung weitergeleitet werden. Wenn Sie zwei Versionen des Modells auf demselben Endpunkt bereitgestellt haben, können Sie das Modell ganz einfach testen.

Nach dem Testen können Sie auch nahtlos auf die neue Version des Modells umsteigen, indem Sie 90 % des Datenverkehrs an die grüne Bereitstellung umleiten. Wenn sich herausstellt, dass die neue Version nicht besser funktioniert, können Sie problemlos ein Rollback auf die erste Version des Modells ausführen, indem Sie den größten Teil des Datenverkehrs zurück an die blaue Bereitstellung umleiten.

Die Blau/Grün-Bereitstellung ermöglicht die Bereitstellung mehrerer Modelle auf einem Endpunkt. Sie können entscheiden, wie viel Datenverkehr an jedes bereitgestellte Modell weitergeleitet werden soll. Auf diese Weise können Sie zu einer neuen Version des Modells wechseln, ohne den Dienst für den Consumer zu unterbrechen.

Tipp

Hier finden Sie weitere Informationen zum sicheren Rollout für Onlineendpunkte.

Erstellen eines Endpunkts

Wenn Sie einen Onlineendpunkt erstellen möchten, verwenden Sie die ManagedOnlineEndpoint-Klasse, die die folgenden Parameter benötigt:

  • name: Der Name des Endpunkts. Dieser muss in der Azure-Region eindeutig sein.
  • auth_mode: Verwenden Sie key für die schlüsselbasierte Authentifizierung. Verwenden Sie aml_token für die tokenbasierte Azure Machine Learning-Authentifizierung.

Verwenden Sie den folgenden Befehl, um einen Endpunkt zu erstellen:

from azure.ai.ml.entities import ManagedOnlineEndpoint

# create an online endpoint
endpoint = ManagedOnlineEndpoint(
    name="endpoint-example",
    description="Online endpoint",
    auth_mode="key",
)

ml_client.begin_create_or_update(endpoint).result()

Tipp

Lesen Sie die Referenzdokumentation zum Erstellen eines verwalteten Onlineendpunkts mit Python-SDK V2.