NLP高频面(9)大模型常见的几种解码方案
NLP高频面(9)大模型常见的几种解码方案¶
本文讨论了自然语言生成任务中,从模型生成的概率分布里选择合适词汇这一影响文本质量的关键问题,介绍了大模型常见的几种解码方案。关键要点包括:
常见解码方法:有贪心搜索、束搜索、随机采样、Top-k采样、Top-p采样以及温度调节。
贪心搜索:每个解码步骤选最高概率的词形成序列,计算高效但易陷入局部最优,缺乏文本多样性。
束搜索:每个时间步维护 k 个候选序列并扩展,选概率最高序列输出,可提高文本质量,但可能生成重复性强的文本。
随机采样:根据概率分布抽样,低概率词汇有机会被选中,增强多样性但可能生成无意义内容。
Top-k 采样:从概率最高的 k 个单词中随机选,减少低概率单词干扰,保留一定随机性。
Top-p 采样:基于累积概率选最小单词集合,累积概率达阈值 p 后在集合中随机采样。
温度调节:温度参数 $ \tau $调整概率分布平滑程度,高温增加多样性,低温使模型更确定,不同解码策略适用于不同任务。
大模型常见的几种解码方案¶
在自然语言生成任务中,如何从模型生成的概率分布中选择合适的词汇,是影响文本质量的关键问题。常见的解码方法包括贪心搜索(Greedy Search)、束搜索(Beam Search)、随机采样(Sampling)、Top-k采样、Top-p采样(Nucleus Sampling)以及温度调节(Temperature Sampling)。
贪心搜索(Greedy Search)¶
贪心搜索在每个解码步骤中选择具有最高概率的词,形成最可能的序列。这种方法的优点是计算高效,但容易陷入局部最优,导致生成的文本缺乏多样性。
示例:
假设当前模型输出如下概率分布:
| 词 | 概率 |
| 女孩 | 0.6 |
| 鞋子 | 0.3 |
| 大象 | 0.1 |
贪心搜索会选择“女孩”作为下一个词。
束搜索(Beam Search)¶
束搜索是一种改进的搜索策略,它在每个时间步维护 k 个候选序列,并选取概率最高的 k 个序列继续扩展。最终选择概率最高的序列作为输出。
示例:¶
如果 k=2,在 t=1 生成两个最高概率的单词,并在 t=2 时基于这两个单词扩展,选择概率最高的两个组合继续。
束搜索可以提高文本质量,但仍然可能生成重复性较强的文本。
采样策略¶
3.1 随机采样(Random Sampling)¶
随机采样根据模型的概率分布进行抽样,使得低概率词汇也有一定的可能性被选中,增强文本的多样性,但可能会导致生成无意义的内容。
3.2 Top-k 采样¶
Top-k 采样限制采样范围,仅从概率最高的 k 个单词中进行随机选择。这样可以减少低概率单词的干扰,同时保留一定的随机性。
示例:¶
假设 k=2,模型输出如下概率分布:
| 词 | 概率 |
| 女孩 | 0.6 |
| 鞋子 | 0.3 |
| 大象 | 0.1 |
Top-k 采样只会从 “女孩” 和 “鞋子” 中选择,而不会考虑 “大象”。
3.3 Top-p 采样(Nucleus Sampling)¶
Top-p 采样基于累积概率选择最小的单词集合,使得累积概率达到阈值 p,然后在这个集合中进行随机采样。
示例:
如果 p=0.8,模型输出如下概率分布:
| 词 | 概率 | 累积概率 |
| 女孩 | 0.6 | 0.6 |
| 鞋子 | 0.3 | 0.9 |
| 大象 | 0.1 | 1.0 |
由于累积概率超过0.8的最小集合是{女孩,鞋子},因此仅在这两个单词中选择。
3.4 温度调节(Temperature Sampling)¶
温度参数 $ \tau $用于调整概率分布的平滑程度。较高的温度会增加生成文本的多样性,而较低的温度会使模型更加确定。
示例:
温度较高( $ \tau=1.5 $):生成的文本更具创造性,但可能缺乏连贯性。
温度较低( $ \tau=0.5 $):生成的文本更稳定,但可能较为保守。
组合策略¶
通常,Top-k、Top-p 和 Temperature 采样会结合使用,以在多样性和可控性之间取得平衡。
组合示例(Top-k=3, Top-p=0.8, Temperature=0.7):
Top-k 限制候选单词范围。
Top-p 进一步筛选概率质量较高的单词。
Temperature 调整最终概率分布。
解码策略选择
不同的解码策略适用于不同的任务:
贪心搜索 & 束搜索:适用于生成确定性较高的文本,如机器翻译。
Top-k & Top-p 采样:适用于生成创意内容,如诗歌、故事。
温度调节:适用于控制文本的创造力。