Unterstützung für die Verbesserung dieser Seite beitragen
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.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, der sich im rechten Bereich jeder Seite befindet.
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.
AI/ML Inferenz-Workloads auf Amazon EKS ausführen
Tipp
Registrieren Sie sich
Inferenz ist der Prozess, bei dem ein trainiertes KI-Modell ausgeführt wird, um Vorhersagen oder Ausgaben aus Eingabedaten zu generieren. Dazu gehören die Bereitstellung großer Sprachmodelle (LLMs), die Text oder Code erzeugen, Diffusionsmodelle, die Bilder generieren, Sprachmodelle für die Sprachsynthese und -transkription sowie Videomodelle für die Analyse oder Generierung in Echtzeit. Amazon EKS bietet eine skalierbare, portable Lösung für die Bereitstellung dieser Inferenz-Workloads mit NVIDIA-GPUs oder AWS Trainium-Beschleunigern, dynamischer Skalierung und Integration in die breitere Kubernetes-Umgebung und die gesamte Palette von Tools und Diensten. AWS
Warum Amazon EKS für Inferenz verwenden
Amazon EKS kombiniert Kubernetes-Orchestrierung mit AWS Infrastruktur, um die wichtigsten Herausforderungen bei der Ausführung von Inferenzen in großem Maßstab zu bewältigen:
-
Dynamische GPU-Skalierung — Karpenter stellt bei Bedarf auf der Grundlage von Pod-Ressourcenanforderungen GPU-Instances in der richtigen Größe bereit. Im Leerlauf skaliert es von Null an und erhöht die Kapazität, wenn der Datenverkehr zunimmt. Dadurch wird eine übermäßige Bereitstellung teurer GPU-Ressourcen vermieden.
-
Schnelle Kaltstarts — SOCI (Seekable OCI) lädt große Container-Image-Ebenen parallel herunter und entpackt sie gleichzeitig, wodurch die Abrufzeiten von Bildern von Minuten auf Sekunden reduziert werden. In Kombination mit dem Modellstreaming von Amazon S3 direkt in den GPU-Speicher können Pods in weniger als zwei Minuten mit der Bereitstellung beginnen.
-
Automatische Wiederherstellung bei GPU-Ausfällen — Der EKS-Node-Monitoring-Agent erkennt GPU-Hardwarefehler und löst den automatischen Node-Austausch aus, wodurch Ausfallzeiten ohne manuelles Eingreifen minimiert werden.
-
Kostenoptimierung — Spot-Instances mit On-Demand Fallback, Instance-Auswahl in der richtigen Größe und Skalierungsverhalten auf Null reduzieren die GPU-Kosten. Reserved Capacity (ODCRs) bietet zusätzliche Einsparungen bei stationären Workloads.
-
Offene Standards und Portabilität — Inference-Workloads werden auf Standard-Kubernetes-APIs (Deployments, Services, HPAs) mit Open-Source-Modellservern wie vLLM oder sGLang ausgeführt und bieten so die Portabilität zwischen Umgebungen.
-
Integrierte Überwachung — Prometheus-Metriken von vLLM oder sGLang und dem NVIDIA DCGM Exporter bieten über Grafana-Dashboards Einblick in die Anforderungslatenz, den Token-Durchsatz, die GPU-Auslastung und die Speichernutzung.
Glossar
In diesem Abschnitt werden die folgenden Begriffe verwendet:
-
Inferenz — Der Prozess, bei dem ein trainiertes Modell ausgeführt wird, um Ausgaben (Text, Einbettungen, Klassifizierungen) aus Eingabedaten zu generieren.
-
Modellserver — Ein containerisierter Dienst, der ein Modell in den Speicher lädt, Inferenzanforderungen empfängt und Vorhersagen zurückgibt. Beispiele hierfür sind vLLM
, sGLang , Triton Inference Server und Text Generation Inference (TGI). https://github.com/huggingface/text-generation-inference -
Modellgewichte — Die erlernten Parameter eines trainierten Modells, die als Dateien (normalerweise im SafeTensors oder GGUF-Format) gespeichert werden, die der Modellserver in den GPU-Speicher lädt.
-
Beschleuniger — Spezialisierte Hardware wie NVIDIA-GPUs oder AWS Trainium/Inferentia -Chips, die die für die Inferenz erforderlichen Matrixoperationen beschleunigen.
-
Tensorparallelität — Aufteilung eines Modells auf mehrere GPUs auf demselben Knoten, um Modelle zu bedienen, die den Speicher einer einzelnen GPU überschreiten.
-
KV-Cache — Ein Speicherpuffer, der zuvor berechnete Schlüssel-Wert-Paare während der Textgenerierung speichert, wodurch redundante Berechnungen für jedes neue Token vermieden werden.
Wie funktioniert Inferenz auf Amazon EKS
Auf einer übergeordneten Ebene umfasst die Bereitstellung eines Inferenz-Workloads auf Amazon EKS die folgenden Schritte:
| Schritt | Description |
|---|---|
|
Richten Sie den Cluster ein |
Erstellen Sie einen EKS-Cluster mit GPU-enabled Knoten, Überwachung und Speicher. Siehe Cluster-Setup in AI/ML der EKS-Dokumentation. |
|
Speichern Sie die Modellgewichte |
Laden Sie Modellgewichte aus einer Modellregistrierung (z. B. Hugging Face) herunter und speichern Sie sie in Amazon S3, damit das Modell bei Kaltstart- oder Skaliervorgängen schnell geladen werden kann. |
|
Stellen Sie den Modellserver bereit |
Erstellen Sie eine Kubernetes-Bereitstellung, die einen Modellserver (wie vLLM) auf GPU-Knoten ausführt. Der Modellserver streamt Gewichte von S3 in den GPU-Speicher und stellt eine API zur Verfügung. OpenAI-compatible |
|
Machen Sie den Inferenzendpunkt verfügbar |
Erstellen Sie einen Kubernetes-Dienst, um einen stabilen Netzwerkendpunkt bereitzustellen. Verwenden Sie Port-Forwarding zum Testen oder einen Load Balancer wie AWS Application Load Balancer (ALB) für den Produktionsdatenverkehr. |
|
Überwachen und skalieren |
Verwenden Sie Prometheus-Metriken (Anforderungsrate, Token-Durchsatz, Latenz, KV-Cache-Auslastung), um die Leistung zu überwachen und Autoscaling zu konfigurieren. |
Inferenz-Leistungsmetriken
Um die Inferenzleistung zu verstehen, müssen die Metriken für Latenz und Durchsatz verfolgt werden:
Latenz-Metriken
-
Zeit bis zum ersten Token (TTFT) — Zeit vom Eintreffen der Anfrage bis zum ersten generierten Token. Kritisch für interaktive Anwendungen.
-
Time Per Output Token (TPOT) — Durchschnittliche Zeit, um jedes nachfolgende Token nach dem ersten zu generieren.
-
End-to-end Anforderungslatenz — Gesamtzeit von der Einreichung der Anfrage bis zum Abschluss der vollständigen Antwort.
Messwerte zum Durchsatz
-
Anforderungen pro Sekunde — Gesamtzahl der pro Sekunde bearbeiteten Inferenzanforderungen für alle Replikate.
-
Ausgabe-Token pro Sekunde — Rate der Token-Generierung, gemessen als Gesamtzahl der Ausgabe-Token geteilt durch die verstrichene Zeit.
-
GPU-Auslastung — Prozentsatz der GPU-Rechenzyklen, die aktiv für Inferenzen verwendet werden.
-
KV-Cache-Auslastung — Prozentsatz des verwendeten zugewiesenen KV-Cache-Speichers, der angibt, wie nahe der Server an der Kapazität ist.
Verkürzung der Kaltstartzeit
Große Inferenzcontainer (8-15 GB) und Modellgewichte (10-100+ GB) können zu einem langsamen Pod-Start führen. Die folgenden Techniken minimieren Verzögerungen beim Kaltstart:
-
SOCI-Parallel-Pull — Lädt Container-Image-Ebenen nicht nacheinander, sondern gleichzeitig herunter und entpackt sie. Standardmäßig im EKS-Auto-Modus für GPU-Instances aktiviert.
-
Modellstreaming von S3 — Tools wie Run:ai Model Streamer
streamen Modellgewichte direkt von Amazon S3 in den GPU-Speicher, umgehen dabei die lokale Festplatte und reduzieren die Ladezeit von Minuten auf Sekunden. -
Bilder in Amazon ECR speichern — Durch das Abrufen aus einem regionalen ECR-Repository über einen VPC-Endpunkt werden Internetlatenzen für große Container-Images vermieden.
-
Instance-Speicher-Caching — G-family Instances mit lokalen NVMe-Festplatten können Container-Ebenen zwischenspeichern und Artefakte modellieren, wodurch nachfolgende Abrufe auf demselben Knoten beschleunigt werden.
Was werden Sie bereitstellen
Die exemplarische Vorgehensweise für das Load & Serve Model führt Sie durch die Bereitstellung einer umfassenden Inferenzanwendung:
-
Modellgewichte herunterladen — A Kubernetes Job lädt das Ministral-3-8B-Instruct Modell von Hugging Face herunter und lädt es in Ihren S3-Bucket hoch.
-
vLLM bereitstellen — Ein Deployment führt vLLM mit Run:ai Model Streamer aus, um Gewichtungen von S3 direkt in den GPU-Speicher zu streamen und eine API bereitzustellen. OpenAI-compatible
-
Monitor mit Grafana — A verbindet ServiceMonitor vLLM-Prometheus-Metriken mit dem Monitoring-Stack für Echtzeit-Dashboards.
-
Stellen Sie ein Chat-Frontend bereit — Open WebUI bietet eine browserbasierte Chat-Oberfläche, die mit dem vLLM-Endpunkt verbunden ist.
Die exemplarische Vorgehensweise verwendet die Cluster-Infrastruktur aus dem Amazon EKS-Cluster für AI/ML Workloads einrichten Abschnitt und funktioniert sowohl mit EKS-Automatikmodus als auch mit selbstverwalteten Karpenter-Pfaden.