前置知识

阅读本文前,建议先了解:


一、概述

概率预测(Probability Prediction)是 LLM 的核心工作机制。LLM 的所有能力——无论是回答问题、编写代码还是创作文章——都建立在一个简单但强大的基础之上:根据上文预测下一个词


二、Token 与分词

2.1 什么是 Token

Token(词元)是 LLM 处理文本的基本单位。它可以是:

Token 类型示例
完整的词”苹果” → [苹果]
词的一部分”机器学习” → [机器][学习]
单个字符”a” → [a]
标点符号”。” → [。]
特殊标记<EOS>(句子结束)

2.2 分词过程

分词(Tokenization)是将输入文本转换为 Token 序列的过程:

输入: "今天天气很好"

分词器处理:
┌──────┬──────┬──────┬──────┐
│ 今天 │  天气 │  很好 │  <EOS>│
└──────┴──────┴──────┴──────┘
│ ID:123│ ID:456│ ID:789│ID: 0 │

每个 Token 都有一个唯一的 ID,LLM 实际处理的是这些数字 ID。

2.3 词汇表

词汇表(Vocabulary)是模型认识的所有 Token 的集合:

模型词汇表大小
GPT-4~100,000
LLaMA 232,000
ChatGLM130,528

词汇表大小的影响

词汇表越大,单个 Token 能承载的信息越多,序列长度越短;但模型参数也会相应增加。


三、Next Token Prediction

3.1 核心任务

LLM 的核心任务可以用一个公式概括:

即:给定前面的所有词,预测下一个词的条件概率

3.2 工作流程

第 1 步:输入上文
       ↓
"今天天气"

第 2 步:模型计算概率分布
       ↓
┌─────────────────────────────────────┐
│  很好  ████████████████████  40%    │
│  不错  ████████████          20%   │
│  晴朗  ████████              15%   │
│  ...                               │
└─────────────────────────────────────┘

第 3 步:采样一个 Token
       ↓
选择 "很好"

第 4 步:将结果加入上文,继续预测
       ↓
"今天天气很好" → 重复上述过程

3.3 概率分布的计算

模型内部通过以下步骤计算概率分布:

  1. 嵌入层:将 Token ID 转换为向量表示
  2. Transformer 层:通过多层注意力机制处理上下文
  3. 输出层:将最终向量映射到词汇表大小的向量
  4. Softmax:将向量转换为概率分布
Token ID → Embedding → Transformer → Logits → Softmax → 概率分布

四、自回归生成

4.1 什么是自回归

自回归(Autoregressive)是指模型根据自己的输出继续生成后续内容。

初始输入: "什么是 AI?"

生成过程:
┌─────────────────────────────────────────────────┐
│ 步骤 │ 当前输入         │ 预测输出 │ 新输入          │
├──────┼─────────────────┼──────────┼────────────────┤
│  1   │ "什么是 AI?"    │ "人工"   │ "什么是 AI?人工"│
│  2   │ "什么是 AI?人工"│ "智能"   │ "什么是 AI?人工智能"│
│  3   │ "...人工智能"    │ "是"     │ "...人工智能是" │
│  4   │ "...人工智能是"  │ "一种"   │ "...人工智能是一种"│
│ ...  │ ...             │ ...      │ ...            │
└──────┴─────────────────┴──────────┴────────────────┘

4.2 停止条件

生成过程在以下条件满足时停止:

停止条件说明
EOS Token模型生成句子结束标记
最大长度达到预设的最大 Token 数
停止词生成特定的停止词(如用户指定的结束符)

五、采样策略

从概率分布中选择下一个 Token 的过程叫做采样(Sampling)。不同的采样策略会产生不同风格的输出。

5.1 贪婪解码(Greedy Decoding)

最简单的策略:每次都选概率最高的 Token。

概率分布:
天气 40% │ 不错 20% │ 晴朗 15% │ ...

贪婪解码 → 选择 "天气"
优点缺点
输出稳定、可重现可能过于单调、重复
适合代码、数学等确定性任务缺乏创造性

5.2 温度采样(Temperature Sampling)

温度(Temperature,记作 )参数控制概率分布的”尖锐”程度:

温度值效果适用场景
(低温)概率分布更尖锐,高概率词更可能被选代码生成、事实问答
原始概率分布通用场景
(高温)概率分布更平滑,低概率词有机会被选创意写作、头脑风暴
原始分布:天气 40% │ 不错 20% │ 晴朗 15%

T=0.5(低温):天气 65% │ 不错 25% │ 晴朗 7%
T=1.5(高温):天气 30% │ 不错 25% │ 晴朗 18%

5.3 Top-k 采样

Top-k 只保留概率最高的 个 Token,其他置为 0。

原始分布:天气 40% │ 不错 20% │ 晴朗 15% │ 很好 10% │ ...

Top-3 采样后:天气 40% │ 不错 20% │ 晴朗 15% │ (其他=0%)

然后在 remaining 3 个中重新归一化采样
优点缺点
去除低概率噪声 值固定,不够灵活

5.4 Top-p 采样(核采样)

Top-p(Nucleus Sampling)动态选择累积概率超过 的最小 Token 集合。

概率分布:天气 40% │ 不错 20% │ 晴朗 15% │ 很好 10% │ 一般 8% │ ...

Top-p=0.75:
- 天气 40% (累积 40%)
- 不错 20% (累积 60%)
- 晴朗 15% (累积 75%) ✓ 达到阈值

保留这 3 个,其他置为 0
优点缺点
根据模型置信度动态调整参数 需要调优

5.5 参数组合策略

实际应用中,通常组合使用多个参数:

处理顺序:Top-k → Top-p → Temperature

典型配置:
┌─────────────────────────────────────────┐
│ 场景       │ Temperature │ Top-p │ Top-k │
├─────────────────────────────────────────┤
│ 代码生成   │ 0.0-0.2    │ 0.95  │ 40    │
│ 知识问答   │ 0.3-0.5    │ 0.85  │ -     │
│ 创意写作   │ 0.7-0.9    │ 0.95  │ -     │
│ 头脑风暴   │ 1.0-1.2    │ 0.95  │ -     │
└─────────────────────────────────────────┘

六、为什么 LLM 能”理解”语言

6.1 统计规律 → 语义理解

通过海量数据的训练,LLM 学到了:

学习层次示例
词法”苹果”常与”水果”、“吃”等词共现
句法主谓宾结构的排列规律
语义”猫坐在垫子上”与”垫子在猫下面”表达相似含义
世界知识”巴黎是法国的首都”
推理能力”小明比小红高,小红比小刚高” → 小明最高

6.2 涌现能力

当模型规模和训练数据达到一定程度后,LLM 会”涌现”出意想不到的能力:

  • 零样本学习:无需示例就能完成新任务
  • 思维链推理:能将复杂问题拆解为多步
  • 自我纠错:能够检查并修正自己的错误

七、总结

概率预测是 LLM 的核心机制:

  1. Token 化:将文本转换为模型可处理的数字序列
  2. Next Token Prediction:根据上文预测下一个词的概率分布
  3. 自回归生成:逐词生成,每生成一个词就加入上下文继续预测
  4. 采样策略:通过 Temperature、Top-k、Top-p 等参数控制生成风格

理解概率预测机制,是深入理解 LLM 工作原理的基础。


延伸阅读