Skip to content

Transformer 与 NLP

本页速览 2017 年的《Attention Is All You Need》用一个注意力机制统治了自然语言处理。本文拆解 Transformer 架构(自注意力/多头/位置编码)、编码器-解码器范式、BERT 与 GPT 的分野,以及 NLP 任务家族的现代解法。

Transformer 与 NLP ​

概念定义:一次"抛弃循环"的架构革命 ​

2017 年 Vaswani 等人发表《Attention Is All You Need》,提出 Transformer——一个完全基于注意力机制(Attention)、抛弃循环结构的序列模型。此前 NLP 的霸主是 RNN/LSTM:按时间步逐个处理 token,无法并行、长程依赖难建模。Transformer 让序列中任意两个 token 直接交互,同时解决了并行性与长程依赖两大问题。

输入序列 → 嵌入 + 位置编码 → [自注意力 + 前馈网络] × N → 输出

为什么它如此重要:Transformer 是 BERT、GPT、所有大语言模型(LLM)的地基——今天你接触的几乎一切"AI 产品"(对话、翻译、搜索、代码补全)底层都是它。它是近十年 ML 领域最重要的单一架构。

二、核心机制:自注意力 ​

从"查字典"理解注意力 ​

"注意力"的含义:处理某个词时,模型应该关注上下文中的哪些词?以"它"为例——"小明把球给了小红,然后它滚走了"。"它"指"球",模型需要把注意力分配给"球"这个词。

实现上每个 token 生成三组向量:

Q(查询 query):"我在找谁?"    —— 当前词的特征
K(键 key):    "我是什么?"    —— 每个词的标签
V(值 value):  "我携带什么信息" —— 每个词的实际内容

注意力权重 = softmax(Q·Kᵀ / √d)   —— 当前词与每个词的相关度
输出 = Σ 权重ᵢ × Vᵢ               —— 按相关度加权聚合信息

缩放因子 √d 防止点积过大导致 softmax 饱和(梯度消失)。多头注意力(Multi-Head):多组 Q/K/V 并行(如 12 头),每组学不同的关系子空间(语法关系、指代关系、语义相似),最后拼接——"多个视角同时看句子"。

位置编码:补上顺序 ​

注意力本身不感知顺序("猫追狗"和"狗追猫"的注意力权重一样)。Transformer 用位置编码把位置信息注入:原论文用正弦/余弦函数(固定),现代模型用可学习位置嵌入或旋转位置编码(RoPE,LLM 标配)。

三、为什么 Transformer 打败 RNN ​

维度RNN/LSTMTransformer
并行性逐 token 串行,训练慢全序列并行,GPU 利用率高
长程依赖信息随步数衰减(即使 LSTM)任意两 token 一步直达(O(1) 路径)
计算复杂度O(n) 步自注意力 O(n²)(n 为序列长)
可解释性隐状态难解读注意力权重可观察(注意≠解释,见可解释性)

代价是二次复杂度:序列太长(如整本书)时 O(n²) 爆炸——这是后续 Longformer、稀疏注意力、FlashAttention 持续优化的方向。

四、两大范式:BERT vs GPT ​

Transformer 论文同时包含编码器(Encoder,理解)和解码器(Decoder,生成),后续发展分道扬镳:

BERT 路线:双向编码器(2018) ​

BERT(Bidirectional Encoder Representations from Transformers)用双向注意力(每个词能看到左右全部上下文),通过两个自监督任务预训练:

  • 掩码语言模型(MLM):随机遮住 15% 的词,预测被遮的词;
  • 下一句预测(NSP):判断两个句子是否相邻。

预训练后微调(fine-tune)到下游任务。适合理解类任务:文本分类、命名实体识别、问答、语义相似度。BERT 横扫 11 项 NLP 基准,确立了"预训练 + 微调"范式。

GPT 路线:自回归解码器(2018–) ​

GPT(Generative Pre-trained Transformer)只用解码器,单向(只能看左边),任务是预测下一个 token:

输入: "今天天气"  →  预测: "真" → "好" → "。"

生成式预训练后,同样微调可做理解任务,但 GPT 路线的核心优势是生成——它是 ChatGPT 及一切对话/写作/代码生成模型的原型。规模法则让"预测下一个词"在参数足够多时涌现出翻译、推理、编程能力(见大语言模型)。

两条路线的对比 ​

BERT(编码器)GPT(解码器)
注意力双向单向(因果)
预训练任务掩码预测下一个词预测
擅长理解、分类、抽取生成、对话、创作
代表BERT、RoBERTa、DeBERTaGPT 系列、Llama、Qwen
规模亿级(0.3~4 亿)十亿~万亿级

现状:生成式路线(GPT)因 ChatGPT 的成功成为绝对主流;BERT 家族仍是低成本理解任务的实用选择(蒸馏成小模型部署)。

五、NLP 任务家族的现代解法 ​

任务传统做法现代解法
文本分类TF-IDF + SVM/朴素贝叶斯预训练模型微调(BERT)或 LLM 提示
命名实体识别(NER)CRF 序列标注BERT + 序列标注头
机器翻译统计翻译 / 编码器-解码器大模型翻译(或专用 NMT)
问答(抽取式)检索 + 阅读RAG:检索增强生成
文本生成模板 / LSTMGPT 系生成 + 解码策略
语义相似度词向量 + 余弦Sentence-BERT / embedding API
情感分析词典 / 分类器微调或 LLM 提示

2023 年后的范式迁移:以前每个任务要单独微调一个 BERT;现在倾向用**一个 LLM + 提示词(prompting)/ 检索增强(RAG)/ 少量微调(LoRA)**解决所有任务。成本更低、泛化更好,代价是推理更贵、需要防幻觉。选择逻辑见大语言模型(LLM)与框架与工具怎么选。

六、Transformer 的关键工程细节 ​

  • LayerNorm(层归一化):沿特征维度归一化,Transformer 用(不是 BatchNorm——序列长度变化时 BatchNorm 不稳定);
  • 残差连接:每个子层 输出 = LayerNorm(x + Sublayer(x))——深层堆叠的关键;
  • 前馈网络(FFN):每个 token 独立过两层全连接(4× 隐藏维),占 Transformer 参数量大头;
  • KV Cache(推理优化):生成时缓存历史 K/V 不再重算,速度大幅提升(LLM 推理标配);
  • FlashAttention:显存高效注意力实现(IO 优化),训练长序列的标配内核。

七、从 NLP 到多模态:注意力通吃一切 ​

Transformer 的强大在于输入是什么 token 由你定:文本是词 token,图像切成 patch(ViT),语音切成帧,视频切成片段——注意力机制与模态无关。这就是多模态大模型(GPT-4V、Gemini、Qwen-VL、Claude)的架构基础:把图像/音频/文本统一成 token 流,一个 Transformer 全部处理。详见大语言模型(LLM)与CNN 与计算机视觉。

学 Transformer 的三个自测题

  1. 能说清 Q、K、V 各自的作用和注意力权重的计算流程吗?
  2. 能解释为什么 Transformer 要位置编码吗?
  3. 能区分编码器(BERT 式)和解码器(GPT 式)的注意力差异吗? 这三题答顺,Transformer 就算入门了。→ 经典论文精读有完整精读。

八、权衡与取舍 ​

  • 编码器 vs 解码器:只要理解/抽取 → 编码器(便宜快);要生成/对话 → 解码器(贵但强);
  • 微调 vs 提示:任务固定、数据多 → 微调(LoRA);任务多变、要灵活 → 提示/少样本(省钱省时,见LLM);
  • 自建 vs API:从零训 Transformer 需要巨额算力——几乎永远用预训练模型 + 微调,或用 API;
  • 序列长度 vs 成本:长文本用稀疏注意力/分块/摘要处理,别硬塞窗口。

延伸阅读 ​

参考资料 ​