首页/AI/大模型部署与运维速查/n 与 best_of:多候选生成
推理参数与优化50 条

n 与 best_of:多候选生成

n 表示单请求返回多个候选;vLLM SamplingParams 还提供 best_of:采样多个结果后按累计概率挑选后返回;生成量随参数成倍放大。

多候选的两种做法

单次请求可以返回多个候选:一种做法是直接把多个结果返回给调用方,另一种是在内部采样多个候选后按累计概率挑一个返回。前者的成本体现在返回内容上,后者的成本体现在内部生成量上。两者都要按总生成词元数估算容量,而不是按请求数。

基本信息

适用平台OpenAI 兼容接口与自托管推理引擎
两种参数返回多个候选;内部多采样后择优返回
成本口径按总生成词元数估算,不是按请求数
典型用途候选挑选与质量对比

两种写法

两种写法
# OpenAI 兼容:{ "n": 2 }

# vLLM
SamplingParams(n=1, best_of=4)   # 内部生成 4 个候选,返回 1 个

典型使用场景

  • 质量优先场景:内部多采样后择优,用算力换质量
  • 对比实验:返回多个候选做人工或自动评估
  • 成本控制:先小流量验证收益,再决定是否常开
  • 容量核算:按生成量而不是请求数规划显存与耗时
  • 效果分析:记录最终选中的候选序号,便于评估择优策略

参数与成本

参数含义成本影响
候选数一次返回的结果个数返回体积与生成量成倍上升
择优候选数内部采样多少个再挑一个内部生成量放大,返回仍是一个
温度采样的随机性温度越高,候选之间差异越大
容量估算按总生成词元数而不是请求数:候选数或择优数上调会直接放大显存与耗时需求。
择优不等于一定更好:挑选用的是累计概率,与业务期望不一定一致,收益要按评测确认。
先小流量验证:多候选带来的成本是线性的,收益却随任务类型变化,值得先测一小批。
返回多个候选时注意接口契约:索引与顺序要稳定,客户端才能可靠地按位置取用。

易错点

  • 用多候选提升命中率:成本与延迟同步放大,先小流量验证收益再决定是否常开
  • 按请求数估算容量:总生成量才是资源消耗的依据,低估得非常明显
  • 把择优当质量保证:选择依据是概率,不保证符合业务预期
  • 多候选与流式返回混用:流式场景下候选如何返回需要额外约定清楚

数据来源与参考

  • OpenAI API 参考:n(platform.openai.com/docs)
  • vLLM 官方文档:SamplingParams(docs.vllm.ai)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌