🔤 Token 是什么?
LLM 不看"字",也不看"字母"。它看的是 Token ID——介于字和词之间的"积木块"。
文本"Hello, 世界"
→
Tokenizer分词器
→
Token IDs[15496, 11, 235, 145, ...]
试试把你的文本转成 Token
规律:英文一个词 ≈ 1 个 Token;中文一个字 ≈ 1~2 个 Token;标点符号也是 Token。LLM 的计费也是按 Token 算的——输入和输出的 Token 数加起来就是账单。
中文为什么"贵"
同样的意思,中文的 Token 数大约是英文的 1.5~2 倍:
"Hello World" | 2 个 Token |
"你好世界" | 4 个 Token |
"artificial intelligence" | 2 个 Token |
"人工智能" | 4 个 Token |
这就是为什么用中文 API 调用通常更贵——同样的任务需要更多 Token。
BPE 分词原理
BPE = Byte Pair Encoding。把文本拆解为最常见的"字串对":
初始: "低" "成" "本"
第1步: "低" + "成本" → 发现有大量"低成本"这个模式
第2步: 合并 → Token: "低成本" (1个Token)
"高成本" → 却不行,因为不常见
所以"高成本"还是3个Token: "高" + "成本"
🎯 LLM 的本质:超级输入法联想
LLM 只做一件事——给定前文,预测下一个 Token 的概率分布。不是"知道答案",而是"擅长续写"。
输入一段文字,看看 LLM 会预测什么
预测的下一个 Token 概率分布
注意:LLM 输出的是一个概率分布——不是确定的答案。这就是为什么同一个 Prompt 每次得到的回答可能不同(取决于采样策略)。
📐 训练过程:Next Token Prediction
海量文本整个互联网
→
遮住最后一个词
→
让模型猜
→
猜错→调整参数
输入: "中国的首都是 ___" → 模型猜: [北京:92%, 上海:3%, 广州:1%, ...]
输入: "1 + 1 = ___" → 模型猜: [2:95%, 3:2%, 0:1%, ...]
输入: "She opened the ___" → 模型猜: [door:25%, book:18%, box:12%, ...]
重复几万亿次后,模型学到了语言的统计规律——不是背答案,而是学到了词与词之间的概率关系。
🪟 Context Window —— LLM 的"视野"
LLM 一次能"看到"的 Token 数量是有限的,这就是 Context Window。超出窗口的内容会被"遗忘"。
模拟:Context Window = 20 Tokens(拖动滑块看"失忆"效果)
完整对话历史:
LLM 实际"看到"的内容(在 Context Window 内):
这就是为什么和 LLM 聊了很长一段后,它可能"忘记"最开始说的内容——前面的 Token 被挤出了 Context Window。
👁️ Self-Attention:LLM 怎么理解上下文
Attention 让 LLM 在处理每个词时,都能"看到"句子中所有其他词,并决定哪些词更相关。
点击句子中的词,看它"关注"哪些词
解析
点击一个词查看它的 Attention 分布。
为什么 Attention 重要:传统模型按顺序处理文本,离得远的词很难建立联系。Attention 让模型可以直接跳跃连接到任何位置——就像你在读文章时,眼光可以直接跳到前面提到的人名或概念上。
🌡️ Temperature(温度)——控制 LLM 的"创造力"
LLM 输出的是一个概率分布。Temperature 控制要不要"压制"低概率选项。
同一句话,不同 Temperature 的效果
效果说明
Temperature = 0.2(低)
高概率单词被放大 → 输出确定、保守、不犯错
适合:代码生成、翻译、事实问答
| Temperature | 效果 | 适合场景 |
| 0 ~ 0.3 | 输出确定、保守、可复现 | 代码生成、翻译、数学 |
| 0.5 ~ 0.7 | 平衡确定性和多样性 | 日常对话、总结 |
| 0.8 ~ 1.2 | 有创意但不失控 | 创意写作、头脑风暴 |
| 1.5 ~ 2.0 | 非常随机,可能"胡言乱语" | 几乎不用 |
💭 幻觉(Hallucination)—— LLM 会"编造事实"
LLM 没有"知识库"和"真假判断"能力。它只是在做概率续写——有时候概率最高的续写恰好是编造的内容。
为什么会幻觉:
1. LLM 不是数据库——不会"查"答案
2. 训练数据不完整或过时
3. 推理链太长,中途概率"漂移"
4. 被 Prompt 诱导("告诉我关于X的事"——X 不存在也会编)
怎么缓解:
1. RAG(检索增强生成):先用向量数据库找相关文档,再让 LLM 基于文档回答
2. Few-shot:给几个真实例子
3. 低 Temperature:减少随机性
4. 明确指令:"如果你不确定,说不知道"
一句话记住:LLM 的本质是"超级输入法联想",不是"超级百科全书"。它续写出来的内容"看起来像真话",但不保证是事实。这恰好解释了为什么 RAG(检索增强生成) 很重要——把"检索真实文档"和"LLM 生成"结合起来,才能兼顾准确性和流畅性。