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

相关推荐
SoftLipaRZC15 小时前
C语言字符完全指南:字符函数与字符串函数
c语言·开发语言·算法
墨白曦煜15 小时前
算法实战笔记:链表的底层逻辑与指针的高阶玩法(二)
笔记·算法·链表
wuweijianlove15 小时前
算法复杂度评估的实验统计方法与可视化的技术7
算法
名不经传的养虾人15 小时前
从0到1:企业级AI项目迭代日记 Vol.35|追问比演示重要——技术团队问出的五个工程缺口
人工智能·算法·机器学习·ai编程·ai工作流·企业ai
zavoryn15 小时前
大模型入门:面试必会 RoPE,从位置编码到旋转位置嵌入
算法·面试
05候补工程师15 小时前
【408高分笔记】数据结构冲刺:二叉树遍历性质、特殊形态与栈的跨界联动秒杀技巧
数据结构·经验分享·笔记·考研·算法
菜菜的顾清寒15 小时前
力扣HOT100(36)二分查找-搜索插入位置
数据结构·算法·leetcode
weixin_4684668515 小时前
PyTorch 与 TensorFlow 实战选型与应用场景指南
人工智能·pytorch·深度学习·算法·机器学习·tensorflow·深度学习框架
x_xbx16 小时前
LeetCode:647. 回文子串
算法·leetcode·职场和发展