🦙Llama 4: Wie man ausführt & feinabstimmt
Wie man Llama 4 lokal mit unseren Dynamic GGUFs ausführt, die die Genauigkeit im Vergleich zur Standardquantisierung wiederherstellen.
Das Llama-4-Scout-Modell hat 109 Milliarden Parameter, während Maverick 402 Milliarden Parameter hat. Die vollständige unquantisierte Version benötigt 113 GB Festplattenspeicher, während die 1,78-Bit-Version 33,8 GB verwendet (–75 % Größenreduzierung). Maverick (402Bs) ging von 422 GB auf nur 122 GB zurück (–70 %).
Sowohl Text ALS AUCH vision wird jetzt unterstützt! Außerdem mehrere Verbesserungen beim Aufrufen von Tools.
Scout 1,78-Bit passt in eine 24-GB-VRAM-GPU für schnelle Inferenz mit ~20 Token/s. Maverick 1,78-Bit passt in 2×48-GB-VRAM-GPUs für schnelle Inferenz mit ~40 Token/s.
Für unsere dynamischen GGUFs quantisieren wir nicht alle Schichten, um das beste Gleichgewicht zwischen Genauigkeit und Größe zu gewährleisten, sondern quantisieren selektiv z. B. die MoE-Schichten auf niedrigere Bitzahl und lassen Attention- und andere Schichten in 4- oder 6-Bit.
Alle unsere GGUF-Modelle werden mithilfe von Kalibrierdaten quantisiert (etwa 250K Tokens für Scout und 1M Tokens für Maverick), was die Genauigkeit gegenüber Standardquantisierung verbessert. Unsloth imatrix-Quants sind voll kompatibel mit beliebten Inferenz-Engines wie llama.cpp & Open WebUI usw.
Scout – Unsloth Dynamic GGUFs mit optimalen Konfigurationen:
Für beste Ergebnisse verwenden Sie die 2,42-Bit-Version (IQ2_XXS) oder größere Versionen.
Maverick – Unsloth Dynamic GGUFs mit optimalen Konfigurationen:
⚙️ Offizielle empfohlene Einstellungen
Laut Meta sind dies die empfohlenen Einstellungen für die Inferenz:
Temperatur von 0,6
Min_P von 0,01 (optional, aber 0,01 funktioniert gut, llama.cpp-Standard ist 0,1)
Top_P von 0,9
Chat-Vorlage/Prompt-Format:
Ein BOS-Token von
<|begin_of_text|>wird während der Tokenisierung automatisch hinzugefügt (nicht manuell hinzufügen!)Laut https://www.llama.com/docs/model-cards-and-prompt-formats/llama4_omni/, es gibt einen vorgeschlagenen optionalen System-Prompt, der unten aufgeführt ist:
📖 Tutorial: Wie man Llama-4-Scout in llama.cpp ausführt
Hole dir die neueste
llama.cppauf GitHub hier. Du kannst auch den Build-Anweisungen unten folgen. Ändere-DGGML_CUDA=ONzu-DGGML_CUDA=OFFwenn du keine GPU hast oder nur CPU-Inferenz möchtest. Für Apple Mac / Metal-Geräte, setze-DGGML_CUDA=OFFdann wie gewohnt fort - Metal-Unterstützung ist standardmäßig aktiviert.
Laden Sie das Modell herunter (nach der Installation
pip install huggingface_hub hf_transfer). Sie können Q4_K_M wählen oder andere quantisierte Versionen (wie BF16 Vollpräzision). Weitere Versionen unter: https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF
Führe das Modell aus und probiere beliebige Prompts.
Bearbeiten
Sie können--threads 32für die Anzahl der CPU-Threads bearbeiten,für Kontextlänge (Llama 4 unterstützt 10M Kontextlänge!),--n-gpu-layers 99--n-gpu-layers 2
Verwende -ot ".ffn_.*_exps.=CPU" um alle MoE-Schichten auf die CPU auszulagern! Dadurch können Sie effektiv alle Nicht-MoE-Schichten auf einer GPU unterbringen, was die Generationsgeschwindigkeit verbessert. Sie können den Regex-Ausdruck anpassen, um mehr Schichten zu verschieben, wenn Sie mehr GPU-Kapazität haben.
Beim Testen konnten wir leider nicht erreichen, dass die vollständige BF16-Version (d. h. unabhängig von Quantisierung oder nicht) das Flappy-Bird-Spiel oder den Heptagon-Test angemessen abschließt. Wir haben viele Inferenz-Anbieter ausprobiert, mit oder ohne imatrix, andere Quants verwendet und die normale Hugging Face-Inferenz genutzt, und dieses Problem besteht weiterhin.
Wir fanden durch mehrere Durchläufe und indem wir das Modell baten, Fehler zu finden und zu beheben, dass sich die meisten Probleme lösen ließen!
Für Llama 4 Maverick ist es am besten, 2 RTX 4090 (2 × 24 GB) zu haben
🕵️ Interessante Erkenntnisse und Probleme
Während der Quantisierung von Llama 4 Maverick (dem großen Modell) konnten die 1., 3. und 45. MoE-Schicht nicht korrekt kalibriert werden. Maverick verwendet verschachtelte MoE-Schichten für jede ungerade Schicht, also Dense->MoE->Dense und so weiter.
Wir versuchten, ungewöhnlichere Sprachen in unseren Kalibrierungsdatensatz aufzunehmen und mehr Tokens zu verwenden (1 Million) im Vergleich zu Scouts 250K Tokens zur Kalibrierung, fanden aber weiterhin Probleme. Wir entschieden uns, diese MoE-Schichten als 3-Bit und 4-Bit zu belassen.

Für Llama 4 Scout stellten wir fest, dass wir die Vision-Schichten nicht quantisieren sollten und den MoE-Router sowie einige andere Schichten unquantisiert lassen sollten – wir laden diese hoch zu https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-dynamic-bnb-4bit

Wir mussten außerdem konvertieren torch.nn.Parameter zu torch.nn.Linear für die MoE-Schichten, um eine 4-Bit-Quantisierung zu ermöglichen. Das bedeutete auch, dass wir die generische Hugging Face-Implementierung umschreiben und patchen mussten. Wir laden unsere quantisierten Versionen hoch zu https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-bnb-4bit und https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-bnb-8bit für 8-Bit.

Llama 4 verwendet jetzt auch chunked Attention – im Wesentlichen Sliding-Window-Attention, aber etwas effizienter, da nicht über die 8192-Grenze hinaus auf vorherige Tokens geachtet wird.
Zuletzt aktualisiert
War das hilfreich?

