别把 `temperature`、`top-k`、`top-p`、`beam search` 当成四个并列旋钮:很多生成问题,先调错的是“分布”还是“搜索”
别把temperature、top-k、top-p、beam search当成四个并列旋钮:很多生成问题,先调错的是“分布”还是“搜索”
很多人一看到模型输出太飘、太保守,第一反应就是一起改temperature、top-k、top-p,最后再顺手试beam search。但这四个名字根本不在同一层:前三个改的是下一步 token 分布,beam search改的是整条序列怎么搜。把它们当并列旋钮,调参只会越来越乱。
这篇文章不做“参数定义大全”,而是把这四个常见名字放回真实上下文里:它们各自作用在什么阶段,为什么经常被混用,什么时候应该调,什么时候根本不该碰。
1. 先把最容易混的说法摆出来
我最近在看一些 API 使用代码、本地推理脚本和教程时,最常见的混法主要有 4 种:
- 把
temperature当成“格式约束强度”,以为温度越低,JSON 就越规范。 - 把
top-k和top-p当成同一件事,只是一个写整数、一个写小数。 - 把
beam search理解成“更高级的 top-k”。 - 把所有问题都归因到“采样不稳定”,却没先区分
