举个例子
想象一下,AI大模型用 0.5秒生成了这样一段文本:
"今天天气真好,我决定去公园散步,呼吸一下新鲜空气,放松身心。"
那么问题来了:这个AI怎样在这么短的时间内,"想出来"这条段文本的?
答案可能会颠覆你的想象。它并不是在"思考",而是在进行一个机械的、分步的数学运算。
今天,我就用你能理解的方式,把大模型这5个神奇的步骤拆解给你看。
第一步:你说什么,我就听什么
01 | 输入与拆分(Input & Tokenization)
场景还原:
假如你现在对大模型说:
"用最有趣的方式讲解一个笑话"
大模型听到这句话时,它不是像我们一样理解语义 ,而是做一个非常机械的动作:把你的文字拆成一个个最小的单元。
这个最小单元叫做 Token(令牌) 。
Token 是什么?
你可以把它理解为"汉字"或"词"。比如:
- "用" = 1个Token
- "最" = 1个Token
- "有趣" = 1个Token
- "的" = 1个Token
- "方式" = 1个Token
- "讲解" = 1个Token
所以你的一句话被拆成了一串Token序列:
css
[用][最][有趣][的][方式][讲解][一][个][笑话]
为什么要这样拆?
因为大模型的"大脑"(神经网络)只能理解数字,不能直接理解文字。
每个Token都被转换成一串数字(向量),看起来像这样:
erlang
"用" → [0.2, -0.5, 0.8, 0.1, ...](几百个数字)
"最" → [0.3, -0.2, 0.5, 0.9, ...](几百个数字)
...
这就像把人类的语言翻译成计算机能理解的"密码"。
第二步:我是怎样理解你的意思的?
02 | 上下文编码(Context Encoding)
场景还原:
现在大模型有了一串数字(Token的向量表示),接下来它要做的是:理解这些数字之间的关系。
这一步发生在大模型的"大脑"------Transformer架构中。
Transformer在做什么?
Transformer是一个特殊的神经网络结构,它做的事情听起来很复杂,但核心思想很简单:
它在计算你输入的每个词与其他词之间的"关系强度"。
具体例子:
如果你说:"小王很聪明,他喜欢编程,但他讨厌数学。"
Transformer会这样计算:
- "他" 和 "小王" 的关系强度:95%("他"指代"小王")
- "他" 和 "数学" 的关系强度:30%(有关系但不是指代)
- "他" 和 "讨厌" 的关系强度:80%("他"是"讨厌"的主语)
通过这种"关系计算",Transformer把你的输入文本转化成一个包含丰富上下文信息的数学表示。
换句话说,大模型现在"懂"你说的是什么意思了------不是真的懂,而是把你的意思转化成了数学。
一个有趣的观察:
这就是为什么大模型有时候能推断你没有明说的东西。因为Transformer计算了所有词之间的关系,它能从这些关系中"推断"出隐含的意思。
第三步:我给出每个词的概率
03 | 概率计算(Probability Calculation)
场景还原:
现在,大模型已经理解了你的意思(至少在数学层面)。
接下来,它要做一个关键的决定:下一个词应该是什么?
但大模型不是"想"出来的,而是通过计算所有可能词汇的概率。
具体过程:
假如你说:"今天天气真好,我想......"
大模型此时会计算:在"我想"之后,所有词出现的概率。
结果可能是这样的:
css
[去散步] → 32%
[出门] → 28%
[休息] → 18%
[唱歌] → 8%
[吃饭] → 7%
[睡觉] → 4%
[其他] → 3%
这就像在说:"根据我读过的所有文本,当有人说'我想'的时候,接下来最有可能说'去散步'(32%的概率)。"
为什么是这个概率?
因为大模型在预训练时,接触过数万亿个词的组合。它把这些统计规律"记录"在自己的参数中。当你说"我想"时,它就从记忆中翻出:
- 在所有"我想"的后面,"去散步"出现了多少次?
- "出门"出现了多少次?
- ...以此类推
重要的认识:
大模型这一步做的是统计,而不是思考。它问的不是"逻辑上下一个词应该是什么",而是"历史上这种情况下下一个词通常是什么"。
这解释了为什么大模型有时候会说出很聪明的话(因为统计规律确实反映了正确的知识),有时候也会说出荒唐的话(因为它只是在"赌概率")。
第四步:我选一个最可能的词
04 | 采样输出(Sampling Output)
场景还原:
现在大模型有了一个概率分布(如上面所示)。接下来的问题是:怎样选择?
有两种策略:
策略A:贪心采样(Greedy Sampling)
规则很简单:选概率最高的。
erlang
[去散步] → 32% ← 选这个!
[出门] → 28%
[休息] → 18%
...
这样做的好处是:结果最稳定,最有可能"正确" 。
坏处是:内容容易重复和千篇一律。
如果你每次问大模型同一个问题,它会给你几乎完全相同的答案。
策略B:随机采样(Random Sampling)
按照概率,随机选择一个词。
就像转一个转盘,32%的区域里"去散步",28%的区域里"出门",然后随机转动指针。
这样做的好处是:结果多样化,每次回答都不一样。
坏处是:有时候会选出一些"概率很低但突然出现"的词,导致内容有点奇怪。
实际应用:
大多数大模型使用的是"温度"参数来控制这两个极端之间的平衡:
- 温度=0:完全贪心采样(最稳定)
- 温度=1:完全随机采样(最多样)
- 温度=0.7:介于两者之间(大多数应用的默认值)
第五步:我把新词加到你的话里,然后重复
05 | 迭代生成(Iterative Generation)
场景还原:
现在大模型选了一个词------比如"去散步"。
接下来发生的事情很简单,但非常强大:
它把这个新词加到原文本的末尾,然后重复第2-4步。
让我展示整个过程:
erlang
第1次循环:
输入:"今天天气真好,我想"
↓(经过第2-4步)
选择:"去"
结果:"今天天气真好,我想去"
第2次循环:
输入:"今天天气真好,我想去"
↓(经过第2-4步)
选择:"散"
结果:"今天天气真好,我想去散"
第3次循环:
输入:"今天天气真好,我想去散"
↓(经过第2-4步)
选择:"步"
结果:"今天天气真好,我想去散步"
第4次循环:
输入:"今天天气真好,我想去散步"
↓(经过第2-4步)
选择:","
结果:"今天天气真好,我想去散步,"
第5次循环:
输入:"今天天气真好,我想去散步,"
↓(经过第2-4步)
选择:"呼"
结果:"今天天气真好,我想去散步,呼"
...继续循环...
直到大模型选出了[结束标记],生成过程才停止。
最终结果:
arduino
"今天天气真好,我想去散步,呼吸一下新鲜空气,放松身心。"
完整的微博在你眼睛一眨眼的功夫就生成好了。
深层理解:为什么看起来这么聪明?
现在让我们回到最开始的问题:大模型为什么能生成这么连贯、这么"有意义"的文本?
答案其实很意外:它根本不是在思考,而是在进行一个机械但高度优化的数学运算。
具体来说:
1. 神奇的统计规律
大模型在训练时,接触过数万亿个词的组合。这创建了一个巨大的"统计记忆":
- 在所有文本中,"今天天气很好"后面跟"去散步"的频率有多高?
- "我想"后面通常跟什么词?
- "放松身心"通常怎样结尾?
正是这些统计规律,使得大模型能生成"看起来很自然"的文本。
2. 参数的力量
大模型有数十亿甚至数万亿个参数(可调节的权重)。这些参数共同作用,把这些统计规律"压缩"存储在神经网络中。
所以当你输入一个问题时,大模型实际上是在:
- 调用这些参数
- 执行数学运算
- 从概率分布中采样
3. 涌现能力
有趣的是,当参数数量足够多、训练数据足够大时,一些"意想不到"的能力会出现:
- 模型能回答从未在训练数据中见过的问题
- 模型能理解"含义"(虽然它实际上只是在做数学)
- 模型能执行多步骤的逻辑推理
这些被称为"涌现能力"------大模型做的是统计,但统计足够复杂时,就呈现出了"智能"的样子。
这个过程有什么局限?
理解了这个5步过程后,你也就理解了为什么大模型有时候会:
1. 编造信息
因为它只是在"填概率",如果某个词的概率是正数,它就可能被选中------即使这个词在这个上下文里没有根据。
2. 处理数学计算很差
因为"1+1=2"这样的计算,根本不是概率问题。大模型没有专门的计算模块,只能靠概率去"猜"答案。
3. 知识过期
因为大模型的知识来自训练数据的统计。2024年的新闻事件,如果没有在训练数据中出现过,大模型就无从知晓。
4. 容易被欺骗
因为它只是在做模式匹配。如果你用巧妙的prompt,可以让它做出不该做的事情。
最后的思考
当你看到一条"聪明的AI回答"时,不妨停下来想一想:
这真的是AI在思考吗?还是它只是在用难以想象的复杂性来做统计?
答案是:两者都是。
从某种意义上,统计足够复杂,就变成了智能。正如人类的思维也是由神经元的电化学过程组成的,但我们说人在"思考"一样。
大模型的5步生成过程看似简单:
- 拆成Token
- 理解上下文
- 计算概率
- 选择词汇
- 重复迭代
但这个过程重复数百次、数千次,加上数万亿个参数的协同作用,就产生了让人惊叹的结果。
这也是为什么有人说:大模型是"大力出奇迹"------因为它真的就是靠着巨量的参数、巨量的数据、和巨量的计算,实现了这种表面看起来"智能"的行为。
下次当大模型给你一个答案时,你会想到它在背后经历的这5个步骤吗?
想了解如何开发设计图中的AI应用?右下角扫码了解

