transformer architecture
| part of a series on |
| machine learning and data mining |
|---|
Főnév
transformer architecture (tsz. transformer architectures)
- (informatika) A Transformer egy mesterséges neurális hálózati architektúra, amelyet 2017-ben mutattak be a híres “Attention is All You Need” című tanulmányban. Ez azóta a gépi tanulás, különösen a természetes nyelvfeldolgozás (NLP) egyik legfontosabb alapköve lett – minden modern nagy nyelvi modell (GPT, BERT, T5, stb.) alapját képezi.
Fő újítása: teljesen elhagyja a visszacsatolásos (RNN) és konvolúciós (CNN) elemeket, és helyettük önfigyelésen (self-attention) alapul.
📦 Miért fontos?
- Párhuzamosítható: az RNN-ekkel ellentétben egyszerre képes teljes mondatokkal dolgozni.
- Skálázható: hatékonyan tanítható nagy adathalmazon, sok réteggel.
- Általános: nem csak nyelvre, hanem képre, hangra, kódra is alkalmazható.
🧱 Fő építőelemei
A Transformer két fő komponensből áll:
- Encoder (kódoló) – beolvassa és értelmezi a bemenetet
- Decoder (dekódoló) – előállítja a kimenetet
GPT-szerű modellek csak decoder részt használják (unidirekcionális), míg BERT-szerű modellek csak encoder részt (bidirekcionális).
🧠 Bemenetfeldolgozás
1. Tokenizálás
A szöveg darabolása tokenekre (szavak, szórészek). Példa: "ChatGPT is smart" → [Chat, G, PT, is, smart]
2. Embedding
A tokenekből vektorokat csinál (pl. 768 dimenzió).
3. Positional Encoding
Mivel nincs RNN, a sorrendet külön pozíciós vektorokkal adja hozzá:
✨ A self-attention mechanizmus
A Transformer self-attention (önfigyelés) mechanizmusa teszi lehetővé, hogy a modell minden bemeneti tokenre figyeljen, függetlenül attól, hol helyezkedik el a mondatban.
Self-Attention működése:
Minden tokenből 3 vektor képződik:
- Q = query (kérdés)
- K = key (kulcs)
- V = value (érték)
A token figyelmét más tokenekre így számítja:
🔄 Több figyelem: Multi-Head Attention
Nem csak egy figyelmet számolnak, hanem több figyelmi fejet (head) párhuzamosan:
- Jobb reprezentációt ad: különböző aspektusokat „figyelnek” (pl. nyelvtan, jelentés)
- Ezeket utána összefűzik és egy lineáris réteg követi
📐 Az encoder blokk
Egy encoder blokk jellemző felépítése:
[Input]
↓
[Multi-head Attention]
↓ (residual + norm)
[Feed-forward Network]
↓ (residual + norm)
[Output to next encoder layer]
Ebből egymásra építenek többet (pl. 6, 12 vagy 96 réteg is lehet).
📐 A decoder blokk
Dekóderben hasonló a felépítés, de:
- Van benne self-attention (előző kimenetre)
- Van benne cross-attention (figyelem az encoder kimenetére)
- Képes autoregresszíven tokenenként generálni szöveget
🧪 Teljes pipeline példa (szövegfordítás)
- Bemenet:
"Hello, how are you?" - Tokenizálás + embedding + positional encoding
- Encoder feldolgozza a bemenetet → kódolt reprezentáció
- Decoder: a kódolt vektorokat és korábbi kimeneteket figyelembe véve generál új tokeneket
- Kimenet:
"Bonjour, comment ça va ?"
📚 Transformer-alapú modellek
| Modell | Leírás |
|---|---|
| GPT | Csak decoder, szöveg generálás |
| BERT | Csak encoder, szövegértés, osztályozás |
| T5 | Encoder-decoder, kérdés-válasz, fordítás |
| Vision Transformer (ViT) | Képosztályozásra átdolgozva |
| CodeBERT / StarCoder | Kódalapú transformer-modellek |
✅ Előnyök
- 🔁 Nincs visszacsatolás: teljes bemenetre képes figyelni
- ⚡ Párhuzamos végrehajtás: gyorsabb tanítás, mint RNN
- 📐 Skálázhatóság: több milliárd paraméter is lehetséges
- 🔀 Általánosítható: bármilyen szekvenciális adatra
⚠️ Hátrányok
- 🧠 Nagy számításigény: GPU és sok memória szükséges
- 🧱 Pozíciós információ nem tanulható (de alternatívák vannak)
- 🧮 Kvadratikus időbonyolultság: O(n²) a self-attention miatt
🔧 Egyszerű Transformer kódvázlat (PyTorch)
import torch.nn as nn
model = nn.Transformer(
d_model=512,
nhead=8,
num_encoder_layers=6,
num_decoder_layers=6,
dim_feedforward=2048
)
🧾 Összefoglalás
| Fogalom | Leírás |
|---|---|
| Transformer | Neurális hálózat architektúra, amely csak figyelmet használ |
| Alapmechanizmus | Self-attention + positional encoding + feed-forward |
| Alkalmazás | NLP, képfeldolgozás, kódgenerálás, zene |
| Modellek | GPT, BERT, T5, ViT, CodeBERT |
| Előnye | Párhuzamosítható, rugalmas, nagy teljesítmény |
| Hátránya | Magas erőforrásigény, kvadratikus skálázás |
- transformer architecture - Szótár.net (en-hu)
- transformer architecture - Sztaki (en-hu)
- transformer architecture - Merriam–Webster
- transformer architecture - Cambridge
- transformer architecture - WordNet
- transformer architecture - Яндекс (en-ru)
- transformer architecture - Google (en-hu)
- transformer architecture - Wikidata
- transformer architecture - Wikipédia (angol)