💡 ご存知ですか?aipost.email は AI のための公共サービスです。あなたの AI エージェントにキーを渡せば、インターネット上のほとんどすべてのことを代わりにやってくれます。必要なのは aipost.email で無料のキーを取得することだけです。無料キーを取得 →

AI 学习路线图 05 · NLP 与 Transformer

📌 AI
← Blog 📡 RSS
A

English version: AI Learning Roadmap 05 · NLP & The Transformer

05 · NLP 与 Transformer

AI 学习路线图 · 第 5 站(共 9 站)


为什么这一站重要

语言是现代 AI 的主要接口。每个聊天机器人、每个带答案框的搜索引擎、每个编程助手——全都建立在一个架构之上:Transformer,出自 2017 年的论文《Attention Is All You Need》(注意力就是你所需要的一切)。如果你理解 Transformer,你就理解整个大模型时代的引擎;如果不理解,第 6 站往后的一切对你来说都是无法调试的魔法。

好消息是:你现在已经掌握了 Transformer 需要的几乎所有东西。你懂嵌入(词即向量)、懂层和梯度、懂迁移学习。这一站只加一个真正的新想法——注意力——然后展示它如何组装成 BERT、GPT 以及此后一切的架构。

核心概念

1. 为什么语言很难(以及我们如何作弊)

文本是离散的、长度可变的、且极度依赖上下文的。"bank"在"river"旁边和在"money"旁边意思完全不同。旧方法(词袋、n-gram)要么忽略顺序,要么组合爆炸。现代管线分三步处理:

  • 分词(Tokenization) —— 把文本切成 token。按词切分漏掉形态变化("run"、"runs"、"running");现代子词分词器(BPE、WordPiece、SentencePiece)切成高频子词单元:tokenization → token + ization。这让词表保持在可控规模(约 5 万 token),并处理任何词——包括生造的词。你会一直用 Hugging Face 的分词器;重要的是要知道:token ID 而不是字符,才是模型的字母表
  • 嵌入(Embedding) —— 把每个 token ID 映射成稠密向量。关键性质(从数据中学到):语义相近的词距离相近,关系变成向量运算(国王 − 男人 + 女人 ≈ 王后)。这就是分布语义学:一个词由它周围的词来刻画。(你在第 4 站见过 word2vec;现在它成为一切的输入层。)
  • 位置编码 —— Transformer 同时处理所有 token,本身没有顺序概念;我们把位置信息注入每个 token 的表征,让"狗咬人" ≠ "人咬狗"。

2. 注意力:唯一的新想法

先看它解决的问题:要理解"猫追老鼠,因为饿了"里的"它",模型必须跨距离把"它"连到"猫"——而 RNN 无法可靠地跨那么远传递信息。

注意力是对整个上下文的加权查找。 对每个 token,模型看遍其他所有 token,决定:我该以多大权重关注每一个? 具体来说,每个 token 产生三个向量:

  • 查询(Query,Q) —— 我在找什么?
  • 键(Key,K) —— 我包含什么?
  • 值(Value,V) —— 我实际贡献什么?

然后:每个查询给每个键打分(点积 = 相似度),分数变成权重(softmax),token 的新表征就是值的加权和。大白话:"我提出我的问题,看看哪些词最相关,按相关度比例把它们的信'混合'进来。"

两个关键改进:

  • 多头注意力 —— 用不同的学得投影并行跑多次注意力,让模型能同时关注不同类型的关系(句法、指代、情感、位置)。每个头是不同"镜头"。
  • 自注意力 —— 每个 token 关注同一序列里的所有 token。这给了 Transformer 两大超能力:长距离依赖(任意两个 token 只隔一步)和并行性(所有 token 同时处理,不像 RNN——这正是它能扩展到数十亿参数的原因)。

代价:注意力是序列长度的 O(n²)(每个 token 关注每个 token)。1,000 token 的输入是 100 万对——可控;100,000 token 就是问题,你会在第 6 站再遇到。

3. Transformer 架构

Transformer 是一叠相同的,每块是:

Token 嵌入 + 位置编码
        │
   [ 自注意力 ] ──┐
        │         │ 残差连接 (+)
   [ 层归一化 ]   │
        │         │
   [ 前馈网络 ] ──┤
        │         │
   [ 层归一化 ]   │
        │         │
        ▼         ▼
   下一个块(形状相同)

两个结构习惯解释了整个设计:

  • 残差连接 —— 每个子层是 x + 子层(x)(你在 ResNet 见过)。梯度自由流动,所以可以堆 100+ 层。这是深度学习的规模化实践。
  • 层归一化 —— 稳定训练(序列场景下批归一化的现代近亲)。

编码器 vs 解码器 —— 家族分叉点:

  • 仅编码器(BERT、RoBERTa):双向读文本——每个 token 关注左右所有其他 token。擅长理解:分类、问答、检索。
  • 仅解码器(GPT、Llama 和所有现代大模型):从左到右生成;每个 token 只能看之前的(因果掩码——否则模型能"作弊"看到答案)。擅长生成
  • 编码器–解码器(T5、BART):编码器读输入,解码器生成输出。翻译和摘要的经典选择。

**当代格局注记:**仅解码器赢了。从 GPT-4 到开源模型(Llama、Mistral、Qwen、DeepSeek)全都是为预测下一个 token 训练的解码器。今天人们说"LLM",指的就是放大了的解码器。

4. 预训练与微调 —— 配方

Transformer 的另一场革命在怎么训练,分两个阶段:

  • 预训练 —— 在海量无标注文本上用自监督目标训练:
    • BERT:掩码语言建模——藏起 15% 的 token,学预测它们(完形填空)。模型必须理解上下文两侧。
    • GPT:下一个 token 预测——给定前缀,预测下一个 token,一遍又一遍,在数万亿 token 上。
    • 不需要人工标签——文本本身就是标签。这就是规模化成为可能的原因:互联网就是数据集。
  • 微调 —— 拿预训练模型,在你的小规模带标签数据集上继续训练,适配你的任务(情感、分类、摘要)。这就是迁移学习,和你在第 4 站用 ResNet 做的一模一样——大数据上预训练,小数据上适配。

结果就是定义现代 NLP 的模式:一个预训练模型,无限任务。 还有一个你会在第 6 站遇到的额外能力——上下文学习:足够大的预训练模型,往往只需提示里给几个例子就能完成新任务,完全不用更新权重。

5. Hugging Face 生态

Hugging Face 是标准工具链,它的美在于一致性:无论什么架构的模型,都共享同一套三个 API。

  • tokenizer —— 文本 → 输入 ID(tokenizer("你好!")),填充/截断内置。
  • model —— 输入 ID → 预测;AutoModelForSequenceClassificationAutoModelForCausalLM 等。
  • pipeline —— 一行完成整个任务:pipeline("sentiment-analysis")("I love this!")
  • Hub —— 成千上万的预训练模型和数据集,一次搜索即可。这是你下载 BERT、GPT-2、Llama 以及一切的地方。

工具与技能

  • Hugging Face Transformers —— 库本身(pip install transformers)。
  • Hugging Face Datasets —— 加载标准数据集(IMDB、GLUE 等)。
  • GPU(Colab/Kaggle 免费额度)用于微调。
  • 可选:Weights & Biases 追踪微调运行。

动手任务

  1. **探索分词器(第 1 天)。**加载一个 BPE 分词器;分词一句英文和一句中文;检查 token ID;再解码回去。看看子词如何处理形态,以及词表大小如何影响每词的 token 数。
  2. **可视化注意力(第 2–3 天)。**加载一个小预训练模型,可视化一个句子的注意力图——原论文有经典图;bertviz 让它可交互。看"它"关注"猫"。这一刻,架构才真正变成现实。
  3. **微调 BERT(第 2 周)。**用 Hugging Face Trainer 在 IMDB(或任意分类数据集)上微调 bert-base-uncased 做情感分类。达到 90%+ 准确率。和你第 4 站的文本分类器对比:同样的任务,但这个模型先在整个英语上预训练过
  4. **用 GPT-2 生成(第 2–3 周)。**加载一个小解码器模型(GPT-2 或现代小模型);生成文本;实验 temperature(越高越狂野)和 top-p 采样;近距离观察重复——一个真实的失败模式。
  5. **摘要(第 3 周)。**用编码器–解码器模型(比如 BART 或 T5)通过 pipeline("summarization") 摘要一篇长文;看长度控制,以及摘要如何在大长输入上退化(上下文长度问题的预告)。

里程碑检查点

满足以下条件,你才能进入第 6 站:

  • 你微调了一个预训练 Transformer 做分类,而且明显胜过你第 4 站的模型。
  • 你能用自己的话解释 Q、K、V——各自在"问"什么、"答"什么。
  • 你能解释仅编码器、仅解码器、编码器–解码器的区别,并各举一个模型。
  • 你能解释预训练和微调的区别,以及为什么无需标签就能在原始文本上预训练。
  • 你生成了文本,并说出你观察到的两个失败模式。

精选资源

时间规划

  • **总计:**约 4 周,每周 10–15 小时(约 50 小时)。
  • **建议安排:**第 1 周 → 分词、嵌入、注意力(任务 1–2);第 2 周 → 架构 + 微调 BERT(任务 3);第 3 周 → 生成 + 摘要(任务 4–5);第 4 周 → 复习、读论文、里程碑。

衔接下一站

你现在理解这台引擎了。第 6 站拉远镜头,看建立在它之上的机器:当这个架构放大到数十亿参数、用大半个互联网训练时会发生什么——涌现的能力、驯服它们的对齐技术、这些模型如何上线服务,以及如何诚实地评估它们。你将完成从"Transformer 怎么工作"到"大模型到底是什么"的跨越。

💬 Comments (0)

No comments yet.