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].

Wie installiert man LLaMA 3 und setzt es in der Produktion ein?

Das generative KI-Modell LLaMA 3 wurde vor ein paar Tagen von Meta veröffentlicht und zeigt bereits beeindruckende Fähigkeiten.

Erfahren Sie in dieser Schritt-für-Schritt-Anleitung, wie Sie LLaMA 3 in der Produktion installieren und einsetzen. Von den Hardwareanforderungen bis zur Bereitstellung und Skalierung decken wir alles ab, was Sie für eine reibungslose Implementierung wissen müssen.

LLaMA 3

Einführung in LLaMA 3

Meta hat erste Versionen seines Open-Source-KI-Modells Llama 3 vorgestellt, das für die Erstellung von Texten, die Programmierung oder Chatbots verwendet werden kann. Darüber hinaus kündigte Meta seine Pläne an, LLaMA 3 in seine primären Social-Media-Anwendungen einzubinden. Dieser Schritt zielt darauf ab, mit anderen KI-Assistenten zu konkurrieren, wie ChatGPT von OpenAI, Copilot von Microsoft und Gemini von Google.

Ähnlich wie Llama 2 zeichnet sich Llama 3 durch ein frei zugängliches großes Sprachmodell mit offenen Gewichten aus, das von einem führenden KI-Unternehmen angeboten wird (obwohl es nicht als "Open Source" im herkömmlichen Sinne gilt).

Derzeit kann Llama 3 kostenlos von Metas Website in zwei verschiedenen Parametergrößen heruntergeladen werden: 8 Milliarden (8B) und 70 Milliarden (70B). Die Benutzer können sich für den Zugang zu diesen Versionen anmelden. Llama 3 wird in zwei Varianten angeboten: pre-trained, ein Basismodell für die Vorhersage des nächsten Tokens, und instruction-tuned, ein fein abgestimmtes Modell, das sich an Benutzerbefehle hält. Beide Versionen haben ein Kontextlimit von 8.192 Token.

In einem Interview mit Dwarkesh Patel erwähnte Mark Zuckerberg, der CEO von Meta, dass sie zwei maßgeschneiderte Modelle mit einem 24.000-GPU-Cluster trainiert haben. Das 70B-Modell wurde mit etwa 15 Billionen Token an Daten trainiert und erreichte nie einen Sättigungspunkt oder eine Grenze seiner Fähigkeiten. Daraufhin beschloss Meta, sich auf das Training anderer Modelle zu konzentrieren. Das Unternehmen gab außerdem bekannt, dass es derzeit an einer Version von Llama 3 mit 400B-Parametern arbeitet, von der Experten wie Jim Fan von Nvidia glauben, dass sie bei Benchmarks wie MMLU, GPQA, HumanEval und MATH eine ähnliche Leistung wie GPT-4 Turbo, Claude 3 Opus und Gemini Ultra erbringen könnte.

Laut Meta wurde Llama 3 anhand verschiedener Benchmarks bewertet, darunter MMLU (Wissen auf Undergraduate-Niveau), GSM-8K (Mathematik für Grundschüler), HumanEval (Codierung), GPQA (Fragen auf Graduiertenniveau) und MATH (mathematische Wortprobleme). Diese Benchmarks zeigen, dass das 8B-Modell offen gewichtete Modelle wie Googles Gemma 7B und Mistral 7B Instruct übertrifft und das 70B-Modell mit Gemini Pro 1.5 und Claude 3 Sonnet konkurrenzfähig ist.

Meta berichtet, dass das Modell Llama 3 mit der Fähigkeit verbessert wurde, Kodierungen zu verstehen, ähnlich wie Llama 2, und dass es zum ersten Mal sowohl mit Bildern als auch mit Text trainiert worden ist. Die aktuelle Ausgabe ist jedoch auf Text beschränkt.

LLaMA 3 Benchmarks LLaMA 3 Benchmarks

LLaMA 3 Hardware-Anforderungen und Auswahl der richtigen Instanzen auf AWS EC2

Da viele Unternehmen AWS für ihre Produktions-Workloads verwenden, sehen wir uns an, wie LLaMA 3 auf AWS EC2 bereitgestellt werden kann.

Bei der Implementierung von LLMs gibt es mehrere Hindernisse, z. B. den VRAM-Verbrauch (GPU-Speicher), die Inferenzgeschwindigkeit, den Durchsatz und die Festplattenplatznutzung. In diesem Szenario müssen wir sicherstellen, dass wir eine GPU-Instanz auf AWS EC2 mit ausreichender VRAM-Kapazität zuweisen, um die Ausführung unserer Modelle zu unterstützen.

LLaMA 3 8B benötigt etwa 16 GB Festplattenspeicher und 20 GB VRAM (GPU-Speicher) im FP16. Sie könnten LLaMA 3 natürlich auch auf einer CPU einsetzen, aber die Latenz wäre für einen realen Produktionseinsatz zu hoch. Für LLaMA 3 70B sind etwa 140 GB Festplattenspeicher und 160 GB VRAM im FP16 erforderlich.

Die Beschaffung von 20 GB VRAM für LLaMA 3 8B ist ziemlich einfach. Ich empfehle Ihnen die Bereitstellung eines NVIDIA A10-Grafikprozessors: Dieser Grafikprozessor verfügt über 24 GB VRAM und ist ein schneller Grafikprozessor, der auf der Ampere-Plattform basiert. Bei AWS EC2 sollten Sie eine G5-Instanz auswählen, um einen A10-Grafikprozessor bereitstellen zu können. Eine g5.xlarge ist ausreichend.

Die Bereitstellung des LLaMA 3 70B-Modells ist jedoch viel schwieriger. Keine GPU hat genügend VRAM für dieses Modell, sodass Sie eine Multi-GPU-Instanz bereitstellen müssen. Wenn Sie eine g5.48xlarge-Instanz auf AWS bereitstellen, erhalten Sie 192 GB VRAM (8 x A10-GPUs), was für LLaMA 3 70B ausreichend ist.

In einer solchen Konfiguration können Sie die folgenden Latenzen (Antwortzeiten) erwarten: 50 Token werden in 1 Sekunde für LLaMA 3 8B und 50 Token in 5 Sekunden für LLaMA 3 70B erzeugt.

Um die Betriebskosten dieser Modelle zu senken und die Latenzzeit zu erhöhen, können Sie Quantisierungstechniken erforschen, aber seien Sie sich bewusst, dass solche Optimierungen die Genauigkeit Ihres Modells beeinträchtigen können. Die Quantisierung ist nicht Gegenstand dieses Artikels.

Um solche Instanzen bereitzustellen, melden Sie sich bei Ihrer AWS EC2-Konsole an und starten eine neue Instanz: Wählen Sie das NVIDIA Deep Learning AMI auf einer g5.xlarge- oder g5.48xlarge-Instanz. Vergessen Sie nicht, auch genügend Festplattenspeicher bereitzustellen.

Deep Learning AMI auf G5-Instanz auf AWS

Produktionsinferenz mit vLLM

vLLM ist eine Bibliothek, die für eine schnelle und einfache LLM-Inferenz und -Einführung entwickelt wurde. Ihre Effizienz ist auf verschiedene ausgeklügelte Methoden zurückzuführen, darunter ausgelagerte Aufmerksamkeit für die optimale Verwaltung von Aufmerksamkeitsschlüsseln und Wertespeichern, Echtzeitverarbeitung eingehender Abfragen in Stapeln und personalisierte CUDA-Kernel.

Darüber hinaus bietet vLLM ein hohes Maß an Anpassungsfähigkeit durch den Einsatz verteilter Berechnungen (mit Tensor-Parallelität), Echtzeit-Streaming und Kompatibilität mit NVIDIA- und AMD-Grafikkarten.

Insbesondere wird vLLM bei der Bereitstellung von LLaMA 3 sehr hilfreich sein, da es uns ermöglicht, AWS EC2-Instanzen zu nutzen, die mit mehreren kompakten NVIDIA A10-GPUs ausgestattet sind. Dies ist vorteilhaft gegenüber der Verwendung eines einzelnen großen Grafikprozessors, wie dem NVIDIA A100 oder H100. Darüber hinaus wird vLLM die Effizienz unseres Modells durch kontinuierliche Batch-Inferenz erheblich steigern.

Die Einrichtung von vLLM ist recht einfach. Stellen wir eine SSH-Verbindung zu unserer kürzlich erstellten AWS-Instanz her und installieren vLLM mit pip:

pip install vllm

Da wir eine verteilte Inferenz mit vLLM auf 8 x A10 GPUs durchführen wollen, ist auch die Installation von Ray erforderlich:

pip install ray

Sollten Sie bei der Installation auf Kompatibilitätsprobleme stoßen, kann es für Sie einfacher sein, vLLM aus dem Quellcode zu kompilieren oder das Docker-Image zu verwenden: sehen Sie sich die vLLM-Installationsanweisungen an.

Starten Sie den Inferenzserver

Lassen Sie uns nun unser Python-Skript für die Inferenz erstellen:

from vllm import LLM

# Use LLaMA 3 8B on 1 GPU
llm = LLM("meta-llama/Meta-Llama-3-8B-Instruct")

# Use LLaMA 3 70B on 8 GPUs
# llm = LLM("meta-llama/Meta-Llama-3-70B-Instruct", tensor_parallel_size=8)

print(llm.generate("What are the most popular quantization techniques for LLMs?"))

Sie können das obige Skript ausführen. Wenn Sie dieses Skript zum ersten Mal ausführen, müssen Sie warten, bis das Modell heruntergeladen und auf den Grafikprozessor geladen ist:

The most popular quantization techniques for Large Language Models (LLMs) are:
1. Integer Quantization
2. Floating-Point Quantization
3. Mixed-Precision Training
4. Knowledge Distillation

Es ist ganz einfach zu verstehen. Sie müssen lediglich die tensor_parallel_size entsprechend der Anzahl der GPUs, die Sie besitzen, anpassen.

Wir wollen nun einen geeigneten Inferenzserver einrichten, der in der Lage ist, zahlreiche Anfragen zu verwalten und gleichzeitig Inferenzen durchzuführen. Starten Sie zunächst den Server:

Für LLaMA 3 8B:

python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Meta-Llama-3-8B-Instruct

Für LLaMA 3 70B:

python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Meta-Llama-3-70B-Instruct
--tensor-parallel-size 8

Es sollte bis zu 1 Minute dauern, bis das Modell auf der GPU geladen ist. Dann können Sie ein zweites Terminal starten und einige Anfragen stellen:

curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
    "model": "meta-llama/Meta-Llama-3-8B-Instruct",
    "prompt": "What are the most popular quantization techniques for LLMs?"
}'

Sie haben nun einen produktionsreifen Inferenzserver, der dank der kontinuierlichen Stapelverarbeitung viele parallele Anfragen bearbeiten kann. Irgendwann, wenn die Anzahl der Anfragen zu hoch ist, wird die GPU jedoch überlastet sein. In diesem Fall müssen Sie das Modell auf mehreren GPU-Instanzen replizieren und einen Lastausgleich für Ihre Anfragen vornehmen (dies würde jedoch den Rahmen dieses Artikels sprengen).

Schlussfolgerung

Wie Sie sehen, ist für den Einsatz von LLaMA 3 in der Produktion dank Inferenzservern wie vLLM kein komplexer Code erforderlich.

Die Bereitstellung der richtigen Hardware ist jedoch eine Herausforderung. Zum einen, weil diese GPUs sehr kostspielig sind, aber auch wegen des derzeitigen weltweiten GPU-Mangels. Wenn Sie zum ersten Mal versuchen, einen GPU-Server bei AWS bereitzustellen, haben Sie möglicherweise nicht die Berechtigung, einen GPU-Server zu erstellen. In diesem Fall müssen Sie den Support kontaktieren und Ihren Anwendungsfall erläutern. In diesem Artikel haben wir AWS EC2 verwendet, aber andere Anbieter sind natürlich auch verfügbar (Azure, GCP, OVH, Scaleway...).

Wenn Sie nicht daran interessiert sind, LLaMA 3 selbst einzusetzen, empfehlen wir Ihnen, unsere NLP Cloud API zu nutzen. Diese Option kann effizienter und potenziell viel kostengünstiger sein als die Verwaltung Ihrer eigenen LLaMA 3-Infrastruktur. Testen Sie LLaMA 3 auf NLP Cloud jetzt!

Wenn Sie Fragen zu LLaMA 3 und zum Einsatz von KI im Allgemeinen haben, zögern Sie bitte nicht, uns zu fragen, wir helfen Ihnen gerne!

Julien
CTO bei NLP Cloud