多稿优选(Best-of-N)
Best-of-N 是同一提示采样 N 次得到多个候选,再用规则、校验器或对比评审选出一份。它的依据很朴素:并行候选里「至少有一个合格」的概率随 N 上升,代价是近似 N 倍的算力。关键不在采样次数,而在于选优这一环是否可靠——没有可靠的评判依据时,多稿优选的价值会被抵消。
基本信息
| 适用 | 代码生成、结构化抽取、文案初稿、多约束输出 |
|---|---|
| N 取值 | 常取 3-8,先看规则过滤通过率再调 |
| 选优顺序 | 规则校验 → 校验器打分 → 模型对比 |
| 成本 | 近似 N 倍调用;过滤越严,后段成本越低 |
典型使用场景
- 代码生成:多个候选跑单元测试,取通过数最多的
- 结构化抽取:多个候选做 schema 校验,取第一个通过的
- 多约束文案:候选里选同时满足字数与禁忌项的
- 长文改写:用评分表逐维打分后合成结论
- 表格解析:候选之间对不上的单元格交人工复核
选优策略(由简到繁)
选优策略(由简到繁)
1. 规则过滤:schema 校验、必含字段、字数合规
2. 校验器打分:测试通过数、词表匹配、正则匹配
3. 成对比较:让模型对通过过滤的候选两两比较选优
# 纪律:能规则化就规则化,模型评判放最后
# 记录:保留所有候选与选择依据,便于回看
# 兜底:全部候选都不合格时,走重采样或转人工选优方式对照
| 方式 | 成本 | 适用与风险 |
|---|---|---|
| 规则过滤 | 低 | 格式类硬约束首选;通过率高时省下后续成本 |
| 校验器打分 | 中 | 有可运行测试或词表时最可靠 |
| 成对比较 | 高 | 无客观标准时用;需防位置与长度偏差 |
| 自评打分 | 低 | 最不可靠,容易被篇幅长、语气自信的候选骗过 |
N 不是越大越好。先统计规则过滤的通过率:如果 N=3 的通过率已经是 85%,把 N 提到 8 只是线性增加成本,合格率提升有限;反之通过率很低时,先改提示而不是加 N。
保留全部候选与选择依据(哪条规则淘汰了谁、比较结果如何),是排查「为什么这次选错了」的唯一线索。只留最终结果会让选优环节无法评测。