Kvantisering og spekulativ dekodning
Til selvhostede modeller: int8/int4-kvantisering for at spare hukommelse og spekulativ dekodning for større gennemløb.
Kvantisering og spekulativ dekodning er en gratis AI-agenter-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i AI-agenter, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. AI-agenter-kurset indeholder 4 lektioner i alt.
Dele af denne lektion er endnu ikke oversat og vises på engelsk.
Optimering af selvhostede modeller
For selvhostede åbne modeller er der to store hastigheds- og omkostningsgevinster:
- Kvantisering — mindre vægte, mindre RAM/VRAM og hurtigere inferens
- Spekulativ dekodning — generér flere tokens pr. trin
Grundlæggende kvantisering
Modeller gemmes normalt som FP16 (16 bit pr. vægt). Kvantisering reducerer antallet af bit:
- FP16 — udgangspunktet
- INT8 — 2 gange mindre, næsten ubetydeligt kvalitetstab
- INT4 / Q4_K_M — 4 gange mindre, lille kvalitetstab
- INT2 / 1,58 bit — mindst 8 gange mindre, mærkbart kvalitetstab
GGUF og kvantiseringsniveauer
GGUF er det format, der bruges af llama.cpp. Almindelige niveauer:
- Q4_K_M — den bedste balance mellem kvalitet og størrelse
- Q5_K_M — lidt større, lidt bedre
- Q8_0 — næsten samme kvalitet som FP16, 2 gange komprimering
Quantise With llama.cpp
./llama-quantize models/llama-3-8b-f16.gguf models/llama-3-8b-q4_k_m.gguf Q4_K_M
# Or download pre-quantised from TheBloke / unsloth on HuggingFaceHardwarepåvirkning
En 8B FP16-model kræver omkring 16 GB VRAM. Den samme model i Q4 kan være på omkring 5 GB VRAM og køre på en langt billigere GPU.
Spekulativ dekodning
Tricket er at bruge en lille udkastmodel til at foreslå tokens og derefter verificere dem med den store målmodel i ét fremadgående gennemløb. Det giver ofte 2-3 gange højere hastighed.
from transformers import AutoModelForCausalLM
target = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-70B')
draft = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-8B')
outputs = target.generate(
input_ids,
assistant_model=draft, # speculative decoding
max_new_tokens=200
)Hvorfor det virker
Udkastmodellen foreslår K tokens. Målmodellen behandler dem alle PARALLELT i ét fremadgående gennemløb. Hvert accepteret token er uden ekstra omkostning. Ved en afvisning rulles der tilbage; som regel accepterer du de fleste.
Andre hastighedsforbedringer ved dekodning
- Forudblik-dekodning — flere udkast pr. trin
- Medusa — flere dekoderingshoveder, der trænes sammen
- EAGLE — hurtig træbaseret spekulation
Værktøjer, der implementerer dette
- vLLM — har både kvantisering (AWQ, GPTQ, FP8) og spekulativ dekodning
- llama.cpp — kvantisering og spekulation via --draft-model
- TensorRT-LLM — NVIDIAs produktionsserver
- SGLang — hurtig server, der er velegnet til batchbehandling, med kontinuerlig batchbehandling
Kontinuerlig batchbehandling
vLLM's vigtigste funktion: Behandl flere forespørgsler med forskellig længde i det samme fremadgående gennemløb. Det giver en enorm gevinst i gennemløb for produktionsservere.
Valg af kvantiseringsniveau
Test hvert muligt niveau på DIN evaluering. Q4_K_M er det naturlige startpunkt; vælg et højere niveau, hvis kvaliteten falder under tærsklen.
Latenstid pr. token kontra gennemløb
Forskellige optimeringer hjælper med forskellige målepunkter:
- Latenstid for én forespørgsel: spekulativ dekodning
- Gennemløb for flere brugere: kontinuerlig batchbehandling
- Hukommelsesomkostning: kvantisering
Effekten af kvantisering
Hvad er den primære effekt af int4-kvantisering?
Opsummering
Kvantiser til Q4 for at spare hukommelse og øge hastigheden. Brug spekulativ dekodning for lav latenstid. Brug kontinuerlig batchbehandling for højt gennemløb. vLLM og llama.cpp implementerer alle tre.
Lær AI-agenter med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 60
- Lektioner
- 239
Ofte stillede spørgsmål
Er lektionen “Kvantisering og spekulativ dekodning” gratis?
Ja — hele teksten til “Kvantisering og spekulativ dekodning” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af AI-agenter-kurset, skal du opgradere til CoddyKit PRO. AI-agenter-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Kvantisering og spekulativ dekodning”?
Til selvhostede modeller: int8/int4-kvantisering for at spare hukommelse og spekulativ dekodning for større gennemløb. Du øver dig i AI-agenter med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på AI-agenter?
Der kræves ingen tidligere erfaring. AI-agenter på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Kvantisering og spekulativ dekodning”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne AI-agenter-lektion?
Ja. Alle AI-agenter-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Tokenbudgetter pr. trin
- Modelrouting (billig -> dyr)
- Caching af prompts og resultater (Anthropic, Vertex)
- Kvantisering og spekulativ dekodning