跳转至

第 5 章:大语言模型简明介绍 —— 从预测下一个词到理解世界

场景: 你打开 ChatGPT,输入"请帮我写一首关于秋天的诗",它流畅地输出了一首七言绝句。这背后发生了什么?大语言模型(Large Language Model, LLM)的本质是什么?本章将揭示:LLM 的核心任务出奇地简单—— 预测下一个词


5.1 LLM 的本质:一个超级预测机

核心比喻:超级预测机

想象你在读一本书,有人把最后一页撕掉了。你根据前面所有的内容,猜测最后一页会写什么。你猜得越准,说明你对这本书的理解越深。

LLM 做的事情本质上就是如此——给定一段文本的前面部分,预测接下来最可能出现的词。但神奇的是, 当这个"预测下一个词"的能力被训练到极致时,模型似乎"理解"了语言、逻辑、甚至世界知识。

自回归语言模型

LLM 的核心任务用数学表达:

\[P(w_t \mid w_1, w_2, ..., w_{t-1})\]

即:给定前面所有的词 \(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)

# n-gram: 只往前看 n-1 个词
# "今天天气真好" → 统计 "今天天气真" 后面出现 "好" 的频率
# 问题:n 太小记不住长上下文,n 太大数据稀疏

局限: 无法捕捉长距离依赖。"我出生在法国,...(100个词后)...,所以我的母语是___"——n-gram 看不到 100 个词之前的"法国"。

第二代:神经语言模型(RNN/LSTM)

# RNN: 用循环神经网络逐个处理词,维护一个"记忆向量"
# 问题:序列太长时记忆衰减,且无法并行训练(必须逐个词处理)

进步: 能捕捉更长距离的依赖,但训练慢、记忆有限。

第三代:Transformer 语言模型(GPT 系列)

# Transformer: 一次性看所有词,用"注意力机制"决定每个词该关注哪些词
# 优势:并行训练、无限长距离依赖、规模可无限扩展

革命性突破: Transformer 架构(2017)让模型可以: 1. 并行处理整个序列(训练速度快 100 倍) 2. 直接关注任意距离的两个词("法国"和"母语"可以直接关联) 3. 规模扩展几乎没有上限(从 GPT-1 的 1.17 亿参数到 GPT-4 的 1.76 万亿参数)


5.3 训练 LLM 的三个阶段

现代 LLM 的训练通常分为三个阶段:

原始互联网文本 → [预训练] → 基础模型 → [指令微调] → 对话模型 → [RLHF] → 对齐模型

阶段 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}")

渲染效果:

原文: 今天天气真好!
Tokens: ['今天', '天气', '真', '好', '!']
Token IDs: [1234, 5678, 9012, 3456, 7890]

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 有幻觉、上下文限制等根本性局限

课后练习

  1. 体验 Tokenization :访问 OpenAI 的 Tokenizer 工具,输入一段中文和英文,观察 token 切分方式的不同。

  2. 预测下一个词 :找一段你喜欢的文章,遮住最后一个词,尝试预测它。思考:你需要什么知识才能准确预测?

  3. 思考题 :如果 LLM 只是"预测下一个词",为什么它能解数学题、写代码、做翻译?这些能力是如何从"预测下一个词"中涌现出来的?


下一章预告: LLM 的核心引擎是 Transformer 架构。第 6 章将拆解 Transformer 的内部结构——自注意力、多头注意力、位置编码、前馈网络——看看这个"流水线工厂"如何高效处理语言。

继续第 6 章:Transformer 架构 →