大模型训练与微调(4)——Top-k 和 Top-p 采样策略介绍


今天学习了Top-k 和 Top-p 采样策略,总结一下!
在自然语言生成任务中, Top-kTop-p 是两种广泛使用的采样策略,用于控制大模型生成结果的多样性与可靠性。它们通过动态筛选候选词的概率分布,避免生成低质量或不合逻辑的文本。以下从定义、数学原理、实际应用和对比分析四个方面详细解析这两种方法。


一、Top-k 采样

1. 核心思想
  • 定义:在每一步生成时,仅保留概率最高的前 k 个候选词,并在这 k 个词中重新分配概率权重进行采样。
  • 目的:过滤低概率的噪声词,平衡生成结果的多样性与合理性。
2. 数学实现
  1. 对模型输出的原始概率分布 P ( x ) P(x) P(x) 按概率值从高到低排序。
  2. 选取前 k 个词,构成候选集合 V top-k V_{\text{top-k}} Vtop-k
  3. V top-k V_{\text{top-k}} Vtop-k 中的概率重新归一化:
    P new ( x i ) = P ( x i ) ∑ x j ∈ V top-k P ( x j ) , x i ∈ V top-k P_{\text{new}}(x_i) = \frac{P(x_i)}{\sum_{x_j \in V_{\text{top-k}}} P(x_j)}, \quad x_i \in V_{\text{top-k}} Pnew(xi)=xjVtop-kP(xj)P(xi),xiVtop-k
  4. 从新的分布中采样生成下一个词。
3. 示例

假设模型对下一个词的原始概率分布为:
["狗": 0.6, "猫": 0.2, "鸟": 0.15, "鱼": 0.05]
若设置 k=2,则候选集合为 ["狗", "猫"],重新归一化后的概率为:
["狗": 0.6/(0.6+0.2)=0.75, "猫": 0.2/(0.6+0.2)=0.25]
最终可能生成“狗”或“猫”,但不会生成“鸟”或“鱼”。

4. 特点
  • 优点:简单可控,避免生成低概率词。
  • 缺点k 是固定值,可能忽视长尾中有意义的候选词。
    (例如,若真实场景需要“鱼”,但 k=2 会强制排除它)

二、Top-p(Nucleus)采样

1. 核心思想
  • 定义:从概率最高的词开始累积,直到累积概率超过阈值 p,仅在这部分词中采样。
  • 目的:动态调整候选词数量,适应不同上下文的不确定性。
2. 数学实现
  1. 对概率分布按从高到低排序,得到有序列表 [ x 1 , x 2 , . . . , x n ] [x_1, x_2, ..., x_n] [x1,x2,...,xn]
  2. 计算累积概率 ∑ i = 1 m P ( x i ) \sum_{i=1}^m P(x_i) i=1mP(xi),找到最小的 m m m使得累积概率 ≥ p
  3. 将前 m 个词构成候选集合 V top-p V_{\text{top-p}} Vtop-p
  4. V top-p V_{\text{top-p}} Vtop-p 重新归一化并采样。
3. 示例

原始概率分布:
["快乐": 0.5, "悲伤": 0.3, "愤怒": 0.15, "惊讶": 0.05]
若设置 p=0.9,则累积过程为:

  • 快乐(0.5)→ 快乐+悲伤(0.8)→ 快乐+悲伤+愤怒(0.95 ≥ 0.9)
    候选集合为 ["快乐", "悲伤", "愤怒"],重新归一化后的概率为:
    ["快乐": 0.5/0.95≈0.526, "悲伤": 0.3/0.95≈0.316, "愤怒": 0.15/0.95≈0.158]
4. 特点
  • 优点:动态适应不同分布,保留合理的长尾词。
  • 缺点:可能包含过多低概率词(尤其在分布平坦时)。

三、Top-k vs. Top-p 对比分析

维度Top-kTop-p
筛选逻辑固定数量(前 k 个词)动态数量(累积概率 ≥ p 的最小集合)
适用场景概率分布集中(如事实问答)概率分布分散(如创意写作)
参数敏感度k 过大导致噪声,过小导致僵化p 过高包含噪声,过低限制多样性
灵活性低(固定数量)高(动态调整)

四、联合使用与调参建议

1. 常见组合
  • Top-k + Top-p:先通过 k 截断长尾词,再用 p 动态筛选。
    (例如:k=50, p=0.95
  • Top-p + 温度调节:高温(T>1)平滑分布后,用 p 控制多样性。
2. 参数选择参考
  • 确定性任务(代码生成、翻译):
    k=10~40, p=0.8~0.9, T=0.3~0.7
  • 创造性任务(故事生成、对话):
    k=50~100, p=0.9~0.95, T=0.7~1.0

五、实例演示

输入上下文:

“夏日的海滩上,孩子们在______”

不同参数下的生成结果:
  1. Top-k=3, T=0.5

    • 候选词:[“玩耍”, “堆沙堡”, “奔跑”]
    • 输出:“玩耍”(高确定性)。
  2. Top-p=0.9, T=1.2

    • 候选词可能包含:[“追逐海浪”, “捡贝壳”, “放风筝”]
    • 输出:“追逐海浪”(多样且合理)。
  3. Top-k=5 + Top-p=0.95

    • 平衡筛选范围,可能生成:“堆沙堡,笑声随着海风飘散”。

六、数学形式化总结

设原始概率分布为 P ( x ) P(x) P(x),排序后为 P ( 1 ) ≥ P ( 2 ) ≥ . . . ≥ P ( n ) P_{(1)} \geq P_{(2)} \geq ... \geq P_{(n)} P(1)P(2)...P(n)

  • Top-k
    V top-k = { x ( 1 ) , x ( 2 ) , . . . , x ( k ) } V_{\text{top-k}} = \{ x_{(1)}, x_{(2)}, ..., x_{(k)} \} Vtop-k={x(1),x(2),...,x(k)}
  • Top-p
    V top-p = { x ( 1 ) , x ( 2 ) , . . . , x ( m )   ∣   ∑ i = 1 m P ( i ) ≥ p } V_{\text{top-p}} = \left\{ x_{(1)}, x_{(2)}, ..., x_{(m)} \ \bigg| \ \sum_{i=1}^m P_{(i)} \geq p \right\} Vtop-p={x(1),x(2),...,x(m)   i=1mP(i)p}

七、总结

  • Top-k:通过固定数量限制候选词,适合概率分布集中的场景。
  • Top-p:通过动态累积概率筛选,更适合开放性的生成任务。
  • 联合使用:结合两者优势,例如 GPT-3/4 等模型默认采用 Top-p=0.95Top-k=50 的组合策略。

实际应用中,需根据任务需求(如事实性、创造性)和输出质量(连贯性、多样性)权衡参数选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值