LLM中Encoder-Only or Decoder-Only & 为什么主流LLM是Decoder-Only?
文章目录
1. 什么是Encoder-only、Decoder-Only
大模型(Large Language Model,LLM),目前一般指百亿参数以上的语言模型,主要面向文本生成任务。而"encoder-only"和"decoder-only"是两种不同的架构,它们都基于Transformer模型,但在处理输入和生成输出的方式上有所不同。
在 Transformer 模型中,编码器(Encoder)负责理解和提取输入文本中的相关信息。这个过程通常涉及到处理文本的序列化形式,例如单词或字符,并且用自注意力机制(Self-Attention)来理解文本中的上下文关系。编码器的输出是输入文本的连续表示,通常称为嵌入(Embedding)。这种嵌入包含了编码器从文本中提取的所有有用信息,并以一种可以被模型处理的格式(通常是高维向量)表示。然后将编码的结果传递给解码器。解码器(Decoder)的任务是根据从编码器接收到的嵌入来生成翻译后的文本(目标语言)。解码器也使用自注意力机制(添加attn mask),以及编码器-解码器注意力机制,来生成翻译的文本。
[Encoder-only]:
- Encoder-only模型,如BERT,主要用于理解和提取输入文本中的相关信息。这个过程通常涉及到处理文本的序列化形式,例如单词或字符,并且用自注意力机制(Self-Attention)来理解文本中的上下文关系。
- BERT只使用了Transformer模型中的编码器部分,因为它主要用于处理单向输入数据。BERT的预训练目标是通过掩盖部分输入来预测其他部分,即完形填空,或者预测两个句子之间的关系,这些任务并不涉及到生成输出序列的自回归任务,因此不需要解码器。
自回归指输出的内容是根据已生成的token做上下文理解后一个token一个token输出的。
[Decoder-only]:
- Decoder-only模型主要是为了预测下一个输出的内容/token是什么,并把之前输出的内容/token作为上下文学习。
- 在Transformer模型的解码器中,自注意力机制允许每个位置的输出都依赖于输入序列中所有位置的信息。然而,当生成输出序列时,我们希望位置i的输出只依赖于位置i之前的已知输出,而不依赖于位置i之后的输出。为了实现这一点,Decoder使用了一种“掩码”技术(attn_mask),阻止模型关注位置i之后的位置。
[Encoder-Decoder]:
- 这种架构的LLM通常充分利用了上面2种类型的优势,采用新的技术和架构调整来优化表现。这种主要用于NLP,即理解输入的内容NLU,又能处理并生成内容NLG,尤其擅长处理输入和输出序列之间存在复杂映射关系的任务,以及捕捉两个序列中元素之间关系至关重要的任务。
- T5、BART
总的来说,encoder-only类型的更擅长做分类,理解场景;encoder-decoder类型的擅长输出强烈依赖输入的,比如翻译和文本总结,而其他类型的就用decoder-only,如各种Q&A。