阅读指南
上一节我们学习了情境学习。本节将探讨Temperature(温度)参数如何控制AI的创造力。
这个参数对于开发者非常重要,因为它可以显著提高大模型回答的性能和质量。
用同一个问题,在不同Temperature下的回答,来展示这参数的效果。
问题:"给我讲一个关于猫的故事"。
Temperature = 0(完全确定性)
ChatGPT答案:
从前有一只名叫山葵的猫,它住在一个温馨的小镇上。山葵非常喜欢
晒太阳和追逐蝴蝶。每天早上,它都会在主人的床边等待,期待着一天的开始。
山葵的主人是一位慈祥的老奶奶。..
这种设置下,模型会选择安全、传统的开头,情节发展可预测。如果问同样的问题10次,每次回答几乎完全一样。
Temperature = 0.7(中等创造力)
ChatGPT答案:
山葵是一只好奇心极强的黑猫,她住在海边的一座灯塔里。有一天,当暴风雨来临时,山葵发现了一只被海浪冲上岸的小海豚。山葵想要帮助它,但她不会游泳。于是她开始鸣叫,引起了灯塔看守人的注意。..
中等创造力下,模型会给出更有创意的设定(如灯塔、海豚),情节有一定独特性。如果问10次,每次故事都不同,但都合理。
Temperature = 1.5(高创造力,接近疯狂)
量子猫薛定谔住在第五维度和第六维度的夹缝中。它同时存在又不存在,
是波也是粒子。有一天,它决定去时间的尽头旅行,在那里遇到了一个用星尘
做的老鼠。这只老鼠告诉薛定谔一个秘密:所有的猫其实都是宇宙意识
的碎片。..
高创造力下,模型会生成极其抽象和超现实的内容,逻辑连贯性下降,充满意想不到的元素。如果问10次,每次都是完全不同的、疯狂的故事。
Temperature控制着AI的"大胆程度"。
先解释Temperature这个参数。
回顾:ChatGPT如何生成下一个词
在第2节,我们讲过ChatGPT的核心机制:
输入"这部电影"后,模型计算出每个候选词的概率:
词 概率 说明
─────────────────────────────
很好 35% ← 最可能的选择
不错 25% ← 较可能
还行 20% ← 有一定可能
一般 10% ← 不太可能
很差 5% ← 很少选
...其他词 5% ← 极低概率
然后,模型从这个概率分布中采样一个词。
Note
什么是"采样"?
采样(sampling)就是从一堆可能的选项中,按照概率"抽取"一个出来。
比如模型给出5个词:很好(35%)、不错(25%)、还行(20%)、一般(10%)、很差(5%),采样就是根据这些概率随机选一个。就像抽奖,概率高的词更容易被抽中,但不是100%会抽到。
Temperature就是在采样之前,调整这个概率分布。
在生成概率分布时,原始分数没有归一化:
很好: 3.5
不错: 2.5
还行: 2.0
很差: -1.0
...
还需要对原始分数应用Softmax公式:
P(xi)=ezi/T∑jezj/TP(x_i) = \frac{e^{z_i/T}}{\sum_{j} e^{z_j/T}}
其中:
虽然归一化后的所有token的概率和都是1,但不同的Temperature会让每个预测词的概率数值不一样。如果不想理解上述公式,只需要了解下述的结论:
当T=1(默认):
很好: 35%
不错: 25%
还行: 20%
一般: 10%
很差: 5%
...
当T=0.5(降温):
很好: 55% ← 最高概率的词概率变得更高
不错: 25%
还行: 12%
一般: 5%
很差: 1% ← 低概率的词概率变得更低
...
这让概率的分布变得"尖锐"
当T=2(升温):
很好: 28% ← 最高概率的词概率下降
不错: 24%
还行: 22%
一般: 12%
很差: 8% ← 低概率的词概率上升
...
分布变得"平缓"
用图像可能更容易理解。
假设模型对"这部电影____"这句话,计算出以下几个词的概率:
当 T=0.1(低温,确定性强):
很好 ████████████████████████ 55% ← 概率大幅提升
不错 █████████ 25%
还行 █████ 12%
一般 ██ 5%
很差 █ 1% ← 概率被压制当 T=1.0(默认,平衡):
很好 █████████████ 35% ← 原始概率
不错 ████████ 25%
还行 ██████ 20%
一般 ███ 10%
很差 ██ 5% ← 原始概率当 T=2.0(高温,随机性强):
很好 ██████████ 28% ← 概率下降
不错 ████████ 24%
还行 ███████ 22%
一般 ████ 12%
很差 ███ 8% ← 概率上升
T越低,高概率词(很好)更容易被选中,低概率词(很差)几乎不会出现。T=1时,保持原始概率分布,既有一定随机性,又不会太离谱。T越高,所有词的概率差距变小,低概率词也有较大机会被选中。
这就回应了为什么T越高,输出的文本越不重复,越有创造力,因为每个词的选中概率都比较接近。
| Temperature值 | 效果 | 适用场景 | 示例 |
|---|---|---|---|
| 0-0.3 | 完全确定性,总是选最高概率的词 | 事实问答、代码生成、客服机器人 | "Python中如何读取文件?" |
| 0.7-1.0 | 平衡创造力与合理性 | 日常对话、适度创意写作、头脑风暴 | "给我一些周末活动建议" |
| 1.5-2.0 | 高创造力,可能出人意料 | 艺术创作、科幻故事、打破常规 | "写一首关于AI的诗" |
下一节,我们将学习另一种控制采样的方法——Top-p(核采样),以及它与Temperature的关键区别。
| 中文 | English | 音标 | 说明 |
|---|---|---|---|
| 温度 | Temperature | /ˈtɛmprətʃə(r)/ | 控制采样随机性的核心参数,值越高输出越发散 |
| 采样 | Sampling | /ˈsɑːmplɪŋ/ | 根据概率分布随机抽取下一个 Token 的过程 |
| 概率分布 | Probability Distribution | /ˌprɒbəˈbɪləti ˌdɪstrɪˈbjuːʃn/ | 模型对词表中每个候选词赋予的相对可能性 |
| 激活值 | Logit | /ˈlɒdʒɪt/ | Softmax 归一化之前的原始分数 |
| 归一化 | Softmax | /ˈsɒftmæks/ | 将原始分数转换为和为1的概率分布的函数 |
| 确定性 | Determinism | /dɪˈtɜːmɪnɪzəm/ | 相同输入总是产生相同输出的性质 |
| 创造性 | Creativity | /ˌkriːeɪˈtɪvəti/ | 模型用语、联想、结构上的多样性 |
| 贪心解码 | Greedy Decoding | /ˈɡriːdi diːˈkəʊdɪŋ/ | 每一步都选最高概率词的采样策略,等价于 T→0 |