跳转至

NLP高频面(6)decoder-only、encoder-only和encoder-decoder的区别与联系

本文讨论了 NLP 中 decoder-only、encoder-only 和 encoder-decoder 三种架构的区别与联系,以及如何根据不同任务选择合适的架构。关键要点包括:

基本概念与代表模型:Encoder-only 架构代表为 BERT,用 MLM 预训练,擅长文本理解;Decoder-only 架构代表是 GPT 系列,用 next token prediction 训练,有 causal mask;Encoder-decoder 架构由 Transformer 提出,代表有 T5 和 BART,用于 seq2seq 任务。

信息关注方向:Encoder-only 用双向注意力,适合理解任务;Decoder-only 用单向注意力,适合文本生成;Encoder-decoder 结合二者,Encoder 双向理解,Decoder 单向生成。

任务适应性与泛化性能:Encoder-only 适合文本理解,但生成能力有限;Decoder-only 泛化能力出色,适合多种下游任务;Encoder-decoder 擅长 seq2seq 任务,需微调数据,zero-shot 泛化不如 Decoder-only。

效率与工程实现:在多轮对话和大规模自监督学习中,Decoder-only架构因可复用KV缓存,推理效率高,工程实现简单。

理论基础:Encoder 的双向注意力存在 “低秩问题”,限制有效表达能力,Decoder-only 单向注意力可避免。

模型架构选择 - 文本理解:以文本理解为主且微调数据丰富时,选 Encoder-only 架构,如 BERT。

模型架构选择 - 文本生成与 seq2seq 任务:强调文本生成、泛化能力选 Decoder-only 架构,如 GPT 系列;典型 seq2seq 任务且有微调数据,选 Encoder-decoder 架构,如 T5 或 BART。

一、 基本概念与代表模型

Encoder-only 架构

Encoder-only 架构最具代表性的模型是 BERT。BERT 使用 masked language modeling(MLM)进行预训练,即随机遮蔽部分输入词汇,让模型预测被遮蔽的词汇。由于这种架构能够同时看到输入序列的上下文信息,BERT 非常擅长文本理解)任务,如文本分类、命名实体识别等。

Decoder-only 架构

Decoder-only 架构的经典代表是 GPT 系列模型,如 GPT-3 和 GPT-4。GPT 模型使用 next token prediction 进行训练,在生成某个词的表征时,仅能看到该词及其之前的所有信息,而不能看到后续信息。这种单向注意力机制称为 causal mask。

Encoder-decoder 架构


Encoder-decoder 架构最早由 Transformer 提出,用于seq2seq任务,代表模型有 T5 和 BART。

Encoder 部分处理输入序列并抽取特征,Decoder 部分根据 Encoder 提供的特征生成目标序列,典型应用是翻译和摘要生成。

二、 架构对比与分析

信息关注方向的不同

Encoder-only 架构使用的是双向注意力,即在处理文本中任何一个词时,都能同时看到上下文信息,适合理解任务。

Decoder-only 架构使用的是单向(causal)注意力,仅关注当前位置及其之前的词汇信息,因此天然适合文本生成任务。

Encoder-decoder 架构则结合了二者的特点:Encoder 使用双向注意力进行充分的上下文理解,Decoder 则使用单向注意力机制进行序列生成。

任务适应性与泛化性能

Encoder-only 模型由于其双向注意力机制,更适合文本理解类任务,但生成能力有限。

Decoder-only 模型,如 GPT,能够在仅使用无监督预训练(next token prediction)的情况下,实现出色的 zero-shot 和 few-shot 泛化能力,兼具理解和生成的特性,适合多种下游任务。

Encoder-decoder 模型则擅长 seq2seq 任务,比如翻译、摘要生成等特定场景,但通常需要一定量的任务特定微调数据来达到最佳性能,zero-shot 泛化性能不如 Decoder-only 模型。

效率与工程实现问题

在实际应用中,尤其是多轮对话场景,Decoder-only 架构由于其能复用 KV 缓存(每个 token 的表示与之前输入的信息有关),极大提高了推理效率。而 Encoder-decoder 和 PrefixLM 等变种架构则难以做到高效的 KV 缓存复用,因此效率较低。

此外,Decoder-only架构在大规模自监督学习(如当前主流的百亿甚至千亿参数模型训练)中效率更高,工程实现更为简单。

理论基础:低秩问题

有研究指出,Encoder 的双向注意力存在所谓的“低秩问题”,即由于双向注意力看到的信息过于丰富,可能导致模型的有效表达能力受到限制。而 Decoder-only 的单向注意力则天然避免了这个问题,使得其在文本生成任务中更具优势。

三、 模型架构选择

如果你的任务以文本理解(NLU)为主,尤其是任务特定的微调数据丰富时,Encoder-only架构(如BERT)是优选。

如果你的任务强调文本生成,且你希望模型具备出色的泛化能力、无监督训练和 few-shot 学习的能力,那么 Decoder-only 架构(如 GPT 系列)无疑是最佳选择。


如果你面临典型的序列到序列任务,比如机器翻译、摘要生成等,且有一定量的任务特定数据进行微调,Encoder-decoder架构(如T5或BART)则更为合适。