你有没有玩过”猜下一个字”的游戏?
我说”今天天气真”,你脑子里立刻蹦出”好”字。我说”床前明月”,你马上想到”光”。
为什么你能猜对?因为你的大脑读过无数文字,知道哪些词经常一起出现。
大模型也在玩这个游戏——只不过它玩得更大、更复杂。
当你输入”请帮我写一首诗”,按下回车后,模型内部发生了什么?为什么有时它会”胡说八道”?这篇文章带你拆开大模型的”黑盒”。
本文要点
- 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 tokensClaude 3.5: 200K tokens(约15万汉字)Gemini 2.0: 100万+ tokens超出限制的部分会被截断。这就是为什么你扔给ChatGPT一本小说,它只能”记住”部分内容。
1.4 实用换算
1个汉字 ≈ 1-2个Token1个英文单词 ≈ 1-1.5个Token一段1000字中文 ≈ 1500个Token省钱小技巧:输入越短,Token越少,费用越低。
二、向量化:Token变成”语义坐标”
2.1 每个Token都有”身份证”
Token化之后,每个Token会被转换成一个向量——一串数字。
这个向量是什么意思?
想象一个多维空间,每个词都有自己的”坐标”。
- “国王”和”王后”坐标接近(都是皇室)
- “苹果”和”香蕉”坐标接近(都是水果)
- “国王”和”香蕉”坐标很远
神奇的是,这些向量可以做数学运算:
国王 - 男人 + 女人 ≈ 王后这意味着模型”学会”了词与词之间的关系。
2.2 位置也很重要
“狗咬人”和”人咬狗”,Token完全一样,意思完全相反。
所以模型还要记住每个Token的位置:
这样模型既知道”是什么词”,也知道”在什么位置”。
三、层层加工:模型的”思考”过程
3.1 Transformer有几十到上百层
向量进入模型后,要经过很多层的处理。
每一层都在”理解”和”加工”信息。
层数越多,理解越深,但计算也越慢。
3.2 自注意力:每个词都能看到所有词
在每一层,模型会计算”这个词和哪些词有关系”。
处理”我”这个词时:
每个词都会这样”看”其他所有词,更新自己的理解。
这就是为什么大模型能理解”长距离依赖”:
"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 如何应对幻觉?
- 重要信息要核实:不要盲目信任模型的事实性陈述
- 使用RAG:让模型基于你提供的真实文档回答
- 要求引用来源:让模型说明信息出处
- 多问几遍:不同回答可能揭示不确定性
六、能力边界:大模型擅长什么
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……这么多模型,该选哪个?
参考资料
支持与分享
如果这篇文章对你有帮助,欢迎支持作者或分享给更多人
部分信息可能已经过时






