Sampling 负责“按概率抽签”;Temperature 负责在抽签前调整各候选的抽签面积——低温更集中保守,高温更平均开放。
| 位置 | logits → Temperature 调整 → softmax 概率 → sampling |
| 解决的问题 | 同一组模型分数,想控制回答更稳定还是更多样 |
| 输入 | 输出层产生的 logits |
| 输出 | 排序相同、但尖锐程度不同的概率分布 |
| 本课边界 | 先掌握功能和效果;实现只需知道 logits 除以 T,再复用 softmax |
Sampling 已经能按概率抽签,但原始概率可能:
我们需要一个旋钮,在不改变候选排名的前提下,控制“第一名领先得有多夸张”。这个旋钮就是 Temperature(温度)T。
| 低温 T<1 | 分布变尖:高分候选面积更大、低分更小 → 保守、稳定、接近 greedy |
| T=1 | 不改变原始分布 |
| 高温 T>1 | 分布变平:第一名优势缩小,次优候选面积变大 → 多样、开放、风险更高 |
固定 logits:mat=4, floor=3, sofa=2, dog=1
Temperature 先把每个 logit 除以 T,再复用已学的 softmax:
T=0.5:除以小数,相当于 logits 放大 2 倍 → 分差变大 → softmax 更尖。T=2:logits 缩小一半 → 分差变小 → softmax 更平。所有 logits 同除一个正数,所以候选的高低排序不变;改变的只是分差和概率比例。
Temperature = 调节模型对“次优答案”的容忍度
低温:我更相信第一名 · 高温:我愿意考虑更多备选
Temperature 直接调整的是 logits 的分差;softmax 再把调整后的 logits 变成概率;Sampling 最后按概率抽取。
低温会降低长尾候选概率;高温反而提高长尾候选概率。Temperature 不能彻底删除候选,真正过滤尾部要靠 Top-k / Top-p。
答完后,下一课讲 Top-k / Top-p:在抽签前删除哪些候选,防止随机性跑到不靠谱的长尾。