首页/AI/大模型部署与运维速查/采样与束搜索:解码策略取舍
推理参数与优化50 条

采样与束搜索:解码策略取舍

贪心与采样逐 token 决策、单路径推进;束搜索同时维护多条候选路径,质量可能更稳但计算量按束宽成倍放大:生成类任务多用采样,候选精挑场景才考虑束搜索。

解码策略的取舍

贪心与采样都是逐词元决策、单路径推进;束搜索同时维护多条候选路径,质量可能更稳,但计算量按束宽成倍放大。生成类任务多用采样,只有需要精挑候选的场景才考虑束搜索。

基本信息

适用平台支持多种解码策略的推理框架
策略类型贪心、采样、束搜索
计算代价束搜索按束宽成倍放大
适用任务开放式生成多用采样,精挑候选才用束搜索

Hugging Face generate 示例

Hugging Face generate 示例
# 贪心(do_sample=False)
out = model.generate(**inputs, do_sample=False)
# 束搜索
out = model.generate(**inputs, num_beams=4, do_sample=False, early_stopping=True)

典型使用场景

  • 确定性输出:贪心或低温度采样用于需要稳定结果的场景
  • 多样性输出:提高温度或使用采样,适合创意类任务
  • 候选精挑:需要多条候选比较时用束搜索
  • 在线服务:高吞吐引擎普遍收敛到采样路径
  • 问题复现:固定随机种子后再复跑,结果才可比

策略与代价

策略输出特点代价
贪心确定性强、容易重复计算最低
采样多样性好、结果随机要固定随机种子才能复现
束搜索候选质量相对稳计算量按束宽放大
高吞吐服务引擎逐步收敛到采样与受约束解码路径:束搜索的支持情况以所用版本文档为准。
复现问题要固定随机种子:采样类输出不固定种子时,同一个请求两次结果不同,问题很难复现。
温度与束搜索不建议叠加:参数组合的语义在不同实现里差异较大,混用容易得到意外结果。
束搜索在长输出上的代价放大明显:候选路径越长,维持多路径的成本越高。
线上调参要小步走:温度与惩罚项的组合影响很大,一次只改一项才好归因。
判断差异要靠批量评测:单条样例的好坏受随机性影响很大,结论要落在统计结果上。

易错点

  • 把束搜索当免费的质量提升:束宽四倍近似多花数倍计算,在线延迟与显存都受影响
  • 在线服务里开束搜索:吞吐下降明显,通常得不偿失
  • 采样不设随机种子:线上问题无法复现,回归测试也不稳定
  • 只看单次输出质量:判断解码策略要按批量评测统计,单个样例容易误导

数据来源与参考

  • Hugging Face 生成策略文档(huggingface.co/docs/transformers)
  • vLLM 官方文档:解码(docs.vllm.ai)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌