温度和 top-p 到底在调什么:采样参数入门 从模型输出了什么说起很多人以为模型输出的是一个词其实它每次输出的是一整张概率分布——词汇表里每个词各有一个分数表示在这个上下文里它有多合适。真正决定最终吐出哪个词的是这张分布之后的采样策略。而温度和 top-p以及 top-k就是调这张分布形状的三个旋钮。温度把分布变尖或变平温度作用在概率分布上温度低分布变尖高概率的词更容易被选中温度高分布变平原本概率很低的词也有了机会。可以这样理解温度趋近 0几乎变成每次选概率最高的那个输出稳定、可复现但容易重复、显得呆板温度适中保留变化空间又不至于乱说温度偏高多样性上升但连贯性和事实性会下降top-p 与 top-k先把明显不合适的候选砍掉温度解决的是分布有多平但它不解决一个问题词汇表里有大量概率极低但数量庞大的词它们累加起来的总概率可能不小。温度调高时模型就可能从这些长尾里抽到明显不合理的词。top-p核采样的做法是把词按概率从高到低累加累计到某个阈值就把后面的全部砍掉只在前面的核心集合里采样。top-k 更直接只保留概率最高的前若干个。模型输出原始分数转成概率分布温度整体变尖或变平top-k / top-p砍掉长尾候选在剩余候选里采样输出这个 token拼回上下文进入下一步三个参数的对照参数作用对象主要影响典型使用场景温度整个分布输出随机性与多样性温度低偏稳定高偏创意top-k候选数量硬性限制候选池大小简单直接但池子大小不随场景自适应top-p候选累积概率自适应地限制候选池常与温度搭配控制长尾带来的离谱输出实践中常见的搭配是先用温度定整体基调再用 top-p 兜住长尾。两者不是独立作用调一个往往需要重看另一个。三个常见误解误解一温度越高越有创意。温度提高的是随机性随机性不等于创意。超过某个点输出会先失去连贯然后才可能偶尔出现意外的组合。误解二温度设为 0 就完全可复现。即便是贪心解码实际工程里仍可能受并行计算、批处理、数值精度等因素影响而出现细微差异。要严格复现需要额外的工程约束。误解三把参数当调优的门槛。大多数体验问题来自提示与上下文而不是采样参数。先修输入再调旋钮顺序反了会一直在错误的层面上调参。一套简单的设定思路先明确你要的是稳定还是发散——这决定了温度的区间用 top-p 设一个上限确保长尾里那些明显不合理的词进不来固定一个基线配置用它跑你自己的任务集观察失败模式只改一个参数、只改一个方向确认影响后再动下一个收尾温度决定你允许它多冒险top-p 决定哪些候选根本不参与冒险。把这两个旋钮和分布形状对应起来调参就不再是凭感觉试数字而是有方向的调整。