Haben Sie Probleme mit KI oder Full-Stack-Entwicklung? Unsere Experten sind für Sie da: maßgeschneiderte Beratung, technische Integration und mehr. Erreichen Sie uns unter [email protected].

GenAI Inferenz-Engines: TensorRT-LLM vs. vLLM vs. Hugging Face TGI vs. LMDeploy

Der Aufstieg der generativen KI (GenAI) hat die Industrie verändert, von der Verarbeitung natürlicher Sprache bis zur Generierung kreativer Inhalte. Der effiziente Einsatz dieser leistungsstarken Modelle in großem Maßstab bleibt jedoch eine Herausforderung.

TensorRT-LLM, vLLM, Hugging Face TGI und LMDeploy

Inferenz-Engines spielen eine entscheidende Rolle bei der Optimierung der Leistung, der Reduzierung von Latenzzeiten und der Maximierung der Ressourcennutzung. In diesem Artikel befassen wir uns mit vier führenden Lösungen: TensorRT-LLM, vLLM, Hugging Face TGI und LMDeploy.

Jede von ihnen bringt einzigartige Stärken mit, sei es die hardwarebeschleunigte Präzision von NVIDIA, das innovative Speichermanagement von vLLM, das produktionsreife Ökosystem von TGI oder der Fokus auf Geschwindigkeit und Einfachheit von LMDeploy. Vergleichen Sie mit uns diese Engines, damit Sie die perfekte Lösung für Ihre GenAI-Workloads finden.

TensorRT-LLM: NVIDIAs Kraftpaket für optimierte Inferenz

TensorRT-LLM ist die Antwort von NVIDIA, um große Sprachmodelle schnell und flüssig laufen zu lassen. Es basiert auf dem TensorRT-Framework und wurde entwickelt, um jeden Tropfen Leistung aus den NVIDIA-GPUs herauszuquetschen. Dies geschieht mit Tricks wie Layer-Fusion, Präzisionsoptimierung (FP16, INT8, FP8...) und Kernel-Optimierung, die die Rechenzeit reduziert, ohne die Genauigkeit des Modells zu beeinträchtigen.

TensorRT-LLM

Es geht nicht nur um Geschwindigkeit. TensorRT-LLM verarbeitet große Modelle effizient, indem es den Speicher intelligent verwaltet, so dass Sie nicht mitten im Lauf abstürzen. Es unterstützt auch dynamisches Stapeln, so dass Sie mehrere Anfragen auf einmal verarbeiten können, ohne dass Ihnen der Speicher ausgeht. Wenn Sie bereits NVIDIA-Hardware verwenden, ist es ein Kinderspiel, da es eng mit dem Ökosystem von NVIDIA verbunden ist, wie z. B. CUDA und cuDNN, und es lässt sich sogar in NVIDIAs Triton Inference Server und NVIDIA Dynamo integrieren.

Dennoch ist es nicht für jeden perfekt. Die Einrichtung kann mühsam sein, wenn Sie mit den NVIDIA-Tools nicht vertraut sind, und es ist weniger flexibel, wenn Sie mit Nicht-NVIDIA-Hardware arbeiten. Dennoch, wenn es um rohe Leistung und Optimierung auf NVIDIA-GPUs geht, ist es kaum zu schlagen.

vLLM: Durchsatzstarke Inferenz mit PagedAttention

vLLM ist sehr gut darin, große Mengen von Inferenzaufträgen schnell zu verarbeiten. Es ist ein Open-Source-Projekt, das glänzt, wenn Sie einen hohen Durchsatz ohne Verlangsamung benötigen. Der Geheimtipp ist PagedAttention, ein Trick, der den Speicher besser als die meisten anderen verwaltet. Anstatt alles auf einmal zu laden und RAM zu verbrauchen, werden die Key-Value-Caches in Stücke aufgeteilt und nur das abgerufen, was benötigt wird. Weniger Verschwendung, mehr Geschwindigkeit.

vLLM

Außerdem ist es sehr flexibel. Sie funktioniert mit gängigen Modellen wie LLaMA oder Mistral und unterstützt zahlreiche Hardware, darunter NVIDIA- oder AMD-GPUs. Sie erhalten auch eine dynamische Stapelverarbeitung, um Anfragen effizient zu gruppieren und die Pipeline reibungslos laufen zu lassen. Die Einrichtung ist ziemlich einfach, wenn Sie mit Python und PyTorch vertraut sind.

Die wichtigste Einschränkung von vLLM ist seine relative Unreife auf dem Markt, was bedeutet, dass es möglicherweise noch nicht den umfassenden Funktionsumfang bietet, der in etablierteren Lösungen verfügbar ist. Für Unternehmen, die eine effiziente Lösung suchen, die leistungsstarke Inferenzen liefert, ist vLLM jedoch eine ausgezeichnete Wahl.

Umarmendes Gesicht TGI: Eine produktionsreife Lösung für die Texterstellung

Hugging Face TGI (Text Generation Inference) ist für Leute gedacht, die ohne Kopfzerbrechen Modelle zum Laufen bringen wollen. Es ist ein Tool, das vom Hugging Face-Team entwickelt wurde und mit dessen umfangreicher Bibliothek an vortrainierten Modellen (z. B. BERT, GPT usw.) zusammenarbeitet. Es wurde für den realen Einsatz entwickelt, z. B. für Chatbots oder Apps, bei denen die Texterstellung schnell gehen und nicht abstürzen muss.

Gesicht umarmen TGI

TGI übernimmt die schwere Arbeit mit Funktionen wie der kontinuierlichen Stapelverarbeitung, die das System beschäftigt hält, indem sie neue Anforderungen einfügt, sobald alte beendet sind. Es unterstützt GPU-Beschleunigung und ist skalierbar, wenn Sie über die entsprechende Hardware verfügen. Außerdem verfügt es über integrierte Sicherheitsfunktionen, wie das Herausfiltern von schlechten Ausgaben, was für die Produktion sehr praktisch ist. Sie können es in wenigen Schritten mit Docker bereitstellen, sodass es relativ einfach einzurichten ist.

Der Haken an der Sache? Es ist an das Ökosystem von Hugging Face gebunden. Wenn Sie also nicht bereits in dieser Welt sind, könnte es sich einschränkend anfühlen. Für eine Plug-and-Play-Option, die sofort einsatzbereit ist, ist TGI jedoch eine gute Wahl.

LMDeploy: Effiziente Bereitstellung mit überragender Dekodiergeschwindigkeit

LMDeploy ist ein Toolkit des MMRazor- und MMDeploy-Teams, mit dem sich große Sprachmodelle komprimieren, bereitstellen und ohne viel Aufwand ausführen lassen. Was macht es so besonders? Es hat eine hervorragende Dekodiergeschwindigkeit - bis zu 1,8 Mal mehr Anfragen pro Sekunde als vLLM auf einer A100 GPU. Dies ist auf Tricks wie persistentes Batching, blockiertes KV-Caching und ausgeklügelte CUDA-Kernel zurückzuführen, die die GPU auf Trab halten.

LMDeploy

Es hat zwei Engines: TurboMind für maximale Leistung und eine PyTorch-Engine für leichteres Basteln. TurboMind ist der Star hier - es schiebt 4-Bit-Inferenz 2,4x schneller als FP16, und es behandelt große Modelle wie Llama-2 70B mit Leichtigkeit. Sie können auch Gewichte und KV-Caches quantisieren, um Speicher zu sparen, ohne die Genauigkeit zu beeinträchtigen. Auch die Bereitstellung ist ein Kinderspiel - ein einziger Befehl genügt, um einen Server auf mehreren Rechnern einzurichten, wenn Sie ihn benötigen. Außerdem merkt sich das Programm den Chatverlauf bei Gesprächen über mehrere Runden, so dass keine Zeit mit der Wiederholung der alten Arbeit verschwendet wird.

Der Nachteil? TurboMind ist wählerisch - es verträgt sich noch nicht mit Aufmerksamkeitsmodellen mit Schiebefenstern wie Mistral. Und wenn Sie keine NVIDIA-GPUs verwenden, müssen Sie sich mit der langsameren PyTorch-Engine begnügen. Wenn es jedoch um Geschwindigkeit und Einfachheit geht, ist LMDeploy mit der richtigen Hardware eine gute Wahl.

Leistungsvergleich: Latenz, Durchsatz und Skalierbarkeit

Sehen wir uns an, wie diese Engines in Bezug auf Latenz (wie schnell eine Anfrage abgeschlossen wird), Durchsatz (wie viele Anfragen sie aufnehmen können) und Skalierbarkeit (wie gut sie größere Lasten oder mehr Hardware bewältigen) abschneiden.

TensorRT-LLM glänzt bei der Latenz, wenn Sie NVIDIA-GPUs haben. Es ist hochgradig für NVIDIA-Hardware optimiert, so dass einzelne Anfragen schnell beendet werden: unter 50ms für die meisten Modelle auf einem A100. Auch der Durchsatz ist hervorragend, insbesondere bei dynamischer Stapelverarbeitung. Benchmarks von BentoML zeigen, dass diese Engine 700 Token pro Sekunde bei 100 gleichzeitigen Benutzern für Llama 3 70B Q4 auf einer A100 80GB GPU erreicht. TensorRT-LLM zeigt eine starke Leistung in Szenarien mit langen Eingaben und hohen Anforderungsraten und bietet einen guten Durchsatz. Die Skalierbarkeit auf mehreren GPUs wird von Anfang an mit ausgezeichneter Leistung unterstützt.

vLLM hat auch einen guten Durchsatz, insbesondere bei dekodierintensiven Arbeitslasten, mit hohem Durchsatz und niedriger Latenz nach den jüngsten Updates. Benchmarks von BentoML zeigen, dass diese Engine 600-650 Token pro Sekunde bei 100 gleichzeitigen Benutzern für Llama 3 70B Q4 auf einer A100 80GB GPU erreicht. Die Latenzzeit ist gut, aber nicht so gut wie bei TensorRT-LLM: etwa 60-80ms für Sololäufe. Es skaliert gut über GPUs hinweg, sogar über verschiedene Marken, aber es ist weniger ausgefeilt für große Setups.

Hugging Face TGI ist ähnlich leistungsfähig wie vLLM und bietet ein ausgewogenes Verhältnis zwischen Leistung und Benutzerfreundlichkeit. Die Latenzzeit ist anständig: 50-70 ms auf einer guten GPU. Benchmarks von BentoML zeigen, dass diese Engine 600-650 Token pro Sekunde bei 100 gleichzeitigen Benutzern für Llama 3 70B Q4 auf einer A100 80GB GPU erreicht. Sie ist für die Produktion skalierbar und kann daher problemlos mit mehr Benutzern oder Maschinen umgehen, insbesondere mit Docker.

LMDeploy gewinnt bei der Dekodiergeschwindigkeit. Es zeichnet sich durch eine hohe Token-Generierungsrate aus, insbesondere bei kleineren Modellen, und hat eine niedrige Zeit bis zum ersten Token (TTFT) bei quantisierten großen Modellen. Die Latenzzeit ist gering: 40-60ms. Und der Durchsatz ist ausgezeichnet. Benchmarks von BentoML zeigen, dass diese Engine 700 Token pro Sekunde bei 100 gleichzeitigen Benutzern für Llama 3 70B Q4 auf einer A100 80GB GPU erreicht. Die Skalierung ist mit dem Server-Setup einfach, aber die besten Ergebnisse werden mit NVIDIA-GPUs erzielt; der PyTorch-Modus hinkt hinterher.

Unterm Strich: TensorRT-LLM und LMDeploy liegen bei der reinen Geschwindigkeit vorn. Ihre Wahl hängt von Ihrer Hardware ab und davon, wie viele Anfragen Sie bearbeiten.

Quantisierungsfähigkeiten

Die Quantisierung reduziert die Modellgenauigkeit, um die Speichernutzung zu verringern und die Schlussfolgerungen zu beschleunigen, was für ressourcenbeschränkte Umgebungen wichtig ist. Hier sehen Sie, wie jede Engine abschneidet:

TensorRT-LLM unterstützt FP8, FP4, INT4 mit Activation-aware Weight Quantization (AWQ) und INT8 mit SmoothQuant und bietet damit robuste Optionen zur Optimierung der NVIDIA GPU Leistung.

vLLM bietet Flexibilität mit GPTQ, AWQ, INT4, INT8 und FP8 und passt sich an verschiedene Hardware- und Präzisionsanforderungen an.

Hugging Face TGI integriert bitsandbytes für die 8-Bit- und 4-Bit-Quantisierung und GPT-Q für die reine Gewichtsquantisierung, die sich für Produktionsanwendungen eignet.

LMDeploy bietet 4-Bit-AWQ, 8-Bit-Quantisierung und Online-INT8/INT4-KV-Cache-Quantisierung, was die Effizienz bei großen Modellen auf begrenzter Hardware erhöht.

Hardware-Kompatibilität

Die Hardwareunterstützung bestimmt, wo Sie diese Engines einsetzen können, was sich auf die Skalierbarkeit und Leistung auswirkt:

TensorRT-LLM ist exklusiv für NVIDIA CUDA und nutzt GPU-Beschleuniger für hohe Leistung.

vLLM unterstützt NVIDIA CUDA, AMD ROCm, AWS Neuron und CPU und bietet damit eine breite Kompatibilität für verschiedene Setups.

Hugging Face TGI arbeitet mit NVIDIA CUDA, AMD ROCm, Intel Gaudi und AWS Inferentia und bietet damit Flexibilität für verschiedene Hardwareumgebungen.

LMDeploy ist für NVIDIA CUDA optimiert, was eine optimale Leistung auf NVIDIA-Grafikprozessoren gewährleistet, während andere Plattformen nur begrenzt unterstützt werden.

Benutzerfreundlichkeit

Der Einrichtungs- und Integrationsprozess kann sich auf die Entwicklungszeiträume auswirken. Hier sehen Sie, wie die einzelnen Engines abschneiden:

TensorRT-LLM erfordert die Konvertierung von Kontrollpunkten, den Aufbau der TensorRT-Engine und die Konfiguration von Parametern, was für Ingenieure eine Herausforderung und zeitaufwändig ist.

vLLM ist benutzerfreundlich mit umfassender Dokumentation, einfacher Installation und nahtloser Integration der Python-Bibliothek.

Hugging Face TGI profitiert vom Hugging Face-Ökosystem, das vorgefertigte Docker-Images und eine ausführliche Dokumentation für eine schnelle Bereitstellung bietet.

LMDeploy zeichnet sich durch ein einfaches Setup mit einem einzigen Befehl zum Starten des Servers und Python-APIs für die Anpassung aus, die ein Gleichgewicht zwischen Einfachheit und Flexibilität schaffen.

Schlussfolgerung

Die Wahl der richtigen Engine hängt von Ihrem Anwendungsfall, Ihrer Hardware und Ihren Fähigkeiten ab.

TensorRT-LLM ist die Inferenz-Engine der Wahl, wenn Sie große Modelle auf NVIDIA-GPUs ausführen und jedes Quäntchen Geschwindigkeit benötigen (denken Sie an Anwendungen mit geringer Latenz wie Echtzeit-Chatbots oder KI-Assistenten, bei denen Antworten in Millisekunden generiert werden müssen). Es ist perfekt für Unternehmen, die bereits tief in der Welt von NVIDIA verwurzelt sind, aber es könnte ein Overkill sein, wenn Sie auf der Suche nach Einfachheit sind.

vLLM ist ein guter Kompromiss zwischen Geschwindigkeit und Einfachheit. Es eignet sich sehr gut für Start-ups oder Forscher, die etwas Flexibles und schnelles einrichten wollen.

Hugging Face TGI ist in Bezug auf Geschwindigkeit und Einfachheit mit vLLM vergleichbar. Es ist einfach zu implementieren, skaliert reibungslos und ist mit dem Modell-Hub von Hugging Face verknüpft, also ideal für Teams, die eine unkomplizierte Lösung wünschen.

LMDeploy glänzt wie TensorRT-LLM durch Leistung. Es eignet sich für Benutzer mit NVIDIA-GPUs, die eine einfache Einrichtung und Spitzenleistung wünschen, ist aber weniger praktisch, wenn Ihre Modelle nicht mit TurboMind zusammenarbeiten.

Wenn Sie Ihr eigenes GenAI-Modell nicht selbst bereitstellen können oder wollen, können Sie die NLP Cloud nutzen und schnelle generative KI-Modelle in großem Umfang in der Produktion einsetzen. Probieren Sie die schnelle Inferenz auf NLP Cloud jetzt aus!

Wenn Sie Fragen zu Inferenzmaschinen im Allgemeinen haben, zögern Sie bitte nicht, uns zu fragen, wir beraten Sie gerne!

Julien
CTO bei NLP Cloud