在自然语言处理(NLP)中,预训练语言模型(LLMs, Large Language Models)通常基于不同的架构,如仅编码器的模型(Encoder-only)、编码器-解码器的模型(Encoder-Decoder),以及仅解码器的模型(Decoder-only)。这三种架构有着显著的区别,主要体现在功能、适用任务和性能上。下面从架构、功能、任务适用性、训练数据和推理能力等多个角度详细分析。
1. 架构(Architecture)
-
仅编码器的模型(Encoder-only LLMs)
- 该架构仅包含一个编码器网络,类似于BERT等模型。编码器主要负责将输入序列(如句子或文本片段)转换为一个高维的语义向量表示。
- 编码器通过自注意力机制学习输入文本的上下文关系,输出与输入长度一致的向量表示。
-
编码器-解码器的模型(Encoder-Decoder LLMs)
- 该架构包括两个部分:编码器和解码器。编码器将输入序列编码为隐向量(latent representations),然后解码器将这些隐向量解码为目标序列(如翻译生成的文本)。
- 编码器负责处理输入文本,解码器通过注意力机制从编码器的输出中提取信息,并生成输出文本。
-
仅解码器的模型(Decoder-only LLMs)
- 该架构只有一个解码器,没有独立的编码器模块。GPT系列模型就是典型的解码器架构。
- 解码器通过自回归生成(autoregressive generation) 的方式,基于已生成的部分预测下一步的输出,直到生成完整的文本序列。
2. 功能特点(Functional Differences)
-
仅编码器的模型
- 编码器的主要功能是进行文本的表示学习,它能够很好地捕捉句子或文本片段的语义信息。
- 通常用于文本分类、句子对比(如自然语言推理)以及实体识别等任务。
- 其主要优势在于,整个输入在模型推理过程中同时被处理,能有效建模长距离依赖关系。
-
编码器-解码器的模型
- 这种架构同时具备编码和解码功能,因此非常适合序列到序列任务(sequence-to-sequence tasks),如机器翻译、文本摘要生成等。
- 编码器-解码器模型在处理长文本时表现优秀,因为编码器可以将长文本转换为紧凑的语义表示,解码器根据这个语义表示生成目标输出。
-
仅解码器的模型
- 这种模型主要用于生成式任务,适合文本生成、问答生成、对话生成等任务。
- 它通过自回归的方式逐步生成文本,生成下一个词时只考虑之前的词,因此更适合需要逐步生成文本的任务。
- 与编码器不同,解码器具有更强的生成能力,尤其是在大规模语言模型(如GPT-3)中。
3. 任务适用性(Task Suitability)
-
仅编码器的模型
- 适合用于理解任务,如文本分类、情感分析、命名实体识别(NER)、文本匹配等。由于没有解码器,无法直接用于生成类任务。
- 例如:BERT 在文本分类、QA任务中表现出色,但不擅长生成。
-
编码器-解码器的模型
- 适合处理需要将输入映射为另一种输出的任务,如机器翻译、摘要生成、问答生成等。
- 例如:T5、BART这类模型在翻译和文本生成类任务中具有较好表现。
-
仅解码器的模型
- 主要用于文本生成任务,如文本生成、对话系统、代码生成等。由于缺乏编码器部分,通常不用于复杂的理解类任务。
- 例如:GPT-3在开放式文本生成任务中非常强大,但在需要精细理解的任务中略显不足。
4. 训练与推理(Training and Inference)
-
仅编码器的模型
- 训练时通常使用双向注意力(bidirectional attention),即模型在预测每个词时会考虑上下文的所有词。
- 推理时,输入通常是一个固定长度的序列,输出是该序列的语义表示。
- 适合一次性处理整个输入,但不擅长逐步生成。
-
编码器-解码器的模型
- 训练时编码器负责处理完整输入,而解码器逐步生成输出,解码器在生成每个词时可以回溯到编码器输出的所有隐向量。
- 推理时,编码器可以处理较长的输入,解码器则通过自回归生成来产生输出序列。
-
仅解码器的模型
- 使用自回归训练和推理,即模型通过学习每一步生成当前词,直到达到序列的终点。注意力机制只允许查看之前生成的词。
- 在推理时逐词生成,非常适合开放式生成任务。
5. 复杂度与计算效率(Complexity and Efficiency)
-
仅编码器的模型
- 由于仅包含编码器部分,计算复杂度相对较低,但它不能处理生成类任务,因此在文本生成等任务中需要结合其他模型或机制。
- 比如,BERT在大多数理解类任务中计算效率较高,但它不能直接进行生成。
-
编码器-解码器的模型
- 包含两个模块,计算复杂度较高,但更具灵活性。适合那些需要同时处理输入和输出的任务。
- 如T5等模型的架构使其能处理更复杂的序列转换任务,但推理速度相对较慢。
-
仅解码器的模型
- 在处理生成任务时表现出色,但由于是逐步生成,每一步都需要依赖前一步的输出,因此推理时间较长。
- 大规模的解码器模型如GPT-3在生成文本时效率不高,尤其是处理较长文本时。
6. 训练数据需求(Training Data Requirements)
-
仅编码器的模型
- 通常在双向上下文数据上进行训练,适合从大量未标注数据中学习语言的语义表示。
-
编码器-解码器的模型
- 需要同时有输入和输出对的数据,尤其是在翻译或摘要任务中,需要大量的并行语料。
-
仅解码器的模型
- 主要依赖大规模的文本生成数据,可以通过海量的未标注文本进行训练,学习语言生成的规律。
总结
- 仅编码器的模型(如BERT):适合理解类任务,具备强大的语义表示能力,但不擅长生成。
- 编码器-解码器的模型(如T5, BART):适合处理序列到序列的任务,能够同时理解和生成文本。
- 仅解码器的模型(如GPT):适合生成类任务,尤其擅长在开放式生成任务中表现出色,但对复杂的文本理解任务不如编码器或编码器-解码器架构。
代表模型
下图是近年来具有代表性的大语言模型(LLMs)。从下到上依次为:仅编码器的模型(Encoder-only)、编码器-解码器的模型(Encoder-Decoder),以及仅解码器的模型(Decoder-only)。实心方块表示开源模型,空心方块表示闭源模型。
图片来源:https://arxiv.org/abs/2306.08302