Inferenzoptimierung für Modelle von Amazon SageMaker AI - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Inferenzoptimierung für Modelle von Amazon SageMaker AI

Mit Amazon SageMaker AI können Sie die Leistung Ihrer Modelle mit generativer KI verbessern, indem Sie Techniken zur Inferenzoptimierung anwenden. Durch die Optimierung Ihrer Modelle können Sie ein besseres Preis-Leistungs-Verhältnis für Ihren Anwendungsfall erzielen. Wenn Sie ein Modell optimieren, wählen Sie aus, welche der unterstützten Optimierungstechniken angewendet werden sollen, einschließlich Quantisierung, spekulativer Dekodierung und Kompilierung. Nachdem Ihr Modell optimiert wurde, können Sie eine Bewertung durchführen, um Leistungsmetriken für Latenz, Durchsatz und Preis einzusehen.

Für viele Modelle bietet SageMaker AI auch mehrere voroptimierte Versionen, die auf unterschiedliche Anwendungsanforderungen in Bezug auf Latenz und Durchsatz zugeschnitten sind. Bei diesen Modellen können Sie eine der optimierten Versionen bereitstellen, ohne das Modell zuerst selbst zu optimieren.

Optimierungsmethoden

Amazon SageMaker AI unterstützt die folgenden Optimierungsmethoden.

Kompilierung

Durch die Kompilierung wird das Modell für die beste verfügbare Leistung auf dem ausgewählten Hardwaretyp optimiert, ohne dass die Genauigkeit darunter leidet. Sie können die Modellkompilierung anwenden, um LLMs für beschleunigte Hardware wie GPU-Instances, AWS-Trainium-Instances oder AWS-Inferentia-Instances zu optimieren.

Wenn Sie ein Modell anhand von Kompilierung optimieren, profitieren Sie von einer frühzeitigen Kompilierung. Sie reduzieren die Bereitstellungszeit des Modells und die Auto-Scaling-Latenz, da die Modellgewichtungen keine Just-in-Time-Kompilierung erfordern, wenn das Modell auf einer neuen Instance bereitgestellt wird.

Wenn Sie Ihr Modell für eine GPU-Instance kompilieren möchten, verwendet SageMaker AI die TensorRT-LLM-Bibliothek, um die Kompilierung auszuführen. Wenn Sie Ihr Modell für eine AWS-Trainium- oder AWS-Inferentia-Instance kompilieren möchten, verwendet SageMaker AI das AWS Neuron SDK, um die Kompilierung auszuführen.

Quantisierung

Die Quantisierung ist eine Methode zur Reduzierung der Hardwareanforderungen eines Modells, indem ein weniger genauer Datentyp für Gewichtungen und Aktivierungen verwendet wird. Nachdem Sie ein Modell anhand der Quantisierung optimiert haben, können Sie es auf kostengünstigeren und besser verfügbaren GPUs hosten. Das quantisierte Modell ist jedoch möglicherweise weniger genau als das ursprüngliche Modell, das Sie optimiert haben.

Die Datenformate, die SageMaker AI für die Quantisierung unterstützt, variieren von Modell zu Modell. Folgende Formate werden unterstützt:

  • INT4-AWQ – Ein 4-Bit-Datenformat. Activation-aware Weight Quantization (AWQ) ist eine effiziente, genaue und auf die Gewichtung beschränkte Quantisierungsmethode für LLMs mit geringer Bitzahl.

  • FP8 – Das 8-Bit-Gleitkommaformat (FP8) ist ein Format mit niedriger Genauigkeit für Gleitkommazahlen. Es sorgt für ein ausgewogenes Verhältnis zwischen Speichereffizienz und Modellgenauigkeit, indem es Werte mit weniger Bits als das Standard-FP16-Gleitkommaformat darstellt.

  • int8-SmoothQuant – Ein 8-Bit-Datenformat. SmoothQuant ist eine Quantisierungsmethode mit gemischter Präzision, die Aktivierungen und Gewichtungen gemeinsam skaliert, indem ihre Dynamikbereiche ausgeglichen werden.

Spekulative Dekodierung

Die spekulative Dekodierung ist eine Methode, um den Dekodierungsprozess großer LLMs zu beschleunigen. Sie optimiert Modelle im Hinblick auf die Latenz, ohne die Qualität des generierten Textes zu beeinträchtigen.

Bei dieser Methode wird ein kleineres, aber schnelleres Modell verwendet, das als Entwurfsmodell bezeichnet wird. Das Entwurfsmodell generiert Kandidaten-Token, die dann durch das größere, aber langsamere Zielmodell validiert werden. Bei jeder Iteration generiert das Entwurfsmodell mehrere Kandidaten-Token. Das Zielmodell überprüft die Token und wenn es feststellt, dass ein bestimmtes Token nicht akzeptabel ist, lehnt es das Token ab und generiert es neu. Das Zielmodell verifiziert also Token und generiert eine kleine Anzahl von Token.

Das Entwurfsmodell ist deutlich schneller als das Zielmodell. Es generiert alle Token schnell und sendet sie stapelweise zur Überprüfung an das Zielmodell. Das Zielmodell wertet sie alle parallel aus, was die endgültige Antwort beschleunigt.

SageMaker AI bietet einen vorgefertigten Modellentwurf, den Sie verwenden können, um kein eigenes Modell erstellen zu müssen. Wenn Sie lieber Ihr eigenes benutzerdefiniertes Entwurfsmodell verwenden möchten, unterstützt SageMaker AI jedoch auch diese Option.

Schnelles Laden von Modellen

Die Methode zum schnellen Laden von Modellen bereitet ein LLM so vor, dass SageMaker AI es schneller auf eine ML-Instance laden kann.

Um das Modell vorzubereiten, fragmentiert SageMaker AI es im Voraus, indem es das Modell in Teile unterteilt, die sich jeweils auf einer separaten GPU befinden können, um verteilte Inferenzen zu ermöglichen. Außerdem speichert SageMaker AI die Modellgewichte in gleich großen Blöcken, die SageMaker AI gleichzeitig auf die Instance laden kann.

Wenn SageMaker AI das optimierte Modell auf die Instance lädt, streamt es die Modellgewichte direkt von Amazon S3 auf die GPUs der Instance. Durch das Streamen der Gewichte entfallen bei SageMaker AI mehrere zeitaufwändige Schritte, die normalerweise notwendig sind. Zu diesen Schritten gehören das Herunterladen der Modellartefakte von Amazon S3 auf die Festplatte, das Laden der Modellartefakte in den Host-Speicher und das Fragmentieren des Modells auf dem Host, bevor die Shards schließlich auf die GPUs geladen werden.

Nachdem Sie Ihr Modell für das schnellere Laden optimiert haben, können Sie es schneller auf einem SageMaker-AI-Endpunkt bereitstellen. Wenn Sie den Endpunkt für die Verwendung von Auto Scaling konfigurieren, wird er außerdem schneller aufskaliert, um dem Anstieg des Datenverkehrs Rechnung zu tragen.