---
title: "Encoder (Transformer) (CS)"
source: "https://systems-analysis.info/int/Encoder_(Transformer)_(CS)"
wiki: "systems-analysis.info/int"
article: "Encoder_(Transformer)_(CS)"
language: "cs"
categories:
  - "Category:Core LLM concepts"
  - "Category:Czech"
  - "Category:Large language models"
  - "Category:Machine learning"
revision_id: 1943
wiki_created_at: 2026-09-06T22:56:22Z
wiki_modified_at: 2026-09-06T22:56:22Z
downloaded_at: 2026-09-07T22:48:36Z
---

# Encoder (Transformer) (CS)

**Enkodér** (angl. Encoder, kodér) — v strojovém učení a hlubokém učení jde o komponentu neuronové sítě, jejímž hlavním úkolem je převod vstupní posloupnosti dat (například textu nebo obrázku) do bohatého číselného reprezentace, obvykle označované jako **skrytý stav**, **kontextový vektor** nebo **embedding**. Tato reprezentace zachycuje klíčové charakteristiky a sémantiku vstupních dat ve formě vhodné pro další zpracování.

V širším smyslu, v teorii informace, je enkodér jakékoli zařízení nebo algoritmus, který převádí informace z jednoho formátu do jiného, často za účelem komprese nebo přenosu.

## Koncepce a účel

Hlavním cílem enkodéru v neuronových sítích je extrahovat ze vstupních dat užitečné příznaky a „zakódovat" je do hustého vektoru pevné délky. Tento proces lze chápat jako formu nelineárního snížení dimenzionality, při němž jsou vysokodimenzionální a řídká vstupní data (například text reprezentovaný one-hot vektory) převedena do nízkodimenzionálního, avšak informačně bohatého vektorového prostoru (latentního prostoru).

Tento zakódovaný vektor lze následně využít:

- **Dekodérem** pro generování nové posloupnosti (například při strojovém překladu).
- **Klasifikátorem** pro řešení analytických úloh (například určení tonality textu).
- Pro úlohy vyžadující porozumění celému vstupnímu kontextu.

## Enkodér v různých architekturách

### Enkodér v autoenkodéru

Jedním z klasických příkladů je architektura **autoenkodéru**. Skládá se ze dvou částí:

1.  **Enkodér:** Komprimuje vstupní data do skryté reprezentace menší dimenzionality (latentní kód).
2.  **Dekodér:** Pokouší se rekonstruovat původní data z této komprimované reprezentace.

Trénováním takové sítě na minimalizaci chyby rekonstrukce se enkodér učí extrahovat nejdůležitější příznaky z dat.

### Enkodér v rekurentních neuronových sítích (RNN/LSTM)

Před příchodem architektury Transformer byly enkodéry pro úlohy zpracování posloupností (seq2seq) stavěny na základě rekurentních neuronových sítí (RNN) nebo jejich zdokonalené varianty LSTM.

- **Princip fungování:** RNN enkodér zpracovává vstupní posloupnost token po tokenu. V každém kroku aktualizuje svůj **skrytý stav** tím, že zahrnuje informaci o aktuálním tokenu a předchozím stavu. Výsledný skrytý stav získaný po zpracování celé posloupnosti je považován za vektor kódující smysl celé vstupní posloupnosti. Tento vektor se často nazývá **kontextový vektor** nebo „vektor myšlenky" (thought vector).

### Enkodér v architektuře Transformer

Revoluci ve zpracování přirozeného jazyka přineslo zavedení enkodéru založeného na architektuře **Transformer**. Na rozdíl od RNN zpracovává všechny tokeny posloupnosti paralelně.

Enkodér Transformeru se skládá ze zásobníku ($N$) identických vrstev. Každá vrstva má dva hlavní podvrstvy:

1.  **Vícehlávkové vlastní pozornosti (Multi-Head Self-Attention):** Tento mechanismus umožňuje každému tokenu ve vstupní posloupnosti „věnovat pozornost" všem ostatním tokenům a vážit jejich důležitost pro vytvoření vlastní kontextuální reprezentace. To umožňuje modelu zachytit složité závislosti mezi slovy bez ohledu na jejich pozici.
2.  **Plně propojená neuronová síť (Feed-Forward Network):** Aplikuje se na reprezentaci každého tokenu zvlášť pro další nelineární transformaci.

Klíčový rozdíl mezi enkodérem Transformeru a RNN enkodérem spočívá v tom, že na výstupu neposkytuje jeden kontextový vektor, ale **posloupnost kontextualizovaných vektorů** — jeden pro každý vstupní token. Každý takový vektor obsahuje informaci o svém tokenu v kontextu celé posloupnosti.

## Typy modelů založených na enkodéru

### Modely enkodér-dekodér

Jde o klasickou architekturu pro úlohy převodu posloupnosti na posloupnost (seq2seq), jako je strojový překlad nebo sumarizace.

- **Princip fungování:** Enkodér zpracuje celou vstupní posloupnost (například větu ve zdrojovém jazyce). Jeho výstupní reprezentace jsou poté předány dekodéru, který je využívá k autoregresivnímu generování výstupní posloupnosti (věty v cílovém jazyce). Dekodér „hledí" na výstup enkodéru pomocí speciálního mechanismu **křížové pozornosti (cross-attention)**.
- **Příklady:** Původní Transformer, T5, BART.

### Modely pouze-enkodér (Encoder-Only)

Tyto modely využívají výhradně zásobník enkodérů Transformeru.

- **Princip fungování:** Jsou určeny pro úlohy vyžadující hluboké porozumění kontextu celého vstupního textu. Díky obousměrné povaze mechanismu vlastní pozornosti vytvářejí bohaté kontextuální reprezentace pro každý token.
- **Využití:** Ideální pro úlohy analýzy a porozumění jazyku (NLU), jako jsou:
  - Klasifikace textu (například analýza tonality).
  - Rozpoznávání pojmenovaných entit (NER).
  - Odpovídání na otázky (Question Answering), kde odpověď je úryvkem z textu.
- **Příklad:** BERT a jeho varianty (RoBERTa, ALBERT).

## Vztah k dekodéru

V architektuře enkodér-dekodér plní enkodér a dekodér komplementární role:

- **Enkodér** odpovídá za **porozumění** vstupní posloupnosti.
- **Dekodér** odpovídá za **generování** výstupní posloupnosti.

Klíčovým spojovacím článkem mezi nimi je mechanismus **křížové pozornosti (cross-attention)** uvnitř dekodéru. V každém kroku generování dekodér formuluje dotaz (Query) na základě již vygenerované části výstupní posloupnosti a využívá ho k „věnování pozornosti" výstupním reprezentacím enkodéru (které slouží jako klíče a hodnoty — Key a Value). To umožňuje dekodéru soustředit se na nejrelevantnější části vstupní posloupnosti při generování dalšího tokenu.

## Literatura

- Hinton, G. E.; Salakhutdinov, R. R. (2006). *Reducing the Dimensionality of Data with Neural Networks*. *Science*. DOI:10.1126/science.1127647.
- Cho, K. et al. (2014). *Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation*. arXiv:1406.1078.
- Sutskever, I.; Vinyals, O.; Le, Q. V. (2014). *Sequence to Sequence Learning with Neural Networks*. arXiv:1409.3215.
- Bahdanau, D.; Cho, K.; Bengio, Y. (2015). *Neural Machine Translation by Jointly Learning to Align and Translate*. arXiv:1409.0473.
- Kingma, D. P.; Welling, M. (2014). *Auto-Encoding Variational Bayes*. arXiv:1312.6114.
- Vaswani, A. et al. (2017). *Attention Is All You Need*. arXiv:1706.03762.
- Devlin, J. et al. (2019). *BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding*. arXiv:1810.04805.
- Dai, Z. et al. (2019). *Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context*. arXiv:1901.02860.
- Raffel, C. et al. (2020). *Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer*. arXiv:1910.10683.
- Brown, T. B. et al. (2020). *Language Models Are Few-Shot Learners*. arXiv:2005.14165.
- Dosovitskiy, A. et al. (2020). *An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale*. arXiv:2010.11929.

## Viz také

- BERT
