为什么大模型的做事过程很啰嗦?
我看过大模型的会话导出内容,发现大模型的“思考过程”总是显得啰嗦、反复提及重复事实,为什么呢?
一、它的“思考”是逐词预测生成的外部化过程
大模型生成文字的本质,是根据前文预测下一个最可能的词,然后把这个词追加到前文,再预测下一个词。这个过程叫自回归生成。
这带来一个根本问题:它没有独立的“工作记忆”或“草稿纸”来暂存结论。 模型每一步能依赖的,只有当前上下文窗口里的文字。所以,如果它想“记住”某个中间结论,就必须把它写出来。写出来之后,下一步才能“看到”它。于是,一个事实被反复写进上下文,就成了一种“外部记忆”手段。
二、为什么反复提及同一个事实?
1. 用重复来“锚定”中间结论
在长链条推理中,模型需要不断确认前提。比如:
“A 是 B,所以……(几步之后)……因为 A 是 B,所以 C……”
这个“因为 A 是 B”的重复,不是它忘了,而是它需要把 A 是 B 重新拉回当前上下文,防止在后续预测中偏离。重复是一种自我提示。
2. 训练数据里的“推理模板”被模仿
很多训练语料(教材、解题过程、论坛讨论、Chain-of-Thought 数据)本身就带有重复强调的写法。模型学到的是“推理时应该这样写”,于是把这种啰嗦风格也复制了出来。
3. 强化学习倾向于“把步骤写全”
在 RLHF(基于人类反馈的强化学习)中,人类标注者往往更偏好步骤完整、理由充分的回答,而不是跳步的答案。模型因此被奖励去“把话说满”,包括反复确认关键事实。写得越全,越不容易被判为“漏了前提”。
4. 没有真正的“全局规划”
人类思考时可以并行地在脑中保留一个整体框架,知道哪些是已知、哪些已证。大模型没有这种全局状态,它只能线性地往前推。因此它无法像人那样“这个已经说过了,不用再说”,而是每遇到一个需要该事实的节点,就重新把它调出来说一遍。
5. 上下文窗口的“近因效应”
实践中模型对近期上下文利用更充分。如果关键事实出现在很早的位置,随着生成推进,它的影响会减弱。为了保持逻辑一致,模型倾向于在靠近当前生成位置的地方重新陈述该事实,相当于给自己“刷新缓存”。
三、那,这算是缺点吗?
看场景:
- 对复杂推理:适度的重复其实是必要的,相当于人类打草稿时反复写已知条件。
- 对简单问答:就是冗余,让人读起来累。
- 对可解释性:啰嗦反而让它的“思路”更容易被检查。
所以,这种啰嗦本质上是一种用序列化文本模拟工作记忆的补偿机制。它没有独立的思考缓存,只能把想到的都写出来;而训练又鼓励它写全、写细,于是就成了我们看到的“反复提及同一事实”。
如果想让它简洁,通常可以通过提示词要求“直接给结论”“不要重复前提”,或者用更结构化的输出格式来约束。但是,副作用也是会有的!
- 点赞
- 收藏
- 关注作者
评论(0)