第 5 章:大语言模型简明介绍 —— 从预测下一个词到理解世界¶
场景: 你打开 ChatGPT,输入"请帮我写一首关于秋天的诗",它流畅地输出了一首七言绝句。这背后发生了什么?大语言模型(Large Language Model, LLM)的本质是什么?本章将揭示:LLM 的核心任务出奇地简单—— 预测下一个词 。
5.1 LLM 的本质:一个超级预测机¶
核心比喻:超级预测机
想象你在读一本书,有人把最后一页撕掉了。你根据前面所有的内容,猜测最后一页会写什么。你猜得越准,说明你对这本书的理解越深。
LLM 做的事情本质上就是如此——给定一段文本的前面部分,预测接下来最可能出现的词。但神奇的是, 当这个"预测下一个词"的能力被训练到极致时,模型似乎"理解"了语言、逻辑、甚至世界知识。
自回归语言模型¶
LLM 的核心任务用数学表达:
即:给定前面所有的词 \(w_1, ..., w_{t-1}\),预测下一个词 \(w_t\) 的概率分布。
# LLM 的核心逻辑(极度简化版)
def llm_predict(context_words, model):
"""
context_words: 前面的词列表,如 ["今天", "天气", "真"]
model: 训练好的语言模型
返回: 下一个词的概率分布
"""
# 模型内部将词转换为向量,经过 Transformer 处理
# 输出每个可能的下一个词的概率
next_word_probs = model(context_words)
return next_word_probs
# 示例
context = ["今天", "天气", "真"]
probs = {"好": 0.45, "不错": 0.20, "热": 0.15, "冷": 0.08, "糟糕": 0.05, ...}
# 模型预测"好"的概率最高
5.2 语言模型的三次范式变迁¶
第一代:统计语言模型(n-gram)¶
局限: 无法捕捉长距离依赖。"我出生在法国,...(100个词后)...,所以我的母语是___"——n-gram 看不到 100 个词之前的"法国"。
第二代:神经语言模型(RNN/LSTM)¶
进步: 能捕捉更长距离的依赖,但训练慢、记忆有限。
第三代:Transformer 语言模型(GPT 系列)¶
革命性突破: Transformer 架构(2017)让模型可以: 1. 并行处理整个序列(训练速度快 100 倍) 2. 直接关注任意距离的两个词("法国"和"母语"可以直接关联) 3. 规模扩展几乎没有上限(从 GPT-1 的 1.17 亿参数到 GPT-4 的 1.76 万亿参数)
5.3 训练 LLM 的三个阶段¶
现代 LLM 的训练通常分为三个阶段:
阶段 1:预训练(Pre-training)—— 学会"说话"¶
# 预训练的核心:海量文本 + 预测下一个词
# 数据量:GPT-3 用了约 570GB 的文本(书籍、网页、代码等)
# 训练目标:最小化预测下一个词的交叉熵损失
def pretraining_loss(model, text):
"""
text: "今天天气真好"
模型需要预测:
输入 "今天" → 预测 "天气"
输入 "今天天气" → 预测 "真"
输入 "今天天气真" → 预测 "好"
"""
total_loss = 0
for i in range(1, len(text)):
context = text[:i]
target = text[i]
prediction = model(context)
total_loss += -np.log(prediction[target])
return total_loss
结果: 基础模型学会了语法、事实知识、推理模式,但只会"续写文本",不会"回答问题"。
阶段 2:指令微调(Instruction Tuning)—— 学会"听话"¶
基础模型你问它"1+1=?",它可能续写成"1+1=2, 2+2=4, 3+3=6..."——因为它只会续写。
指令微调用"问题-答案"对训练模型,让它学会: - 理解用户的意图 - 按照指令格式回答 - 在不知道时说"我不知道"
阶段 3:RLHF(人类反馈强化学习)—— 学会"对齐"¶
让人类标注员对模型的多个回答进行排序,用强化学习让模型偏好人类喜欢的回答风格——更有帮助、更诚实、更无害。
5.4 为什么"预测下一个词"能产生智能?¶
这是 LLM 最令人困惑的问题。答案是: 语言本身编码了世界知识。
语言是世界的压缩表示
要准确预测"巴黎是___的首都"的下一个词,你必须"知道"巴黎是法国的首都。要准确预测"如果小明有 3 个苹果,给了小红 1 个,他还剩___个"的下一个词,你必须"理解"减法的含义。
当模型在海量文本上被迫不断预测下一个词时,它发现最有效的策略是—— 在参数中构建一个世界模型 。这不是魔法,而是信息压缩的必然结果。
涌现能力(Emergent Abilities)¶
当模型规模超过某个阈值时,会突然出现训练时没有明确教过的能力:
| 能力 | 描述 | 出现规模 |
|---|---|---|
| 少样本学习 | 看几个例子就能学会新任务 | ~10B 参数 |
| 思维链推理 | 一步步推理解决复杂问题 | ~100B 参数 |
| 代码生成 | 根据自然语言描述写代码 | ~10B 参数 |
| 翻译 | 在语言之间翻译 | ~1B 参数 |
5.5 Tokenization:LLM 如何"看"文本¶
LLM 不直接处理文字,而是处理 token (词元)。
# Tokenization 示例(简化版)
text = "今天天气真好!"
# 中文通常按字或词切分
tokens = ["今天", "天气", "真", "好", "!"]
# 每个 token 映射到一个整数 ID
token_ids = [1234, 5678, 9012, 3456, 7890]
# 模型实际看到的是这些数字
print(f"原文: {text}")
print(f"Tokens: {tokens}")
print(f"Token IDs: {token_ids}")
渲染效果:
Token 的经济学
- GPT-4 的词汇表约有 10 万个 token
- 英文中约 1 token ≈ 0.75 个单词
- 中文中约 1 token ≈ 0.5-1 个汉字
- API 按 token 计费,所以 token 就是"钱"
5.6 从 GPT-1 到 GPT-4:规模的力量¶
| 模型 | 发布时间 | 参数量 | 训练数据 | 关键发现 |
|---|---|---|---|---|
| GPT-1 | 2018.06 | 1.17 亿 | ~5GB | Transformer + 预训练可行 |
| GPT-2 | 2019.02 | 15 亿 | ~40GB | 规模越大能力越强 |
| GPT-3 | 2020.05 | 1750 亿 | ~570GB | 涌现能力出现 |
| GPT-4 | 2023.03 | ~1.76 万亿 | 未公开 | 多模态、接近人类水平 |
核心规律: 在 Transformer 架构下, 更多的数据 + 更大的模型 + 更多的算力 = 更好的性能 。这个规律至今没有看到天花板。
5.7 LLM 的局限性¶
尽管 LLM 令人惊叹,但它们有根本性的局限:
| 局限 | 描述 | 原因 |
|---|---|---|
| 幻觉(Hallucination) | 编造看似合理但错误的事实 | 本质是预测下一个词,不是检索知识 |
| 上下文窗口有限 | 一次只能"看到"有限长度的文本 | 注意力机制的计算复杂度是 \(O(n^2)\) |
| 缺乏真正理解 | 不理解词语背后的物理世界 | 只从文本中学习,没有具身体验 |
| 推理能力有限 | 复杂多步推理容易出错 | 本质是模式匹配,不是逻辑推理 |
| 时效性 | 知识截止于训练数据日期 | 训练后参数冻结,不会自动更新 |
要点总结¶
- LLM 的核心任务 = 预测下一个词(自回归语言建模)
- 语言模型经历了 n-gram → RNN → Transformer 三代演进
- LLM 训练三阶段:预训练 → 指令微调 → RLHF
- "预测下一个词"能产生智能,因为语言编码了世界知识
- 涌现能力:规模超过阈值后突然出现的新能力
- Tokenization 是 LLM 理解文本的基础
- LLM 有幻觉、上下文限制等根本性局限
课后练习¶
-
体验 Tokenization :访问 OpenAI 的 Tokenizer 工具,输入一段中文和英文,观察 token 切分方式的不同。
-
预测下一个词 :找一段你喜欢的文章,遮住最后一个词,尝试预测它。思考:你需要什么知识才能准确预测?
-
思考题 :如果 LLM 只是"预测下一个词",为什么它能解数学题、写代码、做翻译?这些能力是如何从"预测下一个词"中涌现出来的?
下一章预告: LLM 的核心引擎是 Transformer 架构。第 6 章将拆解 Transformer 的内部结构——自注意力、多头注意力、位置编码、前馈网络——看看这个"流水线工厂"如何高效处理语言。