temperature 和 top_p 分别在调什么?什么场景调低、什么场景调高?
谁在问:一面必问(各类公司通用);2026 起常带参数弃用追问
口语化问法
- temperature 和 top_p 有什么区别?你项目里是怎么设的?
- 为什么一般不建议两个一起调?
- 你说抽取任务要设 temperature=0——那它能保证同一张单子每次跑出来都一样吗?
考察意图
表面是送分题,实际是一个双层筛子。
第一层筛「知不知道两个参数的机制差异」——这层大部分人能过。第二层才是真正拉开差距的:有没有把 temperature=0 误当成确定性保证,以及知不知道 2026 年这层旋钮正在被厂商收回。第二层过不去的候选人,通常也没做过一致性回归测试和跨模型迁移。
参考答案
60 分答案(及格线)
模型每一步会输出一个在词表上的概率分布。
temperature 调的是这个分布的形状:低温放大候选之间的差距,分布更尖锐、输出更确定;高温压平差距,让低概率的词也有机会,输出更发散。
top_p 是核采样,按概率从高到低累加,累计到 p 就截断,只在这个「核」里采样,相当于砍掉长尾。
一个改形状,一个砍范围。抽取、分类、生成 JSON 这类要可预期的任务用低温;文案、起名、头脑风暴用高温。一般只调一个,两个同时收紧容易让输出僵化重复。
90 分答案(有生产经验的回答)
在上面基础上加三点:
第一,temperature=0 不等于可复现。 贪心解码只去掉了采样这一层随机,上游还有:浮点加法不满足结合律、GPU 归约顺序随批次变化;服务端动态批处理导致 kernel 选择不同;MoE 路由在批内有交互;以及同名模型的小版本更新。所以我在设计文档里从来只写「高度稳定」,并配一个多次采样一致率的指标,不写「确定性输出」。
第二,也有低温反而错的场景。 self-consistency 这类多路采样投票,温度必须不为 0——否则多次采样完全相同,投票机制直接失效。造评测集、做数据增强时同理,需要的是覆盖度。
第三,截至 2026-08,这层旋钮正在退场。 Claude Opus 4.7 及以后、Sonnet 5 上,把 temperature / top_p / top_k 设成非默认值直接返回 400;OpenAI 的推理模型同样拒绝非默认采样参数。原因是推理型模型内部要跑多条路径再择优,压到 0 会让路径塌缩。取而代之的是 effort 这类「花多少力气」的控制(low / medium / high / xhigh / max),它影响的是整个响应的 token 花费,包括工具调用次数。所以现在我把「稳定性」拆开分配:格式稳定交给结构化输出,事实稳定交给检索与校验,风格稳定交给系统提示词,深度与成本交给 effort。
追问链
两个一起调会发生什么?为什么建议只动一个?
期望作用叠加且互相掩盖 —— 低温已让分布尖锐,再压top_p等于二次收窄、容易陷入重复;高温再放大top_p则彻底失控。更实际的理由是可归因性:只动一个,才能把效果变化归到这个变化上信号从「调参要可归因」角度回答 → 比只背「官方建议只调一个」强一档temperature=0能保证同样输入同样输出吗?期望不能。至少说出两条机制原因:浮点归约顺序 / 动态批处理 / MoE 路由 / 版本漂移信号本题最重要的分水岭:答「能」→ 基本没做过一致性回归测试;答「不能」却说不出任何机制原因 → 听说过、没验证过那要做到真正可复现,你怎么做?
期望分层:能用代码保证的绝不交给模型(枚举映射、数值计算、格式拼装)→ 结构层用约束解码保证 schema 合法 → 语义层做多次采样一致率监控并设阈值告警 → 供应商侧固定具体模型版本号、不用浮动别名 →seed只在明确支持时当辅助。核心是可复现是系统属性,不是参数属性信号说出「把确定性需求下沉到代码」或等价表述 → 明确的正向信号有没有反过来的场景 —— 温度调低反而是错的?
期望self-consistency/best-of-n这类要采样多样性的方法(温度为 0 则多次采样完全相同,投票直接失效);创意与命名任务;用模型造评测集、做数据增强时需要覆盖度信号举得出self-consistency→ 通常真读过评测相关实践,而不只是调过参抽取服务靠
temperature=0稳效果,新模型直接 400,业务不许回退,怎么办?期望① 止血修在正确的层:网关按能力白名单剔参数,不在业务代码加 if(升级就重演) → ② 控制点重分配:格式给结构化输出、语义靠提示词收紧加字段级校验、深度与成本改effort(同会话内恒定,否则击穿 prompt 缓存) → ③ 重做基线:控制维度换了一套,旧经验不能映射,评测集上重跑一致率与准确率定effort→ ④ CI 加跨模型参数兼容性检查信号主动点出「SDK 能编译过、只有服务端才拒」→ 迁移过;答「换回还支持这参数的老模型」或「try-catch 忽略掉」→ 差
temperature=0 ≠ 可复现)答错的,基本没做过一致性回归;第 5 层考旋钮被厂商收回之后,你把控制点搬到哪一层。评分要点
- 说清 temperature 改分布形状、top_p 截断候选范围
- 给出至少两类任务的具体取值区间
- 说明为什么一般只调一个(可归因性)
- 明确 temperature=0 ≠ 可复现,并给出机制原因
- 知道存在「低温反而错」的场景(如多路采样投票)
- 知道 2026 年新一代模型已弃用这些参数、改用 effort 类控制
- 能把「稳定性」拆解给多个责任层,而不是压在一个参数上
- 迁移方案落在网关层与评测重做,而非业务代码打补丁