Auswählen der geeigneten Rückschlussstrategie

Abgeschlossen

Wählen Sie die geeignete Strategie für Rückschlüsse aus, um Ihr Modell für den Verbrauch verfügbar zu machen.

Denken Sie an das Fertigungsunternehmen, für das Sie arbeiten. Sie benötigen ein großes Dataset, um ein Modell zu trainieren, das Objekte wie Helme und bestimmte Maschinen erkennt.

Das trainierte Modell, das Sie bereitstellen, sollte Kamerabilder aufnehmen und in Echtzeit verarbeiten, um eine Vorhersage zurückzugeben. Da Ihr Modell Milliarden von Parametern enthält, ist die CPU-Compute wahrscheinlich nicht ausreichend für Ihre Bereitstellungsanforderungen.

Sie erfahren, was Sie tun können, um Rückschlüsse großer Modelle zur GPU-Compute zu optimieren.

Modellrückschlüsse

Mit Modellrückschlüssen, auch als Modellbewertung bezeichnet, möchten Sie das zuvor trainierte Modell verwenden, um Vorhersagen zu neuen Daten zu generieren. Wenn Sie ein rechenintensives Modell für Echtzeitrückschlüsse bereitstellen, ist es wichtig, sowohl die Hardware als auch die Software der Bereitstellung zu konfigurieren, um die von Ihnen benötigten Leistung zu erzielen.

Hinweis

Ein Modell kann für Echtzeit- oder Batchrückschlüsse bereitgestellt werden. Ähnlich wie beim Modelltraining kann ein Computecluster für Batchrückschlüsse verwendet werden. Der Schwerpunkt liegt hier auf Echtzeitrückschlüssen, da sich dies aufgrund der geringen Latenzanforderungen bei der Arbeit mit einem rechenintensiven Modell als größere Herausforderung herausgestellt hat.

Wenn Sie ein Modell für Echtzeitrückschlüsse mit Azure Machine Learning bereitstellen, können Sie die erforderliche Hardware konfigurieren, indem Sie GPU-Compute für die Bereitstellung verwenden. Wählen Sie eine der VM-Größen der NC-Serie aus, um GPU-Compute beim Erstellen des Endpunkts in Azure Machine Learning zu verwenden. Es gibt zwei Optionen für Onlineendpunkte:

  • Verwalteter Onlineendpunkt: Computeressourcen werden von Azure erstellt und verwaltet.
  • Kubernetes: Sie können Ihren eigenen Azure Kubernetes-Cluster erstellen, verwalten und an Azure Machine Learning anfügen.

Tipp

Weitere Informationen finden Sie unter Was sind Azure Machine Learning-Endpunkte (Vorschau)?.

Wenn Sie ein Modell auf GPU-Computern bereitstellen, sollten Sie die entsprechende Software verwenden, um die Modellrückschlüsse zu optimieren. Durch eine effizientere Bereitstellung Ihres Modells können Sie Kosten sparen und die Latenz reduzieren.

Optimieren der Modellrückschlüsse

Wenn Sie ein umfangreiches Modell für Rückschlüsse bereitstellen, werden Sie wahrscheinlich mit zwei wesentlichen Herausforderungen konfrontiert: Latenz und Kosten. Nachdem Sie ein Bild an Ihren Onlineendpunkt gesendet haben, möchten Sie das Ergebnis schnellstmöglich zurückbekommen. Verwenden Sie vorzugsweise eine Konfiguration, die am kosteneffizientesten ist. Neben Herausforderungen hinsichtlich Latenz und Kosten umfassen einige Modelle so viele Parameter, dass sie mehr als den Arbeitsspeicher eines einzelnen GPU-Geräts benötigen.

Es gibt zwei Softwareoptionen, die Sie bei der Optimierung der Modellrückschlüsse unterstützen können:

  • DeepSpeed: Hiermit wird die Rückschlusscomputenutzung des Modells durch Parallelität, optimierte Ressourcenzuordnung und quantisierte Modelle optimiert.
  • Triton Inference Server: Diese Komponente optimiert den Server für hohen Durchsatz und wird mit ONNX für eine Hochleistungsruntime kombiniert.

DeepSpeed Inference

DeepSpeed ist eine Bibliothek, die entwickelt wurde, um das Training und die Bereitstellung von Deep-Learning-Modellen zu beschleunigen. DeepSpeed Inference wurde speziell entwickelt, um die Leistung von großen Modellen mit Milliarden von Parametern zu verbessern.

Dies sind die drei wichtigsten Techniken, die DeepSpeed Inference verwendet, um die Modellrückschlüsse zu optimieren:

  • Parallelität: DeepSpeed Inference teilt das Modell automatisch auf, um die Batches parallel auf mehreren GPUs zu verarbeiten. Parallelität kann sowohl die Latenz als auch die Kosten reduzieren, führt aber häufig zu Mehraufwand. DeepSpeed Inference übernimmt die Verwaltung für Sie, und Sie müssen Ihren Code nicht ändern.
  • Optimierte Computenutzung: DeepSpeed Inference optimiert die GPU-Auslastung, indem eine tiefe Fusion ausgeführt wird, während der Vorgänge kombiniert und auf einem einzelnen Kernel berechnet werden. Außerdem werden die kleinen Datenbatches verarbeitet, indem die Speicherbandbreitenauslastung für das Laden der Parameter maximiert wird.
  • Quantisierung: Hierbei werden kontinuierliche Daten in eine diskrete Zahl mit einem festen Bereich konvertiert. Quantisierungsmodelle können effizient mit niedriger Genauigkeit ausgeführt werden, beispielsweise mit einer 8-Bit-Ganzzahl (INT 8) anstelle von 32-Bit-Gleitkommazahlen (FP32), was zu Speichereinsparungen und Latenzreduzierungen führt.

Tipp

Weitere Informationen finden Sie im Blogbeitrag zur Funktionsweise von DeepSpeed Inference.

Triton

Triton Inference Server ist ein von NVIDIA erstelltes Framework, das für die Bereitstellung rechenintensiver Modelle jedes Frameworks auf CPU- und GPU-Computeressourcen ausgelegt ist.

Wenn Sie Triton Inference Server in Azure Machine Learning verwenden, optimiert Triton die Modellleistung für Sie, indem die optimale Konfiguration von Durchsatz, Latenz und Arbeitsspeicherauslastung ermittelt wird.

Triton unterstützt die meisten Machine Learning-Frameworks wie TensorFlow, PyTorch und ONNX Runtime. Triton erfordert jedoch eine bestimmte Modellrepositorystruktur, um die erforderlichen Modelldetails verstehen zu können.

Eine schnelle und einfache Möglichkeit zum Bereitstellen Ihres Modells mit Triton ist die Verwendung der Bereitstellung ohne Code in Azure Machine Learning. Wenn Sie die Bereitstellung ohne Code verwenden, müssen Sie beim Erstellen des Endpunkts nicht das Bewertungsskript oder die Umgebung angeben, da Sie den Triton-Server nach der Bereitstellung des Modells verwenden, um bei Echtzeitrückschlüssen unterstützt zu werden.

Legen Sie model_format auf Triton fest, um Triton für Echtzeitrückschlüsse zu verwenden. Sie können das Modellformat in der YAML-Datei konfigurieren, wenn Sie bei Verwendung der CLI (v2) den Befehl az ml model create nutzen.

Die YAML-Datei kann wie die folgende aussehen:

name: densenet-onnx-model
version: 1
local_path: ./models
model_format: Triton
description: Registering my Triton format model.

Auf die YAML-Datei wird dann beim Erstellen des Modells verwiesen:

az ml model create -f create-triton-model.yaml

Daher wird das im Ordner models gespeicherte Modell (mit der erforderlichen Repositorystruktur) im Azure Machine Learning-Arbeitsbereich registriert und im Studio angezeigt.

Registered ONNX model ready to be deployed with Triton

Tipp

Lesen Sie die Ankündigung im Blogbeitrag zu Triton für Azure Machine Learning sowie den Artikel zur Bereitstellung mit hoher Leistung mit Triton Inference Server (Vorschau).