🦙Llama 4: Wie man ausführt und feinabstimmt
Wie man Llama 4 lokal mit unseren dynamischen GGUFs ausführt, die im Vergleich zur Standardquantisierung die Genauigkeit wiederherstellen.
Das Modell Llama-4-Scout hat 109 Mrd. Parameter, während Maverick 402 Mrd. Parameter hat. Die vollständige nicht quantisierte Version benötigt 113 GB Speicherplatz, während die 1,78-Bit-Version 33,8 GB benötigt (-75 % Größenreduktion). Maverick (402Bs) ging von 422 GB auf nur 122 GB zurück (-70 %).
Scout 1,78-Bit passt auf eine GPU mit 24 GB VRAM für schnelle Inferenz mit ~20 Token/Sek. Maverick 1,78-Bit passt auf 2 GPUs mit je 48 GB VRAM für schnelle Inferenz mit ~40 Token/Sek.
Bei unseren dynamischen GGUFs quantisieren wir, um das beste Verhältnis zwischen Genauigkeit und Größe zu erreichen, nicht alle Layer, sondern quantisieren selektiv z. B. die MoE-Layer mit niedrigerer Bit-Tiefe und lassen Attention- und andere Layer in 4 oder 6 Bit.
Scout - Unsloth Dynamic GGUFs mit optimalen Konfigurationen:
Maverick - Unsloth Dynamic GGUFs mit optimalen Konfigurationen:
⚙️ Offiziell 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, der Standardwert von llama.cpp ist 0,1)
Top_P von 0,9
Chat-Template/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/, gibt es einen vorgeschlagenen optionalen System-Prompt, der unten aufgeführt ist:
📖 Tutorial: So führen Sie Llama-4-Scout in llama.cpp aus
Holen Sie sich die neueste
llama.cppauf hier auf GitHub. Sie können auch die folgenden Build-Anweisungen befolgen. Ändern Sie-DGGML_CUDA=ONzu-DGGML_CUDA=OFFwenn Sie keine GPU haben oder nur CPU-Inferenz möchten. Für Apple-Mac-/Metal-Geräte, setzen Sie-DGGML_CUDA=OFFund fahren Sie dann wie gewohnt fort – Metal-Unterstützung ist standardmäßig aktiviert.
Lade das Modell über (nach der Installation von
pip install huggingface_hub hf_transfer). Sie können Q4_K_M oder andere quantisierte Versionen (wie BF16-Vollpräzision) wählen. Weitere Versionen unter: https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF
Führe das Modell aus und probiere einen Prompt aus.
Bearbeiten
--threads 32für die Anzahl der CPU-Threads,--ctx-size 16384für die Kontextlänge (Llama 4 unterstützt eine Kontextlänge von 10 Mio.!),--n-gpu-layers 99für GPU-Offloading auf wie viele Layer. Versuche, ihn anzupassen, wenn deiner GPU der Speicher ausgeht. Entferne ihn auch, wenn du nur CPU-Inferenz hast.
Für Llama 4 Maverick ist es am besten, 2 RTX 4090 zu haben (2 x 24 GB)
🕵️ Interessante Erkenntnisse und Probleme
Während der Quantisierung von Llama 4 Maverick (dem großen Modell) stellten wir fest, dass die 1., 3. und 45. MoE-Layer nicht korrekt kalibriert werden konnten. Maverick verwendet für jede ungerade Schicht ineinander verschachtelte MoE-Layer, also Dense->MoE->Dense und so weiter.
Wir versuchten, unserem Kalibrierungsdatensatz weitere seltene Sprachen hinzuzufügen, und versuchten, mehr Token (1 Million) für die Kalibrierung zu verwenden, im Vergleich zu Scouts 250K Token, aber wir stellten weiterhin Probleme fest. Wir entschieden uns, diese MoE-Layer als 3-Bit und 4-Bit zu belassen.

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

Wir mussten außerdem torch.nn.Parameter zu torch.nn.Linear für die MoE-Layer umwandeln, damit eine 4-Bit-Quantisierung möglich wird. Das bedeutet auch, dass wir die allgemeine Hugging-Face-Implementierung neu schreiben und überpatchen 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, jedoch etwas effizienter, da keine Aufmerksamkeit auf frühere Token jenseits der 8192-Grenze gerichtet wird.
Zuletzt aktualisiert
War das hilfreich?

