Endpunkte für Rückschlüsse in der Produktion

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

Nachdem Sie Machine Learning-Modelle oder -Pipelines trainiert haben, müssen Sie sie in der Produktion bereitstellen, damit andere sie für Rückschlüsse verwenden können. Rückschluss ist der Prozess, bei dem neue Eingabedaten auf das Machine Learning-Modell oder die Pipeline angewandt werden, um Ausgaben zu generieren. Obwohl diese Ausgaben in der Regel als „Vorhersagen“ bezeichnet werden, können Rückschlüsse verwendet werden, um Ausgaben für andere Aufgaben zum maschinellen Lernen wie Klassifizierung und Clustering zu generieren. In Azure Machine Learning führen Sie Rückschlüsse mithilfe von Endpunkten und Bereitstellungen durch. Mit Endpunkten und Bereitstellungen können Sie die Schnittstelle Ihrer Produktionsworkload von der Implementierung entkoppeln.

Intuition

Angenommen, Sie arbeiten an einer Anwendung, die den Typ und die Farbe eines Autos anhand seines Fotos vorhersagen soll. Für diese Anwendung senden Benutzer*innen mit bestimmten Anmeldeinformationen eine HTTP-Anforderung an eine URL und übergeben darin ein Bild eines Autos. Als Antwort erhalten die Benutzer*innen den Typ und die Farbe des Fahrzeugs als Zeichenfolgenwerte. In diesem Szenario dient die URL als Endpunkt.

A diagram showing the concept of an endpoint.

Angenommen, Alice, eine wissenschaftliche Fachkraft für Daten, arbeitet an der Implementierung der Anwendung. Alice weiß viel über TensorFlow und beschließt, das Modell mithilfe eines sequenziellen Keras-Klassifizierers mit einer RestNet-Architektur vom TensorFlow-Hub zu implementieren. Nach dem Testen des Modells ist Alice mit den Ergebnissen zufrieden und beschließt, das Modell zu verwenden, um das Problem mit der Autovorhersage zu lösen. Das Modell ist groß und erfordert für die Ausführung 8 GB Arbeitsspeicher und 4 Kerne. In diesem Szenario bilden das Modell von Alice und die Ressourcen (z. B. Code und Computeressourcen), die zum Ausführen des Modells erforderlich sind, eine Bereitstellung an dem Endpunkt.

A diagram showing the concept of a deployment.

Stellen Sie sich schließlich vor, dass die Organisation nach einigen Monaten feststellt, dass die Anwendung bei Bildern ohne ideale Beleuchtungsbedingungen schlecht abschneidet. Bob, eine weitere wissenschaftliche Fachkraft für Daten, weiß viel über Datenargumentationstechniken, die dabei helfen können, das Modell in diesem Bereich stabiler zu machen. Bob arbeitet jedoch lieber mit Torch, um das Modell zu implementieren, und er trainiert daher ein neues Modell mit Torch. Bob möchte dieses Modell schrittweise in der Produktion ausprobieren, bis die Organisation bereit ist, das alte auszumustern. Das neue Modell bietet auch eine bessere Leistung, wenn es auf der GPU bereitgestellt wird, sodass die Bereitstellung eine GPU umfassen muss. In diesem Szenario bilden das Modell von Bob und die Ressourcen (z. B. Code und Computeressourcen), die zum Ausführen des Modells erforderlich sind, eine andere Bereitstellung an demselben Endpunkt.

A diagram showing the concept of an endpoint with multiple deployments.

Endpunkte und Bereitstellungen

Ein Endpunkt ist eine stabile und dauerhafte URL, die verwendet werden kann, um ein Modell anzufordern oder aufzurufen. Sie stellen die erforderlichen Eingaben für den Endpunkt bereit und rufen die Ausgaben ab. Ein Endpunkt bietet Folgendes:

  • eine stabile und dauerhafte URL (z. B. endpunktname.region.inference.ml.azure.com)
  • einen Authentifizierungsmechanismus
  • einen Autorisierungsmechanismus

Eine Bereitstellung umfasst (Compute-)Ressourcen, die für das Hosting des Modells oder der Komponente erforderlich sind, das/die den eigentlichen Rückschluss durchführt. Ein einzelner Endpunkt kann mehrere Bereitstellungen enthalten. Diese Bereitstellungen können unabhängige Ressourcen hosten und je nach Bedarf unterschiedliche Ressourcen nutzen. Endpunkte verfügen über einen Routingmechanismus, der Anforderungen an bestimmte Bereitstellungen am Endpunkt weiterleiten kann.

Für eine ordnungsgemäße Funktion muss jeder Endpunkt über mindestens eine Bereitstellung verfügen. Endpunkte und Bereitstellungen sind unabhängige Azure Resource Manager-Ressourcen, die im Azure-Portal angezeigt werden.

Online- und Batchendpunkte

Mit Azure Machine Learning können Sie sowohl Onlineendpunkte als auch Batchendpunkte implementieren. Onlineendpunkte sind für Echtzeitrückschlüsse konzipiert. Wenn Sie den Endpunkt aufrufen, werden die Ergebnisse in der Antwort des Endpunkts zurückgegeben. Batchendpunkte hingegen sind für den Batchrückschluss mit langer Ausführungszeit konzipiert. Jedes Mal, wenn Sie einen Batchendpunkt aufrufen, generieren Sie einen Batchauftrag, der die eigentliche Arbeit ausführt.

Situationen für die Verwendung von Online- und Batchendpunkten für Ihren Anwendungsfall

Verwenden Sie Onlineendpunkte, um Modelle für Echtzeitrückschlüsse in synchronen Anforderungen mit niedriger Latenz zu operationalisieren. Es wird empfohlen, sie in folgenden Fällen zu verwenden:

  • Sie haben Anforderungen mit geringer Latenz.
  • Ihr Modell kann die Anforderung in relativ kurzer Zeit beantworten.
  • Die Eingaben Ihres Modells passen zur HTTP-Nutzdatenlast der Anforderung.
  • Sie müssen die Anzahl der Anforderungen hochskalieren.

Verwenden Sie Batch-Endpunkte, um Modelle oder Pipelines für langlaufende asynchrone Inferenz zu operationalisieren. Es wird empfohlen, sie in folgenden Fällen zu verwenden:

  • Sie verfügen über teure Modelle oder Pipelines, für die die Ausführung mehr Zeit in Anspruch nimmt.
  • Sie möchten Machine Learning-Pipelines operationalisieren und Komponenten wiederverwenden.
  • Sie müssen Rückschlüsse auf große Datenmengen durchführen, die auf mehrere Dateien verteilt sind.
  • Sie haben keine niedrigen Latenzanforderungen.
  • Die Eingaben Ihres Modells werden in einem Speicherkonto oder in einem Azure Machine Learning-Datenobjekt gespeichert.
  • Sie können die Parallelisierung nutzen.

Vergleich von Online- und Batchendpunkten

Sowohl Online- als auch Batchendpunkte basieren auf der Idee von Endpunkten und Bereitstellungen, die Ihnen den einfachen Übergang von einem zum anderen erleichtern. Beim Wechsel von einem zum anderen gibt es jedoch einige Unterschiede, die berücksichtigt werden müssen. Einige dieser Unterschiede sind auf die Art der Arbeit zurückzuführen:

Endpunkte

Die folgende Tabelle enthält eine Zusammenfassung der verschiedenen Features von Online- und Batchendpunkten.

Funktion Onlineendpunkte Batchendpunkte
Stabile Aufruf-URL Ja Ja
Unterstützung für mehrere Bereitstellungen Ja Ja
Routing der Bereitstellung Datenverkehrsaufteilung Wechsel zur Standardeinstellung
Spiegeln des Datenverkehrs für einen sicheren Rollout Ja Nein
Swagger-Unterstützung Ja Nein
Authentifizierung Schlüssel und Token Microsoft Entra ID
Unterstützung für private Netzwerke Ja Ja
Verwaltete Netzwerkisolation Ja Ja (siehe zusätzliche erforderliche Konfiguration)
Vom Kunden verwaltete Schlüssel Ja Ja
Kostenbasis Keine Keine

Bereitstellungen

Die folgende Tabelle enthält eine Zusammenfassung der verschiedenen Features von Online- und Batchendpunkten auf Bereitstellungsebene. Diese Konzepte gelten für jede Bereitstellung an dem Endpunkt.

Funktion Onlineendpunkte Batchendpunkte
Bereitstellungstypen Modelle Modelle und Rohrleitungskomponenten
MLflow-Modellimplementierung Ja Ja
Benutzerdefinierte Modellimplementierung Ja, mit Bewertungsskript Ja, mit Bewertungsskript
Modellpaketbereitstellung 1 Ja (Vorschau) Nein
Rückschlussserver 2 – Azure Machine Learning Inferencing Server
– Triton
– Benutzerdefiniert (mit BYOC)
Batchrückschluss
Verbrauchte Computeressource Instanzen oder granulare Ressourcen Clusterinstanzen
Computetyp Verwaltetes Compute und Kubernetes Verwaltetes Compute und Kubernetes
Compute mit niedriger Priorität Nein Ja
Compute mit Skalierung auf 0 (null) Nein Ja
Compute mit automatischer Skalierung3 Ja, basierend auf der Auslastung der Ressourcen Ja, basierend auf der Anzahl der Aufträge
Verwaltung von Überkapazitäten Drosselung Queuing
Kostenbasis4 Pro Bereitstellung: Compute-Instanzen, die ausgeführt werden Pro Auftrag: Im Auftrag verbrauchte Compute-Instanz (begrenzt auf die maximale Anzahl von Instanzen des Clusters).
Lokale Tests von Bereitstellungen Ja Nein

1 Die Bereitstellung von MLflow-Modellen auf Endpunkten ohne ausgehende Internetverbindung oder private Netzwerke erfordert zuerst das Packen des Modells.

2Rückschlussserver bezieht sich auf die Bereitstellungstechnologie, die Anforderungen akzeptiert und verarbeitet und die Antworten erstellt. Der Rückschlussserver gibt außerdem das Format der Eingabe und der erwarteten Ausgaben vor.

3Die automatische Skalierung bietet die Möglichkeit, die zugeordneten Ressourcen der Bereitstellung basierend auf ihrer Last dynamisch hoch- oder herunterzuskalieren. Online- und Batchbereitstellungen verwenden unterschiedliche Strategien für die automatische Skalierung. Während Onlinebereitstellungen basierend auf der Ressourcenauslastung (z. B. CPU, Arbeitsspeicher, Anforderungen usw.) hoch- und herunterskaliert werden, werden Batchendpunkte basierend auf der Anzahl der erstellten Aufträge hoch- oder herunterskaliert.

4 Sowohl Online- als auch Batchbereitstellungen werden nach verbrauchten Ressourcen berechnet. Bei Onlinebereitstellungen werden Ressourcen zum Zeitpunkt der Bereitstellung bereitgestellt. Bei der Batchbereitstellung werden jedoch zur Bereitstellungszeit keine Ressourcen verbraucht, sondern erst wenn der Auftrag ausgeführt wird. Daher fallen keine Kosten im Zusammenhang mit der Bereitstellung selbst an. Beachten Sie, dass Aufträge in der Warteschlange auch keine Ressourcen verbrauchen.

Entwicklerschnittstellen

Endpunkte sollen Organisationen bei der Operationalisierung von Workloads auf Produktionsebene in Azure Machine Learning unterstützen. Endpunkte sind robuste und skalierbare Ressourcen, die die besten Funktionen zum Implementieren von MLOps-Workflows bieten.

Sie können Batch- und Onlineendpunkten mit verschiedenen Entwicklungstools erstellen und verwalten:

  • Die Azure CLI und das Python SDK
  • Azure-Resource Manager/REST-API
  • Azure Machine Learning Studio-Webportal
  • Azure-Portal (IT/Administrator)
  • Unterstützung für CI/CD-MLOps-Pipelines über die Azure CLI- und REST-/ARM-Schnittstelle

Nächste Schritte