提升大模型效果,有时候靠的是最朴素的办法:对同一个问题多生成几个答案,再从中挑出好的。这套「多生成、再筛选」的做法,就是拒绝采样。它用额外的算力去换更高的准确率,是推理优化里绕不开的一个基本技巧。
朴素的思路:多生成,再筛选
拒绝采样的名字来自统计学,核心思想却很好理解:与其指望一次就答对,不如多试几次,把不合格的结果「拒绝」掉,留下合格的。放在大模型语境里,就是让模型对同一问题产出多个候选回答,再用某个标准做筛选。
它能成立的前提是:生成比验证便宜。在很多任务里,让模型多吐几个答案的成本,低于人去仔细判断一个答案的成本;如果验证标准还能自动化,那这个思路的规模优势就更大。
完整流程:生成、筛选、留用或再训
一条清晰的流程分三步。第一步多生成:对同一个问题,让模型产出多个回答,数量可以是几个到几十个。第二步筛选:用确定的标准挑出合格的那些。第三步留用或再训:合格样本可以直接作为最终结果返回,也可以拿去继续训练模型,让它之后更少走弯路。
这三步里,真正决定质量上限的是第二步的筛选标准。标准越客观、越能自动化,拒绝采样就越划算;标准越主观,它的优势就越弱。
筛选标准从哪来
标准主要有三类来源。答案对不对,是最直接的一类:数学题看最终结果、代码看能不能跑通、逻辑题看结论是否自洽,这类任务对错能自动判断。第二类是人给的偏好,由标注者判断哪个更好,适用于标准难自动化的场景。第三类是模型自评,让另一个模型打分,成本低、规模大,但可靠性一般。
三类标准各有适用边界,实际使用时常常混用:先用自动验证筛掉明显错的,再对剩余样本做人工或模型判断,兼顾成本与质量。
它最擅长什么任务
拒绝采样最擅长「结果可自动验证」的任务:数学、编程、逻辑推理。因为对错能自动判断,筛选不需要人参与,成本低、规模大,可以放心地多生成。这也是为什么这些任务上,「多试几次再选」的效果提升往往明显。
而在开放性写作任务上,因为「好」没有客观标准,筛选要么依赖成本高昂的人工判断,要么依赖不够可靠的模型自评,效果就没那么明显。任务能不能自动验证,几乎决定了拒绝采样值不值得用。
三个代价:算力、多样性、偏差
拒绝采样不是免费的午餐。算力成本最直观:生成十个只用一个,等于成本翻了十倍。多样性下降是第二个代价:总是挑「最像标准答案」的,输出可能越来越趋同。偏差放大是第三个:筛选标准本身有偏差,筛出来的样本会把这种偏差固化进模型。
这三个代价相互关联。多生成推高了算力,严格筛选又压缩了多样性,而「标准答案」的定义一旦失准,整个流程反而会系统性地走向偏差。所以拒绝采样更适合作为「锦上添花」的优化手段,而非「从头建立能力」的训练主路径。
何时失效:开放任务上的局限
拒绝采样最大的失效场景,就是没有客观标准、或验证标准本身不可靠的任务。一旦「好」的定义模糊,筛选就变成另一种主观判断,多生成只是把成本放大,并不能真正提升质量。此时它解决不了「任务本身难定义」的问题,只能放大已有的能力,不能凭空创造能力。
它的另一层局限在于「生成」这一步的能力上限:如果模型本身产出的候选都不合格,筛得再严也无济于事。拒绝采样能做的是从「已有的好」里挑出更好的,无法从「没有的好」里变出好来。
三种筛选标准的对照
| 筛选标准 | 怎么判断 | 适合任务 | 主要局限 |
|---|---|---|---|
| 答案对不对 | 结果、代码能否跑通、结论自洽 | 数学、编程、逻辑推理 | 只限可验证任务 |
| 人给的偏好 | 标注者判断哪个更好 | 标准难自动化的场景 | 成本高、有主观偏差 |
| 模型自评 | 让另一个模型打分 | 大规模、预算有限的场景 | 可靠性一般 |
拒绝采样速查
- 核心做法:多生成几个答案,筛掉不合格的。
- 三步流程:多生成 → 按标准筛选 → 留用或再训。
- 最擅长:数学、编程等可自动验证的任务。
- 代价:算力翻倍、多样性下降、偏差放大。
它和「多试几次」的日常直觉
拒绝采样其实呼应了一个朴素的直觉:想得更久、多试几次,往往答得更准。一些产品「想得久一点、答得准一点」的背后,很可能就是在做多轮生成加筛选。理解了它,你也能看懂「抽卡」式的生成逻辑——多次生成、按需取用,本质上是同一种用算力换质量的思想,这和视频生成里的抽卡成本讲的是同一笔账。
从更宏观的视角看,拒绝采样只是「用生成加验证来提升大语言模型输出质量」的众多手段之一。它在可验证任务上的作用尤为突出,而生成类任务里类似的「多生成再挑选」也广泛存在于视频延展等需要从多个候选中择优的场景。


