目录

1. Causal LM

核心思想

注意力机制

训练方式

优点

缺点

2. Prefix LM

核心思想

注意力机制

训练方式

优点

缺点

3. Encoder-Decoder

核心思想

注意力机制

训练方式

优点

缺点

总结与对比


本文详细介绍一下大语言模型中三种主流的架构:Causal LM(因果解码器架构)Prefix LM(前缀解码器架构) 和 Encoder-Decoder(编码器-解码器架构)

这三种架构的核心区别在于 注意力掩码机制 的不同,这直接决定了模型如何处理输入序列以及适合解决什么样的任务。

1. Causal LM

代表模型: GPT系列(GPT-1, GPT-2, GPT-3), LLaMA系列

核心思想

自回归语言模型。它的核心思想是:在预测下一个词时,只能看到当前词之前的内容,不能看到之后的内容。 这种机制也称为 单向注意力 或 左向右注意力

注意力机制
  • 掩码类型: 下三角矩阵掩码。

  • 细节: 对于序列中的第 i 个 token,它只能关注从 1 到 i 的 tokens。所有未来位置的权重都被设置为负无穷(Softmax后为0)。

训练方式

它的训练目标通常是标准的语言建模任务(Next Token Prediction)。给定一个文本序列,模型被要求基于前面的文本预测下一个词。

  • 例子: 输入“我喜欢吃”,模型需要预测下一个词大概率是“苹果”或“米饭”。

优点
  1. 生成能力强: 天然适合文本生成任务(如故事续写、代码生成),因为人类的说话和写作过程也是从左到右依次进行的。

  2. 零样本/少样本学习能力: GPT系列证明了这种架构在上下文学习(In-Context Learning)方面表现出色。

  3. 推理效率高: 在生成时,可以利用键值缓存(KV Cache)技术,避免重复计算,速度较快。

缺点
  1. 无法利用双向上下文: 在做自然语言理解任务(如情感分类、抽取式问答)时,它无法像人类一样看完整个句子再判断,导致信息利用不充分。

2. Prefix LM

代表模型: 清华GLM系列,早期的 UniLM,以及某些变体如XLNet(虽然XLNet用的是排列语言模型,但思想上试图融合双向信息)

核心思想

这是一种介于因果和编码器之间的混合体。它将输入序列分为两部分:前缀部分 和 生成的Token部分

  • 前缀部分(Prefix): 可以看见所有的前缀内容(双向注意力)。

  • 生成的Token部分: 只能看见前缀和已经生成的Token(单向注意力)。

注意力机制
  • 掩码类型: 分块掩码(Block Mask)。

  • 细节:

    • 假设序列由 [Prefix,Generated] 组成。

    • 对于 Prefix 内部的 tokens,它们互相可见(全注意力)。

    • 对于 Generated 部分的 tokens,它们只能看到 Prefix 的所有 tokens 以及自己位置左侧的 Generated tokens,看不到右侧未来的 Generated tokens。

训练方式

通常采用自编码和自回归结合的混合目标。例如GLM(General Language Model)模型,它会随机MASK掉输入中的一些连续片段,然后让模型自回归地恢复这些片段。前缀部分是上下文,生成部分是MASK掉的内容。

优点
  1. 双向信息利用: 在处理输入提示(前缀)时,能更好地理解语义(例如在做文本填空时,能利用空格前后的信息)。

  2. 灵活性: 既能做理解任务(利用前缀的双向性),又能做生成任务(利用生成部分的单向性)。

缺点
  1. 实现复杂度高: 注意力掩码的设计比单纯的因果模型复杂。

  2. 推理开销: 虽然比Encoder-Decoder简单,但Prefix部分通常需要计算量较大的双向注意力。

3. Encoder-Decoder

代表模型: T5, BART, 早期的Transformer原论文

核心思想

包含两个独立的网络栈:

  1. 编码器(Encoder): 负责读取输入序列,并通过 双向注意力 彻底理解输入。它输出的是输入序列的语义表示(隐藏状态)。

  2. 解码器(Decoder): 负责接收编码器的输出,并 自回归 地生成目标序列。解码器使用的是 单向注意力(因果掩码),同时通过交叉注意力机制关注编码器的输出。

注意力机制
  • 编码器: 全双向注意力。输入序列内部每个词都能看到所有词。

  • 解码器: 单向注意力(因果掩码) + 交叉注意力(看向编码器的输出)。

训练方式

通常用于序列到序列的任务(Sequence-to-Sequence)。例如,在T5中,模型将任何任务都统一转化为“输入文本到输出文本”的格式。比如翻译:“苹果用英语怎么说” -> “apple”。

优点
  1. 深度语义理解: 编码器由于能看见完整的输入,对输入文本的理解是最透彻的,非常适合需要全文理解的复杂任务。

  2. 灵活的任务映射: 非常适合输入和输出是不同模态或者长度差异很大的任务(如翻译、摘要、多模态任务)。

缺点
  1. 参数多,体积大: 有两套完整的参数(虽然现在很多模型共享部分参数),导致模型规模较大。

  2. 推理速度慢: 生成时需要先跑完整个编码器,再跑解码器,且解码器每一步都要重新计算交叉注意力,速度通常是三者中最慢的。

  3. In-Context Learning较弱: 在GPT引领的“给几个例子然后继续”的模式上,纯Encoder-Decoder架构(如原始的T5)表现不如Causal LM那样自然。

总结与对比

特性 Causal LM Prefix LM Encoder-Decoder
代表模型 GPT, LLaMA GLM, UniLM T5, BART
输入侧注意力 单向 双向(前缀部分) 双向(编码器)
输出侧注意力 单向 单向(生成部分) 单向(解码器)
计算效率 高(生成快) 低(生成慢)
理解能力 较弱(只看左边) 中(看前缀两边) 强(看输入两边)
生成能力
最佳适用场景 自由续写, Chat, 代码生成 文本填空, 混合任务 翻译, 摘要, 严格的数据转换

简单来说:

  • 如果你想让模型像人一样开口说话、写文章,Causal LM 是首选。

  • 如果你想让模型先好好读完一段话(双向理解),然后再写点东西,Encoder-Decoder 是最稳妥的方案。

  • 如果你想在两者之间找一个平衡,兼顾理解上下文和流畅生成,Prefix LM 提供了一种巧妙的折中方案。

Logo

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

更多推荐