Top-p采样,又称核采样,是一种随机解码策略,用于从自回归概率模型(如大型语言模型)生成序列。它最初由Ari Holtzman、Yejin Choi及其同事于2019年提出,用于自然语言生成,以解决其他常见解码方法(如束搜索)产生的重复和无意义文本问题。该技术此后已被应用于其他科学领域,包括蛋白质工程和地球物理学。
在Top-p采样中,设定一个概率阈值p,仅从累积概率超过p的最小可能的高概率候选集合中采样序列中的下一个项。该方法根据模型的确定性自适应调整候选池的大小,比从固定数量候选中采样的Top-k采样更为灵活。由于其有效性,Top-p采样被广泛应用于许多大型语言模型应用中。
技术
在文本生成过程的每一步,语言模型都会计算其整个词汇表中下一个令牌的概率分布。虽然可以直接选择概率最高的令牌(贪婪搜索)或有限的高概率序列集合(束搜索),但这些确定性方法通常会产生乏味、重复或无意义的文本。Top-p采样引入随机性以避免这些问题,同时保持质量。
核心思想是在每一步从一个更小、更可信的令牌集合(称为核)中进行采样。该核包含最有可能的下一个令牌,其组合概率(即累积概率)恰好超过阈值p。通过仅从这个动态大小的组中采样,模型可以适应不同情况。当模型对下一个令牌非常确定时(例如,一个令牌具有非常高的概率),核将很小。当模型不确定时(概率分布更均匀),核将更大,从而允许更多多样性。
每一步的流程如下:
- 模型计算所有可能的下一个令牌的概率。
- 令牌按概率降序排列。
- 从列表顶部选择令牌,直到其累积概率超过预定义阈值p,从而形成核。
- 然后重新缩放核内令牌的概率,使其总和为1。核外的所有令牌被丢弃(概率为0)。
- 最终的下一个令牌从这个新的较小分布中随机采样。
形式上,核V^(p) ⊆ V定义为满足以下条件的最小令牌集合:
∑_{x ∈ V^(p)} P(x | x_1, …, x_{t-1}) ≥ p
在该公式中,P(x | x_1, …, x_{t-1})表示在给定前述令牌x_1, …, x_{t-1}的情况下,令牌x的概率。
示例
假设在某一特定步骤,语言模型的词汇表包含五个词:[the, a, cat, dog, eats],并产生以下概率:
- the: 0.5
- a: 0.2
- cat: 0.1
- dog: 0.1
- eats: 0.1
如果我们设置p = 0.8:
- 令牌按概率排序:[the, a, cat, dog, eats]。
- 计算累积概率:
- the: 0.5
- the + a: 0.5 + 0.2 = 0.7
- the + a + cat: 0.7 + 0.1 = 0.8
- 核是累积概率≥ 0.8的最小集合,即V^(0.8) = {the, a, cat}。
- 重新缩放该集合的概率,使其总和为1:
- P(the) = 0.5 / 0.8 = 0.625
- P(a) = 0.2 / 0.8 = 0.25
- P(cat) = 0.1 / 0.8 = 0.125
- 然后从这个新分布中采样下一个令牌,这意味着dog和eats被选中的概率为0%。
Top-k采样
Top-k采样是一种类似的技术,其中候选令牌池被限制为最可能的k个令牌。Top-p的主要优势在于其适应性。当模型对下一个令牌非常确定(峰值分布)时,核V^(p)可以非常小。当模型不确定(平坦分布)时,核可以更大,从而允许更多多样性。相比之下,Top-k总是从固定数量的令牌中采样,这可能过于严格或过于宽泛,具体取决于上下文。
应用
虽然Top-p采样最著名的是作为大型语言模型的解码策略,但该技术也已被改编用于涉及从概率模型生成或分析序列数据的其他科学领域。
自然语言生成
在其原始领域,,自然语言生成中,Top-p采样因其能够产生比确定性方法更多样化和连贯的文本而受到重视。它已被证明在自动问题生成等任务中是有益的,其中样本多样性对于创建有效的问答模型训练数据非常重要。
药物和蛋白质设计
Top-p采样被用于计算生物学中,从专门的语言模型生成新型分子和蛋白质序列。在从头药物设计中,基于分子结构训练的化学语言模型使用核采样来生成新的、有效的药物候选物的聚焦库。类似地,在蛋白质工程中,Top-p采样有助于探索序列空间,同时保持产生功能性蛋白质的可能性。
地球物理学
在地球物理学中,Top-p采样已被应用于从概率模型生成地震波形或其他序列数据,有助于地震模拟或地下成像等任务。核的自适应性质允许生成数据中具有现实的可变性,这对于模拟复杂的自然现象至关重要。
与其他解码策略的关系
Top-p采样是生成模型中使用的几种随机解码方法之一。它通常与温度缩放结合使用,以进一步控制输出的随机性。温度缩放调整采样前概率分布的尖锐度,而Top-p采样将分布截断为令牌的子集。这些技术可以一起使用,以实现多样性和连贯性之间的平衡。
与贪婪搜索或束搜索等确定性方法相比,Top-p采样引入了随机性,这可以防止重复循环并产生更多样化的输出。然而,这种随机性也可能偶尔导致不连贯,并且p的选择至关重要。低p值(例如0.5)使输出更聚焦和确定性,而高p值(例如0.95)增加多样性但可能降低质量。
实现注意事项
在实践中,Top-p采样已在大多数现代深度学习框架中实现,并且是大型语言模型API中的标准参数,例如来自OpenAI、Anthropic和Google DeepMind的API。对于一般文本生成任务,阈值p通常设置在0.9到0.95之间,但最佳值取决于特定应用以及创造力和准确性之间的期望权衡。
实现中的一个挑战是确保累积概率计算高效,特别是对于大词汇表。然而,由于核通常很小,计算开销很小。此外,Top-p采样可以与其他技术(如RLHF(基于人类反馈的强化学习))结合使用,以使生成的文本与人类偏好一致。
局限性与扩展
尽管有其优势,Top-p采样仍存在局限性。阈值p是静态的,不会根据上下文进行调整,这可能在有些场景下导致次优性能。研究人员已探索了基于分布熵的动态p值等扩展方法,但这些方法尚未被广泛采用。此外,Top-p采样不保证全局连贯性,因为它只考虑每一步的局部概率。
另一个局限性是,如果模型的分布严重集中在少数几个令牌上,Top-p采样仍可能产生重复文本。在这种情况下,可能需要将Top-p与Top-k或温度调整等其他策略结合使用。尽管存在这些挑战,Top-p采样仍然是生成式AI工具箱中的基础工具,在研究和生产系统中得到广泛应用。