Decoder (Transformer) (SV)
Dekoder (eng. Decoder) — inom Machine Learning och djupinlärning är detta en komponent i ett neuralt nätverk vars huvuduppgift är att omvandla en kodad representation (till exempel en kontextvektor eller en sekvens av dolda tillstånd som erhållits från en encoder) till en utdatasekvens (till exempel text eller en bild). Dekodern genererar utdata steg för steg, vanligtvis i ett autoregressive läge.
I vidare bemärkelse, inom informationsteori, är en dekoder vilken enhet eller algoritm som helst som omvandlar kodad data tillbaka till sitt ursprungliga eller begripliga format.
Koncept och syfte
Om encodern ansvarar för förståelse och komprimering av indata, ansvarar dekodern för generering och utvidgning av utdata. Den tar en kompakt, informationsrik representation och omvandlar den sekventiellt till önskat format, vare sig det är en mening på ett annat språk, en textbeskrivning av en bild eller en sekvens av musiknoter.
En nyckelegenskap hos de flesta dekodrar är deras autoregressive natur: för att generera nästa element i sekvensen (till exempel ett ord eller en pixel) använder de både den kodade representationen och alla tidigare genererade element.
Dekodern i olika arkitekturer
Dekodern i en autoencoder
I en autoencoder-arkitektur utför dekodern den omvända uppgiften jämfört med encodern:
- Encodern komprimerar indata till en dold representation.
- Dekodern tar denna dolda representation och försöker återskapa (rekonstruera) ursprungliga data från den.
Träning av ett sådant nätverk gör det möjligt att använda dekodern separat för att generera ny data, genom att mata in vektorer från det latenta rummet.
Dekodern i återkommande neurala nätverk (RNN/LSTM)
I klassiska sekvens-till-sekvens-modeller (seq2seq) baserade på RNN eller LSTM är dekodern ett återkommande nätverk som genererar utdatasekvensen token för token.
- Arbetsprincip: Dekodern initialiseras med encoderns slutliga dolda tillstånd (kontextvektor). Vid varje steg tar den emot den tidigare genererade token och sitt föregående dolda tillstånd, och genererar sedan nästa token och uppdaterar sitt tillstånd. Denna process fortsätter tills en speciell slut-på-sekvens-token (`<EOS>`) genereras.
Dekodern i Transformer-arkitekturen
En dekoder baserad på Transformer-arkitekturen arbetar också autoregressive, men dess interna struktur skiljer sig åt. Den består av ett stack () av identiska lager, där vart och ett har tre huvudsakliga dellager:
- Maskerat flerhuvudat självuppmärksamhet (Masked Multi-Head Self-Attention): Denna mekanism fungerar på samma sätt som i encodern, men med en viktig skillnad — maskering. Masken förhindrar varje position från att "uppmärksamma" efterföljande positioner i sekvensen. Detta garanterar att förutsägelsen för position endast beror på redan kända utdata vid positioner , vilket bevarar den autoregressive egenskapen.
- Flerhuvudat korsuppmärksamhet (Multi-Head Cross-Attention): Detta är nyckelmekanismen som kopplar samman dekodern med encodern. Här kommer frågor (Query) från det föregående dekoderlagret, medan nycklar (Key) och värden (Value) kommer från encoderns utdatarepresentationer. Detta gör det möjligt för dekodern att vid varje genereringssteg fokusera på de mest relevanta delarna av inmatningssekvensen.
- Fullständigt kopplat neuralt nätverk (Feed-Forward Network): Analogt med det som används i encodern.
Typer av modeller baserade på dekodrar
Encoder-dekoder-modeller
Detta är den klassiska arkitekturen där encodern och dekodern arbetar i par.
- Arbetsprincip: Encodern skapar en representation av indata, och dekodern genererar utdata med hjälp av denna representation.
- Exempel: Den ursprungliga Transformer, T5, BART.
Endast-dekoder-modeller (Decoder-Only)
Dessa modeller, som blivit dominerande inom generativ AI, använder uteslutande ett stack av Transformer-dekodrar.
- Arbetsprincip: Sådana modeller saknar korsuppmärksamhet mot en encoder, eftersom det inte finns någon encoder. Modellen arbetar rent autoregressive och förutsäger nästa token baserat på alla tidigare tokens i samma sekvens. Inmatningsprompt och redan genererad text bearbetas tillsammans.
- Tillämpning: Idealiska för uppgifter som kräver att en given text fortsätts (textgenerering, dialogsystem, chattbottar).
- Exempel: GPT-serien, LLaMA, Claude.
Samband med encodern
Interaktionen mellan encoder och dekoder är en grundläggande princip för omvandlingsuppgifter.
- Encodern komprimerar information om inmatningssekvensen till en uppsättning vektorer.
- Dekodern använder denna uppsättning vektorer för att sekventiellt generera en ny sekvens.
Korsuppmärksamhet gör det möjligt för dekodern att vid varje steg "konsultera" encodern för att förstå vilken del av källtexten som bör vara i fokus för tillfället. Till exempel, vid översättning av en mening kan dekodern, när den genererar ett tyskt ord, "titta" på det motsvarande engelska ordet från inmatningen.
Se även
- GPT
Litteratur
- Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.