一句话定义:贪心解码(Greedy Decoding)是让语言模型每生成一个 token,就直接选当下概率最高的那一个,选完立刻往下走,绝不回头。
它是怎么运作的
模型每走一步,输出的其实是一整张概率表。假设提示是"今天天气真___",候选词的分布可能是:好 0.6、热 0.2、糟 0.1……贪心策略就是永远拿第一名,把"好"塞进句子,再拿这句话去预测下一个词,如此循环。
打个生活的比方:这就像去一家饭店永远只点销量冠军那道菜。省事、点得快、基本不会踩雷,但你吃上一个月也会腻,而且永远遇不到那道"销量排第十、却刚好对你胃口"的小炒。
快在哪,无聊在哪
快,是因为每步只需要一次前向计算,不用同时维护好几条候选路径,也不用额外打分,算力开销和解码延迟都最低。而且它是确定性的:同样的输入、同样的模型,输出基本一模一样,非常方便复现和调试。
无聊,是因为局部最优不等于全局最优。每一步都挑"安全词",这些词还会互相强化——模型写了"非常重要",下一步"的"的概率被推得更高,于是"这是非常重要的"这类套话反复出现。整句话的联合概率未必最高,读起来却四平八稳。极端情况下会绕圈:"这个问题的答案就是……这个问题的答案就是……"
和相邻概念的差别
| 策略 | 每步怎么选 | 结果气质 | 算力 |
|---|---|---|---|
| 贪心解码 | 只留概率最高的 1 条 | 确定、可复现、偏保守 | 最低 |
| 束搜索(AI 词典:Beam Search">Beam Search) | 保留概率最高的 k 条路径 | 更稳妥,但更套路化 | 约 k 倍 |
| 温度采样(Temperature Sampling) | 按概率随机抽 | 多样、有惊喜也易跑偏 | 与贪心相当 |
顺带说清一个常见误解:束搜索也常被嫌"无聊",但成因不同——贪心是局部短视,只顾眼前这一步;束搜索是在全局范围里找高概率句子,而高概率文本天然就是最常见、最平庸的表达。
对从业者与普通人的意义
做工程时要清楚:贪心不是"最准"的策略,只是"最省"的策略。需要严格格式(比如稳定输出 JSON)、需要可复现的批处理任务,贪心或极低温度的采样是好朋友;需要创意和多样性,就得把采样放开。具体参数与默认值各家实现不同,以官方文档为准。
对普通用户,可以这样理解:默认设置下,AI 倾向于说最四平八稳的那句话。当你觉得回答干巴巴、车轱辘话来回说,很多时候不是模型不会,而是解码策略把它按在了安全区里。
