mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
2463 字
7 分钟
揭开大模型的工作黑盒:Token与概率
2025-09-22

你有没有玩过”猜下一个字”的游戏?

我说”今天天气真”,你脑子里立刻蹦出”好”字。我说”床前明月”,你马上想到”光”。

为什么你能猜对?因为你的大脑读过无数文字,知道哪些词经常一起出现。

大模型也在玩这个游戏——只不过它玩得更大、更复杂。

当你输入”请帮我写一首诗”,按下回车后,模型内部发生了什么?为什么有时它会”胡说八道”?这篇文章带你拆开大模型的”黑盒”。

本文要点#

  • Token化:文字如何变成机器能处理的数字
  • 向量空间:模型如何”理解”词的含义
  • 概率预测:为什么模型每次回答都可能不同
  • 幻觉本质:为什么大模型会编造信息
  • 能力边界:大模型擅长什么、不擅长什么

一、Token化:文字变成数字#

1.1 计算机不认识”文字”#

这是一个基础但重要的事实:计算机只能处理数字,不能直接处理文字

所以,当你输入”人工智能很强大”,模型的第一件事就是把这段文字变成数字。

这个过程叫Token化(Tokenization)

1.2 Token是什么?#

Token不是”字”,也不完全是”词”,而是模型处理的最小单位。

输入:"人工智能很强大"
Token化结果:["人工", "智能", "很", "强大"]
输入:"artificial intelligence"
Token化结果:["art", "ificial", " intelligence"]

注意观察:

  • 常见词通常是一个Token(“人工”)
  • 罕见词可能被拆分(“artificial” → “art” + “ificial”)
  • 空格、标点也会变成Token

为什么不直接按字分?

汉字有几万个,按字分词汇表太大,计算效率低。

为什么不直接按词分?

新词、网络用语、拼写错误怎么办?“YYDS”这个词,按词分就没法处理。

Token化是折中方案:常见词完整保留,罕见词拆分处理。

1.3 Token数量有上限吗?#

有!这叫上下文窗口

GPT-3.5: 4K tokens(约3000汉字)
GPT-4: 32K/128K tokens
Claude 3.5: 200K tokens(约15万汉字)
Gemini 2.0: 100万+ tokens

超出限制的部分会被截断。这就是为什么你扔给ChatGPT一本小说,它只能”记住”部分内容。

1.4 实用换算#

1个汉字 ≈ 1-2个Token
1个英文单词 ≈ 1-1.5个Token
一段1000字中文 ≈ 1500个Token

省钱小技巧:输入越短,Token越少,费用越低。


二、向量化:Token变成”语义坐标”#

2.1 每个Token都有”身份证”#

Token化之后,每个Token会被转换成一个向量——一串数字。

flowchart TD N0[""国王""] N1["[0.2, 0.8, 0.1, 0.9, ...](几千个数字)"] N0 --> N1 N2[""王后""] N3["[0.2, 0.7, 0.1, 0.8, ...]"] N2 --> N3 N4[""苹果""] N5["[0.5, 0.2, 0.9, 0.1, ...]"] N4 --> N5 N6[""香蕉""] N7["[0.5, 0.3, 0.8, 0.2, ...]"] N6 --> N7

这个向量是什么意思?

想象一个多维空间,每个词都有自己的”坐标”。

  • “国王”和”王后”坐标接近(都是皇室)
  • “苹果”和”香蕉”坐标接近(都是水果)
  • “国王”和”香蕉”坐标很远

神奇的是,这些向量可以做数学运算

国王 - 男人 + 女人 ≈ 王后

这意味着模型”学会”了词与词之间的关系。

2.2 位置也很重要#

“狗咬人”和”人咬狗”,Token完全一样,意思完全相反。

所以模型还要记住每个Token的位置:

flowchart TD N0[""我"(位置1)"] N1["[词向量] + [位置1向量]"] N0 --> N1 N2[""爱"(位置2)"] N3["[词向量] + [位置2向量]"] N2 --> N3 N4[""AI"(位置3)"] N5["[词向量] + [位置3向量]"] N4 --> N5

这样模型既知道”是什么词”,也知道”在什么位置”。


三、层层加工:模型的”思考”过程#

3.1 Transformer有几十到上百层#

向量进入模型后,要经过很多层的处理。

每一层都在”理解”和”加工”信息。

flowchart TD N0[""我""] N1["主语"] N0 --> N1 N2[""爱""] N3["动词"] N2 --> N3 N4[""AI""] N5["宾语"] N4 --> N5 N6[""我爱AI""] N7["表达对技术的兴趣"] N6 --> N7

层数越多,理解越深,但计算也越慢。

3.2 自注意力:每个词都能看到所有词#

在每一层,模型会计算”这个词和哪些词有关系”。

处理”我”这个词时:

flowchart TD N0[""我""] N1["权重 0.2(自己)"] N0 --> N1 N2[""爱""] N3["权重 0.5(动词,关联性强)"] N2 --> N3 N4[""AI""] N5["权重 0.3(宾语,也有关系)"] N4 --> N5

每个词都会这样”看”其他所有词,更新自己的理解。

这就是为什么大模型能理解”长距离依赖”

"1997年出生于北京的那个男孩,经历了小学、中学、大学,
终于在2020年回到了他的家乡___"
模型能注意到"家乡"和"北京"的关系,即使它们隔得很远。

四、概率预测:选择下一个Token#

4.1 不是”想出”答案,而是”算出”概率#

经过层层处理后,模型要预测下一个Token。

它不是”想出”一个答案,而是为每个可能的Token计算一个概率。

输入:"今天天气"
输出概率分布:
很好: 35%
不错: 20%
晴朗: 18%
真棒: 10%
糟糕: 8%
紫色: 0.001% ← 语义不通,概率极低

为什么是概率,不是确定答案?

因为训练数据中,“今天天气”后面有很多种可能。模型学到了这个分布。

4.2 Temperature:控制”创造性”#

模型不会每次都选概率最高的词(那样太死板)。它有一个”温度”参数:

Temperature = 0(最保守)
几乎总是选"很好"
输出可预测,但单调
Temperature = 1(平衡)
按概率分布随机选
有变化,但不会太离谱
Temperature = 2(最奔放)
概率被"拉平",罕见词也经常出现
很有创意,但可能语无伦次

实用建议

  • 需要精确答案:Temperature = 0-0.3
  • 日常对话:Temperature = 0.7-1.0
  • 创意写作:Temperature = 1.0-1.5

4.3 自回归:一个词一个词生成#

模型生成文本是一个Token一个Token,逐步生成的:

输入:"请写一首诗"
第1步:输出"春"
第2步:输入变成"请写一首诗 春",输出"风"
第3步:输入变成"请写一首诗 春风",输出"拂"
第4步:输入变成"请写一首诗 春风拂",输出"面"
...

这就是为什么:

  • 长回复比短回复慢
  • 有时会”说着说着就跑题”——每一步都可能有小偏差累积

五、幻觉:为什么会”胡说八道”#

5.1 一个关键认知#

大模型不是知识库,它是基于统计的文本生成器。

它”知道”的是:哪些词的组合在训练数据中频繁出现。

它”不知道”的是:这些信息是否真实。

5.2 幻觉是怎么产生的?#

场景1:模型知道答案

用户问:"OpenAI的CEO是谁?"
模型的"思考":
- 训练数据中"OpenAI CEO"后面常跟"Sam Altman"
- 预测:"Sam Altman"
结果:正确 (碰巧训练数据里是对的)

场景2:模型不知道答案

用户问:"2026年诺贝尔物理学奖得主是谁?"
模型的"思考":
- 训练数据截止到2023年,没有2026年的信息
- 但"诺贝尔物理学奖得主"后面应该跟人名
- 根据统计规律,生成一个"听起来像物理学家"的名字
- 预测:"某某个名字"
结果:幻觉 (完全编造)

5.3 为什么编造得很”像真的”?#

因为模型学会了:

  • 人名的构成规律
  • 学术界的表达方式
  • 如何组织一个”听起来可信”的答案

但它不知道这个人是否真实存在。

5.4 如何应对幻觉?#

  1. 重要信息要核实:不要盲目信任模型的事实性陈述
  2. 使用RAG:让模型基于你提供的真实文档回答
  3. 要求引用来源:让模型说明信息出处
  4. 多问几遍:不同回答可能揭示不确定性

六、能力边界:大模型擅长什么#

6.1 擅长的任务#

任务类型为什么擅长示例
模式识别学会了大量文本模式分类、情感分析
文本转换理解语言结构翻译、摘要、改写
补全生成基于上下文预测写作辅助、代码补全
格式化输出模式匹配能力强提取结构化数据

6.2 不擅长的任务#

任务类型为什么不擅长替代方案
精确计算不是计算器调用代码执行
实时信息训练数据有截止日期联网搜索或API
长链推理每步都可能出错分步验证或用o1模型
持续学习对话结束就遗忘外部记忆系统

6.3 灰色地带#

  • 常识推理:简单场景OK,复杂场景不可靠
  • 创造性:能模仿,但缺乏真正的”灵光一现”
  • 个性化:单次对话可以,跨会话需要额外设计

可视化图解#

6.1 大模型处理流程#

┌─────────────────────────────────────────────────────────────┐
│ 大模型处理流程 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 输入:"今天天气" │
│ ↓ │
│ ┌─────────────────┐ │
│ │ Token化 │ ["今天", "天气"] │
│ └────────┬────────┘ │
│ ↓ │
│ ┌─────────────────┐ │
│ │ 向量化 │ [[0.2,0.8,...], [0.3,0.5,...]] │
│ └────────┬────────┘ │
│ ↓ │
│ ┌─────────────────┐ │
│ │ Transformer层 │ 第1层 → 第2层 → ... → 第96层 │
│ │ (自注意力计算)│ 每层让词之间相互"关注" │
│ └────────┬────────┘ │
│ ↓ │
│ ┌─────────────────┐ │
│ │ 概率分布 │ 很好:35%, 不错:20%, 晴朗:18%... │
│ └────────┬────────┘ │
│ ↓ │
│ ┌─────────────────┐ │
│ │ 采样选择 │ 根据Temperature选择一个Token │
│ └────────┬────────┘ │
│ ↓ │
│ 输出:"很好" │
│ │
└─────────────────────────────────────────────────────────────┘

6.2 Temperature效果对比#

Temperature = 0(保守)
输入:"天空是"
输出:"蓝色的" ← 每次都一样
Temperature = 1(平衡)
输入:"天空是"
输出:"蓝色的" / "湛蓝的" / "灰蒙蒙的" ← 有变化但合理
Temperature = 2(奔放)
输入:"天空是"
输出:"梦想的颜色" / "一首诗" / "我的早餐" ← 可能语无伦次

常见问题 FAQ#

Q1: 一个汉字等于多少Token?

A: 大约1-2个Token。常见字通常是1个,罕见字或生僻组合可能是2个。英文单词平均约1-1.5个Token。

Q2: 为什么大模型会”胡说八道”?

A: 因为大模型的本质是”基于统计的文本生成器”,不是”知识库”。它预测的是”最可能的下一个词”,而不是”正确的答案”。当训练数据中没有相关信息时,它会根据语言规律”编造”一个看起来合理的答案。

Q3: Temperature设多少合适?

A: 取决于任务:

  • 需要精确、一致的答案(编程、事实查询):0-0.3
  • 日常对话、一般任务:0.7-1.0
  • 创意写作、头脑风暴:1.0-1.5

Q4: 上下文窗口是什么意思?超出会怎样?

A: 上下文窗口是模型一次能处理的最大Token数。超出部分会被截断(丢弃最早的内容)。比如窗口是4K,你输入5K的内容,最后1K会被处理,前4K被丢弃。

Q5: 为什么大模型有时会”忘记”之前说过的话?

A: 如果对话太长,超出上下文窗口,早期的内容会被截断。另外,模型没有真正的”记忆”,每次回复都是基于当前上下文窗口内的内容重新计算。


小结#

大模型的工作原理可以概括为一句话:输入文字 → Token化 → 向量化 → 层层处理 → 概率预测 → 输出文字

理解这个过程,你就明白:

  • 为什么Token数量重要:它决定了成本和能力
  • 为什么Temperature影响输出:它控制从概率分布中选择的方式
  • 为什么会有幻觉:模型在”预测”而非”记忆”
  • 能力边界在哪:模式识别强,精确计算弱

下篇预告#

现在你知道了大模型是怎么工作的。但市面上有GPT-4、Claude、DeepSeek、LLaMA……这么多模型,该选哪个?


参考资料#

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

揭开大模型的工作黑盒:Token与概率
https://blog.souloss.com/posts/machine-learning/llm/llm-black-box-token/
作者
Souloss
发布于
2025-09-22
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时