Softmax 函数的用途很简单——用于归一化任意数列为概率。

其原理为:

  • \( \forall \vec{v}, \forall v_i \in \vec{v}: v_i \in R \)
  • 计算 \( \hat{v_i} = e^{v_i} \) ,则必有 \( \hat{v_i} > 0 \)
  • 计算 \( \frac{\hat{v_i}}{\sum \hat{v_i}} \) ,形成一个向量 \( \vec{\hat{v}} \) 。该向量即为 softmax 之结果。
  • 一般称上述的输入向量 \( \vec{v} \) 为 Logits,输出向量 \( \vec{\hat{v}} \) 为 Probabilities

这种归一化的特点是:接近最大值的次大值,在处理后的结果里仍然可以有一个较高的比例,不容易与最大值有量级上的差异。

大模型的温度就是应用在这一函数上

  • 在计算 \( \vec{\hat{v_i}} \) 时候,令 \( \vec{\hat{v_i}}=e^{v_i/T} \) , \( T>0 \) 即温度。
  • \( T \) 较大的时候,会给予低值更多权重,让归一化后的结果各值的分布更均匀,使得值更低的词更容易被选中。