Prefix Decoder /Causal Decoder/Encoder-Decoder的区别

Prefix Decoder

定义:Prefix Decoder,也称为非因果解码器,属于Decoder only结构。输入部分使用双向注意力,输出部分使用单向注意力。在生成新的输出时,会考虑到所有之前生成的输出。

特点:Prefix Decoder在处理输入序列时,模型可以同时考虑序列中的所有词。生成输出时会考虑整个输入序列,而不仅仅是之前的输出。这使得它在处理需要全局上下文的任务时表现更好。训练阶段,通常使用自回归方式进行训练,即在生成当前词时,使用之前生成的所有词。Encoder和Decoder则共享了同一个Transformer结构,共享参数。

代表模型:GLM、ChatGLM、ChatGLM2、U-PaLM

Causal Decoder

定义:Causal Decoder,即因果解码器,属于Decoder only结构。输入和出均为单向注意力。在生成新的输出时,只会考虑到之前的输出,而不会考虑到未来的输出。

特点:与Prefix Decoder相比,Causal Decoder更注重序列的时序关系,因此在处理时间序列数据时具有优势。然而,在处理需要全局上下文的任务时,它可能不如Prefix Decoder表现得好。训练阶段,通常使用自回归方式进行训练,prefix Decoder 和 causal Decoder 主要的区别在于 attention mask不同。

代表模型:GPT系列、LLaMA-7B、BLOOM、LLaMa 衍生物

Encoder-Decoder

定义:Encoder-Decoder包括一个编码器(Encoder)和一个解码器(Decoder)。编码器使用双向注意力,每个输入元素都可以关注到序列中的其他所有元素。解码器使用单向注意力,确保生成的每个词只能依赖于之前生成的词。编码器负责将输入数据转化为一个连续的向量,解码器则负责将这个向量转化为最终的输出。

特点:Encoder-Decoder结构能够将输入数据编码成一个固定维度的向量,然后通过解码器将这个向量解码成目标输出。这种结构能够有效地处理变长序列的转换问题,并且具有较强的通用性和灵活性。在训练时,Decoder的输入包括真实的前一个输出(teacher forcing策略)。和Prefix decoder不同,这里encoder和decoder参数独立。

代表模型:Transformer、Flan-T5、BART

相关推荐
CHANG_THE_WORLD1 小时前
9.Python 条件语句和循环语句
java·python·算法
earthzhang20212 小时前
《深入浅出HTTPS》读书笔记(20):口令和PEB算法
开发语言·网络协议·算法·https·1024程序员节
武昌库里写JAVA2 小时前
Java面试之单例模式浅谈
数据结构·vue.js·spring boot·算法·课程设计
Qiled2 小时前
Shopee算法分析 - x-sap-ri
算法
爱穿西装的C先生2 小时前
C++学习日记---第19天
c++·学习·程序人生·算法·蓝桥杯
CHANG_THE_WORLD2 小时前
3.python运算符
java·python·算法
The博宇2 小时前
机器学习:监督学习、无监督学习
大数据·人工智能·算法·机器学习
蚂蚁没问题s2 小时前
图像处理 - 车道线检测:智能驾驶的“眼睛”
图像处理·人工智能·算法·机器学习·计算机视觉
爱吃西瓜的小菜鸡2 小时前
【C语言】输入数字后的重要getchar()
c语言·开发语言·学习·算法
Catherinemin3 小时前
剑指Offer|day4 LCR 004. 只出现一次的数字 II
javascript·算法