Wie kann ich für eine Inferenzanwendung optimieren?

Die Inferenzoptimierung ist ein Verfahren zur Verbesserung der Leistung und Effizienz von KI-Modellen im Produktionsbetrieb. Da Large Language Models (LLMs) auf Dutzende oder Hunderte von Milliarden Parametern anwachsen und die Inferenzarchitekturen immer komplexer werden, wird es immer schwieriger, Anwendungen zu entwickeln und zu warten. Optimierung bedeutet, diese rechenintensiven Arbeitslasten zu verwalten, zu überwachen und zu aktualisieren, um Reaktionszeiten von weniger als einer Sekunde und einen höheren Durchsatz bei geringeren Kosten zu ermöglichen.

Dabei kommen verschiedene Techniken zum Einsatz, von der Modellkomprimierung bis hin zur erweiterten Speicherverwaltung. Der Fokus verschiebt sich vom einfachen „Ausführen eines Modells“ hin zum „Skalieren eines intelligenten Dienstes“. So können Entwicklerinnen und Entwickler responsivere Anwendungen erstellen und gleichzeitig eine nachhaltige Infrastruktur aufrechterhalten.

In der Praxis wird die Inferenzoptimierung in der Regel auf zwei Arten angewendet:

Optimierung auf Infrastrukturebene: Hier geht es darum, wie das Modell auf der Hardware ausgeführt wird. Dazu gehören die Verwendung optimierter Laufzeiten (wie NVIDIA NIM oder vLLM), die Verwaltung des GPU-Speichers mit Techniken wie PagedAttention und die Verwendung von In-Flight-Batching zur gleichzeitigen Verarbeitung mehrerer Anfragen. Dies ist oft der praktischste Pfad für Entwickler, die Open-Source- oder proprietäre Modelle verwenden.

Optimierung auf Modellebene: Dabei wird das Modell selbst so verändert, dass seine Größe oder Komplexität reduziert wird. Techniken wie Quantisierung (Reduzierung der Genauigkeit von 16 Bit auf 4 Bit), Destillation (Training eines kleineren „Schülermodells“, um ein größeres „Lehrermodell“ nachzubilden) und Sparsity (Entfernen unwichtiger Parameter) können den pro Token erforderlichen Arbeitsspeicher und Rechenaufwand drastisch reduzieren.

Grundlegendes zum Inferenzprozess

Workflow auf Codeebene

Für eine effektive Optimierung müssen Sie die beiden unterschiedlichen Phasen der LLM-Inferenz kennen:

Phase

Beschreibung

Wichtiges Merkmal

Vorab ausfüllen

Das Modell verarbeitet den gesamten Eingabeprompt, um Zwischenzustände zu berechnen.

Hochgradig parallelisiert; rechenintensiv (lastet die GPU aus).

Decodieren

Das Modell generiert Ausgabetokens nacheinander, autoregressiv.

Sequenziell; speichergebunden (begrenzt durch die Datenübertragungsgeschwindigkeit).

Phase

Beschreibung

Wichtiges Merkmal

Vorab ausfüllen

Das Modell verarbeitet den gesamten Eingabeprompt, um Zwischenzustände zu berechnen.

Hochgradig parallelisiert; rechenintensiv (lastet die GPU aus).

Decodieren

Das Modell generiert Ausgabetokens nacheinander, autoregressiv.

Sequenziell; speichergebunden (begrenzt durch die Datenübertragungsgeschwindigkeit).

  1. Ziel beschreiben: Sie beginnen mit einer nicht optimierten Modellbereitstellung.
  2. Quantisierung anwenden: Reduzieren Sie die Modellgewichtungen (z. B. auf 4 Bit), damit größere Batches in den Arbeitsspeicher passen.
  3. Attention optimieren: Verwenden Sie FlashAttention oder Grouped-Query Attention (GQA), um die Kosten für Speicherbewegungen zu minimieren.
  4. Arbeitsspeicher verwalten: Implementieren Sie PagedAttention, um KV-Caches in nicht zusammenhängenden Blöcken zu speichern und so die Fragmentierung zu vermeiden.
  5. Ausführen und überwachen: Mit In-Flight-Batching bereitstellen, um sofort neue Anfragen zu starten, wenn andere abgeschlossen sind

Inferenzoptimierung im Vergleich zur Standardbereitstellung

So unterscheidet sich die optimierte Inferenz von der herkömmlichen „naiven“ Modellbereitstellung:

Feature

Standardmäßige Bereitstellung

Optimierte Inferenz

Durchsatz

Begrenzt durch statische Batchgrößen und Leerlaufzeiten.

Hoch; nutzt In-Flight-Batching und kontinuierliche Iteration.

Latenz

Lineares Wachstum mit der Sequenzlänge; hohe TTFT (Time to First Token).

Optimiert; nutzt Vorabfüllbeschleunigung und spekulative Dekodierung.

Speicherverwaltung

Statische Zuweisung (Überbereitstellung für maximale Länge).

Dynamisch (Paging); minimale Verschwendung durch PagedAttention.

Hardware-Effizienz

Die Rechenkapazitäten von GPUs/TPUs werden oft nicht voll ausgeschöpft.

Maximiert; verwendet optimierte Kernel (TFE-IE, XLA).

Kosten pro Anfrage

Höher; erfordert mehr Hardware für dieselbe Last.

Niedriger, da mehr Anfragen in derselben Infrastruktur verarbeitet werden können.

Feature

Standardmäßige Bereitstellung

Optimierte Inferenz

Durchsatz

Begrenzt durch statische Batchgrößen und Leerlaufzeiten.

Hoch; nutzt In-Flight-Batching und kontinuierliche Iteration.

Latenz

Lineares Wachstum mit der Sequenzlänge; hohe TTFT (Time to First Token).

Optimiert; nutzt Vorabfüllbeschleunigung und spekulative Dekodierung.

Speicherverwaltung

Statische Zuweisung (Überbereitstellung für maximale Länge).

Dynamisch (Paging); minimale Verschwendung durch PagedAttention.

Hardware-Effizienz

Die Rechenkapazitäten von GPUs/TPUs werden oft nicht voll ausgeschöpft.

Maximiert; verwendet optimierte Kernel (TFE-IE, XLA).

Kosten pro Anfrage

Höher; erfordert mehr Hardware für dieselbe Last.

Niedriger, da mehr Anfragen in derselben Infrastruktur verarbeitet werden können.

Erste Schritte: Orchestrierungsumgebung auswählen

Google Cloud bietet eine Reihe von Tools, die für unterschiedliche Kenntnisstände und architektonische Anforderungen entwickelt wurden.

Tool

Start

Kenntnisstand

Ansatz

Wichtiges Merkmal

Cloud Run (mit GPUs)

Ein einfacher, ereignisgesteuerter KI-Dienst

Anfänger

Serverlos

Skalierung auf null für Inferenz bei stoßweisen Arbeitslasten mit niedriger Latenz

Ein OSS-Modell (z. B. Llama 3)

Anfänger bis Fortgeschrittene.

Verwaltet / Low-Code

Bereitstellung mit einem Klick mit optimierten vLLM- oder NVIDIA NIM-Laufzeiten


Leistungsstarke Produktionsarbeitslasten

Mittel bis fortgeschritten

Schnellere Inferenz

Vorgefertigte Mikrodienste mit modernsten TensorRT-LLM-Optimierungen

Eine benutzerdefinierte, multimodale Infrastruktur

Erweitert

Cloudnativ / benutzerdefiniert

Volle Kontrolle über GPU-Fragmentierung, Orchestrierung und benutzerdefinierte Inferenzserver

Umfangreiche TPU-First-Entwicklung

Erweitert

TPU-optimiert / XLA

Auf XLA zugeschnitten mit kontinuierlicher Batchverarbeitung und PagedAttention auf Cloud TPU

Tool

Start

Kenntnisstand

Ansatz

Wichtiges Merkmal

Cloud Run (mit GPUs)

Ein einfacher, ereignisgesteuerter KI-Dienst

Anfänger

Serverlos

Skalierung auf null für Inferenz bei stoßweisen Arbeitslasten mit niedriger Latenz

Ein OSS-Modell (z. B. Llama 3)

Anfänger bis Fortgeschrittene.

Verwaltet / Low-Code

Bereitstellung mit einem Klick mit optimierten vLLM- oder NVIDIA NIM-Laufzeiten


Leistungsstarke Produktionsarbeitslasten

Mittel bis fortgeschritten

Schnellere Inferenz

Vorgefertigte Mikrodienste mit modernsten TensorRT-LLM-Optimierungen

Eine benutzerdefinierte, multimodale Infrastruktur

Erweitert

Cloudnativ / benutzerdefiniert

Volle Kontrolle über GPU-Fragmentierung, Orchestrierung und benutzerdefinierte Inferenzserver

Umfangreiche TPU-First-Entwicklung

Erweitert

TPU-optimiert / XLA

Auf XLA zugeschnitten mit kontinuierlicher Batchverarbeitung und PagedAttention auf Cloud TPU

Inferenz mit Vertex AI Model Garden optimieren

Model Garden ist der schnellste Weg zur Bereitstellung optimierter Versionen führender offener Modelle wie Llama, Gemma und Mistral.

Schritt 1: Modell auswählen und konfigurieren

Rufen Sie Model Garden auf und suchen Sie nach einem unterstützten OSS-Modell. Klicken Sie auf Bereitstellen. Wählen Sie in der Konfiguration eine optimierte Laufzeit wie vLLM oder NVIDIA NIM aus.

Schritt 2: Quantisierung anwenden

Wählen Sie eine quantisierte Version des Modells (z. B. 4-Bit oder 8-Bit) aus, um den Speicherbedarf zu reduzieren. So können Sie mit derselben GPU größere Batchgrößen verarbeiten und den Durchsatz direkt erhöhen.

Schritt 3: Erweiterte Speicherverwaltung aktivieren

Achten Sie darauf, dass der Bereitstellungscontainer für die Verwendung von PagedAttention konfiguriert ist. Mit dieser Technik kann das Modell sein „Gedächtnis“ (Key-Value-Cache) in nicht zusammenhängenden Blöcken speichern, was Speicherverschwendung vermeidet und längere Kontextfenster ermöglicht.

Schritt 4: Bereitstellen und überwachen

Nach der Bereitstellung übernimmt Vertex AI automatisch die Batchverarbeitung während der Übertragung und verarbeitet neue Anfragen, sobald eine bestehende Anfrage ein Token abgeschlossen hat. Mit Vertex AI Model Monitoring können Sie die Latenz verfolgen und dafür sorgen, dass die Qualität der Ausgabe hoch bleibt.

Inferenz mit GKE optimieren

Für Teams, die eine detaillierte Kontrolle über ihre Orchestrierung und benutzerdefinierte Inferenz-Kernel benötigen, ist GKE die branchenübliche Wahl.

Schritt 1: Cluster mit NVIDIA-GPUs oder Cloud TPUs initialisieren

GKE-Cluster mit spezialisierten GPU-Knoten (z. B. L4 oder H100) bereitstellen. Installieren Sie den NVIDIA GPU Operator, um die Treiberverwaltung und Leistungsoptimierung automatisch zu erledigen.

Schritt 2: Optimierten Inferenzserver bereitstellen

Verwenden Sie eine containerisierte Inferenz-Engine wie vLLM oder Triton Inference Server. Diese Server unterstützen Continuous Batching und Tensorparallelität, sodass Sie große Modelle auf mehrere GPUs aufteilen können. Mit vLLM können Sie außerdem mit minimalem zusätzlichem Programmieraufwand zwischen TPUs und GPUs wechseln.

Schritt 3: Spekulative Dekodierung implementieren

Für geschäftskritische Latenzanforderungen konfigurieren Sie die spekulative Decodierung. Dabei wird ein kleineres, schnelleres „Entwurfsmodell“ verwendet, um Tokens vorherzusagen, die dann parallel von Ihrem größeren „Zielmodell“ überprüft werden. Dies führt oft zu einer 2- bis 3-fachen Beschleunigung.

Schritt 4: Bereitstellung mit GKE Inference Quickstart optimieren

GKE Inference Quickstart fungiert als vorkonfigurierte Datenbank mit getesteten Inferenz-Stack-Konfigurationen. Wenn Sie Ihr Modell, die Latenzanforderungen und die Kostenprioritäten angeben, erhalten Sie Empfehlungen, die auf Best Practices und den neuesten Benchmarks basieren. So können Sie die Leistungsmesswerte für die Inferenz überwachen und Ihre Bereitstellung dynamisch optimieren, damit sie immer mit der bestmöglichen Technologie ausgeführt wird.

Schritt 5: Mit GKE Inference Gateway skalieren

Das GKE Inference Gateway ist jetzt allgemein verfügbar und bietet zwei erweiterte Funktionen für die Verwaltung komplexer Anwendungen, die auf generativer KI basieren.

  • Präfixbasiertes Routing: Bei Anwendungen wie Unterhaltungen in mehreren Runden oder Dokumentanalysen werden Anfragen an die Beschleuniger weitergeleitet, die den Kontext bereits im Cache haben, wodurch die Antwortzeiten verbessert werden.
  • Disaggregated Serving: Bei dieser Technik wird die anfängliche „Prefill“-Phase (Promptverarbeitung) von der „Decode“-Phase (Tokenerzeugung) getrennt. Da diese Phasen unterschiedliche Ressourcenanforderungen haben, können Sie sie in separaten, optimierten Maschinenpools ausführen, um die Effizienz zu maximieren.

Schritt 6: Datenzugriff mit dem Anywhere-Cache beschleunigen

Anywhere Cache ist ein neuer, vollständig konsistenter Lesecache, der mit vorhandenen Google Cloud Storage-Buckets (GCS) funktioniert, um Daten in derselben Zone wie Ihre Beschleuniger zu speichern. Das reduziert die Leselatenz um bis zu 96 % und minimiert die Netzwerkkosten für leseintensive Arbeitslasten.

Schritt 7: Globale Arbeitslasten mit Cloud WAN verbinden

Die gesamte Infrastruktur wird durch Cloud WAN verbunden, ein vollständig verwaltetes globales Netzwerk, das auf der globalen Infrastruktur von Google aufbaut. Cloud WAN verbindet KI-Rechenressourcen in verschiedenen Regionen, Clouds und lokalen Umgebungen und bietet eine um 40 % höhere Leistung bei Inferenzanwendungen und um 40 % niedrigere Gesamtbetriebskosten im Vergleich zu herkömmlichen WAN-Lösungen.

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.

Gleich loslegen

Profitieren Sie von einem Guthaben in Höhe von 300 $, um Google Cloud und mehr als 20 immer kostenlose Produkte kennenzulernen.

Google Cloud