参考:温度系数是可学习的参数,会在训练过程中被优化器更新。
深度学习中的温度参数(Temperature Parameter)是什么?-CSDN博客
1. 温度系数的作用机制
当增大T 的值时,分布变得更加的平坦(较大的值变得更小,较小的值变得更大);当减小T 的值使,分布变得更加尖峰(较大的值变得更大,较小的值变得更小)。
也就是说:
温度系数越小,分布越尖锐(温度系数控制剪碎程度的)
比如attention中计算每个token的得分的时候,在计算score的时候加了温度系数:
2. 为什么要这样做?
防止注意力崩溃到均匀分布:
在训练中,attn_guide_loss 使用 label smoothing 的 soft target(接近均匀分布)来监督注意力权重。如果没有温度下限约束,优化器会:
-
不断降低
temperature→ 让 softmax 变得更平滑(趋向均匀) -
极端情况 :
temperature → 0时,softmax 完全均匀分布 -
这会导致 ATT模块无法聚焦到真正重要的 token,失去了 attention pooling 的意义
3. 实际例子
假设有 77 个 token(含 padding):
-
temperature = 2.0:注意力权重相对均匀,每个 token 权重约 1.3%
-
temperature = 0.5:注意力更集中,可能 top-5 token 占 80% 权重
-
temperature = 0.1:极度集中,top-1 token 可能占 99%+ 权重
通过 clamp temperature ≥ 1.0,防止 softmax 过于均匀,保持注意力机制的选择性。