Gå til indhold
atlas

Decoder

Den halvdel af en model, der skriver output ét token ad gangen, hvor hvert nyt token kun bygger på det, der kom før.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En stak af lag i et neuralt netværk, hvor hvert token kun må kigge på tidligere tokens, så stakken kan gætte næste token, føje det til teksten og gentage; rene decoder-designs dropper encoderen helt.

Forklaret enkelt

Som en historiefortæller ved lejrbålet, der kan høre alt, hvad der er sagt indtil nu, men aldrig kigger frem, og lægger ét ord til ad gangen.

I praksis

En produktejer i en webshop ser, at produkttekster, der er dobbelt så lange, tager omtrent dobbelt så lang tid at lave og koster det dobbelte, fordi decoderen skal frembringe hvert token for sig.

Hvorfor det betyder noget

Næsten alle store sprogmodeller er rene decodere, og derfor kommer svar gradvist, og derfor er det svarets længde, ikke kun spørgsmålets, der driver prisen.

Teknisk uddybning

I den oprindelige transformer (Vaswani m.fl., 2017) havde hver decoderblok tre dellag: maskeret multi-head self-attention over de tokens, der er genereret indtil nu, cross-attention, hvor queries kommer fra decoderen og keys og values fra encoderens output, og et positionsvist feed-forward-netværk, hvert omgivet af en residualforbindelse og lagnormalisering. En ren decoder-model, som GPT (Radford m.fl., 2018, en stak på 12 lag med omkring 117 millioner parametre) gjorde udbredt, dropper blot cross-attention-dellaget; prompten og fortsættelsen ligger i én sekvens og behandles af den samme kausale stak.

Den kausale maske er det, der gør stakken autoregressiv: Attention-scorer for positioner j > i sættes til −∞ før softmax, så repræsentationen på position i kun afhænger af token 1…i. Det giver effektiv træning med teacher forcing, hvor alle positioner i en træningssekvens forudsiges parallelt, og tabet er den summerede krydsentropi for hvert næste token. Ved inferens giver modellen en sandsynlighedsfordeling over ordforrådet for næste position, en afkodningsregel vælger et token (greedy argmax, beam search eller sampling med temperatur, top-k eller top-p/nucleus sampling), tokenet føjes til, og trinnet gentages, indtil der kommer et slut-token eller en længdegrænse.

Inferens har derfor to faser med forskellige flaskehalse. Prefill behandler hele prompten i ét parallelt gennemløb og er compute-bound; den bestemmer i høj grad time to first token. Decode genererer ét token pr. forward-gennemløb og er begrænset af hukommelsesbåndbredden, fordi alle vægte og den voksende KV-cache skal læses for hvert token; den samlede ventetid er groft sagt time to first token plus outputlængden gange tiden pr. output-token. Det er grunden til, at udbydere som regel tager mere for output-tokens end for input-tokens. Speculative decoding (Leviathan m.fl.; Chen m.fl., 2023) lader en lille udkastmodel foreslå flere tokens, som den store model efterprøver i ét gennemløb, med en acceptregel, der bevarer den store models outputfordeling.

Rene decoder-designs dominerer blandt store sprogmodeller, fordi ét enkelt træningsmål, forudsigelse af næste token på rå tekst, skalerer godt, og én arkitektur dækker både forståelse og generering. Encoder-decoder-modeller som T5 og BART er stadig udbredte, hvor input og output er klart adskilte, fx oversættelse, talegenkendelse (Whisper) og en del opsummering. Bemærk, at "decoder" også bruges om noget andet i autoencodere og i latent diffusion, hvor den oversætter en latent kode tilbage til pixels; den decoder er ikke autoregressiv.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. Neuralt netværk
  2. →Token
  3. →Embedding
  4. →Attention-mekanisme
  5. →Decoder

Relationer

Forveksl ikke med
Encoder

Kilder og videre læsning

Opslagsværker

  • Vaswani et al. (2017), Attention Is All You Need
  • Radford et al. (2018), Improving Language Understanding by Generative Pre-Training

Lærebøger

  • Jurafsky & Martin, Speech and Language Processing (3rd ed. draft)

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.