调用大模型 API 时,除了提示词,还有一组经常被忽略的参数:temperature、top_p、top_k、频率惩罚等。它们控制的是模型如何从候选词中挑选下一个 Token。同样的提示词,参数不同,输出可能从稳定严谨变成天马行空。理解这些参数,是把提示词效果调稳定的基础功。

模型是怎么“选词”的

模型每生成一个 Token,都会为词表中所有候选项计算一个概率分布。比如在“今天天气很”之后,“好”的概率可能最高,“热”“冷”次之,“蓝”很低。采样参数决定了模型是每次都选概率最高的词,还是按概率随机抽取,以及抽取范围有多大。

Temperature:控制随机程度

Temperature 会在采样前调整概率分布的“陡峭程度”:

  • 低温度(接近 0):高概率的词变得更突出,输出更确定、更保守,重复调用结果基本一致;
  • 高温度:概率分布变得平坦,低概率词也有更多机会被选中,输出更多样,但出错和跑题的风险也更高。

需要注意,即使温度设为 0,由于底层计算和服务实现的原因,输出也不一定完全可复现。

Top-p 与 Top-k:限制候选范围

  • Top-k:只从概率最高的 k 个候选中采样;
  • Top-p(核采样):从概率最高的词开始累加,直到累计概率达到 p,只在这个集合里采样。

Top-p 比 Top-k 更灵活:当模型很确定时,候选集合会很小;当模型不确定时,候选集合会自动扩大。一般建议 temperature 和 top_p 只调其中一个,同时大幅调整两者会让效果难以预测。

惩罚类参数:减少重复

  • 频率惩罚:一个词出现得越多,再次被选中的概率就越低,用于减少车轱辘话;
  • 存在惩罚:只要一个词出现过就降低其概率,鼓励模型引入新话题。

这类参数设置过高会导致模型刻意回避必要的重复用词,比如专业术语和产品名称,反而影响表达。

不同场景的设置思路

以下是常见的起点建议,具体数值需要结合模型和评测调整:

信息抽取、分类、格式转换

使用低温度。这类任务追求一致和准确,没有创意需求。配合结构化输出约束效果更好,可参考让大模型稳定输出 JSON。

客服问答、知识库问答

使用较低温度。回答需要忠实于资料,同时语言稍有变化也可以接受。过高的温度会增加编造内容的风险,参见大模型幻觉的成因。

代码生成

一般使用低温度。但如果你会生成多个候选方案,再用测试筛选,适当提高温度能增加方案多样性。

创意写作、头脑风暴

使用中等或较高温度,鼓励多样化的表达。可以一次生成多个版本,再由人挑选。

常见误区

  1. 用温度弥补提示词问题:输出不理想时,先检查任务描述和示例是否清楚,而不是反复调参数;
  2. 推理模型照搬参数:部分推理模型对采样参数有限制或推荐固定值,使用前查看官方文档;
  3. 只测一次就下结论:采样有随机性,评估参数效果时应对同一输入多次调用,观察稳定性。

小结

Temperature 控制随机程度,top_p 和 top_k 限制候选范围,惩罚参数减少重复。大多数生产任务应从低温度起步,只有在需要多样性时才调高。把参数纳入提示词版本管理和评测流程中,比凭感觉调参可靠得多。