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

相关推荐
王老师青少年编程6 小时前
gesp(C++五级)(14)洛谷:B4071:[GESP202412 五级] 武器强化
开发语言·c++·算法·gesp·csp·信奥赛
DogDaoDao6 小时前
leetcode 面试经典 150 题:有效的括号
c++·算法·leetcode·面试··stack·有效的括号
Coovally AI模型快速验证7 小时前
MMYOLO:打破单一模式限制,多模态目标检测的革命性突破!
人工智能·算法·yolo·目标检测·机器学习·计算机视觉·目标跟踪
可为测控8 小时前
图像处理基础(4):高斯滤波器详解
人工智能·算法·计算机视觉
Milk夜雨8 小时前
头歌实训作业 算法设计与分析-贪心算法(第3关:活动安排问题)
算法·贪心算法
BoBoo文睡不醒8 小时前
动态规划(DP)(细致讲解+例题分析)
算法·动态规划
apz_end9 小时前
埃氏算法C++实现: 快速输出质数( 素数 )
开发语言·c++·算法·埃氏算法
仟濹10 小时前
【贪心算法】洛谷P1106 - 删数问题
c语言·c++·算法·贪心算法
CM莫问10 小时前
python实战(十五)——中文手写体数字图像CNN分类
人工智能·python·深度学习·算法·cnn·图像分类·手写体识别
sz66cm11 小时前
LeetCode刷题 -- 45.跳跃游戏 II
算法·leetcode