Zum Inhalt springen

ExLlamaV3 - Fast Quantized LLM Inference on Consumer GPUs Cheatsheet

ExLlamaV3 - Fast Quantized LLM Inference on Consumer GPUs Cheatsheet

ExLlamaV3 ist eine schnelle Inferenz Library zum Ausführen Quantisierter LLMs auf Consumer NVIDIA GPUs. Sein EXL3 Format bietet Hochqualität, Variable-Bitrate Quantisierung — Sie können ein Durchschnitt Bits-Pro-Weight (z.B. 3.0, 4.25, 6.0) anvisieren zu Qualität gegen VRAM Präzision handeln — dass Große Modelle in eine Einzelne 24GB Karte passen, während starker Durchsatz beibehalten wird. Es ist der Nachfolger zu ExLlamaV2 und wird von der Lokale-LLM Kommunität bevorzugt zum Quetschen Großer Modelle in begrenzte Speicher.

Installation

MethodeBefehl
pip (Prebuilt Wheel)pip install exllamav3
Aus Quellcodegit clone https://github.com/turboderp-org/exllamav3 && cd exllamav3 && pip install -e .
AnforderungenNVIDIA GPU (Ampere+), CUDA, PyTorch
Überprüfenpython -c "import exllamav3; print('ok')"

Das EXL3 Format

KonzeptBedeutung
Variable BitrateZiel durchschnitt Bits-Pro-Weight (bpw), z.B. 2.5–8.0
Pro-Layer PräzisionVerschiedene Schichten können verschiedene Präzision nutzen
Qualität/Größe DialHöher bpw = Bessere Qualität, mehr VRAM
KalibrierungNutzt einen Kalibrierungs Dataset während Quantisierung

Quantisiere ein Modell

# Konvertiere ein HF Modell zum EXL3 auf ~4.0 Bits Pro Weight
python -m exllamav3.convert \
  -i meta-llama/Llama-3.1-8B-Instruct \
  -o Llama-3.1-8B-exl3-4.0bpw \
  -b 4.0
FlagBeschreibung
-i, --in_dirQuelle HF Modell
-o, --out_dirAusgabe EXL3 Verzeichnis
-b, --bitsZiel Durchschnitt Bits Pro Weight
-hb, --head_bitsPräzision für den Output Head
-c, --cal_dirCustom Kalibrierungs Daten

Python Inferenz

from exllamav3 import Model, Config, Cache, Tokenizer, Generator

config = Config.from_directory("Llama-3.1-8B-exl3-4.0bpw")
model = Model.from_config(config)
cache = Cache(model, max_num_tokens=8192)
model.load()

tokenizer = Tokenizer.from_config(config)
generator = Generator(model=model, cache=cache, tokenizer=tokenizer)

output = generator.generate(prompt="Erklären Sie Quantisierung kurz.",
                            max_new_tokens=200)
print(output)
ObjektRolle
ConfigLade Modell Config aus einem EXL3 Verzeichnis
ModelDas Quantisierte Modell
CacheKV Cache (Größer = Länger Kontext)
GeneratorFühre Generierung aus

Speicher & Kontext

HebelEffekt
bpw bei Quant ZeitNiedriger bpw → Weniger VRAM, Einige Qualität Verlust
Cache GrößeGrößer → Längerer Kontext, Mehr VRAM
Cache QuantisierungQuantisierter KV Cache zum Kontekt Verlängerung
Head BitsHalten Sie den Head Höher-Präzision für Qualität

Wählen Sie eine Bitrate (Raue Anleitung)

Ziel bpwTypische Nutzung
2.0–2.5Passe ein Sehr Großen Modell in engen VRAM (Qualität sinkt)
3.0–3.5Aggressiv aber Nutzbar
4.0–4.5Sweet Spot für Meisten 24GB Setups
6.0+Nahe-Verlustlos, Mehr VRAM

Ökosystem Integration

ZielNotiz
TabbyAPIOpenAI-kompatible Server, die ExLlamaV3 nutzt
Text-Generation-WebUILoader Support
Aphrodite EngineKann EXL3-Quantisierte Modelle Serve

ExLlamaV3 vs Andere Ansätze

AspektExLlamaV3llama.cpp (GGUF)GPTQ/AWQ
ZielConsumer NVIDIA GPUsCPU + GPU, Cross-PlattformGPU
QuantisierungVariable-Bitrate EXL3k-QuantsFeste 4-Bit
Präzision ControlFein (Jedes bpw)Vorgeset LevelGrob
Beste fürMax Qualität-Pro-VRAM auf GPUPortabilität, CPUStandard 4-Bit Serving

Ressourcen