前言

我们用大模型时 总会遇到 temperature 和 top-p, 现在我们就详细看下 这两个参数是如何工作的


提示:以下是本篇文章正文内容,下面案例可供参考

0 大模型的一般过程

一般的大模型流程如下
在这里插入图片描述
我们会按照逻辑需求讲解,先讲 logits, 再讲概率转换, 再讲加权,再是 温度 和 top-p

1 logits

当我们对模型提问时, 如果只通过 分数(logits)来判定
那么大模型会有如下过程

在这里插入图片描述

大模型会一个一个token直到生成答案: 肉夹馍和凉皮
但是你每次这么问, 只会每次都是这个结果, 只有一种答案不符合我们人类对于答案多样的情况,比如可以批萨和鸡腿, 米饭和鱼香肉丝等等.
其实第一次 的 米饭也是可以的, 那么怎么做可以让模型的输出多样化?

2 概率转换

这时需要祭出softmax, 专门将 logits 转化为概率
s o f t m a x ( z i ) = e z i ∑ j = 1 K e z j softmax(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} softmax(zi)=j=1Kezjezi

这个公式有三大好处:
分子 ( e z i e^{z_i} ezi):
利用指数函数,将模型输出的原始得分(Logits,可正可负)全部映射为正数,且分值越高的元素,指数膨胀后变得越大(拉大差距)。

分母 ( ∑ e z j \sum e^{z_j} ezj):
对所有元素的指数得分进行求和,起到归一化(Normalization)的作用。

最终结果:
使得所有输出的 P ( i ) P(i) P(i) 都在 ( 0 , 1 ) (0, 1) (0,1) 之间,且所有元素的概率之和严格等于 1。这正是大模型在 Prefill/Decode 阶段用来预测下一个 Token 概率分布的底层数学魔术。

那么途中的这几个结果的soft max 结果则是: [51.36%, 0.04%, 25.51%, 23.08%, 0.01%]
在这里插入图片描述

现在有了个概率, 下面还需要操作

3 加权采样

加权采样的原理就是: 轮盘赌算法(Roulette Wheel Selection)
我们有如下数轴0~100,
我们按照概率的大小分配区间的大小, 我们假设有如下概率(筷子和饭店概率太小了不好画, 这个比例和前面无关哈)

在这里插入图片描述

如果永远选概率最大的(在你的图里就是永远无脑选 肉夹馍),这种流派叫做 Greedy Search(贪婪搜索)。缺点: 这样生成的文本会极其死板、不断重复车轱辘话;如果是 VLA 机器人,它的动作就会变得极其僵硬,一旦被卡住就永远不知道变通。

而通过这种“数轴+随机数”的加权采样机制:肉夹馍 概率大 ( 40 % 40\% 40%),随机数箭头有很高概率砸进它的领地。筷子 概率小 ( 10 % 10\% 10%),但随机数箭头依然有 10 % 10\% 10% 的小概率刚好砸中它。
这种“高概率的词经常选,低概率的词偶尔出现”的机制,赋予了大模型像人类一般赋予变化。

4 temperature

引入 Temperature T T T 后,公式在计算指数前,会将原始得分 z i z_i zi 除以 T T T P ( i ) = e z i T ∑ j = 1 K e z j T P(i) = \frac{e^{\frac{z_i}{T}}}{\sum_{j=1}^{K} e^{\frac{z_j}{T}}} P(i)=j=1KeTzjeTzi
T = 1 T = 1 T=1: 就是我们上面几轮计算的标准 Softmax。
T → ∞ T \to \infty T(高温): 得分差距被强行抹平,所有选项的概率趋于平分,模型开始“胡言乱语”或“乱动”。
我们上面的例子:
T = 0.5 T = 0.5 T=0.5
[69.04%, 0.00%, 17.02%, 13.94%, 0.00%]

T = 2.0 T = 2.0 T=2.0
[41.34%, 1.13%, 29.13%, 27.71%, 0.69%]

T = 3.0 T = 3.0 T=3.0
[36.85%, 3.34%, 29.18%, 28.23%, 2.40%]

你可以看到 批萨的选项和 米饭选项随着不同温度,会有不同的概率分布, 当我们严格时, 就是肉夹馍, 但我们升温时, 就有肉夹馍或者 米饭或者批萨的选项.

物理学渊源:玻尔兹曼分布(Boltzmann Distribution)

从科学本质上来说,Softmax 不是人工智能科学家凭空发明出来的,它是直接抄了统计物理学的作业。在物理学中,一个物理系统处在能量为 E i E_i Ei 的状态下的概率,遵循玻尔兹曼分布: P ( i ) ∝ e − E i k T P(i) \propto e^{-\frac{E_i}{kT}} P(i)ekTEi
物理含义: 能量越低的状态越稳定,粒子越倾向于呆在那个状态。映射到 AI: 原始得分(Logits)越高,代表这个 Token 在当前语义下越稳定、越合理。
使用 e e e 使得人工智能模型天然具备了模拟现实世界复杂物理系统统计规律的能力。
这里的 T T T 正是物理学中的绝对温度(单位为开尔文,Kelvin)。
这里有个统一,你想想 温度越高,分子越活跃,大模型开始发烧 其本质是一样的

5 top-p

还有个问题, 我们午饭吃什么,是不能吃 饭店的或者筷子的, 大模型的词汇有几十万个,这样前面几个高概率的词汇后, 会有长长的尾巴,我们称其为长尾词
假设 我们将top-p 设置为 80%
那么 只会输出 肉夹馍, 批萨 和 米饭
所以top-p 就是一个 clip, 去掉长尾垃圾词

总结

1 temperature + top-p 如何影响输出
2 为什么是temperature
3 工作原理

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐