Accelerated Computing für Llama 3.1 Optimiert für über 100 Mio Nvidia-GPUs und was Otto-Normal-Anwender davon hat

Von Nvidia 7 min Lesedauer

Anbieter zum Thema

„Llama“ bezeichnet eine Sammlung großer Sprachmodelle und stammt von Meta. Eine Open Source Comunity unterstützt die Basismode´lle mit einer Vielzahl von Anwendungen. Die jetzige Version 3.1 enthält zudem eine Reihe von Vertrauens- und Sicherheitsmodellen. Trainiert worden sind die Llama-3-Modelle mithilfe von Nvidia-Technik.

Meta hatt mit „Llama 3.1“ seine Sammlung von Sprachmodellen aktualisiert unter anderem mithilfe von Nvidia-Technik. Was nun Anwender damit machen können, auch mithilfe von Nvidia, zeigt ein Blog-Beitrag. Ddie „H200„“-GPUs und „TensorRT“-LLM auf „Llama 3.1-405B“ zeigen erwartungsgemäß schon bei  Markteinführung hervorragende Leistung, sowohl in latenz- als auch in durchsatzoptimierten Szenarien.(Bild:  Nvidia)
Meta hatt mit „Llama 3.1“ seine Sammlung von Sprachmodellen aktualisiert unter anderem mithilfe von Nvidia-Technik. Was nun Anwender damit machen können, auch mithilfe von Nvidia, zeigt ein Blog-Beitrag. Ddie „H200„“-GPUs und „TensorRT“-LLM auf „Llama 3.1-405B“ zeigen erwartungsgemäß schon bei Markteinführung hervorragende Leistung, sowohl in latenz- als auch in durchsatzoptimierten Szenarien.
(Bild: Nvidia)

Die Meta-Ingenieure haben bereits Llama 3 auf den Nvidia-GPUs „H100 Tensor Core“ trainiert. Nach Aussagen von Anjali Shah und Annamalai Chockalingam in ihrem Blog-Beitrag „Supercharging Llama 3.1 across Nvidia Platforms“ haben die Entwickler dafür ihren gesamten Trainings-Stack erheblich optimiert und erweitert das Modelltraining auf über 16.000 H100 GPUs erweitert, was das „405B“ zum ersten Llama-Modell macht, das in diesem Umfang trainiert wurde. Die Variante Llama 3.1 hingegen ist nun für mehr als 100 Millionen Grafikprozessoren weltweit optimiert, und zwar auf allen Nvidia-Plattformen - von Rechenzentren bis hin zu Edge und PCs.

Die jüngsten Nvidia-GPUs „H200 Tensor Core“, auf denen das „TensorRT“-LLM läuft, liefern die Inferenzleistung auf Llama 3.1-405B. Dank der großen HBM3e-Speicherkapazität des H200-Grafikprozessors passt das Modell bequem in eine einzelne „HGX H200“ mit acht H200-Grafikprozessoren. „NVLink“ der vierten Generation und „NVSwitch“ der dritten Generation beschleunigen den Inferenzdurchsatz bei der Ausführung großer Modelle wie Llama 3.1-405B, indem sie eine Kommunikation mit hoher Bandbreite ermöglichen, die siebenmal schneller ist als PCIe Gen 5 zwischen allen GPUs im Server.

Tabelle 1: maximale Durchsatzleistung auf 8 x H200 Tensor Core GPUs
Input- | Output-Sequence-Länge 2.048 | 128 32.768 | 2,048 120.000 | 2,048
Output Tokens/Sekunde 399,9 230,8 49,6
Nvidia-interne Messungen. Die Ausgabe Token/Sekunde beinhaltet die Zeit zur Erzeugung des ersten Tokens. tok/s =gesamte erzeugte Token; / gesamte Latenz. DGX H200, TP8, FP8, Batch-Größe abgestimmt auf maximalen Knoten-Durchsatz, TensorRT-LLM Version 0.12.0.dev2024072300.c

Die Tabellen 1 und 2 zeigen die maximale Durchsatzleistung von Llama 3.1-405B, das auf einem 8-GPU-H200-System läuft, für eine Vielzahl von Eingabe- und Ausgabesequenzlängen.

Tabelle 2: minimale Latenzleistung auf 8x H200 Tensor Core GPUs
Input | Output Sequence Lengths 2,.48 | 128 32.768 | 2,048 120.000 | 2,048
Output Tokens/Second 37,4 33,1 22,8
Nvidia-interne Messungen. Die Ausgabe von Token/Sekunde beinhaltet die Zeit zur Erzeugung des ersten Tokens. tok/s = insgesamt erzeugte Token; / Gesamtlatenz. DGX H200, TP8, FP8, Batchgröße = 1, TensorRT-LLM Version 0.12.0.dev2024072300.

Im Blog-Beitrag heißt es: „Wie diese Ergebnisse zeigen, liefern die H200-GPUs und TensorRT-LLM auf Llama 3.1-405B bereits bei der Markteinführung eine hervorragende Leistung, sowohl in latenz- als auch in durchsatzoptimierten Szenarien.“

Llama 3.1: Schritt für Schritt

Für den Einsatz von Llama in Unternehmensanwendungen sind die folgenden Funktionen erforderlich:

  • die Fähigkeit zur Anpassung eines Modells an eine vorgegebene Domäne,
  • die Fähigkeit zur Bewertung der Modellgenauigkeit,
  • die Fähigkeit, eine Konversation beim Thema zu halten und zu sichern und

Nach Angaben von Shah und Chockalingam ermöglicht Nvidia mit diese Llama-Version das Ausführen all dieser Aufgaben mit hauseigener Software, was für die Anwender die Einführung erleichtern soll, zum Beispiel sind hochwertige Datensätze für das Training, die Anpassung und die Bewertung von Sprachmodellen unerlässlich. Für einige Entwickler ist es jedoch schwierig, Zugang zu qualitativ hochwertigen Datensätzen mit geeigneten Lizenzbedingungen zu erhalten.

Nvidia gehe dieses Problem an, indem es eine Pipeline zur Generierung synthetischer Daten (SDG) anbietet, die auf Llama 3.1 aufbaut. Das könne bei der Erstellung eigener hochwertiger Datensätze helfen.

Pipeline zur Erzeugung synthetischer Daten auf der Grundlage der Modelle „Llama 3.1 405B Instruct“ und „Nemotron-4 340B Reward“(Bild:  Nvidia)
Pipeline zur Erzeugung synthetischer Daten auf der Grundlage der Modelle „Llama 3.1 405B Instruct“ und „Nemotron-4 340B Reward“
(Bild: Nvidia)

Mit Llama 3.1-405B erhalten sie Zugang zu einem generativen Modell, das sich als Generator in der SDG-Pipeline verwenden lässt. Auf die Phase der Datengenerierung folgt das „Nemotron-4 340B Reward“-Modell, das die Qualität der Daten bewertet, indem es Daten mit niedrigeren Werten herausfiltert und Datensätze bereitstellt, die den menschlichen Präferenzen entsprechen.

Das Reward-Modell führt die „Reward-Bench“-Rangliste mit einer Gesamtpunktzahl von 92,0 an. Es schneidet besonders gut in der Untergruppe „Chat-Hard“ ab, in der die Fähigkeit des Modells getestet wird, Trickfragen und Nuancen in den Antworten auf Anweisungen zu verarbeiten. (Weitere Informationen zum Erstellen synthetischer Daten unter Llama 3.1 405B.)

Nvidia Nemo

Ist der Datensatz fertig, lässt er mit der „Nvidia Nemo“-Plattform weiter kuratieren, anpassen und auswerten. Nemo bietet eine End-to-End-Plattform für die Entwicklung benutzerdefinierter generativer KI. Es nutzt Parallelitätstechniken zur Maximierung der Nvidia-GPU-Leistung und verwaltet GPU-Ressourcen und Speicher über mehrere Knoten und GPUs hinweg.

Ein weiterer Vorteil: Es handelt sich um quelloffene Software. Wie die Blog-Autoren schreiben, lässt sich die Plattform für eine oder alle der folgenden Aufgaben verwenden:

  • Kuratieren der Daten mit „Nemo Curator“, um qualitativ hochwertige Daten zu kompilieren und die Leistung des benutzerdefinierten Modells durch Bereinigung, Deduplizierung, Filterung und Klassifizierung von Datensätzen zu verbessern.
  • Anpassen von Modellen mit parameter-effizienten Feinabstimmungs-Techniken (PEFT) wie „p-tuning“, „Low-Rank-Adaption“ (LoRA) und deren quantisierte Version (QLoRA). Diese Techniken seien nützlich, um benutzerdefinierte Modelle zu erstellen, ohne viel Rechenleistung zu benötigen.
  • Steuern der Modellantworten und Anpassen der Llama-3.1-Modelle an die von Menschen vorgegebenen Präferenzen, so dass sich die Modelle sinnvoll in kundenorientierte Anwendungen integrieren lassen.

Die aktuelle Unterstützung in Nemo umfasst Folgendes:

  • überwachtes Fine-Tuning (SFT)
  • Verstärkungslernen aus menschlichem Feedback (RLHF)
  • direkte Präferenzoptimierung (DPO)
  • „Nemo SteerLM“
  • Außerdem lässt sich die LLM-Evaluierung mit dem „Nemo Evaluator Microservice“ verbessern, der jetzt im Stadium 'Early Access' ist. Dieser Microservice kann automatisch gegen akademische Benchmarks und benutzerdefinierte Datensätze untersuchen und mit 'LLM-as-a-judge' evaluieren (nützlich in Szenarien, in denen die Grundwahrheit nicht definiert ist).
  • Integration von RAG-Funktionen (Retrieval-Augmented Generation) mit „Nemo Retriever“, einer Sammlung von Microservices.
  • Mildern der Halluzinationen mit „Nemo Guardrails“, mit dem Anwender programmierbare Guardrails zu LLM-basierten Konversationsanwendungen hinzufügen können. Es kann mit anderen Guardrails und Sicherheitsmodellen erweitert werden, zum Beispiel mit dem neuesten „Llama Guard“ von Meta. Außerdem lässt es sich nahtlos in Entwickler-Tools integrieren, darunter beliebte Frameworks wie „Lang Chain“ und „LlamaIndex“.

Llama überall dabei

Meta-Llama 3.1-8B Modelle sind jetzt für Inferenzen auf „Nvidia Geforce RTX“ PCs und „Nvidia RTX“ Workstations optimiert. Und das kommt so:

Mit dem „TensorRT Model Optimizer“ für Windows werden Llama 3.1-8B Modelle mit der „AWQ Post-Training Quantization“ (PTQ) Methode auf INT4 quantisiert. Diese damit eingergehende niedrigere Präzision ermöglicht die Anpassung an den auf Nvidia RTX-GPUs verfügbaren GPU-Speichern und verbessert die Leistung durch die Reduzierung von Engpässen bei der Speicherbandbreite.

Die Modelle werden nativ von Nvidia TensorRT-LLM unterstützt, die Open-Source-Software aus dem Hause Nvidia zur Beschleunigung der LLM-Inferenzleistung. Ferner sind Llama 3.1-8B Modelle sind auch für „Nvidia Jetson Orin“ angepasst worden, also für den Einsatz in Robotik und im Edge-Computing optimiert.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu RZ- und Server-Technik

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Kontextlänge und Instruct

Alle Llama 3.1-Modelle unterstützen 128K Kontextlänge und sind als Base- und Instruct-Varianten in BF16-Präzision verfügbar. Diese Modelle werden jetzt auch mit TensorRT-LLM beschleunigt, stellen die Blog-Autoren dar.

TensorRT-LLM kompiliert die Modelle in „TensorRT-Engines“, von Modellschichten in optimierte „Cuda“-Kernel mit Pattern Matching und Fusion, um die Inferenzleistung zu maximieren. Diese Engines werden dann von der TensorRT-LLM-Laufzeit ausgeführt, die mehrere Optimierungen enthält:

  • In-Flight-Batching
  • KV-Zwischenspeicherung
  • Quantisierung zur Unterstützung von Workloads mit geringerer Genauigkeit

TensorRT-LLM unterstützt zudem 128K lange Kontextlängen mit skalierter RoPE-Technik (Rotary Position Embedding), einschließlich Multi-GPU- und Multi-Node-Inferenz des Llama 3.1-405B-Modells auf BF16-Präzisionsniveau auf H100 und Single-Node-Inferenz auf H200. Die Inferenz in FP8-Präzision wird ebenfalls unterstützt. Mit der Post-Training-Quantisierung (PTQ) auf „Nvidia Hopper“- und „Nvidia Ada“-GPUs können Nutzer die Modellkomplexität optimieren und reduzieren, indem sie kleinere Modelle mit geringerem Speicherbedarf erstellen, ohne die Genauigkeit zu beeinträchtigen.

Für das Llama 3.1-405B Modell hat TensorRT-LLM Unterstützung für FP8-Quantisierung auf zeilenweiser Granularitätsebene hinzugefügt. Dies beinhaltet die Berechnung eines statischen Skalierungsfaktors für jeden Ausgangsgewichtskanal (vor der Ausführung) und eines dynamischen Skalierungsfaktors für jedes Token (während der Ausführung), um maximale Genauigkeit zu erhalten.

Während des Erstellungsprozesses der TensorRT-Engine können einige komplexe Schichtfusionen nicht automatisch entdeckt werden. TensorRT-LLM optimiert diese mit Hilfe von Plugins, die zur Kompilierungszeit explizit in die Netzwerkgraphen-Definition eingefügt werden, um benutzerdefinierte Kernel wie die Matrixmultiplikationen von FBGEMM für die Llama 3.1 Modelle zu ersetzen.

Nvidia NIM

Llama 3.1 wird jetzt von „Nvidia NIM“ für die Produktionsbereitstellung unterstützt. So beschleunigen NIM Inferenz-Microservices die Bereitstellung von generativen KI-Modellen über von Nvidia-Technik beschleunigte Infrastrukturen, einschließlich Cloud, Rechenzentrum und Workstations.

NIM bietet Unterstützung für die dynamische Auswahl von LoRA-Adaptern, so dass Nutzer mehrere Anwendungsfälle mit einem einzigen Basismodell bedienen können. Ermöglicht wird dies durch ein mehrstufiges Cache-System, das Adapter über GPU- und Host-Speicher hinweg verwaltet und beschleunigt, um mehrere Anwendungsfälle gleichzeitig mit speziellen GPU-Kernels zu bedienen.

Artikelfiles und Artikellinks

(ID:50113550)