温度、top_p之外:真正影响输出稳定的三个设置

温度、top_p之外:真正影响输出稳定的三个设置

输出不稳定时,很多人的第一反应是去调温度。调低确实能减少随机性,但跑过几批任务会发现,同一套提示词今天和明天差得最多的地方,往往根本不是采样带来的。下面三个更该先检查。

一、输入长度与截断策略

材料太长被悄悄截断,是最隐蔽的一种不稳定:模型没变,它看到的内容变了。要确认三件事——什么时候截断、从哪一端截、截断有没有提示。没有提示的截断,等于每轮题目不同。

稳妥做法是先把长材料分段,按任务选需要的段,而不是把整包塞进去再祈祷不被截。分段方式后面另写一篇讲,这里只强调:先查截断,再调温度。

二、输出长度上限

上限设得太小,答案会被砍在半句,看起来像“格式乱了”;设得过大,又容易在结尾多出一段解释。这两类问题都常被误判成模型发挥不稳。给结构化输出时,按字段数量估一个略有余量的上限,比反复调采样参数有效。

三、停止条件与格式约束

有没有明确告诉它“到这里结束”、不允许代码块围栏、不允许前后客套话。缺了停止条件,模型会自然地补一句总结,解析就失败。把这类约束写成字段契约(字段清单、类型、缺失时怎么填),比一句“请严格遵守格式”稳得多。参数与默认值的核对方式,可以照 BackendWiki 把配置列成表的写法 来做;结构化内容本身该怎么组织,HTML 入门教程站讲的结构化数据实践 也提供了不错的参照。

一个排查顺序

遇到不稳定,我按这个顺序查:

  1. 输入是否被截断、每轮是否一致;
  2. 输出上限与停止条件是否合理;
  3. 字段契约是否写明缺失行为;
  4. 最后才动温度与 top_p。

前三项都是确定性的,改完就能验证;采样参数只能靠多跑几轮统计,成本高得多。

小结

“稳定”大部分是工程属性,不是玄学参数。把截断、上限、停止条件三处固定住,同一套提示词的表现通常就收敛了。剩下的那点波动,才轮到温度去管。