Modellpakete für die Bereitstellung (Vorschau)
Nachdem Sie ein Machine Learning-Modell trainiert haben, müssen Sie es bereitstellen, damit andere seine Vorhersagen nutzen können. Die Bereitstellung eines Modells erfordert jedoch mehr als nur die Gewichtungen oder die Artefakte des Modells. Modellpakete sind eine Funktion in Azure Machine Learning, mit der Sie alle Abhängigkeiten erfassen können, die für die Bereitstellung eines Machine Learning-Modells auf einer Bereitstellungsplattform benötigt werden. Sie können Pakete arbeitsbereichsübergreifend und sogar an Standorte außerhalb von Azure Machine Learning verschieben.
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.
Was ist ein Modellpaket?
Als bewährte Methode müssen vor der Bereitstellung eines Modells alle Abhängigkeiten erfasst und aufgelöst werden, die für eine erfolgreiche Ausführung des Modells benötig werden. Dadurch können Sie das Modell in reproduzierbarer und stabiler Weise bereitstellen.
Ein Modell umfasst in der Regel folgende Abhängigkeiten:
- Basisimage oder Umgebung, in der Ihr Modell ausgeführt wird.
- Liste der Python-Pakete und -Abhängigkeiten, die das Modell benötigt, um ordnungsgemäß zu funktionieren.
- Zusätzliche Ressourcen, die Ihr Modell möglicherweise benötigt, um Rückschlüsse zu generieren. Zu diesen Ressourcen können Beschriftungszuordnungen und Parameter für die Vorverarbeitung gehören.
- Software, die der Rückschlussserver zum Verarbeiten von Anforderungen benötigt, z. B. Flask Server oder TensorFlow Serving.
- Rückschlussroutine (sofern erforderlich).
All diese Elemente müssen erfasst werden, um dann in der Bereitstellungsinfrastruktur bereitgestellt werden zu können. Die resultierende Ressource, die nach der Erfassung aller Abhängigkeiten generiert wird, nennt man ein Modellpaket.
Vorteile der Paketierung von Modellen
Das Paketieren von Modellen vor ihrer Bereitstellung hat folgende Vorteile:
- Reproduzierbarkeit: Alle Abhängigkeiten werden zum Zeitpunkt der Paketerstellung erfasst, nicht zum Zeitpunkt der Bereitstellung. Nach Auflösung der Abhängigkeiten können Sie das Paket beliebig oft bereitstellen und dabei garantieren, dass die Abhängigkeiten bereits aufgelöst wurden.
- Schnellere Konfliktlösung: Azure Machine Learning erkennt bei der Paketierung des Modells alle Fehlkonfigurationen im Zusammenhang mit den Abhängigkeiten, wie z. B. ein fehlendes Python-Paket. Sie müssen das Modell nicht bereitstellen, um solche Probleme zu ermitteln.
- Einfachere Integration in den Rückschlussserver: Da der von Ihnen verwendete Rückschlussserver möglicherweise spezielle Softwarekonfigurationen erfordert (z. B. das Torch Serve-Paket), kann diese Software zu Konflikten mit den Abhängigkeiten Ihres Modells führen. Modellpakete in Azure Machine Learning injizieren die vom Rückschlussserver benötigten Abhängigkeiten, sodass Sie Konflikte vor der Bereitstellung eines Modells erkennen können.
- Portabilität: Sie können Azure Machine Learning-Modellpakete mithilfe von Registrierungen von einem Arbeitsbereich in einen anderen verschieben. Sie können außerdem Pakete erstellen, die außerhalb von Azure Machine Learning bereitgestellt werden können.
- MLflow-Unterstützung bei privaten Netzwerken: Für MLflow-Modelle benötigt Azure Machine Learning eine Internetverbindung, um die zur Ausführung der Modelle erforderlichen Python-Pakete dynamisch installieren zu können. Bei der Erstellung von MLflow-Modellpaketen werden diese Python-Pakete während der Modellpaketerstellung aufgelöst, sodass für die Bereitstellung des MLflow-Modellpakets keine Internetverbindung benötigt wird.
Tipp
Die Erstellung von MLflow-Modellpaketen vor der Bereitstellung wird dringend empfohlen und ist für Endpunkte ohne ausgehende Netzwerkkonnektivität sogar erforderlich. Ein MLflow-Modell gibt seine Abhängigkeiten im Modell selbst an und erfordert daher eine dynamische Installation von Paketen. Wenn ein MLflow-Modell paketiert wird, erfolgt diese dynamische Installation zum Zeitpunkt der Paketerstellung, nicht zum Zeitpunkt der Bereitstellung.
Bereitstellung von Modellpaketen
Sie können Modellpakete als Eingaben für Onlineendpunkte bereitstellen. Die Verwendung von Modellpaketen trägt zur Optimierung Ihrer MLOps-Workflows bei, da alle Abhängigkeiten während der Paketerstellung erfasst werden und somit die Gefahr von Fehlern bei der Bereitstellung verringert wird. Sie können das Modellpaket auch so konfigurieren, dass es Docker-Images erzeugt, die Sie außerhalb von Azure Machine Learning bereitstellen können, entweder lokal oder in der Cloud.
Paket vor der Bereitstellung
Die einfachste Möglichkeit für die Bereitstellung unter Verwendung eines Modellpakets besteht darin, in Azure Machine Learning vor dem Durchführen der Bereitstellung anzugeben, dass ein Modellpaket bereitgestellt werden soll. Wenn Sie die Azure CLI, das Azure Machine Learning SDK oder Azure Machine Learning Studio verwenden, um eine Bereitstellung in einem Onlineendpunkt zu erstellen, können Sie die Verwendung von Modellpaketen wie folgt angeben:
Verwenden Sie das Flag --with-package
, wenn Sie eine Bereitstellung erstellen:
az ml online-deployment create --with-package -f model-deployment.yml -e $ENDPOINT_NAME
Azure Machine Learning paketiert zunächst das Modell und führt dann die Bereitstellung aus.
Hinweis
Wenn Sie bei der Verwendung von Paketen eine Basisumgebung mit conda
- oder pip
-Abhängigkeiten angeben, müssen Sie die Abhängigkeiten des Rückschlussservers (azureml-inference-server-http
) nicht einschließen. Diese Abhängigkeiten werden vielmehr automatisch für Sie hinzugefügt.
Bereitstellen eines gepackten Modells
Sie können ein Modell bereitstellen, das direkt an einem Onlineendpunkt gepackt wurde. Diese Vorgehensweise gewährleistet die Reproduzierbarkeit von Ergebnissen und gilt als bewährte Methode. Weitere Informationen finden Sie unter Packen und Bereitstellen von Modellen für Onlineendpunkte.
Wenn Sie das Paket außerhalb von Azure Machine Learning bereitstellen möchten, lesen Sie Packen und Bereitstellen von Modellen außerhalb von Azure Machine Learning.