Top-k sampling — Top-k 采样

From Systems analysis wiki
Jump to navigation Jump to search

Top-k 采样是一种用于大型语言模型(LLM)文本生成的随机解码方法。其主要目标是将下一个词元(token)的选择范围限制在固定数量(k)个最可能的候选项中,从而避免生成低概率且通常不相关的词语。该方法是对简单随机采样的早期改进之一,并且在很长一段时间内都是提高生成文本连贯性的流行方法。

概念与数学

在文本生成的每一步,标准语言模型会输出一个覆盖整个词汇表 V 的概率分布 P(x|x1:i1)。Top-k 采样通过以下方式修改这一过程:

  1. 候选者选择: 从整个词汇表中选出由 k 个概率最高的词元组成的子集 V(k)
  1. 截断: 将所有未包含在 V(k) 中的词元的概率置为零。
  1. 重新分配(归一化): 对剩余 k 个词元的概率进行缩放,使其新总和等于 1。
  1. 采样: 从这个新的、经过截断的分布中随机选择下一个词元。

因此,Top-k 对候选项的数量引入了一个硬性阈值:概率排名低于 k 的词永远不会被选中。

参数 k 的影响

  • k 值(例如 k=510): 使生成过程更加保守可预测。模型仅从一个非常有限的最可能词语集中进行选择。这提高了文本的连贯性,但可能导致内容重复乏味。
  • k 值(例如 k=50100): 增加了文本的多样性创造性,因为更多的选项被纳入采样范围。然而,这也增加了包含不太相关或不恰当词元的风险。
  • 边界情况:
    • k=1 等同于贪心解码(greedy decoding)。模型总是选择概率最高的词元。
    • k = 词汇表大小: 等同于从完整分布中进行标准采样,不进行截断。

历史意义

Top-k 方法由 Angela Fan 及其同事于 2018 年正式提出,作为解决使用完全随机采样时文本质量下降问题的有效方案。他们证明,将采样范围限制在少数候选项内,可以显著提高生成故事的连贯性和意义。

例如,在 GPT-2 的早期版本中,使用了 `top_k=40` 这一参数,使得模型能够生成早期方法无法实现的长而连贯的文本。

与其他解码方法的比较

Top-k vs. Top-p - Top-k 与 Top-p 对比

Top-k 在很大程度上已被更先进的Top-p(核)采样(nucleus sampling)方法所取代。

  • Top-k 的主要缺点是其非自适应性。固定的 k 值没有考虑概率分布的形状:
    • 当分布尖锐(模型对少数几个词元非常确定)时,Top-k 可能会人为地扩大选择范围,将低概率的候选项也包含进来。
    • 当分布平坦(模型不确定,且许多词元具有相似的概率)时,Top-k 可能会过早地排除许多合适的选项。
  • 相反,Top-p 会根据词元的累积概率动态调整采样集的大小,这使其更加灵活和可靠。

Top-k vs. Temperature - Top-k 与温度对比

  • 温度(Temperature)会改变整个概率分布的形状,但不会截断词元。它影响所有候选项的相对概率。
  • Top-k 则引入了硬性截断,完全排除了排名前 k 之外的词元。

在实践中,Top-k 可以与温度结合使用:首先用温度调整分布,然后用 Top-k 截断候选项。

实际应用

尽管如今 Top-p 采样被认为是更优的选择,但在某些情况下,Top-k 仍有应用,特别是在需要对采样集大小进行简单直观控制时。

  • 典型值: 实践中使用的 k 值范围通常在 20 到 100 之间,具体取决于在连贯性和多样性之间期望达到的平衡。
  • 建议: 对于大多数任务,推荐使用 Top-p。如果仍要使用 Top-k,应将其与适中的温度参数结合,并根据具体任务仔细选择 k 值。

参考文献

  • Fan, A. et al. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
  • Holtzman, A. et al. (2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
  • Holtzman, A. et al. (2024). Closing the Curious Case of Neural Text Degeneration. OpenReview:dONpC9GL1o.
  • Meister, C. et al. (2023). Locally Typical Sampling. arXiv:2202.00666.
  • Su, Y.; Collier, N. (2022). Contrastive Search Is What You Need for Neural Text Generation. arXiv:2210.14140.
  • O’Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
  • Finlayson, M. et al. (2024). Basis-Aware Truncation Sampling for Neural Text Generation. arXiv:2412.14352.
  • Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925.
  • Yu, S. et al. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
  • Chen, S. J. et al. (2025). Decoding Game: On Minimax Optimality of Heuristic Text Generation Methods. arXiv:2410.03968.
  • Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.

另见

  • 大型语言模型