先这样答
模型每一步生成 token 时,给出的是整个词表上的概率分布,采样参数决定「从这个分布里怎么选」。temperature 控制分布的形状:小于 1 时概率差距被放大,高概率选项更突出;大于 1 时分布被抹平,冷门选项更容易被选中。temperature 趋近 0,就几乎等价于每步都选概率最高的 token。
top-p(也叫核采样)从另一个角度控制:把候选按概率从高到低排序,从最高处开始累加,只保留累计概率达到 p 的那一小撮,再在这撮里按概率采样。它是动态的:分布尖锐时候选自然少,分布平缓时候选自然多。两个参数可以同时设,temperature 调形状,top-p 截候选范围。
怎么设:要稳定、可复现的任务(分类、信息抽取、结构化输出)把 temperature 调低甚至设 0;要多样性的任务(创意写作、头脑风暴)适当调高。没有万能值,拿自己的典型任务做小规模对比,比记任何推荐值都有用。
面试官会怎么追问
- 「
temperature=0就完全确定了吗?」 大体上每步都取最高概率 token,但推理是浮点运算,批处理、并行切分这些实现细节可能让结果在不同环境间有细微差异。要接近工程级一致,得固定随机种子和运行环境,并接受「基本一致」而不是「绝对一致」。 - 「两个参数要一起调吗?」 一次只动一个,否则说不清效果是谁带来的。常见做法是先固定一个在常用值,再扫另一个;两个同时拉高,容易采到低质量的冷门 token。
- 「为什么不干脆永远选最高概率?」 那叫贪心解码,输出最稳,但开放式问题下答案千篇一律,还容易陷入重复循环。适度的随机让对话自然,这也是聊天场景默认带一点温度的原因。
回答的坑
- 把
temperature说成「控制准确率」。它不改变模型认为什么是对的,只改变选 token 的策略;答错不是温度的锅,调到 0 也救不了模型本来不会的题。 - 把「官方推荐值」当教条。参数效果和任务、模型版本都相关,正确做法是在自己的任务上实测对比,而不是背数字。
同系列的题
—— 本题完 ——