Disaggregierte Inferenz mit PyTorch und vLLM
Die Integration von PyTorch und vLLM durch Meta stellt einen bedeutenden Fortschritt in der Effizienz von generativen KI-Anwendungen dar. In diesem Artikel werden wir die Technik der Disaggregation von Prefill und Decode näher betrachten, die entscheidend zur Verbesserung der Inferenzgeschwindigkeit und -effizienz beiträgt.
Einführung in die Disaggregation von Prefill und Decode
In der Inferenz von Large Language Models (LLMs) ist die Generierung des ersten Tokens von den Eingabeaufforderungen der Benutzer abhängig, während alle nachfolgenden Tokens in einem autoregressiven Verfahren erzeugt werden. Der Prozess der ersten Token-Generierung wird als „Prefill“ bezeichnet, während die Generierung der verbleibenden Tokens als „Decode“ bekannt ist. Diese beiden Prozesse weisen unterschiedliche Merkmale auf, die in der folgenden Tabelle zusammengefasst sind:
Prozess | Merkmale |
---|---|
Prefill | Rechenintensiv, einmal pro Anfrage, begrenzt durch Tokenlänge und Batch-Größe |
Decode | Speicherintensiv, effizient bei Batch-Größe, dominiert die Gesamtlatenz |
Technische Umsetzung der Disaggregation
Die Disaggregation von Prefill und Decode ermöglicht es, diese Prozesse unabhängig voneinander zu skalieren. Dies führt zu einer effizienteren Ressourcennutzung und verbessert sowohl die Latenz als auch den Durchsatz. Die technische Umsetzung umfasst mehrere Schlüsselkomponenten:
- Proxy-Bibliothek: Diese Bibliothek leitet Anfragen an einen Remote-Prefill-Host weiter und orchestriert den Transfer von KV-Caches zwischen den Hosts.
- Python KV-Connector: Ein asynchroner Connector, der den KV-Cache parallel zur Hauptausführung des Modells überträgt.
- C++-Connectoren: Diese Connectoren sind für die effiziente Übertragung von KV-Daten über das Netzwerk verantwortlich.
Optimierungen und Leistungsverbesserungen
Durch verschiedene Optimierungen konnte die Leistung der Disaggregation erheblich gesteigert werden:
- Multi-NIC-Unterstützung: Mehrere Netzwerk-Interface-Controller (NICs) optimieren die Verbindung zwischen den Decode- und Prefill-Hosts.
- Sticky Routing: Anfragen aus derselben Sitzung werden konsistent an denselben Prefill-Host geleitet, was die Cache-Trefferquote erhöht.
- Lastverteilung: Die interne Routerlösung von Meta verteilt die Arbeitslast effizient auf die verschiedenen Prefill-Hosts.
Leistungsbewertung
Die Leistung wurde mit Llama4 Maverick auf H100-Hosts bewertet. Die Ergebnisse zeigen, dass die Disaggregation (1P1D) unter denselben Bedingungen eine höhere Durchsatzrate bietet und eine bessere Kontrolle über die Gesamtlatenz ermöglicht. Dennoch wurde festgestellt, dass die Zeit bis zum ersten Token (TTFT) bei sehr hohen Lasten regressiv ist, was auf Netzwerkengpässe zurückzuführen sein könnte.
Zukünftige Entwicklungen
Meta plant, die Disaggregation weiter zu optimieren, indem Mechanismen wie Cache-Miss-KV-Transfer und Hardware-spezifische Optimierungen implementiert werden. Diese Entwicklungen zielen darauf ab, die Leistung weiter zu steigern und die Effizienz zu maximieren.
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!