架构简介

在传统的预训练语言模型中,有 3 种主流范式:一是与原始 Transformer中一致的 Encoder-Decoder 架构;二是使用非因果解码器,即 non-causal decoder;三是最常用的因果解码器(causal decoder),也即我们常说的 decoder-only 架构。下面先来看看这三种架构的工作原理和区别。

1. Causal Decoder

当前,包括 Llama 在内的绝大多数大模型采用的都是因果解码器架构。其工作原理是在每一个 token 进行注意力运算时,只能与之前已经出现过的 token 交互,即“只能看左边”。

2. Non-causal Decoder

严格来说,这也是 Decoder-only 架构。但是其工作原理与因果解码器不同,在 Non-causal Decoder 中,可以指定一部分 token 作为前缀,前缀内的 token 可以互相进行注意力训练 ,没有因果限制;而在前缀之后 token 只能与其之前的 token 进行注意力运算。因此,这样的大模型也被称为 PrefixLM。

3. Encoder-Decoder

对于编码器-解码器架构,最具代表性的模型是 T5。该架构与 PrefixLM 的不同点在于结构中包含了额外的编码器结构,因而拥有更大的参数量。此外,在 T5 的编码器内部,会对前缀进行双向注意力运算。

因果解码器的优势

1. 因果注意力采用的单向注意力机制在表达能力上优于双向注意力

所谓表达能力,在数学上相当于是说单向注意力矩阵的秩要大于双向注意力矩阵的秩。这是因为注意力矩阵的秩越大,它就可以将输入信息映射到更大的子空间,能够捕捉和表达的信息维度就越高。

2. 因果解码器能更直接地利用提示词信息

简单来说,就是在因果解码器架构中,解码器中的每一层 Transformer 都会与 Prompt 部分的全部 K、V 矩阵进行注意力运算;而在编码器 - 解码器架构中,编码器负责编码 Prompt,在解码阶段,解码器中的每一层 Transformer 只会与编码器中最后一层 Transformer 输出的 K、V 矩阵进行运算。因此,因果解码器能更直接且充分地利用提示词信息。

3. 因果解码器推理效率更高

这是指由于因果编码器的特性,所以在生成第 n 个 token 时,可以利用前 n-2 个 token 的 K、V 缓存,只需要计算第 n-1 个 token 的 q、k、v 向量即可。而对于另外两种架构,由于还可能依赖后续或其他位置的 token,因此无法利用 KV 缓存加速。

4. 因果解码器可以隐式地学习到词元之间的绝对位置信息

单向注意力模式打破了双向注意力运算中的位置置换不变性,在训练时天然地引入了从左到右的位置信息。可以参见这篇论文。因此,因果解码器在位置信息的学习上具有显著优势。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐