LESSON · 02

LLM
只做
一件事

预测下一个词。仅此而已。

"猜
下
一个"

为什么这件小事,能产生看起来像智能的东西?

Token 是什么

  • 不是字、不是词,是 BPE 子词单元
  • "unbelievable" → ["un", "believ", "able"]
  • 中文一个字常常 = 1-2 个 token
  • 英文一个单词常常 = 1-3 个 token
  • ⚠ 计费按 token 算,不是字数

tokenizer demo


from tiktoken import encoding_for_model
enc = encoding_for_model("gpt-4")

text = "我爱 AI"
tokens = enc.encode(text)
print(tokens)
# [37046, 102, 11, 15836]   ← 4 个 token

print([enc.decode([t]) for t in tokens])
# ['我', '爱', ' ', 'AI']

🎮 试试:你的话有几个 Token?

Token 数:0  · 简化模拟(实际 BPE 更复杂)

每个 token
=
一个向量

维度 768 / 4096 / 12288 不等。语义相近 → 向量相近。

上下文窗口

  • 4K · GPT-3.5 时代标配
  • 128K · GPT-4 / Claude 3.5 主流
  • 1M+ · Gemini 长上下文之王
  • 2M+ · 实验性,性价比待考
  • 长上下文 ≠ 真的看完了。"中间丢失"问题真实存在。
→
一个 token
一个 token 吐

autoregressive


prompt = "今天天气"
# 第 1 步: 模型看 "今天天气"     → 概率最高 "真"
# 第 2 步: 模型看 "今天天气真"    → 概率最高 "好"
# 第 3 步: 模型看 "今天天气真好"   → 概率最高 "。"
# ...直到生成 < EOS > 或达到 max_tokens

三段式
训练

Pretrain → SFT → RLHF/DPO

① Pretrain · 预训练

  • 数据:互联网 + 书籍 + 代码,万亿级 token
  • 任务:预测下一个 token(最朴素)
  • 目标:把世界知识"压缩"进权重
  • 代价:算力消耗 99% 都在这里
  • 类比:让一个人通读了人类大半的书

② SFT · 监督微调

  • 数据:高质量 (指令, 答案) 对
  • 规模:从万到百万级
  • 目标:把"续写"改造成"对话"
  • 类比:教 ta 怎么"对话",而不是"续写小说"

③ RLHF / DPO · 偏好对齐

  • 数据:人类对两个回答打分(好/坏)
  • RLHF · 训奖励模型 → PPO 强化学习
  • DPO · 直接偏好优化,更简单
  • 目标:有用、无害、诚实
  • 类比:让 ta 学会"得体"地回答

幻觉
不是 bug,
是特性。

概率采样的代价

幻觉为什么存在

  • 本质:LLM 永远在"概率最高的下一个词"
  • 知识截断:训练数据有日期
  • 压缩损失:参数有限,细节会丢
  • 自信错误:流畅 ≠ 正确
  • → 解药:RAG、Tool Use、引用核对

🎮 温度实验室

prompt: "今天天气真"

0 · 确定性1.0 · 创造性2.0 · 混沌

→ 低温:每次输出几乎一样  |  高温:输出随机多样

本课收获

Token / Embedding 自回归 Pretrain → SFT → RLHF 幻觉根源 采样参数

下一课 · Transformer 架构:Attention is All You Need