WMX · 随记
·AI· 3 分钟阅读

温度参数:改变候选分布,不保证事实正确

调低温度常被理解为“更准确”,但它直接改变的是采样分布的集中程度。模型若把错误答案排在首位,更集中也可能更稳定地输出错误。

▶ 本文含视频讲解
▶ 教学视频手动播放 · 英语讲解

Let's build GPT: from scratch, in code

结合模型讲解理解本文实验的背景;正文提供可独立运行的简化示例。此为外部原版课程,多篇笔记可能共用;未剪辑为本文专属视频。

播放器需要能访问 YouTube 的网络;若这里无法加载,可打开原视频。本文与本地图解仍可独立阅读。

AI 系列概览:模型机制、系统边界与效果评估
AI 系列概览:模型机制、系统边界与效果评估 点击图片查看大图 ↗

问题从哪里出现

调低温度常被理解为“更准确”,但它直接改变的是采样分布的集中程度。模型若把错误答案排在首位,更集中也可能更稳定地输出错误。

理解核心机制

对 logits 除以正温度,再做 softmax。较小温度强化相对差异,较大温度让分布变平。下面比较分布本身,避免把一次随机样本当成结论。

动手做一个小实验

Python 3.11 或更新版本,仅使用标准库;将示例保存为 demo.py 后执行 python3 demo.py。数字与样本均为教学演示,不代表真实模型或服务器的测量结果。

Python13 行 · 可横向滚动
import math
def probabilities(logits, temperature):
    if temperature <= 0:
        raise ValueError("positive temperature required")
    scaled = [value / temperature for value in logits]
    peak = max(scaled)
    weights = [math.exp(value - peak) for value in scaled]
    return [value / sum(weights) for value in weights]

cool = probabilities([2.0, 1.0, 0.0], 0.5)
warm = probabilities([2.0, 1.0, 0.0], 2.0)
assert cool[0] > warm[0]
print(cool, warm)

适用边界与常见误区

服务接口里的 temperature=0 通常由特殊解码逻辑处理,不能直接代入除法。相同参数也不一定提供跨版本、跨硬件的严格可重复输出。

继续练习

固定 logits,画出不同温度下每个候选的概率;再交换最高分候选的事实标签,解释概率集中与事实正确的差别。

参考资料

阅读相关官方文档或原始资料 ↗

← 返回文章归档