Decoder (dekodér)

Čo je decoder?

Decoder (v slovenskom preklade dekodér) je kľúčová súčasť architektúry transformer, ktorá zodpovedá za generovanie výstupnej sekvencie. Na základe vstupnej reprezentácie a kontextu postupne vytvára výstup token po tokene, pričom využíva mechanizmus pozornosti (attention) na zachytenie relevantných vzťahov medzi jednotlivými časťami sekvencie.

Architektúra decoder v transformeroch

Decoder v architektúre transformer pozostáva z niekoľkých vrstiev, z ktorých každá obsahuje tri hlavné komponenty. Prvým je masked self-attention mechanizmus, ktorý umožňuje modelu sústrediť sa len na predchádzajúce pozície v sekvencii – to zabraňuje „nazeraniu do budúcnosti“ počas generovania.

Druhým komponentom je cross-attention vrstva, ktorá prepája decoder s výstupom encoderu. Táto vrstva umožňuje decoderu pristupovať k informáciám zo vstupnej sekvencie a využívať ich pri generovaní výstupu. Tretím komponentom je feed-forward neurónová sieť, ktorá spracováva výstupy attention vrstiev.

Každá vrstva obsahuje aj reziduálne spojenia a normalizáciu, ktoré stabilizujú trénovanie a umožňujú efektívne učenie aj v hlbokých sieťach.

Princípy fungovania decodera

Decoder generuje výstup autoregresívnym spôsobom – každý nový token sa vytvára na základe všetkých predchádzajúcich tokenov a kontextu z encoderu. Proces začína špeciálnym začiatočným tokenom a pokračuje, kým model nevygeneruje ukončovací token alebo nedosiahne maximálnu dĺžku.

Masked self-attention zabezpečuje kauzalitu generovania. Maska zakrýva budúce pozície, takže pri predikcii tokenu na pozícii i má model prístup len k tokenom na pozíciách 0 až i-1. Toto je zásadný rozdiel oproti encoderu, ktorý vidí celú vstupnú sekvenciu naraz.

Vieš, že
Vieš, že…

…pôvodná architektúra transformer predstavená v článku „Attention Is All You Need“ (2017) obsahovala encoder aj decoder, ale moderné jazykové modely ako GPT používajú výlučne decoder časť?

Decoder-only a encoder-decoder architektúry

V praxi existujú dva hlavné prístupy k využitiu decodera. Encoder-decoder architektúra (napríklad T5 alebo pôvodný transformer) kombinuje obe časti a je vhodná pre úlohy ako strojový preklad či sumarizácia, kde existuje jasný vstup aj výstup.

Decoder-only architektúra (GPT, Llama, Claude) používa výlučne decoder bez samostatného encoderu. Tieto modely spracovávajú vstup a generujú výstup v jednej súvislej sekvencii. Tento prístup sa ukázal ako mimoriadne efektívny pre generatívne úlohy a stal sa základom väčšiny moderných veľkých jazykových modelov.

Decoder má svoje obmedzenia – autoregresívne generovanie je sekvenčné, čo v porovnaní s paralelnými metódami spomaľuje inferenciu. Výskum preto aktívne hľadá spôsoby, ako tento proces urýchliť bez straty kvality.

Zdroje a odkazy

Použité zdroje:

  • Vaswani et al. (2017) – Attention Is All You Need: https://arxiv.org/abs/1706.03762
  • Hugging Face Documentation – Transformers: https://huggingface.co/docs/transformers

Odporúčané zdroje:

  • The Illustrated Transformer – Jay Alammar: https://jalammar.github.io

Uvedené informácie sú orientačné a môžu sa líšiť v závislosti od verzie, implementácie a prostredia.