大模型训练与微调(3)——温度值参数T(Tempreture)对模型效果的影响
温度值(Temperature)是控制语言模型生成结果随机性的重要参数,主要通过对概率分布进行缩放来影响输出多样性。以下从数学原理和实际示例两个角度分析其作用机制:
一、数学原理分析
设模型输出的原始logits为
z
=
[
z
1
,
z
2
,
.
.
.
,
z
n
]
z = [z_1, z_2, ..., z_n]
z=[z1,z2,...,zn],温度参数为
T
T
T,则经过温度调整后的概率分布为:
P
i
=
e
z
i
/
T
∑
j
=
1
n
e
z
j
/
T
P_i = \frac{e^{z_i / T}}{\sum_{j=1}^n e^{z_j / T}}
Pi=∑j=1nezj/Tezi/T
温度对概率分布的影响:
-
T → 0 T \to 0 T→0(低温):
- 放大最大logit值的权重,概率分布趋向于尖锐化(Peaky)。
- 模型倾向于选择概率最高的token,输出确定性高但多样性低。
-
T = 1 T = 1 T=1(默认):
- 保持原始logits的概率分布。
-
T > 1 T > 1 T>1(高温):
- 缩小不同logit值的差异,概率分布趋向于平滑化(Smooth)。
- 模型更可能选择低概率的token,输出多样性高但可能不连贯。
二、实例分析
假设模型对下一个token的logits为 z = [ 2.0 , 1.0 , 0.1 ] z = [2.0, 1.0, 0.1] z=[2.0,1.0,0.1],对应词汇为 [“蓝色”, “灰色”, “红色”]。
1. 低温( T = 0.5 T = 0.5 T=0.5)
调整后概率:
P
=
[
e
2.0
/
0.5
e
4
+
e
2
+
e
0.2
,
e
1.0
/
0.5
e
4
+
e
2
+
e
0.2
,
e
0.1
/
0.5
e
4
+
e
2
+
e
0.2
]
≈
[
0.88
,
0.12
,
0.00
]
P = \left[ \frac{e^{2.0/0.5}}{e^{4} + e^{2} + e^{0.2}}, \frac{e^{1.0/0.5}}{e^{4} + e^{2} + e^{0.2}}, \frac{e^{0.1/0.5}}{e^{4} + e^{2} + e^{0.2}} \right] \approx [0.88, 0.12, 0.00]
P=[e4+e2+e0.2e2.0/0.5,e4+e2+e0.2e1.0/0.5,e4+e2+e0.2e0.1/0.5]≈[0.88,0.12,0.00]
输出结果:几乎必然选择"蓝色"(如:“天空是蓝色”)。
2. 默认温度( T = 1 T = 1 T=1)
概率分布:
P
=
[
e
2.0
e
2
+
e
1
+
e
0.1
,
e
1.0
e
2
+
e
1
+
e
0.1
,
e
0.1
e
2
+
e
1
+
e
0.1
]
≈
[
0.65
,
0.24
,
0.11
]
P = \left[ \frac{e^{2.0}}{e^{2} + e^{1} + e^{0.1}} , \frac{e^{1.0}}{e^{2} + e^{1} + e^{0.1}}, \frac{e^{0.1}}{e^{2} + e^{1} + e^{0.1}} \right] \approx [0.65, 0.24, 0.11]
P=[e2+e1+e0.1e2.0,e2+e1+e0.1e1.0,e2+e1+e0.1e0.1]≈[0.65,0.24,0.11]
输出结果:较大概率选择"蓝色",偶尔选择"灰色"或"红色"。
3. 高温( T = 2 T = 2 T=2)
调整后概率:
P
=
[
e
2.0
/
2
e
1
+
e
0.5
+
e
0.05
,
e
1.0
/
2
e
1
+
e
0.5
+
e
0.05
,
e
0.1
/
2
e
1
+
e
0.5
+
e
0.05
]
≈
[
0.43
,
0.33
,
0.24
]
P = \left[ \frac{e^{2.0/2}}{e^{1} + e^{0.5} + e^{0.05}}, \frac{e^{1.0/2}}{e^{1} + e^{0.5} + e^{0.05}}, \frac{e^{0.1/2}}{e^{1} + e^{0.5} + e^{0.05}} \right] \approx [0.43, 0.33, 0.24]
P=[e1+e0.5+e0.05e2.0/2,e1+e0.5+e0.05e1.0/2,e1+e0.5+e0.05e0.1/2]≈[0.43,0.33,0.24]
输出结果:可能生成"蓝色"、“灰色"甚至"红色”(如:“天空是红色”,尽管逻辑性下降)。
三、实际应用场景
-
低温度( T < 1 T < 1 T<1):
- 适合需要确定性的任务(如代码生成、事实问答)。
- 示例输入:“法国的首都是”
- 输出:“巴黎”(概率99%)。
-
高温度( T > 1 T > 1 T>1):
- 适合需要创造性的任务(如诗歌生成、故事创作)。
- 示例输入:“夜晚的森林里”
- 可能输出:“萤火虫在闪烁” 或 “传来神秘的脚步声”。
四、温度与其他参数的关系
温度常与Top-k或Top-p采样结合使用:
- 高温 + Top-p=0.9:在多样候选词中随机选择。
- 低温 + Top-k=1:强制选择最高概率词(类似贪婪搜索)。
总结
温度值通过缩放logits改变输出概率分布的平滑程度:
- 低温度:输出稳定但保守,适合精确性任务。
- 高温度:输出多样但可能不连贯,适合创造性任务。
实际应用中需根据任务需求调整温度值,例如对话系统常使用 ( T=0.7 ) 平衡确定性与多样性。