Softmax函数与温度参数


一句话总结

Softmax将任意实数向量转为概率分布,温度参数(Temperature)控制分布的锐利程度,直接影响LLM生成文本的多样性与确定性。

核心概念

Softmax公式:softmax(z_i)=exp(z_i)/Σexp(z_j)。它确保输出非负且和为1,构成合法的概率分布。在Attention中,Softmax将QK^T的分数转为注意力权重;在输出层,将logits转为Token的概率分布。温度参数T修改公式为:softmax(z_i/T)。T<1时分布变尖锐(greedy倾向),高概率Token更突出;T>1时分布变平坦,低概率Token获得更多机会(更随机);T→0退化为argmax,T→∞退化为均匀分布。

为什么重要

Softmax是Transformer中出现最频繁的非线性操作。温度参数是推理阶段最重要的超参数之一:代码生成场景用低温度(0.0-0.3)追求准确性,创意写作用高温度(0.7-1.0)追求多样性。理解温度的本质有助于针对不同任务调出最优效果。

实践要点

数值稳定性:实际计算时先减去最大值max(z)再取exp,防止溢出;Attention中的缩放因子1/√d_k本质上也是一种温度调节;Top-p和Top-k采样通常与Temperature配合使用;训练时Temperature通常为1,推理时根据需求调整。

常见误区

误区一:Temperature=0就是贪心解码——数学上T=0会导致除以0,实际实现中T=0被特殊处理为argmax。误区二:Temperature越高生成质量越高——高温度增加多样性但也增加不连贯和幻觉的风险。误区三:Softmax的输出可以直接解释为置信度——softmax倾向于过度自信,经过校准(calibration)后的概率才更可靠。