Was sind Azure Machine Learning-Endpunkte?

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

Verwenden Sie Azure Machine Learning-Endpunkte, um Modellimplementierungen für die Bereitstellung von Echtzeit- und Batchrückschlüssen zu optimieren. Endpunkte verfügen über eine einheitliche Schnittstelle zum übergreifenden Aufrufen und Verwalten von Modellbereitstellungen für alle Computetypen.

In diesem Artikel lernen Sie Folgendes:

  • Endpunkte
  • Bereitstellungen
  • Verwaltete Onlineendpunkte
  • Kubernetes-Onlineendpunkte
  • Batchrückschluss-Endpunkte

Was sind Endpunkte und Bereitstellungen?

Nachdem Sie ein Modell für maschinelles Lernen trainiert haben, müssen Sie das Modell bereitstellen, damit andere es zum Rückschließen verwenden können. In Azure Machine Learning können Sie hierfür Endpunkte und Bereitstellungen verwenden.

Ein Endpunkt ist ein HTTPS-Endpunkt, der von Clients aufgerufen werden kann, um die Rückschlussausgabe (Bewertung) eines trainierten Modells zu empfangen. Sie bietet:

  • Authentifizierung mit „Schlüssel & Token“-basierter Authentifizierung
  • SSL-Terminierung
  • Stabilen Bewertungs-URI (endpoint-name.region.inference.ml.azure.com)

Eine Einrichtung ist ein Satz von Ressourcen, die für das Hosting des Modells erforderlich sind, das die eigentliche Inferenz durchführt.

Ein einzelner Endpunkt kann mehrere Bereitstellungen enthalten. Endpunkte und Bereitstellungen sind unabhängige Azure Resource Manager-Ressourcen, die im Azure-Portal angezeigt werden.

Das Konzept der Endpunkte und Bereitstellungen wird von Azure Machine Learning genutzt, um unterschiedliche Arten von Endpunkten zu implementieren: Onlineendpunkte und Batchendpunkte.

Mehrere Entwicklerschnittstellen

Erstellen und Verwalten von Batch- und Onlineendpunkten mit verschiedenen Entwicklertools:

  • Die Azure CLI
  • 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

Was sind Onlineendpunkte?

Onlineendpunkte sind Endpunkte, die für Onlinerückschlüsse (Echtzeit) verwendet werden. Gegenüber Batchendpunkten enthalten OnlineendpunkteBereitstellungen, die bereit für den Empfang der Daten von Clients sind und in Echtzeit Rückantworten senden können.

Das folgende Diagramm zeigt einen Online-Endpunkt, der zwei Bereitstellungen hat, "blau" und "grün". Die blaue Bereitstellung verwendet VMs mit einer CPU-SKU und führt v1 eines Modells aus. Die grüne Bereitstellung verwendet VMs mit einer GPU-SKU und verwendet v2 des Modells. Der Endpunkt ist so konfiguriert, dass er 90 % des eingehenden Datenverkehrs an die blaue Bereitstellung weiterleitet, während die verbleibenden 10 % auf die grüne Bereitstellung entfallen.

Diagramm: Endpunkt, bei dem Datenverkehr auf zwei Bereitstellungen aufgeteilt wird

Anforderungen an Onlinebereitstellungen

Um einen Online-Endpunkt zu erstellen, müssen Sie die folgenden Elemente angeben:

  • Modelldateien (oder Angeben eines registrierten Modells in Ihrem Arbeitsbereich)
  • Bewertungsskript - für die Bewertung/Inferencing benötigter Code
  • Umgebung: Docker-Image mit Conda-Abhängigkeiten oder ein Dockerfile
  • Einstellungen für Compute-Instanzen und Skalierungen

Hier wird beschrieben, wie Sie Onlineendpunkte über die CLI und das Studio-Webportal bereitstellen.

Lokales Testen und Bereitstellen zur Beschleunigung des Debuggens

Führen Sie die lokale Bereitstellung durch, um Ihre Endpunkte ohne Bereitstellung in der Cloud zu testen. Von Azure Machine Learning wird ein lokales Docker-Image erstellt, mit dem das Azure ML-Image imitiert wird. Azure Machine Learning führt die Erstellungs- und Bereitstellungsvorgänge für Sie lokal durch und speichert das Image zwischen, um schnelle Iterationen zu ermöglichen.

Native Blau-Grün-Bereitstellung

Beachten Sie den bereits erwähnten Hinweis, dass ein einzelner Endpunkt mehrere Bereitstellungen enthalten kann. Der Online-Endpunkt kann einen Lastausgleich vornehmen, um einen beliebigen Prozentsatz des Datenverkehrs an jede Einrichtung zu verteilen.

Die Verkehrsaufteilung kann verwendet werden, um sichere Blue/Green-Rollouts durchzuführen, indem Anfragen zwischen verschiedenen Instanzen ausgeglichen werden.

Tipp

Eine Anforderung kann den konfigurierten Lastausgleich umgehen, indem sie einen HTTP-Header von azureml-model-deployment enthält. Setzen Sie den Wert der Kopfzeile auf den Namen der Einrichtung, an die die Anforderung weitergeleitet werden soll.

Screenshot: Schieberegler zum Festlegen der Datenverkehrszuordnung für mehrere Bereitstellungen

Diagramm: Endpunkt, bei dem Datenverkehr auf zwei Bereitstellungen aufgeteilt wird

Der Datenverkehr zu einer Bereitstellung kann auch in eine andere Bereitstellung gespiegelt (kopiert) werden. Spiegelung ist nützlich, wenn Sie Dinge wie Reaktionslatenz oder Fehlerzustände testen möchten, ohne Liveclients zu beeinträchtigen. Beispielsweise eine Blau/Grün-Bereitstellung, bei der 100 % des Datenverkehrs an Blau weitergeleitet und 10 % in Grün gespiegelt werden. Mit Spiegelung werden die Ergebnisse des Datenverkehrs an die Grün-Bereitstellung nicht an die Clients zurückgegeben, aber Metriken und Protokolle werden gesammelt. Die Spiegelungsfunktion für Datenverkehr ist ein Previewfunktion.

Diagramm: Endpunkt, der den Datenverkehr zu einer Bereitstellung spiegelt

Informieren Sie sich, wie Sie einen sicheren Rollout für Onlineendpunkte durchführen.

Application Insights-Integration

Alle Onlineendpunkte sind mit Application Insights integriert, um SLAs zu überwachen und Probleme zu diagnostizieren.

Verwaltete Onlineendpunkte verfügen aber auch über eine standardmäßige Integration mit Azure-Protokollen und -Metriken.

Sicherheit

  • Authentifizierung: Schlüssel und Azure ML-Token
  • Verwaltete Identität: Benutzerseitig und systemseitig zugewiesen
  • Standardmäßiges SSL für Aufruf von Endpunkten

Automatische Skalierung

Autoscale führt automatisch die richtige Menge an Ressourcen aus, um die Last Ihrer Anwendung zu bewältigen. Verwaltete Endpunkte unterstützen Autoscaling durch die Integration mit der Funktion Azure Monitor Autoscale. Sie können metrikbasierte Skalierung (z. B. CPU-Auslastung >70 %), zeitplanbasierte Skalierung (z. B. Skalierungsregeln für Hauptgeschäftszeiten) oder eine Kombination davon konfigurieren.

Screenshot: Autoskalierung stellt abhängig von den Regeln flexibel zwischen minimalen und maximalen Instanzen bereit

Visual Studio Code-Debugging

Visual Studio Code ermöglicht es Ihnen, Endpunkte interaktiv zu debuggen.

Screenshot des Endpunkt-Debugging in VSCode.

Unterstützung für private Endpunkte (Vorschau)

Optional können Sie die Kommunikation mit einem verwalteten Onlineendpunkt mithilfe privater Endpunkte schützen. Diese Funktion befindet sich derzeit in der Vorschauphase.

Wichtig

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Sie können Sicherheit für eingehende Bewertungsanfragen und ausgehende Kommunikationen mit dem Arbeitsbereich und anderen Diensten separat konfigurieren. Eingehende Kommunikation verwendet den privaten Endpunkt des Azure Machine Learning-Arbeitsbereichs. Ausgehende Kommunikation verwendet private Endpunkte, die pro Bereitstellung erstellt werden.

Weitere Informationen finden Sie unter Schützen von Onlineendpunkten.

Verwaltete Onlineendpunkte und Kubernetes-Onlineendpunkte

Es gibt zwei Arten von Onlineendpunkten: Verwaltete Onlineendpunkte und Kubernetes-Onlineendpunkte.

Verwaltete Online-Endpunkte helfen Ihnen, Ihre ML-Modelle sofort einsatzbereit bereitzustellen. Verwaltete Onlineendpunkte arbeiten mit leistungsstarken CPU- und GPU-Computern in Azure auf skalierbare, vollständig verwaltete Weise. Verwaltete Online-Endpunkte sorgen für die Bereitstellung, Skalierung, Sicherung und Überwachung Ihrer Modelle und befreien Sie vom Aufwand für die Einrichtung und Verwaltung der zugrunde liegenden Infrastruktur. Im Hauptbeispiel in dieser Dokumentation werden verwaltete Online-Endpunkte für die Bereitstellung verwendet.

Über den Kubernetes-Onlineendpunkt können Sie Modelle bereitstellen und Onlineendpunkte an Ihrem vollständig konfigurierten und verwalteten Kubernetes-Cluster an jedem Ort (mit CPUs oder GPUs) verwenden.

In der folgenden Tabelle werden die wichtigsten Unterschiede zwischen verwalteten Onlineendpunkten und Kubernetes-Onlineendpunkten hervorgehoben.

Verwaltete Onlineendpunkte Kubernetes-Onlineendpunkte
Empfohlene Benutzer Benutzer, die eine Bereitstellung eines verwalteten Modells und eine verbesserte MLOps-Benutzeroberfläche benötigen Benutzer, die Kubernetes bevorzugen und Infrastrukturanforderungen selbst verwalten können
Infrastrukturverwaltung Verwaltete Bereitstellung von Computeressourcen, Skalierung, Updates für Hostbetriebssystem-Images und Sicherheitshärtung Benutzerverantwortung
Computetyp Verwaltet (AmlCompute) Kubernetes-Cluster (Kubernetes)
Standardmäßige Überwachung Azure-Überwachung
(Umfasst wichtige Metriken, z. B. Latenz und Durchsatz.)
Unterstützt
Standardmäßige Protokollierung Azure-Protokolle und Log Analytics auf Endpunktebene Nicht unterstützt
Application Insights Unterstützt Unterstützt
Verwaltete Identität Unterstützt Unterstützt
Virtuelles Netzwerk (VNET) Unterstützt (Vorschauversion) Unterstützt
Anzeigen von Kosten Endpunkt- und Bereitstellungsebene Clusterebene
Gespiegelter Datenverkehr Unterstützt Nicht unterstützt
Bereitstellung ohne Code Unterstützt (MLflow- und Triton-Modelle) Unterstützt (MLflow- und Triton-Modelle)

Verwaltete Onlineendpunkte

Verwaltete Onlineendpunkte können zur Optimierung Ihres Bereitstellungsprozesses beitragen. Verwaltete Onlineendpunkte haben gegenüber Kubernetes-Onlineendpunkten die folgenden Vorteile:

  • Verwaltete Infrastruktur

    • Automatische Bereitstellung der Computeressourcen und Hosting des Modells (Sie müssen nur VM-Typ und Skalierungseinstellungen angeben)
    • Automatische Updates und Patches für das zugrunde liegende Host-Betriebssystem-Image
    • Automatische Wiederherstellung von Knoten bei einem Systemausfall
  • Überwachung und Protokolle

    • Überwachen Sie die Modellverfügbarkeit, Leistung und SLA über die native Integration mit Azure Monitor.
    • Debuggen Sie Bereitstellungen, indem Sie die Protokolle und die native Integration mit Azure Log Analytics verwenden.

    Screenshot: Azure Monitor-Graph zur Endpunktlatenz

  • Anzeigen von Kosten

    Screenshot: Kostendiagramm für einen Endpunkt und eine Bereitstellung

    Hinweis

    Verwaltete Onlineendpunkte basieren auf Azure Machine Learning Compute. Wenn Sie einen verwalteten Onlineendpunkt verwenden, bezahlen Sie die Compute- und Netzwerkgebühren. Es fallen keine zusätzlichen Gebühren an.

    Wenn Sie ein virtuelles Netzwerk und geschützten ausgehenden (Ausgangs) Datenverkehr von dem verwalteten Onlineendpunkt verwenden, fallen zusätzliche Kosten an. Für den Ausgangsdatenverkehr werden drei private Endpunkte pro Bereitstellung für den verwalteten Onlineendpunkt erstellt. Diese werden verwendet, um mit dem Standardspeicherkonto, Azure Container Registry und dem Arbeitsbereich zu kommunizieren. Dabei können zusätzliche Netzwerkgebühren anfallen. Weitere Informationen zu Preisen finden Sie unter Azure-Preisrechner.

Ein Tutorial mit einer Schritt-für-Schritt-Anleitung finden Sie unter Bereitstellen von Onlineendpunkten.

Was sind Batchendpunkte?

Batchendpunkte sind Endpunkte, die für die Ausführung von Batchrückschlüssen aus großen Datenmengen über einen bestimmten Zeitraum hinweg verwendet werden. Mit Batchendpunkten werden Zeiger auf Daten empfangen und Aufträge asynchron ausgeführt, um die Daten in Computeclustern parallel zu verarbeiten. Auf Batchendpunkten werden Ausgaben zur weiteren Analyse in einem Datenspeicher gespeichert.

Das Diagramm zeigt, dass ein einzelner Batch-Endpunkt Anfragen an mehrere Bereitstellungen weiterleiten kann, von denen eine die Standardbereitstellung ist.

Anforderungen für die Batch-Bereitstellung

Um eine Batch-Bereitstellung zu erstellen, müssen Sie die folgenden Elemente angeben:

  • Modelldateien (oder geben Sie ein in Ihrem Arbeitsbereich registriertes Modell an)
  • Compute
  • Bewertungsskript - Code, der für die Bewertung/Inferenzierung benötigt wird
  • Umgebung: Docker-Image mit Conda-Abhängigkeiten

Wenn Sie MLFlow-Modelle in Batchbereitstellungen bereitstellen, müssen Sie weder ein Bewertungsskript noch eine Ausführungsumgebung bereitstellen, da beides automatisch generiert wird.

Erfahren Sie mehr darüber, wie Sie Batchendpunkte bereitstellen und verwenden.

Verwaltete Kosten mit automatischer Skalierung von Computeressourcen

Beim Aufrufen eines Batchendpunkts wird ein asynchroner Batchrückschlussauftrag ausgelöst. Computeressourcen werden automatisch bereitgestellt, wenn der Auftrag gestartet wird, und nach Abschluss des Auftrags wird die Bereitstellung dann automatisch wieder aufgehoben. Sie zahlen also nur für Computeressourcen, wenn Sie diese auch nutzen.

Sie können die Einstellungen der Rechenressourcen (z. B. Anzahl der Instanzen) und erweiterte Einstellungen (z. B. Mini-Batch-Größe, Fehlerschwelle usw.) für jeden einzelnen Batch-Inferenzauftrag ändern, um die Ausführung zu beschleunigen und die Kosten zu senken.

Flexible Datenquellen und flexibler Speicher

Sie können beim Aufrufen eines Batchendpunkts die folgenden Optionen für Eingabedaten verwenden:

  • Clouddaten – Entweder ein Pfad zum registrierten Azure Machine Learning-Datenspeicher, ein Verweis auf eine bei Azure Machine Learning registrierte V2-Datenressource oder ein öffentlicher URI. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Daten in Azure Machine Learning Studio.
  • Lokal gespeicherte Daten – Sie werden automatisch in den registrierten Azure ML-Datenspeicher hochgeladen und an den Batchendpunkt übergeben.

Hinweis

  • Wenn Sie ein bestehendes V1 FileDataset für Batchendpunkte verwenden, empfehlen wir Ihnen, diese in V2-Ressourcen zu migrieren und beim Aufruf von Batchendpunkten direkt darauf zu verweisen. Derzeit werden nur Datenressourcen des Typs uri_folder oder uri_file unterstützt. Batchendpunkte, die mit GA CLIv2 (2.4.0 und neuer) oder GA REST-API (2022-05-01 und neuer) erstellt wurden, unterstützen kein V1-Dataset.
  • Sie können auch den URI oder den Pfad zum Datenspeicher aus dem V1-FileDataset extrahieren, indem Sie den Befehl az ml dataset show mit dem Parameter --query verwenden und diese Informationen für den Aufruf verwenden.
  • Während Batchendpunkte, die mit früheren APIs erstellt wurden, weiterhin V1-FileDataset unterstützen, werden wir mit den neuesten API-Versionen weitere V2-Ressourcen zur weiteren Verbesserung von Benutzerfreundlichkeit und Flexibilität unterstützen. Weitere Informationen zu V2-Datenressourcen finden Sie unter Arbeiten mit Daten mit SDK v2. Weitere Informationen zur neuen V2-Erfahrung finden Sie unter Was ist v2?.

Weitere Informationen zu unterstützten Eingabeoptionen finden Sie unter Zugreifen auf Daten aus Batchendpunktaufträgen.

Geben Sie den Speicherausgabeort für einen beliebigen Datenspeicher und Pfad an. Die Ausgabe für Batchendpunkte wird standardmäßig im Standardblobspeicher des Arbeitsbereichs gespeichert. Die Daten sind hierbei nach Auftragsname (systemseitig generierte GUID) sortiert.

Sicherheit

  • Authentifizierung: Azure Active Directory-Token
  • SSL: Standardmäßig für Endpunktaufrufe aktiviert
  • VNet-Unterstützung: Batchendpunkte unterstützen den Eingangsschutz. Ein Batchendpunkt mit Eingangsschutz akzeptiert Bewertungsanforderungen nur von Hosts innerhalb eines virtuellen Netzwerks, aber nicht aus dem öffentlichen Internet. Ein Batchendpunkt, der in einem Arbeitsbereich mit aktiviertem Private Link erstellt wird, verfügt über einen Eingangsschutz. Informationen zum Erstellen eines Arbeitsbereichs mit aktiviertem Private Link finden Sie unter Erstellen eines sicheren Arbeitsbereichs.

Hinweis

Das Erstellen von Batchendpunkten in einem Arbeitsbereich mit aktivierter privater Verbindung wird nur in den folgenden Versionen unterstützt.

  • CLI – Version 2.15.1 oder höher
  • REST-API – Version 2022-05-01 oder höher
  • SDK V2 – Version 0.1.0b3 oder höher

Nächste Schritte