在调用大模型 API 时,仅仅设计好 prompt 有时还不够,输出结果的“风格”和“稳定性”往往取决于几个关键参数的微调。temperature、top_p 和 top_k 是其中最核心的“采样参数”,它们共同决定了模型如何从候选词中做出选择。本文将结合个人实践,聊聊如何理解和调优这些参数。
一、理解 temperature:给模型的“创造力”调温
temperature 参数是控制生成结果随机性的开关,它的值通常是一个介于 0 到 2 之间的浮点数。你可以把它想象成给模型的“大脑”调节兴奋度。
当 temperature 设置得很低(例如接近 0)时,模型会变得非常“保守”和“确定”。在每一步生成时,它会几乎 always 选择概率最高的那个词。这就像一个严格遵守规则的答题机器,输出结果高度一致、可预测,非常适合需要事实性、准确性的任务,比如数学计算、代码生成或摘要提取。
而当 temperature 设置得较高(例如 1.0 或更高)时,模型的“创造力”被激发,它会更敢于选择那些概率不是最高、但也在候选范围内的词。这会导致输出结果更加多样、发散,有时甚至出人意料,适合创意写作、头脑风暴或生成多样化内容的场景。过高的温度也可能导致输出变得语无伦次或不连贯。
二、top_p 与 top_k:在概率分布中划定“候选圈”
如果 temperature 调控的是候选词概率分布的“尖锐”或“平坦”程度,那么 top_p 和 top_k 则是在这个分布上划定一个“候选词圈”。