Optimierung von Modellinferenzen mit Amazon SageMaker - Amazon SageMaker

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.

Optimierung von Modellinferenzen mit Amazon SageMaker

Mit Amazon SageMaker können Sie die Leistung Ihrer generativen KI-Modelle 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 Evaluierung durchführen, um Leistungskennzahlen für Latenz, Durchsatz und Preis einzusehen.

Für viele Modelle stehen SageMaker auch mehrere voroptimierte Versionen zur Verfügung, von denen jede auf unterschiedliche Anwendungsanforderungen in Bezug auf Latenz und Durchsatz zugeschnitten ist. Für solche Modelle können Sie eine der optimierten Versionen bereitstellen, ohne das Modell zuerst selbst zu optimieren.

Optimierungstechniken

Amazon SageMaker unterstützt die folgenden Optimierungstechniken.

Spekulative Dekodierung

Die spekulative Dekodierung ist eine Technik zur Beschleunigung des Dekodierungsprozesses großer Dateien. LLMs Sie optimiert Modelle im Hinblick auf die Latenz, ohne die Qualität des generierten Textes zu beeinträchtigen.

Bei dieser Technik 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 sowohl Token als auch generiert eine kleine Menge davon.

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

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

Quantisierung

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

SageMaker unterstützt die aktivierungsabhängige Gewichtsquantisierung () für. AWQ GPUs AWQist eine Quantisierungstechnik, die effizient, genauLLMs, niedrigbitarm und nur gewichtsabhängig ist.

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 AWS Trainium oder Inferentia zu optimieren. AWS

Wenn Sie ein Modell durch Kompilierung optimieren, profitieren Sie von der Kompilierung. ahead-of-time Sie reduzieren die Bereitstellungszeit des Modells und die Latenz für die auto-scaling, da die Modellgewichte nicht just-in-time kompiliert werden müssen, wenn das Modell auf einer neuen Instanz bereitgestellt wird.

Metrik-Referenz für Leistungsbewertungen von Inferenzen

Nachdem Sie die Leistung eines optimierten Modells erfolgreich bewertet haben, werden auf der Seite mit den Bewertungsdetails in Studio die folgenden Metriken angezeigt.

Latenzmetriken

Der Abschnitt Latenz zeigt die folgenden Metriken

Nebenläufigkeit

Die Anzahl gleichzeitiger Benutzer, die bei der Evaluierung simuliert wurden, um den Endpunkt gleichzeitig aufzurufen.

Zeit bis zum ersten Token (ms)

Die Zeit, die zwischen dem Senden der Anfrage und dem Empfang des ersten Tokens einer Streaming-Antwort vergangen ist.

Latenz zwischen den Tokens (ms)

Die Zeit für die Generierung eines Ausgabetokens für jede Anfrage.

Client-Latenz (ms)

Die Latenz der Anfrage vom Senden der Anfrage bis zum Empfang der gesamten Antwort.

Eingabe-Tokens/Sekunde (Anzahl)

Die Gesamtzahl der generierten Eingabe-Token für alle Anfragen geteilt durch die Gesamtdauer in Sekunden für die Parallelität.

Ausgabetoken/Sekunde (Anzahl)

Die Gesamtzahl der generierten Ausgabetokens für alle Anfragen geteilt durch die Gesamtdauer in Sekunden für die Parallelität.

Client-Aufrufe (Anzahl)

Die Gesamtzahl der Inferenzanfragen, die von allen Benutzern gleichzeitig an den Endpunkt gesendet wurden.

Fehler beim Client-Aufruf (Anzahl)

Die Gesamtzahl der Inferenzanfragen, die von allen Benutzern gleichzeitig an den Endpunkt gesendet wurden und zu einem Aufruffehler geführt haben.

Tokenizer ist fehlgeschlagen (Anzahl)

Die Gesamtzahl der Inferenzanfragen, bei denen der Tokenizer die Anfrage oder die Antwort nicht analysieren konnte.

Leere Inferenzantwort (Anzahl)

Die Gesamtzahl der Inferenzanfragen, die dazu geführt haben, dass keine Ausgabetoken ausgegeben wurden oder der Tokenizer die Antwort nicht analysieren konnte.

Kennzahlen zum Durchsatz

Im Abschnitt Durchsatz werden die folgenden Metriken angezeigt.

Nebenläufigkeit

Die Anzahl gleichzeitiger Benutzer, die bei der Evaluierung simuliert wurden, um den Endpunkt gleichzeitig aufzurufen.

Eingabe-Tokens/Sekunde/Anforderung (Anzahl)

Die Gesamtzahl der generierten Eingabe-Token pro Sekunde pro Anfrage.

Ausgabetokens/Sekunde/Anforderung (Anzahl)

Die Gesamtzahl der generierten Ausgabetokens pro Sekunde pro Anfrage.

Eingabe-Tokens (Anzahl)

Die Gesamtzahl der generierten Eingabetoken pro Anfrage.

Ausgabetokens (Anzahl)

Die Gesamtzahl der generierten Ausgabetokens pro Anfrage.

Preiskennzahlen

Im Abschnitt Preis werden die folgenden Kennzahlen angezeigt.

Nebenläufigkeit

Die Anzahl gleichzeitiger Benutzer, die bei der Evaluierung simuliert wurden, um den Endpunkt gleichzeitig aufzurufen.

Preis pro Million Eingabe-Token

Kosten für die Verarbeitung von 1 Million Eingabetoken.

Preis pro Million Ausgabetoken

Kosten für die Generierung von 1 Million Ausgabetoken.

Referenz zu unterstützten Modellen

In der folgenden Tabelle sind die Modelle aufgeführt, für die die Inferenzoptimierung SageMaker unterstützt wird, sowie die unterstützten Optimierungstechniken.

Modelle, die die Inferenzoptimierung unterstützen
Modellname JumpStart Modell-ID Unterstützt die Quantisierung Unterstützt spekulative Dekodierung Spekulative Dekodierung mit Entwurfsmodell SageMaker
Falcon huggingface-llm-falcon-40b-bf16 Ja Ja Nein
huggingface-llm-falcon-40 16 b-instruct-bf Ja Ja Nein
huggingface-llm-falcon-180 16 b-chat-bf Nein Ja Nein
huggingface-llm-falcon-180b-bf16 Nein Ja Nein
huggingface-llm-amazon-falconlite Ja Ja Nein
huggingface-llm-amazon-falconlite2 Ja Ja Nein
huggingface-llm-tiiuae-falcon-rw-1b Ja Ja Nein
huggingface-llm-falcon-7b-bf16 Ja Ja Nein
huggingface-llm-falcon-7 16 b-instruct-bf Ja Ja Nein
huggingface-llm-falcon2-11b Ja Ja Nein
gpt-neox umarmtes Gesicht — Textgeneration2-20b-fp16 gpt-neoxt-chat-base Ja Ja Nein
umarmtes Gesicht — Textgenerierung 2-gpt-neox-20b-fp16 Ja Ja Nein
LLaMA meta-textgeneration-llama-3-70b-instruieren Ja Ja Ja
meta-textgeneration-llama-3-70b Ja Ja Ja
meta-textgeneration-llama-3-8b Ja Ja Ja
meta-textgeneration-llama-3-8b-instruieren Ja Ja Ja
meta-textgeneration-llama-2-7b Ja Ja Ja
meta-textgeneration-llama-2-7b-f Ja Ja Ja
meta-textgeneration-llama-2-13b Ja Ja Ja
meta-textgeneration-llama-2-13b-f Ja Ja Ja
meta-textgeneration-llama-2-70b Ja Ja Ja
meta-textgeneration-llama-2-70b-f Ja Ja Ja
meta-textgeneration-llama-codellama-7b Ja Ja Ja
meta-textgeneration-llama-codellama-7b-instruieren Ja Ja Ja
meta-textgeneration-llama-codellama-7b-Python Ja Ja Ja
meta-textgeneration-llama-codellama-13b Ja Ja Ja
meta-textgeneration-llama-codellama-13b-instruieren Ja Ja Ja
meta-textgeneration-llama-codellama-13b-Python Ja Ja Ja
meta-textgeneration-llama-codellama-34b Ja Ja Ja
meta-textgeneration-llama-codellama-34b - instruieren Ja Ja Ja
meta-textgeneration-llama-codellama-34b-Python Ja Ja Ja
meta-textgeneration-llama-codellama-70 b Ja Ja Ja
meta-textgeneration-llama-codellama-70b instruieren Ja Ja Ja
meta-textgeneration-llama-codellama-70b-Python Ja Ja Ja
meta-textgeneration-llama-guard-7b Ja Ja Ja
Bloom huggingface-textgeneration-bloom-1b7 Ja Ja Nein
huggingface-textgeneration-bloom-1b1 Ja Ja Nein
huggingface-textgeneration-bloom-560 m Ja Ja Nein
huggingface-textgeneration-bloomz-560 m Ja Ja Nein
huggingface-textgeneration-bloomz-1b1 Ja Ja Nein
huggingface-textgeneration-bloomz-1b7 Ja Ja Nein
umarmtes Gesicht — Textgeneration1-Bloomz-7b1-FP16 Ja Ja Nein
umarmtes Gesicht — Textgeneration1-Bloom-7B1 Ja Ja Nein
umarmtes Gesicht — Textgeneration1-Bloomz-3b-fp16 Ja Ja Nein
umarmtes Gesicht — Textgeneration1-Bloom-3B Ja Ja Nein
huggingface-textembedding-bloom-7b1 Ja Ja Nein
huggingface-textembedding-bloom-7b1-fp16 Ja Ja Nein
Cohere huggingface-llm-cohereforai-c4 ai-command-r-plus Ja
Gemma huggingface-llm-gemma-7b Ja Ja Nein
huggingface-llm-gemma-7b-instruieren Ja Ja Nein
huggingface-llm-gemma-2b Ja Ja Nein
huggingface-llm-gemma-2b-instruieren Ja Ja Nein
huggingface-llm-zephyr-7b-Gemma Ja Ja Nein
gpt2 huggingface-textgeneration-gpt2 Ja Nein Nein
huggingface-textgeneration-distilgpt2 Ja Nein Nein
Mistral huggingface-llm-mistral-7b Ja Ja Ja
huggingface-llm-mistral-7b-instruieren Ja Ja Ja
huggingface-llm-mistral-7 b-openorca-gptq Ja Ja Ja
huggingface-llm-amazon-mistrallite Ja Ja Ja
huggingface-llm-thebloke-mistral-7 b-openorca-awq Ja Ja Ja
huggingface-llm-huggingfaceh4-Mistral-7 b-sft-beta Ja Ja Ja
huggingface-llm-huggingfaceh4-Mistral-7 b-sft-alpha Ja Ja Ja
huggingface-llm-teknium-openhermes-2-Mistral-7b Ja Ja Ja
huggingface-llm-nousresearch-yarn-Mistral-7b-128k Ja Ja Ja
huggingface-llm-dolphin-2-2-1-Mistral-7b Ja Ja Ja
huggingface-llm-cultrix-mistraltrix-v 1 Ja Ja Ja
Mistral huggingface-llm-mixtral-8x7b-instruieren Ja Ja Ja
huggingface-llm-mixtral-8x7 b-instruct-gptq Ja Ja Ja
huggingface-llm-mixtral-8 x 7b Ja Ja Ja
huggingface-llm-mistralai-mixtral-8x22B-Instruct-V0-1 Ja Ja Ja
huggingface-llm-dolphin2-5-mixtral-8x7b Ja Ja Ja
huggingface-llm-dolphin-2-7-Mixtral-8 x 7b Ja Ja Ja
Phi huggingface-llm-phi-2 Ja

Voroptimierte Modelle JumpStart

Im Folgenden sind die JumpStart Modelle mit voroptimierten Konfigurationen aufgeführt.

Meta
  • Llama 3 8B Instruktor

  • Lama 3 8B

  • Lama 3 70B Instruktor

  • Lama 3 70B

  • Lama 2 70B Chat

  • Lama 2 7B Chat

  • Lama 2 13B Chat

HuggingFace
  • Mixtral 8x7B Instruktor

  • Mixtral 8x7B

  • Mistral 7B, Instruktor

  • Mistral 7B

JumpStart Vorkompilierte Modelle

SageMaker Stellt für einige Modelle und Konfigurationen Modelle bereit, die für bestimmte AWS Inferentia- und Trainium-Instanzen vorkompiliert wurden. AWS In diesen Fällen werden die kompilierten Artefakte abgerufen, wenn Sie einen Kompilierungs- oder Optimierungsjob erstellen und ml.inf2.48xlarge oder ml.trn1.32xlarge als Bereitstellungsinstanztyp wählen. SageMaker Da der Job ein Modell verwendet, das bereits kompiliert wurde, kann er schnell abgeschlossen werden, ohne die Kompilierung von Grund auf neu ausführen zu müssen.

Im Folgenden sind die JumpStart Modelle aufgeführt, für die Modelle SageMaker vorkompiliert wurden:

Meta
  • Lama3 8B

  • Lama3 70B

  • Lama 2 7 B

  • Lama2 70B

  • Lama2 13B

  • Kode Llama 7B

  • Kode Llama 70B

HuggingFace
  • Mistral 7B