Decoder (Transformer) (RO)

From Systems analysis Wiki
Jump to navigation Jump to search

Decodor (engl. Decoder) — în machine learning și deep learning, este o componentă a rețelei neuronale a cărei sarcină principală este transformarea unei reprezentări codificate (de exemplu, un vector de context sau o secvență de stări ascunse obținute de la encoder) într-o secvență de date de ieșire (de exemplu, text sau imagine). Decodorul generează datele de ieșire pas cu pas, de regulă în mod autoregresiv.

Într-un sens mai larg, în teoria informației, un decodor este orice dispozitiv sau algoritm care transformă datele codificate înapoi în formatul lor original sau într-un format inteligibil.

Concept și destinație

Dacă encoderul este responsabil de înțelegerea și compresia datelor de intrare, decodorul este responsabil de generarea și desfășurarea datelor de ieșire. El preia o reprezentare compactă, bogată în informații, și o transformă secvențial în formatul dorit, fie că este vorba de o propoziție în altă limbă, o descriere textuală a unei imagini sau o secvență de note muzicale.

O caracteristică esențială a majorității decodorilor este natura lor autoregresivă: pentru a genera următorul element al secvenței (de exemplu, un cuvânt sau un pixel), acestea utilizează atât reprezentarea codificată, cât și toate elementele generate anterior.

Decodorul în diverse arhitecturi

Decodorul în autoencoder

În arhitectura autoencoder, decodorul îndeplinește sarcina inversă față de encoder:

  1. Encoderul comprimă datele de intrare într-o reprezentare latentă.
  2. Decodorul preia această reprezentare latentă și încearcă să reconstituie (să reconstruiască) din ea datele originale.

Antrenarea unei astfel de rețele permite utilizarea decodorului separat pentru generarea de date noi, furnizând la intrarea sa vectori din spațiul latent.

Decodorul în rețelele neuronale recurente (RNN/LSTM)

În modelele clasice de transformare secvență-la-secvență (seq2seq), bazate pe RNN sau LSTM, decodorul este o rețea recurentă care generează secvența de ieșire token cu token.

  • Principiu de funcționare: Decodorul este inițializat cu starea ascunsă finală (vectorul de context) a encoderului. La fiecare pas, primește ca intrare token-ul generat anterior și starea sa ascunsă precedentă, apoi generează următorul token și își actualizează starea. Acest proces continuă până când este generat token-ul special de sfârșit de secvență (`<EOS>`).

Decodorul în arhitectura Transformer

Decodorul bazat pe arhitectura Transformer funcționează de asemenea autoregresiv, însă structura sa internă este diferită. El este compus dintr-un stac (N) de straturi identice, fiecare având trei subsstraturi principale:

  1. Atenție automultiple mascată (Masked Multi-Head Self-Attention): Acest mecanism funcționează similar cu cel din encoder, dar cu o diferență importantă — mascarea. Masca nu permite fiecărei poziții să „acorde atenție" pozițiilor ulterioare din secvență. Aceasta garantează că predicția pentru poziția i depinde doar de ieșirile deja cunoscute la pozițiile <i, păstrând proprietatea autoregresivă.
  2. Atenție încrucișată multiples (Multi-Head Cross-Attention): Acesta este mecanismul cheie care leagă decodorul de encoder. Aici interogările (Query) provin din stratul anterior al decodorului, iar cheile (Key) și valorile (Value) provin din reprezentările de ieșire ale encoderului. Aceasta îi permite decodorului ca la fiecare pas de generare să se concentreze pe cele mai relevante părți ale secvenței de intrare.
  3. Rețea neuronală complet conectată (Feed-Forward Network): Analogă celei utilizate în encoder.

Tipuri de modele bazate pe decodor

Modele encoder-decodor

Aceasta este arhitectura clasică, în care encoderul și decodorul lucrează în pereche.

  • Principiu de funcționare: Encoderul creează o reprezentare a datelor de intrare, iar decodorul generează datele de ieșire utilizând această reprezentare.
  • Exemple: Transformer-ul original, T5, BART.

Modele exclusiv-decodor (Decoder-Only)

Aceste modele, care au devenit dominante în AI-ul generativ, utilizează exclusiv un stac de decodoare Transformer.

  • Principiu de funcționare: Astfel de modele nu au atenție încrucișată față de encoder, deoarece nu există encoder. Modelul funcționează pur autoregresiv, predicând următorul token pe baza tuturor token-urilor anterioare din aceeași secvență. Prompt-ul de intrare și textul deja generat sunt procesate împreună.
  • Aplicare: Ideale pentru sarcinile care necesită continuarea unui text dat (generare de text, sisteme de dialog, chatbot-uri).
  • Exemple: Seria GPT, LLaMA, Claude.

Relația cu encoderul

Interacțiunea dintre encoder și decodor este un principiu fundamental pentru sarcinile de transformare.

  • Encoderul comprimă informațiile despre secvența de intrare într-un set de vectori.
  • Decodorul utilizează acest set de vectori pentru a genera secvențial o nouă secvență.

Atenția încrucișată îi permite decodorului ca la fiecare pas să „se consulte" cu encoderul pentru a înțelege pe care parte a textului sursă ar trebui să se concentreze în acel moment. De exemplu, la traducerea unei propoziții, decodorul, generând un cuvânt în germană, poate „privi" cuvântul corespunzător în engleză din intrare.

Vezi și

  • GPT

Bibliografie

  • Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.