LLM自回归解码

发布时间:2024年01月22日

在自然语言处理(NLP)中,大型语言模型(LLM)如Transformer进行推理时,自回归解码是一种生成文本的方式。在自回归解码中,模型在生成下一个单词时会依赖于它之前生成的单词。

使用自回归解码的公式可以表示为以下步骤:

初始化序列:设 ( x 1 , x 2 , . . . , x t ? 1 ) ( x_1, x_2, ..., x_{t-1} ) (x1?,x2?,...,xt?1?) 是目前已生成的单词序列。

计算下一个单词的概率分布:使用语言模型计算在给定上下文之后下一个单词的概率分布:

[ P ( x t ∣ x 1 , x 2 , . . . , x t ? 1 ) ] [ P(x_t | x_1, x_2, ..., x_{t-1}) ] [P(xt?x1?,x2?,...,xt?1?)]

这一步骤通常使用softmax函数完成,它将单词的logit转换成概率分布。

选择下一个单词:根据概率分布选择下一个单词 ( x t x_t xt? )。这可以通过不同的策略来完成,如:

贪婪解码(Greedy Decoding):选择具有最高概率的单词。
[ x t = arg ? max ? P ( x t ∣ x 1 , x 2 , . . . , x t ? 1 ) ] [ x_t = \arg\max P(x_t | x_1, x_2, ..., x_{t-1}) ] [xt?=argmaxP(xt?x1?,x2?,...,xt?1?)]

随机抽样(Sampling):根据概率分布随机选择单词,这允许生成更多样化的文本。

束搜索(Beam Search):维护一个宽度为 ( k ) 的束(beam),在每一步选择概率最高的 ( k ) 个单词组合作为候选,然后在这些候选中选择最终的单词序列。

更新序列:将选定的单词 ( x t x_t xt? ) 添加到序列中。

重复步骤:重复步骤2-4,直到遇到序列结束标记(如)或者生成了所需长度的文本。

在这里插入图片描述

在实际应用中,自回归解码可能会结合使用温度调整(Temperature Scaling),抑制重复(Repetition Penalty)等技术来改善生成文本的质量和多样性。这些技术可能会影响第3步中的概率分布,但基本的自回归机制保持不变。

文章来源:https://blog.csdn.net/qq_47564006/article/details/135750787
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。