大模型微调的“温度”参数,原来影响的是 softmax

大家好啊,我是董董灿。

在对大模型进行微调训练时,经常会看到几个重要的超参数,用来控制大模型生成文本的效果。

大模型微调的“温度”参数,原来影响的是 softmax_第1张图片

其中一个超参数叫做 Temperature,中文名字叫温度,初见时很是不解,为啥一个模型还有温度这个选项。

其实温度这个超参数,是可以控制模型输出的多样性。

可以这么理解,热力学上,温度越高,分子运动越剧烈;温度越低,分子运动越缓慢。

在大模型中也是这样,温度这个参数的值越高,代表了输出结果越多变,越"歇斯底里",用褒义词讲,叫越具有多样性和创意性。

大模型微调的“温度”参数,原来影响的是 softmax_第2张图片

那么这个参数到底是如何控制大模型的输出效果的呢?今天就一起来了解一下吧。

1、温度影响的是 softmax 函数

之前介绍过 softmax 这个函数,它的作用是将原始数据归一化到 0-1 之间的概率分布,并且拉开输入数据之间的差距,让大的数据概率变得更大,小的数据概率变得更小。

关于softmax的原理介绍,查看:10 分钟搞懂 softmax 的底层逻辑。

对应到大模型中,softmax 的作用体现如下:

  • 我们在跟大模型对话时,它会输出文本作为回答。模型在预测下一个输出的单词时,首先会为每个可能的词计算一个分数(这个分数基于模型的当前状态和它对语言的理解)。

  • 然后,softmax 函数将这些分数转换为概率(上面的链接查看具体过程),转换的过程就会使得分数较高的词的概率更高,而分数较低的词的概率更低,从而模型选择概率更高的单词作为输出。

这是 softmax 函数的作用。

不过这是没有 Temperature 参数的 softmax,一旦加上 Temperature 参数,就会使的这个函数发生一点微妙的变化。

首先,在不考虑 Temperature 的情况下,softmax 函数的标准形式是这样的:

图片

这里,Z 是一个向量,其中每个元素  Zi 代表模型为一个特定词语计算出的分数。理解为这是一对备选的下一个单词或词组的分数值。

函数 e^Zi 是对每个分数求指数值,分母是对所有分数的指数值求和,从而确保了所有单词的概率加起来等于1。

2、 高温度让 softmax 变得平滑

当引入 Temperature 参数 T 时,公式变为:

图片

在这个修改后的公式中:

  • 当 T = 1 时,它就是普通的 softmax 函数。

  • 当 T > 1 时,分数之间的差异会减小,导致概率分布更加均匀(增加随机性和创新性),T越大,概率差异越小。

  • 当 T < 1 时,分数之间的差异会增大,使得高分数的词的概率远远高于低分数的词(增加确定性和预测性)。

因此,Temperature 通过调节分数的缩放来影响 softmax 函数的输出,进而控制模型在生成文本时的随机性和创新性。

再说的通俗一点,本来模型倾向于选择最高概率的单词(老大)作为输出,一旦将 T 调高,那么大家的概率会变的更加均匀,大家的差距拉的不会很开,此时选择老大还是老二差别不大。

因此,模型可能会选择老大,也可能会选择老二,甚至老三,这样模型就有更多选择性,从而变得更加有创意。

因此,当你调整 Temperature 参数时,实际上是在调节这个转换过程中的“平滑度”或“尖锐度”。

大模型微调的“温度”参数,原来影响的是 softmax_第3张图片

上图展示了这个过程:在低温度下(黄色),softmax 输出的概率函数更加尖锐,意味着高分数的词语概率会更高,而低分数的词语概率会更低。

这导致模型更倾向于选择那些最有可能(概率最大)的词语,一种场景就是,给大模型相同的提问,每次都会得到类似的回答。

在高温度下(蓝色),softmax 输出的函数变得更平滑,即使分数较低的词也有合理的被选择概率。

此时对于相同的提问,就会使得模型具有更大概率生成不一样的回答,从而表现出更加有创意。

你可能感兴趣的:(机器学习,人工智能,算法)