01. 大模型采样基础(DONE)#

Author by:杨汝琦

在自然语言处理(NLP)的生成任务中,大模型常被用于文本创作、机器翻译等场景。要让模型生成符合上下文逻辑、连贯自然的文本,采样是关键环节——它决定了模型每次生成的词或词元,直接影响输出文本的质量与多样性。

image1

大多数大语言模型以自回归方式运行:模型会根据已生成的词元序列,预测下一个词元的概率分布。例如图片所示,模型通过“AI enhances our learning”的序列,预测出下一个词元“experience”。这种特性让模型能捕捉复杂的语言模式与依赖关系,从数学角度可表示为:

\[ \mathit{P(w_n|w_1,w_2,\ldots,w_{n-1})} \]

其中,\(w_n\) 是待生成的下一个词元,\(w_1,w_2,\ldots,w_{n-1}\) 是已生成的词元序列。在文本生成过程中,大模型正是通过不同的采样算法,从这个概率分布中确定最终输出的 \(w_n\)

image2

本篇文章将从简单到复杂,依次介绍三种常见的大模型输出采样方法:随机采样、贪婪采样和束搜索采样,帮助大家清晰理解每种策略的核心逻辑与实际效果。

1. 随机采样 (Random)#

1.1 原理#

随机采样 (Random Sampling) 是大模型采样中最基础的形式:它从模型输出的概率分布中随机选择下一个词元,而非直接挑选概率最高的选项,因此可能选中低频的罕见词。

具体过程为:在生成每一步,模型先通过 softmax 函数计算所有候选词的概率分布(所有候选词的概率和为 1),再根据这个分布随机选择一个词作为下一个输出。

随机采样的优点是简单直观,能生成多样化的文本,有效避免重复或单调的输出。但它存在显著缺陷:概率分布的“长尾区域”(模型为大量候选词分配低概率的部分)容易被选中——这会导致生成的文本毫无意义、出现语法错误,或是与上下文逻辑脱节,也是大模型用纯随机采样时输出质量易波动的核心原因。

image3

1.2 示例#

当用户输入 “I have a dream of being a” 时,LLM 会基于训练数据和内部逻辑,为下一个词元的所有候选(如 Engineer、Doctor、Lawyer 等)分配概率值。在图中,这些候选词的概率分别为 0.32、0.30、0.28、0.09 和 0.01。

随机采样不会直接选择概率最高的 “Engineer”,而是将所有候选词及其概率看作一个完整的概率分布,并根据这个分布随机挑选输出。这意味着:即便 “Engineer” 的概率最高,模型仍有可能选择概率较低的词(比如 “Alien”),从而生成新颖甚至出人意料的结果。这种特性能增加文本的多样性与创造性,避免生成重复、死板的句子。

2. 贪婪采样 (Greedy)#

2.1 原理#

贪婪采样 (Greedy Sampling) 是典型的“贪心策略”,核心逻辑是每一步都选择概率最高的词元。与随机采样不同,它不会从概率分布中随机挑选,而是直接锁定概率最大的候选词作为输出。

在生成过程的每一步,模型先计算当前所有候选词的概率分布,再直接选择概率最高的词元加入序列,之后基于新序列继续生成下一个词元。

贪婪采样的优点很明确:能保证每一步都生成“最可能的词”,因此生成的文本通常较为连贯,且符合语法规则。但它的问题也很突出:一是容易陷入“局部最优陷阱”——每一步的“最优选择”可能会让后续词元的概率分布受限,从而错过全局更优的序列(比如忽略低概率词背后隐藏的高概率后续词);二是输出缺乏多样性,容易显得重复、单调,因为它没有探索其他可能产生更好结果的替代路径。

下面是一个贪婪采样导致文本重复单调的示例:

  • 输入:“My favorite color is”(我最喜欢的颜色是)

  • 贪婪采样输出:“My favorite color is blue blue blue blue is blue and blue is my favorite color blue”(我最喜欢的颜色是蓝色蓝色蓝色蓝色,蓝色是蓝色,蓝色是我最喜欢的蓝色)

这个例子清晰体现了贪婪采样的问题:多次重复“blue”,却没有添加任何有意义的信息,最终生成单调且不自然的文本。

image4

2.2 示例#

当用户输入 “I have a dream of being a” 时,LLM 会为下一个词元的候选(如 Engineer、Doctor、Lawyer 等)分配概率值,在图中这些概率分别为 0.32、0.30、0.28、0.09 和 0.01。

贪婪采样的做法很直接:每次都选择概率最高的词元作为输出,再将这个词元加入输入序列,继续生成下一个词。就像图片中所示,在这个例子里“Engineer”的概率最高(0.32),所以模型会直接选择它作为当前步的输出。这种方法简单高效,但缺点也很明显——由于只考虑当前步的最优解,忽略了全局可能的更优序列,导致生成的文本质量不够自然,且缺乏多样性。

4. 总结与思考#

三种采样策略各有侧重,核心权衡集中在“多样性”“连贯性”与“计算成本”三者之间:

  • 随机采样:多样性最高,但连贯性最差、输出质量波动大,适合需要创意性的场景(如诗歌创作、脑洞对话);

  • 贪婪采样:连贯性中等、计算成本最低,但多样性最差,适合对效率要求高、无需多样输出的场景(如固定格式摘要、关键词生成);

  • 束搜索:连贯性最高、多样性中等,但计算成本高于前两者,适合对输出质量要求高的场景(如机器翻译、学术文本生成)。

在实际应用中,工业界很少直接使用这三种基础策略,更多是在此基础上优化(如 Top-K 采样、核采样/Nucleus Sampling)——这些进阶策略能进一步平衡“多样性”与“连贯性”,减少基础策略的缺陷,是当前大模型文本生成的主流选择。

5. 参考与引用#