别把 `temperature`、`top-k`、`top-p`、`beam search` 当成四个并列旋钮:很多生成问题,先调错的是“分布”还是“搜索”

📅 2026/7/5 5:45:23 👁️ 阅读次数 📝 编程学习
别把 `temperature`、`top-k`、`top-p`、`beam search` 当成四个并列旋钮:很多生成问题,先调错的是“分布”还是“搜索”

别把temperaturetop-ktop-pbeam search当成四个并列旋钮:很多生成问题,先调错的是“分布”还是“搜索”

很多人一看到模型输出太飘、太保守,第一反应就是一起改temperaturetop-ktop-p,最后再顺手试beam search。但这四个名字根本不在同一层:前三个改的是下一步 token 分布,beam search改的是整条序列怎么搜。把它们当并列旋钮,调参只会越来越乱。

这篇文章不做“参数定义大全”,而是把这四个常见名字放回真实上下文里:它们各自作用在什么阶段,为什么经常被混用,什么时候应该调,什么时候根本不该碰。

1. 先把最容易混的说法摆出来

我最近在看一些 API 使用代码、本地推理脚本和教程时,最常见的混法主要有 4 种:

  1. temperature当成“格式约束强度”,以为温度越低,JSON 就越规范。
  2. top-ktop-p当成同一件事,只是一个写整数、一个写小数。
  3. beam search理解成“更高级的 top-k”。
  4. 把所有问题都归因到“采样不稳定”,却没先区分