LLM

不同类型的 Transformer 模型

大模型

Posted by 月月鸟 on June 1, 2024

1. Encoder-only 模型

工作原理: Encoder-only 模型仅包含 Transformer 的编码器部分。编码器通过多层自注意力机制和前馈网络,学习输入序列中的依赖关系。自注意力机制可以让模型同时关注序列中的所有位置,并根据上下文信息生成深层次的特征表示。

优势

  • 双向注意力:编码器可以同时从输入序列的前后文中提取信息,这使得它对自然语言理解任务尤其有效。
  • 输入的全局建模能力:编码器可以捕捉输入序列中的全局关系,使得它在语义理解、关系提取等任务中表现出色。

应用场景

  • 文本分类:如情感分析、垃圾邮件检测等任务,需要对整段文本进行分类。
  • 命名实体识别(NER):从文本中识别出特定类型的实体(如人名、地名、组织名等)。
  • 句子/文档嵌入:将句子或文档转换为固定长度的向量表示,方便用于检索或相似度计算。

典型例子

  • BERT(Bidirectional Encoder Representations from Transformers):BERT 是一种双向 Transformer 模型,通过预训练任务(Masked Language Modeling 和 Next Sentence Prediction)学习上下文信息,广泛应用于各种 NLP 任务。
  • RoBERTa:BERT 的改进版,通过更大规模的数据训练和更长的训练时间,在许多下游任务上提升了性能。

2. Decoder-only 模型

工作原理: Decoder-only 模型仅使用 Transformer 的解码器部分,主要用于自回归生成任务。解码器的自注意力机制允许模型根据已有的输出逐步生成下一个单元。解码器通过 Masked Self-Attention 避免对未来的输出位置进行关注。

优势

  • 自回归生成:模型可以在生成过程中逐步输出一个序列,适合文本生成、对话生成等任务。
  • 灵活的序列生成:解码器只需根据输入和前一步的生成输出下一个词,因此可以适应多种生成任务。

应用场景

  • 文本生成:生成连续的自然语言文本,如自动写作、新闻生成等任务。
  • 对话生成:生成自然的对话回复,用于聊天机器人或虚拟助理。
  • 代码生成:从自然语言描述生成对应的编程代码,辅助软件开发。

典型例子

  • GPT(Generative Pre-trained Transformer):GPT 系列模型(如 GPT-2、GPT-3)是经典的 Decoder-only 模型,它通过生成下一个词进行自回归的文本生成任务。这些模型广泛应用于对话系统、文本生成、故事创作等领域。

3. Encoder-Decoder 模型

工作原理: Encoder-Decoder 模型同时包含 Transformer 的编码器和解码器部分。编码器首先对输入序列进行表征,生成上下文表示;解码器则根据编码器的输出表示和已生成的部分序列,逐步生成输出。解码器在生成时不仅使用自回归机制,还结合来自编码器的全局上下文信息。

优势

  • 适用于序列到序列任务:Encoder-Decoder 模型可以处理输入和输出都是序列的任务(如机器翻译),编码器捕捉输入序列的全局信息,解码器逐步生成输出序列。
  • 灵活且强大:这种架构可以同时处理理解和生成任务,因此在许多复杂的 NLP 任务中具有广泛应用。

应用场景

  • 机器翻译:输入句子是源语言,输出句子是目标语言,这种任务典型地使用 Encoder-Decoder 架构。
  • 文本摘要:输入是长文档,输出是文档的简短摘要。
  • 图像描述生成:输入是一张图片,输出是对图片内容的描述性文本。

典型例子

  • 原始 Transformer 模型:这是最初设计的用于机器翻译的模型架构,包含编码器和解码器部分。
  • T5(Text-To-Text Transfer Transformer):谷歌提出的统一 NLP 任务的框架,将所有任务视作文本到文本的转换,不论是分类任务还是生成任务,所有输入和输出都被统一为文本格式。
  • BART(Bidirectional and Auto-Regressive Transformers):结合了 BERT 和 GPT 的特点,用于文本生成、问答和摘要生成等任务。

4. Prefix 模型

工作原理: Prefix 模型是一种自回归生成模型,但通过使用给定的提示或前缀(prefix)作为输入,然后基于前缀生成输出序列。前缀可以是一个完整的句子、部分句子或关键词,模型根据这些提示生成新的序列。

优势

  • 简单灵活:可以根据用户提供的部分提示生成合理的输出,适合各种生成任务。
  • 能够引导生成结果:通过控制输入的前缀,用户可以影响生成结果,使其符合特定的期望。

应用场景

  • 文本补全:根据输入的一部分文本补全剩余部分,适合自动补全、写作辅助等。
  • 对话生成:根据对话上下文生成合理的对话回复。
  • 文章续写:给定文章开头的部分,模型生成后续内容。

典型例子

  • Prefix-Tuning:这是对大型预训练模型(如 GPT-3 或 T5)的一种调优方式,通过添加前缀引导生成,使得生成过程更符合任务需求。

5. Mixture-of-Experts (MoE) 模型

工作原理: MoE 模型通过引入多个专家网络(Experts),每个专家负责处理不同的输入数据。模型通过路由机制选择特定的专家网络激活,以减少计算量。虽然模型具有大量参数,但在推理时只激活一部分专家网络,从而实现计算效率与模型容量之间的平衡。

优势

  • 扩展性强:可以处理超大规模任务,因为模型的规模可以极大地增加,但每次推理只需激活部分专家网络。
  • 高效性:在处理复杂任务时,MoE 模型能通过选择合适的专家网络提高性能,同时减少计算资源的消耗。

应用场景

  • 大规模多任务学习:适合同时处理多个任务的场景,每个任务可以由不同的专家网络处理。
  • 复杂任务处理:对于具有多样化需求的任务,MoE 模型可以根据输入数据动态选择专家进行处理。

典型例子

  • Switch Transformer:Google 的 MoE 模型之一,通过专家网络机制有效扩展了模型的容量,并且在计算效率上具有显著优势。

6. Sparse Transformer

工作原理: Sparse Transformer 通过稀疏化注意力机制,优化了标准 Transformer 的计算效率。在传统 Transformer 中,每个单元与序列中的所有其他单元都有连接,这导致计算量随着序列长度的平方增加。Sparse Transformer 通过稀疏注意力机制,使模型只关注局部相关的单元,大大降低了计算量。

优势

  • 处理长序列高效:Sparse Transformer 能够在不显著降低精度的前提下,大幅减少对长序列的计算需求。
  • 适合长文档和长序列:尤其适合那些输入序列较长的任务,如文档级文本理解或基因组学数据处理。

应用场景

  • 长文本理解:处理需要理解整篇文章或长文档的任务。
  • 长视频分析:处理长时间段的视频片段,尤其是在动作识别或事件检测任务中。
  • 基因组学:分析 DNA 序列等生物信息学任务。

典型例子

  • Longformer:通过稀疏注意力机制实现对长文本的高效处理。
  • BigBird:Google 提出的改进版长序列处理模型,适用于各种 NLP 和其他序列数据任务。