
大语言模型:一次回答背后的完整生成过程
一句话先说结论
大语言模型本质上是一个超大规模的文本续写器:它读进你输入的文字,不断预测“下一个最该出现的词是什么”,把预测结果拼回去,再预测下一个,直到自己觉得说完了。
听起来简单,但它跟“查字典”“搜索引擎”完全是两回事:它手里没有一份标准答案表,所有输出都是现场算概率算出来的。理解了这一点,你就能解释很多让人迷惑的现象:为什么它会一本正经地说错?为什么同一个问题每次回答都不完全一样?为什么有时候啰嗦、有时候又特别干脆?
本篇我不讲训练,只讲一件最实用的事:你按下回车之后,到它开口说话,中间到底发生了什么。
一次提问的完整旅程
我把它拆成 5 步,你可以对照着下面这张表看:
| 步骤 | 发生了什么 | 大白话类比 |
|---|---|---|
| 1. 切词 | 你的句子被切成一个个小片段(术语叫 token),可能是词、字或词的一部分 | 把一句话剪成一节节小乐高 |
| 2. 变数字 | 每个片段被映射成一串数字(向量),模型只认数字不认汉字 | 给每块乐高贴上一组坐标编号 |
| 3. 层层计算 | 数字流过几十上百层网络,每层都会用“注意力”让当前词看到上下文里相关的词 | 像传话游戏,每传一轮都回头确认一次语境 |
| 4. 算出概率表 | 最后一层输出的不是答案,而是一个覆盖整个词表的概率分布:每个候选词有多大概率是下一个词 | 出题老师给出一整页选项和分值 |
| 5. 采样并循环 | 按概率从中挑一个词,拼到已有文字末尾,回到第 1 步继续,直到生成“结束”标记 | 一个词一个词往外蹦,蹦到收尾信号才停 |
几个关键要点:
- 模型一次只生成一个词,不是整段整段地写。你看到的流畅长回答,是几百次“蹦一个词”循环出来的。
- 第 4 步输出的是概率分布,不是唯一正确答案。这意味着同一个位置本来就有好几个“说得通”的候选。
- 上下文窗口有限:它能同时看到的 token 数量有上限,超出的部分它就“忘了”,这也是为什么超长对话它会丢失开头的信息。
为什么每次回答都不一样
核心原因就在第 5 步:采样带随机性。
假设模型算出下一个词的概率表是这样的:
| 候选词 | 概率 |
|---|---|
| 猫 | 0.55 |
| 狗 | 0.30 |
| 鸟 | 0.10 |
| 车 | 0.05 |
如果“每次都选概率最高的”,输出会非常死板,永远只说“猫”。实际模型会在按概率加权的前提下随机抽:大概率抽到“猫”,但也有机会抽到“狗”。第一个词一旦不同,后面整条推理链就跟着分叉,于是两次回答彻底不同。
你可以用一小段代码直观感受这个机制(无需任何 API,本地就能跑):
import random
# 模拟模型给出的下一个词概率表
words = ["猫", "狗", "鸟", "车"]
probs = [0.55, 0.30, 0.10, 0.05]
# 多跑几次,看看抽出来的词并不固定
for _ in range(6):
pick = random.choices(words, weights=probs, k=1)[0]
print(pick)
你会发现“猫”出现最多,但“狗”“鸟”也会偶尔冒出来。这不是 bug,是设计——保留随机性,回答才不会千篇一律。
温度参数:你最值得学会的一个开关
既然随机性来自采样,那就一定有东西能控制它。这个开关叫温度(temperature),很多产品界面里叫“创造力”“随机性”“活泼程度”。
它的原理是对概率表做一次再加工:
- 温度低于 1:概率差距被拉大,高分选项更占优,输出更稳、更保守。
- 温度等于 1:按原始概率采样,标准行为。
- 温度高于 1:概率被压平,低分选项也有机会被抽中,输出更发散、更有惊喜也更容易跑偏。
实用选择表:
| 你想干什么 | 建议温度 | 效果 |
|---|---|---|
| 查事实、写代码、做数据提取、格式化输出 | 低(约 0 到 0.3) | 稳定、可复现、少废话 |
| 日常问答、总结、常规写作 | 中(约 0.4 到 0.7) | 平衡自然与准确 |
| 头脑风暴、文案创意、故事灵感 | 高(约 0.8 以上) | 天马行空,但需要你多筛一遍 |
注意:不同产品的叫法和取值范围不一样,有的根本不暴露这个参数,具体以官方界面或文档为准。
还有一招更通用的“土办法”:在提示词里直接写要求。比如“请给出唯一确定的答案”“只回答要点,不要展开”“请给出三种不同角度的方案”,效果往往和调低温度是一回事。
三个常见误区,顺手纠正
- 误区:它在“思考”出答案。 更准确的说法是它在反复采样下一个词。它没有独立的“事实库”,知识是压缩在参数里的统计规律,所以可能过时、可能记串。
- 误区:回答越长越可信。 长度只是生成循环跑得多,不代表正确。要验证关键事实,务必自己核对权威来源。
- 误区:换个说法问,它就换了套知识。 它的“知识”没变,变的是输入的上下文,而上下文会显著影响概率分布。这也是为什么同一个问题,问法不同、答案质量差别很大。
想更进一步,可以做这三件事
- 找一个能显示“生成过程”的界面,盯着文字一个个蹦出来,亲眼看一次第 5 步的循环。
- 同一个问题用“低温度/保守要求”和“高温度/创意要求”各问一次,对比差异,建立手感。
- 下次它答错时,先别急着骂,想想:是不是我给的上下文不够?是不是随机采样抽到了不常见的分支?这能帮你把大部分“AI 不听话”变成“我会调教”。
理解了“一次回答是怎么生成的”,你就拿到了看懂一切大模型产品的底层钥匙:概率、采样、上下文。剩下的技巧,都是在这三个词上做文章。