Skip to content

Transformer简介

一句话理解 Transformer

Transformer 是一种完全基于注意力机制(Attention)的神经网络架构,它抛弃了传统循环神经网络(RNN)的逐词串行处理方式,能够并行地建模序列中任意两个位置之间的关系。

它由 Google 团队在 2017 年的论文 《Attention Is All You Need》 中提出,最初用于机器翻译,如今已成为几乎所有大语言模型(GPT、BERT、LLaMA、Claude、文心一言等)的共同地基。

可以这样类比:如果说 RNN 是「一个字一个字读、读完后面忘了前面」,那么 Transformer 就是「整篇文章一次摊在桌上,随时可以抬头看任意两句之间的联系」。

为什么要学习 Transformer

        ┌──────────────────────────────────────────────┐
        │              你每天都在用的 AI                 │
        │  ChatGPT / 文心一言 / 通义千问 / DeepSeek ...  │
        └───────────────────────┬──────────────────────┘
                                │  底层架构都是

                    ┌───────────────────────┐
                    │      Transformer      │
                    └───────────────────────┘
  • 它是大模型的地基:不理解 Transformer,就无法真正理解 LLM 为什么强、为什么会「幻觉」、上下文长度意味着什么。
  • 它能迁移到多个领域:文本(NLP)、图像(ViT)、语音(Whisper)、多模态(GPT-4V)都在用它。
  • 面试与工程都需要:无论是算法岗面试还是 AI 应用开发,注意力机制几乎是必考/必用知识点。

Transformer 解决了什么问题

在 Transformer 之前,处理「序列」(一句话、一段音频、一串像素)的主流是 RNN / LSTM。它们有三个硬伤:

问题RNN/LSTM 的表现Transformer 的解法
无法并行必须 t=1→2→3 顺序计算,训练慢一次性处理整个序列,GPU 拉满
长距离依赖弱句子开头到结尾信息被反复衰减任意两位置直接「一跳」相连
梯度消失序列一长梯度就传不回去注意力 + 残差连接缓解

核心突破:自注意力(Self-Attention)

Transformer 的关键创新是自注意力:序列里的每个词,都可以直接「看」其他所有词,并根据相关性加权聚合信息。

句子: "猫 因为 饿 了 所以 吃 鱼"

"吃" 这个词在计算自己的新表示时,会问:
   ┌──────── 谁和"吃"最相关? ────────┐
   猫   → 0.45  (谁在吃? 权重高)
   鱼   → 0.38  (吃什么? 权重高)
   饿   → 0.10
   了   → 0.02
   ...  → ...
   └─────────────────────────────────┘
   新表示 = 0.45·猫 + 0.38·鱼 + 0.10·饿 + ...

正因为这种「谁和谁相关我就多关注谁」的能力,Transformer 天然擅长捕捉语义关系。

Transformer 的整体结构鸟瞰

先混个脸熟,后续章节我们会逐块拆解。原始 Transformer 是一个 编码器(Encoder)+ 解码器(Decoder) 的结构:

        输入: "I love you"                   目标: "我爱你"
            │                                    │
            ▼                                    ▼
   ┌────────────────┐                    ┌────────────────┐
   │  输入嵌入+位置编码 │                    │  输出嵌入+位置编码 │
   └───────┬────────┘                    └───────┬────────┘
           │                                     │
           ▼                                     ▼
   ┌────────────────┐    跨注意力     ┌────────────────┐
   │                │ ─────────────► │                │
   │  Encoder 堆叠   │                │  Decoder 堆叠   │
   │  (N 层)         │                │  (N 层)         │
   │                │                │                │
   └────────────────┘                └───────┬────────┘


                                     ┌──────────────┐
                                     │  Linear+Softmax│
                                     └──────┬───────┘

                                     预测下一个词的概率

一个 Encoder/Decoder 层内部,都由三件套组成:

  1. 注意力子层(Self-Attention / Cross-Attention)
  2. 前馈网络子层(Feed-Forward Network, FFN)
  3. 残差连接 + 层归一化(Add & LayerNorm)

三种使用范式

后来的模型发现,不一定 Encoder 和 Decoder 都要用,于是衍生出三大流派:

  Encoder-only          Encoder-Decoder          Decoder-only
   (理解任务)              (翻译任务)              (生成任务)
  ┌──────────┐          ┌──────────┐          ┌──────────┐
  │ Encoder  │          │ Encoder  │──►       │ Decoder  │
  │          │          │          │  Dec     │  ×N      │
  │  BERT    │          │ Transformer│         │  GPT     │
  └──────────┘          └──────────┘          └──────────┘
   分类/抽取/检索         翻译/摘要              续写/对话/代码
  • BERT(Encoder-only):擅长「读懂」文本,用于分类、抽取、检索。
  • 原始 Transformer / T5(Encoder-Decoder):擅长「输入一段、输出另一段」,用于翻译、摘要。
  • GPT(Decoder-only):擅长「续写」,是今天对话式大模型的主流。

本教程会先把机制讲透,再分别拆解这三种架构,最后带你动手训练一个 Decoder-only 的 NanoGPT。

学完你将能回答

  • 为什么 Transformer 能并行、而 RNN 不能?
  • Q、K、V 到底是什么,为什么要除以 √d?
  • 多头注意力比单头好在哪?
  • 位置编码为什么必要,正弦编码和 RoPE 有什么区别?
  • 如何从零搭一个能生成文本的小 Transformer?

下一步

先花几分钟了解 Transformer 的诞生背景与演进脉络 → 发展历史,然后动手 搭建环境