💡阅读指南

上一节我们学习了情境学习。本节将探讨Temperature(温度)参数如何控制AI的创造力。 这个参数对于开发者非常重要,因为它可以显著提高大模型回答的性能和质量。

9.1 不同Temperature的效果展示

用同一个问题,在不同Temperature下的回答,来展示这参数的效果。

问题:"给我讲一个关于猫的故事"。

Temperature = 0(完全确定性)

ChatGPT答案:

从前有一只名叫山葵的猫,它住在一个温馨的小镇上。山葵非常喜欢 晒太阳和追逐蝴蝶。每天早上,它都会在主人的床边等待,期待着一天的开始。 山葵的主人是一位慈祥的老奶奶。..

这种设置下,模型会选择安全、传统的开头,情节发展可预测。如果问同样的问题10次,每次回答几乎完全一样。

Temperature = 0.7(中等创造力)

ChatGPT答案:

山葵是一只好奇心极强的黑猫,她住在海边的一座灯塔里。有一天,当暴风雨来临时,山葵发现了一只被海浪冲上岸的小海豚。山葵想要帮助它,但她不会游泳。于是她开始鸣叫,引起了灯塔看守人的注意。..

中等创造力下,模型会给出更有创意的设定(如灯塔、海豚),情节有一定独特性。如果问10次,每次故事都不同,但都合理。

Temperature = 1.5(高创造力,接近疯狂)

量子猫薛定谔住在第五维度和第六维度的夹缝中。它同时存在又不存在, 是波也是粒子。有一天,它决定去时间的尽头旅行,在那里遇到了一个用星尘 做的老鼠。这只老鼠告诉薛定谔一个秘密:所有的猫其实都是宇宙意识 的碎片。..

高创造力下,模型会生成极其抽象和超现实的内容,逻辑连贯性下降,充满意想不到的元素。如果问10次,每次都是完全不同的、疯狂的故事。

Temperature控制着AI的"大胆程度"。

9.2 Temperature:温度,控制概率分布的"平缓度"

先解释Temperature这个参数。

回顾:ChatGPT如何生成下一个词

在第2节,我们讲过ChatGPT的核心机制:

输入"这部电影"后,模型计算出每个候选词的概率:

code
     词      概率        说明
   ─────────────────────────────
    很好      35%     ← 最可能的选择
    不错      25%     ← 较可能
    还行      20%     ← 有一定可能
    一般      10%     ← 不太可能
    很差       5%     ← 很少选
   ...其他词   5%     ← 极低概率

然后,模型从这个概率分布中采样一个词。

📌说明

什么是"采样"?

采样(sampling)就是从一堆可能的选项中,按照概率"抽取"一个出来。

比如模型给出5个词:很好(35%)、不错(25%)、还行(20%)、一般(10%)、很差(5%),采样就是根据这些概率随机选一个。就像抽奖,概率高的词更容易被抽中,但不是100%会抽到。

Temperature就是在采样之前,调整这个概率分布。

9.3 Temperature的数学:Softmax函数

💡提示

你可以跳过这部分数学,不影响理解。

在生成概率分布时,原始分数没有归一化:

很好: 3.5 不错: 2.5 还行: 2.0 很差: -1.0 ...

还需要对原始分数应用Softmax公式:

$$ P(x_i) = \frac{e^{z_i/T}}{\sum_{j} e^{z_j/T}} $$

其中: - $x_i$ 是第i个词 - $z_i$ 是该词的原始分数 - $T$ 是Temperature(温度参数) - $\sum_{j}$ 表示对所有候选词求和

虽然归一化后的所有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的三种典型值

Temperature值 效果 适用场景 示例
0-0.3 完全确定性,总是选最高概率的词 事实问答、代码生成、客服机器人 "Python中如何读取文件?"
0.7-1.0 平衡创造力与合理性 日常对话、适度创意写作、头脑风暴 "给我一些周末活动建议"
1.5-2.0 高创造力,可能出人意料 艺术创作、科幻故事、打破常规 "写一首关于AI的诗"

9.4 下节预告

下一节,我们将学习另一种控制采样的方法——Top-p(核采样),以及它与Temperature的关键区别。

9.5 ■ 学点英语

中文 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

9.6 ■ 思考帧

💬
本节包含互动练习 #145

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。

💬
本节包含互动练习 #146

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。

💬
本节包含互动练习 #147

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。

💬
本节包含互动练习 #148

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。

💬
本节包含互动练习 #149

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。