精选·模型与微调基础

temperature、top-p、top-k 到底怎么调:生成采样调参实战

91学AI·2026/7/13·8 阅读

考察点

这题考察的是你上线过模型服务没有。背得出定义只是及格,面试官想听的是:三个参数作用的先后顺序、什么业务场景配什么参数组合、调参踩过什么坑。追问常考「温度设 0 输出就确定了吗」「top-p 和 top-k 一起设会怎样」。

参考答案

三个参数各自在做什么

模型每步输出的是词表上几万个 token 的 logits(未归一化分数)。从 logits 到真正吐出一个 token,中间经过采样管线,三个参数分别卡在管线的不同环节:

temperature(温度) 作用在 Softmax 之前。实际计算是 logits 先除以温度 T,再做 Softmax。T 小于 1 时,高分和低分的差距被放大,分布变尖锐,模型更保守、更倾向选概率最高的 token;T 大于 1 时差距被抹平,分布变平坦,低概率 token 也有机会被选中,输出更多样。T 趋近 0 时退化为贪心(永远选最大概率那个)。

top-k 是硬性截断:只保留概率最高的 k 个候选,其余全部置零后再归一化采样。k=50 就是每步只从 50 个候选里挑。它的问题是一刀切:分布尖锐时 50 个候选里 49 个是垃圾仍有机会被抽到,分布平坦时真正合理的候选可能不止 50 个却被砍掉。

top-p(核采样) 是动态截断:把候选按概率从高到低排序,累加到 p(比如 0.9)为止,只在这个「核」里采样。分布尖锐时核里可能只有两三个 token,分布平坦时核自动变大。它自适应分布形状,是目前最主流的截断方式。

叠加顺序与相互作用

标准管线的顺序是:logits → 除温度 → Softmax 成概率 → top-k 截断 → top-p 截断 → 重新归一化 → 采样。温度改变分布形状,top-k/top-p 再切尾巴。三个一起开往往互相干扰,实战经验是:温度 + top-p 二件套足够覆盖绝大多数场景,top-k 要么不设要么放宽到 50 以上当兜底。把 top-k 设成 10 同时 top-p 设 0.9 这种组合,容易把候选集切得太小,模型在长句子里越走越窄,最后开始复读。

场景化调参组合

场景推荐配置理由
信息抽取、分类、格式化输出温度 0~0.2,top-p 1要的是稳定和可复现,多样性是敌人
Agent 工具调用、代码生成温度 0~0.3参数错误代价高,宁可保守
日常对话、客服温度 0.5~0.8,top-p 0.9自然不死板,又不至于跑偏
创意写作、头脑风暴温度 0.8~1.2,top-p 0.95多样性优先,接受偶发离谱

还有一组常被忽略的参数:presence_penalty 和 frequency_penalty,对已出现过的 token 降权,专治复读机。长文本生成如果模型开始循环输出同一个句式,先加 frequency_penalty 比调温度更对症。

两个高频误区

第一,「温度设 0 输出就完全确定」——在 API 层面不成立。贪心解码数学上是确定的,但 GPU 浮点运算的非确定性、服务端 batching 策略都会引入微小扰动,同一个 prompt 跑两次仍可能有差异。业务上要严格可复现,得在应用层做结果缓存或校验,不能指望采样参数。

第二,「幻觉靠调低温度治」。低温只能让输出更「自信地一致」,模型编造事实时是理直气壮地编,温度救不了知识性幻觉。幻觉要靠 RAG 和校验回路,那是另一套工具。

可能的追问

  • 除了贪心还有哪些解码策略?Beam Search(每步保留多条候选路径)在翻译时代是主流,但开放生成里输出死板,大模型基本弃用;多样性场景还有 Mirostat 等自适应方法,工程上用得不广。
  • 为什么低温下模型更容易陷入重复循环?贪心倾向选局部最优 token,一旦走进某个句式回路,每步的最优选择都是继续循环,惩罚参数就是用来打破这种局部最优陷阱的。
  • 流式输出和采样参数有关系吗?没有,流式只是把生成过程边算边吐,采样逻辑完全一样;但流式能让你尽早发现参数没调好导致的跑偏,线上建议默认开。

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.