Decoder-Ony 和 Encoder-Decoder 两种架构,这两种都能实现transformer gpt都采用的是 Decoder-Ony的架构
Encoder-Decoder 架构
特点:
编码器(Encoder):由多个相同的层组成,每个层包含多头自注意力机制(Multi-Head Self-Attention, MHA)和前馈网络(Feed Forward Network, FFN),用于处理输入序列并提取特征。
解码器(Decoder):同样由多个相同的层组成,每个层包含两部分:一个多头自注意力机制用于处理目标序列的信息,还有一个多头注意力机制用于处理编码器输出的信息。
跨注意力(Cross Attention):解码器中的这部分允许它关注编码器的输出,从而更好地理解输入和输出之间的关系。
应用场景:
机器翻译:输入是源语言句子,输出是目标语言句子。
文本摘要:输入是较长的文本,输出是其摘要。
问答系统:输入是问题和上下文,输出是答案。
Decoder-Only 架构
特点:
单个解码器:由多个相同的解码器层组成,没有单独的编码器部分。
自回归预测:每个位置的输出只依赖于当前位置及之前的输出。
掩码自注意力:为了避免看到未来的位置信息,解码器中的自注意力层会使用掩码来屏蔽掉当前位置之后的信息。
应用场景:
语言建模:给定一个文本序列,预测下一个单词或字符。
文本生成:基于前面的文本生成后续文本。
总结
Encoder-Decoder 架构适用于需要将输入序列转换为不同类型的输出序列的任务,比如机器翻译和文本摘要。
Decoder-Only 架构则更多地应用于生成任务,如语言模型和对话系统的响应生成。