我知道GPT是一个基于变压器的神经网络,由几个模块组成.这些块是基于原来的转换器的解码块,但它们完全相同吗?
在原有的变压器模型中,解码器块有两种注意机制:一种是纯多头自关注机制,另一种是对编码器输出的自我注意机制。在GPT中没有编码器,因此我假设它的块只有一个注意机制。这就是我发现的主要区别。
同时,由于GPT是用来生成语言的,所以它的块必须被屏蔽,这样自我关注只能出现在先前的标记上。(就像变压器解码器一样。)
是这样吗?GPT (1,2,3,.)之间的差异还有什么可补充的吗?原来的变压器呢?
发布于 2020-11-16 10:46:42
发布于 2023-01-18 06:44:06
在原始转换器中,解码器不能处理先前的令牌,而编码器可以处理所有令牌。
此外,编码器的输出与输入的令牌数相同,而解码器的输出只是一个令牌。
对于GPT/BERT,这是主要的区分器,它导致将它们称为只有解码器和编码器的模型。他们中的任何一个都没有交叉关注。
BERT生成相同数量的令牌作为输入,可以输入到线性层,并使用蒙面语言建模,因此这是严格的编码器模型。
GPT一次生成一个令牌,就像变压器的译码器一样,并且有因果语言建模,所以它是严格的译码器模型。
为了完整起见,确实有一些只有译码器的体系结构,但是使用了蒙面语言建模,但是它们显示的是零镜头的perf。还有一些像T5这样的编解码结构,它的性能也不如GPT3这样的仅解码器架构,除非您也在监督的数据集上进行培训(例如,从T5生成的T0 )。
https://datascience.stackexchange.com/questions/85486
复制相似问题