Transformer 架构:Attention 全景

2017 年的「Attention Is All You Need」提出完全基于注意力的 Transformer,抛弃了 RNN 的循环结构,靠自注意力并行建模序列中任意两位置的关系,奠定了后续大语言模型的基础。

自注意力在算什么

自注意力把每个 token 映射为查询(Q)、键(K)、值(V)三个向量,用 Q 与所有 K 的点积衡量相关性,softmax 后得到权重再对 V 加权求和。这样每个位置都能直接「看到」序列中相关的其他位置,不受距离限制。

多头与位置编码

多头注意力把 Q/K/V 投影到多组子空间并行计算再拼接,让模型同时关注不同关系(语法、语义、位置)。由于注意力本身不含顺序信息,需要额外加入位置编码(如正弦编码或可学习编码)来保留词序。

编码器与解码器

原始 Transformer 由编码器(堆叠自注意力与前馈层)和解码器(额外含对编码器的交叉注意力与因果掩码)组成,用于翻译等序列到序列任务。后来的 GPT 只用解码器,BERT 只用编码器,演变出不同范式。

import torch.nn as nn

mha = nn.MultiheadAttention(embed_dim=512, num_heads=8, batch_first=True)
x = torch.randn(8, 20, 512)
out, attn = mha(x, x, x)        # 自注意力:Q=K=V

为什么重要

自注意力可高度并行,训练高效;长程依赖不再随距离衰减。这些特性让它扩展到海量参数与数据,成为 GPT、BERT 等模型的共同骨架。

小结

Transformer 用自注意力直接建模全局依赖,配合多头机制与位置编码,并以编码器/解码器结构灵活适配各类任务。它用并行与可扩展性取代了循环,是现代大模型的事实标准。

参考与延伸阅读

本文累计阅读