首页/AI/大模型部署与运维速查/min_p:按峰值比例过滤候选
推理参数与优化50 条

min_p:按峰值比例过滤候选

按当步概率峰值比例过滤:只保留概率不低于「峰值 x min_p」的候选;相对固定阈值更能跟随分布形态变化,vLLM 与 llama.cpp 均支持。

min_p 是什么

min_p 按当步概率峰值的比例过滤候选:只保留概率不低于「峰值 × min_p」的 token。相比固定阈值的 top_p,它能跟随每步分布形态变化——模型很确定时自动收紧候选,不确定时放宽,因此在不同长度与不同确定度的段落里表现更稳定。vLLM 与 llama.cpp 均支持该参数。

基本信息

作用按峰值比例过滤候选 token
取值0~1 的小数,常见 0.02~0.1
对比对象top_p(累积概率质量)
支持vLLM、llama.cpp 等
生效位置采样流水线中,早于随机采样

典型使用场景

  • 本地部署降低重复与跑偏,比反复调 top_p 更省事
  • 模型在确定段落偶发胡言时做兜底过滤
  • 与略高温度搭配,兼顾多样性与收敛性
  • 长文生成中压制长尾噪声词,减少无意义插话
  • 多语言或代码与自然语言混合的内容里分布形态变化大,固定 top_p 不好兼顾

两栈写法

两栈写法
# vLLM
SamplingParams(temperature=0.8, min_p=0.05)

# llama.cpp server:请求体或启动参数
# { "min_p": 0.05 }  或  --min-p 0.05

# 调整步子要小:0.05 → 0.03 → 0.02,每次用固定评测集对比

三个截断参数对比

参数过滤依据特点
min_p相对峰值比例跟随分布形态
top_p累积概率质量阈值直观、易解释
top_k候选个数与分布形态无关
与温度配合是常见组合:温度略高保持多样性,min_p 收掉长尾噪声。调参要小步走并用固定评测集对比,不要同时动多个采样器。
各框架默认值不同:不显式指定时生效值由服务端默认与模型配置共同决定,做对比实验前先把默认值查清楚。
常见起点在 0.05 附近,再按业务评测微调;把 min_p 单独拉出来做消融,才能确认收益来自它而不是同时改过的温度。
min_p 也能与 top_k 组合:先按比例收掉长尾,再用 top_k 兜一个候选数上限,适合分布特别平缓、候选格外多的场景。

易错点

  • 把 min_p 当 top_p 用:一个是比例阈值、一个是累积质量,迁移取值必须重新标定
  • 一次同时改温度和 min_p:效果无法归因,评测结论不可复用
  • 取值设得过高:候选被砍太狠,输出变得刻板重复
  • 忽略框架默认值:以为没设就不生效,实际默认值已经在影响输出
  • 不同引擎的默认温度与 top_p 不同:只调 min_p 就横向对比两个引擎,结论不可靠
  • 在小样本上调出最优值就写进生产默认:样本与场景都不同,结论未必可迁移

数据来源与参考

  • vLLM 官方文档:SamplingParams(docs.vllm.ai)
  • llama.cpp server 文档(github.com/ggml-org/llama.cpp)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌