模型参数相关
要彻底理解这几个参数,我们需要先回到大模型生成文本的底层原理:自回归与概率采样。大模型在预测下一个词(Token)时,并不是直接输出一个确定的词,而是为词表中的所有词计算出一个“原始得分”(Logits)。随后,系统会将这些得分转化为概率分布,并从中“抽卡”(采样)决定最终输出哪个词。Temp...
要彻底理解这几个参数,我们需要先回到大模型生成文本的底层原理:自回归与概率采样。
大模型在预测下一个词(Token)时,并不是直接输出一个确定的词,而是为词表中的所有词计算出一个“原始得分”(Logits)。随后,系统会将这些得分转化为概率分布,并从中“抽卡”(采样)决定最终输出哪个词。
Temperature、Top-k 和 Top-p
1. 核心三剑客:控制概率分布
Temperature(温度值):缩放概率的平滑剂
Temperature 作用在概率计算的最初阶段(Softmax 之前)。它的数学本质是调整得分的相对差距。
公式简化为:
- :原样输出原本的概率分布。
- (降温):当 趋近于 0 时,差距被无限放大。原来得分最高的词,概率会无限逼近 100%。这就变成了贪婪搜索(Greedy Search),模型变得非常确信、死板。
- (升温):得分之间的差距被缩小,分布变得平缓。原本概率极低的“冷门词”也有了被抽中的机会,模型变得更具发散性和创造力。
Top-k:简单粗暴的“截断”
虽然调低了 Temperature,但长尾的冷门词依然有极其微小的概率被抽中。为了绝对防止模型“抽风”吐出乱码或极其生僻的词,我们用 Top-k 划定一条绝对的“入围线”。
- 原理:将所有候选词按概率从高到低排序,只保留前 k 个词,把其余词的概率直接强制设为 0,然后重新归一化这 个词的概率。
- 适用场景: 意味着无论如何,模型只能在最合理的 50 个词里选。
Top-p(核采样 Nucleus Sampling):“动态”的截断
Top-k 有个缺陷:如果某个语境下只有 2 个词是合理的(概率极高),后面的词都很离谱,固定的 依然会把 48 个离谱的词放进候选池。Top-p 解决了这个问题。
- 原理:按概率从高到低累加,**直到累加和刚刚超过 **(比如 0.9)为止。
- 优势:它是动态的。如果概率很集中,候选池里可能只有 2 个词;如果概率很平缓,候选池里可能有 100 个词。它比 Top-k 更智能地剔除了长尾劣质词。 (在实际的 API 调用中,通常的生效顺序是:先用 Temperature 缩放分布 -> 应用 Top-k 截断 -> 应用 Top-p 截断 -> 最后采样)
为了让你更直观地感受到这三个参数是如何“挤压”和“截断”概率分布的,我为你生成了一个可交互的可视化组件。你可以拖动滑块,观察“抽卡”候选池的变化:
Show me the visualization
Seed(随机种子)
在完成上述所有概率截断后,底层其实是调用一个伪随机数生成器来“摇骰子”。
设定一个固定的 Seed(比如 seed=42),可以保证在 Temperature、Top-p 和 Prompt 完全一致的情况下,每次“摇骰子”的结果尽最大可能保持一致。这在做 Prompt 效果对齐、回归测试或 Debug RAG 链路时非常有用。
2. 进阶:其他极其有用的 API 参数
作为一个做过 Agent 架构的开发者,下面这几个参数你应该会感到非常亲切,它们是构建复杂 AI 系统的基石:
Stop Sequences(停止词/截断序列)
- 是什么:一个字符串数组,比如
["\nObservation:", "用户:"]。当模型在生成过程中一旦吐出这个字符串,生成会立刻终止,并且不会输出这个停止词。 - 为什么重要:在 ReAct Agent 架构中,这是最核心的参数。大模型在输出
Action: [调用天气工具]之后,如果不加 Stop,它可能会自己脑补Observation: [今天下雨]并继续往下编。设置stop=["Observation:"]可以强制模型在此刻停住,将控制权交还给你的 Golang 后端去真正调用 API。
Frequency Penalty / Presence Penalty(频率惩罚 / 存在惩罚)
- 是什么:
Frequency Penalty(-2.0 到 2.0):根据某个词在生成的文本中出现的次数进行惩罚。次数越多,惩罚越重。用来防止模型变成“复读机”(比如一直重复某段废话)。Presence Penalty(-2.0 到 2.0):只要某个词出现过(无论几次),就给予固定惩罚。用来鼓励模型转移话题,探索新的概念。- 为什么重要:如果你的 RAG 系统需要生成长篇综述报告,适当调高这两个值,可以显著提升文章的词汇丰富度,避免车轱辘话来回说。
Logprobs / Top_logprobs(对数概率输出)
- 是什么:开启后,API 不仅返回生成的文本,还会返回每个生成 Token 的具体概率值(以对数形式)。
- 为什么重要:这是做模型置信度评估的利器。比如你可以规定:如果模型输出某个意图分类结果时,其
Logprobs低于 -0.5(即概率低于 60%),系统就拒绝执行,转而向用户发起追问(Clarification)。这在严谨的业务场景(如懂车帝的精准报价匹配)中是极为有效的防幻觉手段。