Transformer-blok
En Transformer-blok er den grundlæggende byggesten i Transformer-modellen, bestående af et multi-head attention-lag efterfulgt af et feed-forward neuralt netværk, hver omgivet af residualforbindelser og layer normalization.
Kort fortalt
Transformer-blokken er den modulære enhed, der gentages i Transformer-modeller; den kombinerer selvopmærksomhed med et almindeligt neuralt netværk og bruger springforbindelser til at træne dybe modeller.
- Kategori
- arkitektur
- Niveau
- øvet
Betydninger
1- 1
Den basale enhed i Transformer-arkitekturen, der består af et multi-head attention-lag, et feed-forward lag, residualforbindelser og layer normalization. Anvendes i både encoder og decoder.
- Vi stabler 12 Transformer-blokke for at opbygge en BERT-basemodel. — Faglig diskussion, 2023
- Hver Transformer-blok i decoder indeholder et maskeret multi-head attention-lag for at forhindre kigge fremad. — Originalartikel, 2017
Hvornår bruges det
Transformer-blokke bruges som byggesten i stort set alle moderne sprogmodeller som GPT, BERT og T5. De stables i et antal (f.eks. 12 eller 24) for at danne en komplet model. Hver blok behandler sekvensen uafhængigt og trinvis, hvilket muliggør parallelisering.
Kodeeksempel
import torch.nn as nn
class TransformerBlock(nn.Module):
def __init__(self, d_model, n_heads, d_ff, dropout=0.1):
super().__init__()
self.attention = nn.MultiheadAttention(d_model, n_heads, dropout=dropout)
self.norm1 = nn.LayerNorm(d_model)
self.ff = nn.Sequential(
nn.Linear(d_model, d_ff),
nn.ReLU(),
nn.Linear(d_ff, d_model)
)
self.norm2 = nn.LayerNorm(d_model)
self.dropout = nn.Dropout(dropout)
def forward(self, x):
attn_out, _ = self.attention(x, x, x)
x = self.norm1(x + self.dropout(attn_out))
ff_out = self.ff(x)
x = self.norm2(x + self.dropout(ff_out))
return xEn simpel PyTorch-implementering af en Transformer-blok med multi-head attention og feed-forward lag med residualforbindelser og layer normalization.
Oprindelse
Betegnelsen 'Transformer' kommer fra artiklen 'Attention Is All You Need' (2017), hvor arkitekturen blev introduceret. 'Blok' refererer til den modulære, gentagne struktur.
Afledte ord
3Kilder
1Se også
- Layer normalization
- Multi-head attention
- Transformer-arkitektur
- feed-forward-netvaerk(mangler)
- residualforbindelse(mangler)
- Mamba-blok