第 3 章  ·  Top-p(二)-核采样的动态控制

第3章 第10节 Top-p(二)-核采样的动态控制


第3章 第10节 Top-p(二)-核采样的动态控制

阅读指南

上一节我们学习了Temperature如何通过调整概率分布控制AI的创造力。本节将探讨另一种控制采样的方法——Top-p(核采样),以及它与Temperature的关键区别。

10.1 Top-p(Nucleus Sampling):另一种控制采样的方法

Temperature不是唯一控制大模型输出风格的手段。

Top-p的核心思想

Top-p和Temperature不同,它不是调整整个概率分布,而是只从"累积概率达到p"的词中采样。

听起来抽象?

假设模型给出了这样的概率分布:

      词      概率      累积概率
    ─────────────────────────────
     真好      35%        35%
     不错      25%        60%
     很好      20%        80%
     还行      10%        90%  ← 达到Top-p=0.9的阈值
     一般       5%        95%
     糟糕       3%        98%
    ...其他     2%       100%

Top-p = 0.9时:

步骤1:按概率从高到低排序(已经排好了)

步骤2:累加概率,直到达到0.9(90%)

真好 35% → 累积35%
不错 25% → 累积60%
很好 20% → 累积80%
还行 10% → 累积90% ← 达到90%,停止

步骤3:只从这4个词中采样

候选集:【真好、不错、很好、还行】

步骤4:在这4个词中,按原始概率采样(会重新归一化概率,使它们的概率加起来等于1)

Top-p = 0.5时:

只取累积概率到50%的词:

真好 35% → 累积35%
不错 25% → 累积60% ← 超过50%了

实际候选集:【真好、不错】

具体以实现为准:有的实现只保留达到阈值前的词"真好",有的实现会连同刚越过阈值的词"不错"一起保留。

Top-p = 1.0时:

取所有词(等于没限制)

Top-p vs Temperature:有什么不同?

这两个方法都控制采样,但方式不同:

① Temperature:

Temperature调整所有词的概率,低温时强化高概率词、压制低概率词,高温时拉平概率分布。

② Top-p:

Top-p只选择"头部"的词,低p值时只考虑最可能的几个词,高p值时考虑更多词。

10.2 关键区别在于动态性

Temperature:固定地调整分布。

→ 不管概率分布情况,调整方式都一样

Top-p:动态地选择候选集

→ 如果模型很确定:候选集小
→ 如果模型不确定:候选集大

例子:

情况1:模型很确定

"这部电影___"
很好 90% ← 模型非常确定
不错 5%
其他 5%

Top-p=0.9:只考虑"很好"(因90%就达到阈值了)

情况2:模型不确定

"未来科技会___"
发展 15% ← 模型不太确定
进步 12%
突破 11%
...很多词概率都差不多

Top-p=0.9:会考虑前10多个词(因为需要很多词才能累积到90%)

这种"动态性"是Top-p的优势:当模型确定时保持确定性,当模型不确定时允许探索。

10.3 Top-p的典型值

p = 0.1:极度保守

只考虑最顶端的词
效果接近Temperature=0

p = 0.9:常用平衡点

ChatGPT的常见默认值
保留大部分合理选项
过滤掉很不可能的词

p = 0.95-1.0:更多创造力

考虑几乎所有词
但仍过滤掉极不可能的词(如果p<1)

10.4 Temperature和Top-p可以同时使用吗?

实际上,很多系统(GPT5、Qwen、DeepSeek)的API都允许同时设置两者。

那么当他们同时使用时,Temperature与Top-p执行顺序是怎样的?具体来说,Temperature在Top-p之前执行吗?还是Top-p在Temperature之前执行?

以下是执行步骤:

  1. 计算原始概率分布
  2. 应用Temperature调整分布
  3. 应用Top-p筛选候选集
  4. 从候选集中采样

可以看到Temperature的调整是在Top-p前面。

Tip

确实可以同时使用Temperature和Top-p,但OpenAI的建议:

"一般只调一个,要么Temperature要么Top-p,不建议同时调"

10.5 下节预告

下一节,我们将探讨一个深刻的问题:为什么AI需要随机性?以及不同任务的最佳参数设置建议。

10.6 ■ 学点英语

中文 English 音标 说明
核采样 Nucleus Sampling /ˈnjuːkliəs ˈsɑːmplɪŋ/ 从累计概率达到 p 的动态“核”中采样的解码策略(Top-p)
阈值 Threshold /ˈθreʃhəʊld/ 触发某种行为或满足某种条件的临界值
累积概率 Cumulative Probability /ˈkjuːmjələtɪv ˌprɒbəˈbɪləti/ 按顺序叠加的概率和
候选集 Candidate Set /ˈkændɪdət set/ 采样时实际进入随机选择的词的集合
归一化 Renormalize /ˌriːˈnɔːməlaɪz/ 对筛选后的候选词概率重新调整使其和为 1
未可靠尾部 Unreliable Tail /ʌnrɪˈlaɪəbl teɪl/ 概率分布的低概率区域,容易产生乱码或不相干词
解码策略 Decoding Strategy /diːˈkəʊdɪŋ ˈstrætədʒi/ 从模型概率分布生成最终 Token 序列的方法
光束搜索 Beam Search /biːm sɜːtʃ/ 同时保留多条候选路径的最大化解码方法

10.7 ■ 思考帧

OpenAI 官方建议"Temperature 和 Top-p 一般只调一个,不建议同时调整"。请从采样机制和工程可解释性两个角度,分析这条建议背后的道理。另外,试着举一个例外场景——在什么情况下,同时精细调整两者反而是合理的? (思维题)

本题无需提交、无对错判定;需要时可点击「查看答案」展开参考答案;若有解析会一并展示。

Temperature(一)-控制创造力的旋钮 Top-p(三)-随机性与参数设置
本节目录