gpt-2 仅用于多层解码器的Transformer的参数

7lrncoxx  于 2个月前  发布在  其他
关注(0)|答案(4)|浏览(134)

你好,我最近开始学习语言建模,特别是GPT(-2)。虽然我开始了解它的训练/微调方式,但我确实对它的架构有一些疑问。
在OpenAI的论文中指出,GPT(和GPT-2)是一个仅多层解码器的Transformer。从更高的Angular 来看,我可以理解编码器/解码器架构对于序列2序列应用程序是有用的,但对于语言建模任务来说,它变得不那么有吸引力。因此,OpenAI决定只坚持多层解码器似乎是合乎逻辑的。然而,在GPT的训练/微调阶段,在这些解码层中,令牌仍然被编码并最终被解码,对吗?
我不确定我的问题是否清楚,但它基本上可以归结为:在GPT的论文中,他们使用了一个仅用于解码器的Transformer,但我找不到这个决定所基于的任何论据。例如,如果他们坚持使用常规的Transformer架构,会有什么不同?
我希望有人能给我更多的启示。
非常感谢提前。

vohkndzv

vohkndzv1#

你好,
我在语言模型和迁移学习方面做了一些研究。这是我的2美分:
我们实际上可以使用常规的Transformer架构来训练语言模型任务。
但是你可以考虑一下,如果我们这样做,我们将语言模型框架为序列到序列训练,即输入序列是最后一个标记被屏蔽的训练文本。输出序列是整个训练序列移动一个标记,因此第一个标记消失,为最后一个标记留出空间。

正如你所看到的,在这种情况下,编码器的输入与解码器的输入相同,因为前一步的输出实际上与当前时间步的输入相同。
正因为如此,编码器和解码器从相同的输入中学习,可以被认为是冗余学习(我相信在GPT-1论文中提到,如果我们同时使用编码器和解码器,编码器和解码器可能会学习相同的语言)。
所以我认为解码器的直觉是去除那些看起来学习冗余的模型权重,并将计算能力赋予解码器端,这样我们就可以拥有更复杂的模型。
这也是有趣的,它不一定是解码器端,我们选择使用。实际上BERT模型选择使用编码器端的Transformer代替。他们选择使用一侧的注意力层非常相同的原因。不同的是,BERT论文指出,他们选择编码器是因为它是双向注意机制-解码器侧具有应用于注意力的掩码,因此N位置中的任何令牌只能注意从0到N-1位置的令牌。

tzxcd3kk

tzxcd3kk2#

在gpt 1论文中,他们没有提到太多关于仅解码器Transformer与既编码器又解码器Transformer之间的比较,但在最初的论文(提出仅解码器模型)“通过总结长序列生成维基百科”中,他们简要地提到了动机,以及比较这两个的实验结果。
动机引自论文:
我们还怀疑,对于单语文本到文本的任务,编码器和解码器重新学习了关于语言的冗余信息。我们相信这可以更容易地优化,并通过经验观察更长的序列
实验结果引自论文:
我们观察到,Transformer编码器-解码器T-ED架构在以下方面持续改进:
在L = 500 - 1000附近的最佳性能之前,无法学习L = 2000。
激发了Transformer-Decoder,我们发现它可以学习和改进到L = 4000,
在我们的机器上耗尽内存之前
然而,上述实验结果似乎有点令我惊讶,因为当L大于1000时,T-Decoder得到的结果比T-ED好得多。我同意编码器可能无法提供额外的值(因为信息已经可以被解码器学习到)。但是我不知道为什么当L变大时,T-ED的编码器会损害性能(这不能用“仅将计算能力给予解码器侧以便我们可以具有更复杂的模型”来解释)。

x0fgdtte

x0fgdtte3#

我们是否可以使用其他变压器作为编码器(如BERT)和其他变压器作为解码器(GPT1,GPT2或XLNet)?
如果是,那么我想知道如何为我的数据集微调解码器模型。由于GPT被训练成生成更长的文本,我如何微调它以生成更短的文本。另外,我对GPT tokenizer的tokenization过程有一些困惑。

deyfvvtc

deyfvvtc4#

gree编码器可能无法提供额外的值(因为信息已经可以被解码器学习)。但我不知道为什么T-ED的编码器会在L变大时损害性能(这可以
谢谢你纠正我关于解码器之间的比较只有Transformer与两个编码器-解码器Transformer.这实际上是在以前的论文“通过总结长序列生成维基百科”.我记得它不正确.
无论如何,以下是我对T-ED和T-D培训效率的看法。如果我错了,请纠正我。
我认为使用T-ED的“下一个令牌预测”的训练目标可能是低效的,因为编码器侧的注意力没有被屏蔽,所以它可以关注除了最后一个令牌之外的每个令牌。假设我们有第1-> N-1个令牌作为编码器和解码器的输入,该模型必须预测第2->第N个令牌。编码器侧的每个隐藏节点已经“看到”第1->第N-1个输入令牌,因此目标任务实际上是“将所有令牌向左移动并仅预测第N个令牌”。
而在T-D模型中,Decoder中的每个隐藏节点只能关注(或“看到”)它们左侧的标记,并且必须预测其位置处的标记。因此,在相同的输入和标签下,目标任务比T-ED对应物要困难得多,因为它必须真正预测每个位置处的标记。这可能是T-D模型中更高效率的来源。

相关问题