LLM 工作原理

理解大语言模型如何”思考”和”说话”——用开发者的语言解释。


整体流程

1
输入文本 → [Tokenize] → Token序列 → [Embedding] → 向量 → [Transformer] → 概率分布 → [采样] → 输出Token → 循环 → 文本

1. Token(分词)

什么是 Token?

LLM 不直接处理”文字”,而是处理 Token——文本被分词器(Tokenizer)切成的小单元。

文本Token 近似数
1 个英文字符~0.25 Token
1 个中文字符~1-2 Token
1 个英文单词~1.5 Token
代码(高度重复)极低,压缩率高

实际例子

1
2
3
"你好,世界"      → 约 5-6 个 Token
"Hello, world" → 约 4-5 个 Token
"def fib(n):" → 约 4-5 个 Token(代码重复率高,Token少)

为什么 Token 重要?

  • API 定价 = 输入 Token + 输出 Token(双向计费)
  • 上下文窗口 = Token 上限,不是字符或词数
  • 第一个 Token 影响质量:开头 50 个 Token 决定了 80% 的输出走向

2. Embedding(向量化)

什么是 Embedding?

将 Token 转换为高维浮点数向量(例如 1536 维或 4096 维)。

1
2
3
"猫" → [0.123, -0.456, 0.789, ..., 0.321]  1536维
"狗" → [0.134, -0.478, 0.812, ..., 0.298] 1536维
"汽车"→ [0.987, -0.123, 0.456, ..., -0.111] 1536维

关键特性

  • 语义相近的词,向量距离近(”猫”和”狗”的距离 < “猫”和”汽车”的距离)
  • 距离用余弦相似度度量:接近 1 = 相近,接近 -1 = 相反

Embedding 在 RAG 中的作用

1
2
文档分块 → Embedding 模型 → 向量 → 存储到向量数据库
用户问题 → Embedding 模型 → 向量 → 相似度搜索 → Top-K 相关文档

3. Transformer 架构

核心组件

1
输入 Token → Token Embedding + Position Embedding → 堆叠 Transformer 层 → 输出 Logits → Softmax → 下一个 Token

Transformer Layer 结构

1
2
3
4
5
6
7
8
9
┌─────────────────────────────────────┐
│ Self-Attention(自注意力) │
│ "当前词关注上下文中哪些词" │
└──────────────┬──────────────────────┘

┌─────────────────────────────────────┐
│ Feed-Forward(前行神经网络) │
│ "对每个Token做非线性变换,产生推理能力" │
└─────────────────────────────────────┘

Self-Attention(自注意力)

核心问题:处理”我买了猫粮,因为猫饿了”——“猫”应该关注”饿”还是”粮”?

Attention 计算

  1. Query(查询):当前位置想问什么
  2. Key(键):每个词能提供什么信息
  3. Value(值):每个词的实际内容
1
2
3
4
# 简化的 Attention 计算
attention_scores = Q @ K.T # 打分:当前词对每个词的关注度
attention_weights = softmax(attention_scores / sqrt(d_k))
output = attention_weights @ V # 加权求和

Multi-Head Attention:多组 QKV 并行计算,捕捉不同类型的依赖关系(语法、语义、情感等)。


4. 生成过程(推理)

自回归生成

LLM 是自回归模型:一次生成一个 Token,然后把新 Token 加入输入,循环。

1
2
3
4
5
6
7
输入: "[BOS] 今天天气"
Step1: 预测 "很" (概率 0.23)
Step2: 输入变为 "[BOS] 今天天气很"
Step2: 预测 "好" (概率 0.71)
Step3: 输入变为 "[BOS] 今天天气很好"
Step3: 预测 "[EOS]"(结束符)
输出: "今天天气很好"

采样策略

策略说明适用场景
Greedy选概率最高的词代码生成(精确)
Temperature调整概率分布的”平滑度”创意写作
Top-K只从最高 K 个候选中采样质量/多样性平衡
Top-P (Nucleus)从概率和达到 P 的最小集合中采样常用默认值

5. 训练 vs 推理

训练

1
海量文本 → 自监督学习(预测下一个词)→ 习得语言规律 + 世界知识
  • 预训练:海量通用文本(互联网、书籍、代码)
  • SFT(监督微调):高质量问答对微调
  • RLHF:人类反馈强化学习对齐人类偏好

推理

1
用户输入 → Tokenize → Embedding → Transformer(前向计算)→ Token采样 → 解码 → 文本

推理成本远低于训练:训练需要反向传播(更新权重),推理只需要前向计算。


6. LLM 能做什么 vs 不能做什么

能做

✅ 基于上下文推理和生成
✅ 代码补全、翻译、摘要
✅ 问答、对话、创意写作
✅ 调用外部工具(Function Calling)
✅ 多步骤推理(Chain-of-Thought)

不能做(或做不好)

精确计算:算错 17×23 = 391
实时信息:不知道今天天气
超长输入:超过上下文窗口就遗忘
完全可靠的事实:会产生幻觉
实时变化的任务:需要持续接入外部系统