[Attention IS All You Need]Transformer模型有哪些变种

前言及引子 Transformer by google 2017

笔者写下此系列文章是希望在复习人工智能相关知识同时为想学此技术的人提供一定帮助。

本来计划本文接着之前的系列写transformer架构的原理的,但是我觉得transfomer是一个智慧、重要且有些复杂的架构,不先再次回顾一下这篇论文,难以以写博客的形式讲好,但是又由于人的怠惰性,就还是先搁置了,,

本文将介绍transformer模型的变种,或者是此架构的二创有哪些,以及其改进。

正文

Bert 利用Transformer的编码器部分

Bidirectional Encoder Representations from Transformers

  1. 双向上下文理解:原始的Transformer模型是为了机器翻译而设计的,其编码器和解码器的结构是分开的。BERT仅使用了Transformer的编码器结构,它通过训练模型以同时考虑单词左侧和右侧的上下文(即双向上下文),从而能更好地理解语言。同时它采用的训练任务不同,一部分输入单词被随机遮蔽,模型需要预测这些遮蔽单词(MLM),迫使模型学习到单词的上下文表示,Transformer是预测下一个词。

  2. 预训练和微调的范式:BERT模型引入了一个两阶段的学习范式:预训练和微调。在预训练阶段,BERT在大规模文本语料库(如Wikipedia和BooksCorpus)上训练,学习语言的通用表示。在微调阶段,预训练的模型被细调在特定的下游任务上(如情感分析、问答等),这个过程只需要很少的任务特定数据。这种方法极大地提高了模型在各种NLP任务上的表现。

  3. 改进的训练任务:除了MLM之外,BERT还引入了Next Sentence Prediction (NSP)任务,其中模型需要预测两个给定句子是否在原文中相邻。这个任务帮助模型学习句子级别的关系,对于理解文档中句子的顺序关系很有帮助,尤其是在问答和自然语言推理等需要这种能力的任务上。

  4. 更大规模的数据和模型:BERT模型在比原始Transformer模型更大的数据集上进行了预训练,并且使用了更大的模型规模。这使得BERT能够捕捉到更丰富的语言特征,并在多个NLP任务上取得了当时的最先进性能。

Albert

A Lite BERT

ALBERT是为了解决BERT模型大且训练成本高的问题而设计的。它通过以下几种方式优化了BERT:

  1. 参数共享:ALBERT在模型的所有层中使用跨层参数共享,这减少了模型的大小和训练时间,同时保持了模型性能。

  2. 因子分解的词嵌入表示:ALBERT将大的词嵌入矩阵分解为两个小矩阵,以减少模型参数的数量。这种方法降低了内存消耗,同时加速了模型的训练过程。

  3. 移除了Next Sentence Prediction (NSP):ALBERT提出了句子顺序预测(SOP,Sentence Order Prediction)任务,代替了BERT中的NSP任务。SOP任务更加专注于模型对两个句子间关系的理解,这被认为是一种更有效的训练目标。

RoBerta

Robustly Optimized BERT approach

RoBERTa是通过一系列调整和优化BERT训练过程来提高性能的模型。它的主要改进包括:

  1. 更大的批量大小和更长的训练时间:RoBERTa通过使用更大的批量大小和更长时间的训练,以及动态调整学习率,实现了更好的训练效果。

  2. 更大和更广泛的数据集:与BERT相比,RoBERTa在更大和更广泛的数据集上进行了预训练,这使得模型能够学习到更丰富的语言表示。

  3. 优化的预训练任务:RoBERTa去除了BERT中的Next Sentence Prediction (NSP)任务,研究发现移除NSP任务对模型性能有正面影响。同时,它增加了更多的掩码语言模型(MLM)训练样本。

  4. 字节对编码(Byte-Pair Encoding, BPE):RoBERTa使用了更精细的字节对编码作为其词汇分割方法,允许模型更好地处理未知词汇,提高了模型的泛化能力。

GPT 利用Transformer的解码器部分

Generative Pre-trained Transformer

GPT是由OpenAI提出的一种基于Transformer架构的预训练语言模型,专注于生成文本。GPT的设计哲学与BERT有所不同,它主要利用Transformer的解码器部分来预训练一个深层的神经网络,使其能够生成连贯和相关性强的文本序列。

  • 生成式预训练:GPT模型首先在大规模文本数据集上进行预训练,通过学习预测下一个词的任务,模型能够捕获丰富的语言特征和世界知识。这个预训练过程使得GPT能够理解和生成自然语言文本。

  • 无监督学习:GPT的预训练主要是无监督的,不需要特定的标签数据就能学习语言模式。这使得GPT能够利用互联网上广泛可用的大量文本数据进行训练。

  • 微调:预训练完成后,GPT可以通过微调(fine-tuning)的方式适应具体的下游任务。微调阶段会在特定任务的数据集上进一步训练模型,如文本分类、问答、文本生成等。

T5 by Google

Text-to-Text Transfer Transformer

由Google在2019年提出,是一个采用统一文本到文本(Text-to-Text)框架的自然语言处理模型。其核心思想是将各种不同的NLP任务统一为一个文本到文本的格式,即将任何任务的输入和输出都视为文本序列。

  • 统一的任务格式:T5将所有NLP任务转换为一个“输入文本到输出文本”的框架,无论是翻译、文本分类、问答还是摘要等任务。简化了模型的使用和扩展,同时也提高了模型的灵活性和通用性。
  • 预训练任务:T5使用了一个叫做“span corruption”的预训练任务,类似于掩码语言模型(MLM),但它随机掩蔽输入文本中的词语片段而不是单独的词,并让模型预测这些被掩蔽的原始文本。

XLNet by Google

XLNet由Google Brain和Carnegie Mellon University在2019年提出,是一个基于Transformer的自回归语言模型,旨在克服BERT及其变体中存在的一些局限性。

  • 置换语言模型(PLM):XLNet采用了一种叫做置换语言模型的策略,不同于BERT的掩码语言模型(MLM),PLM可以看到所有单词(包括被预测的单词),但以不同的顺序。这允许模型学习到单词之间的双向关系,而不是像传统自回归语言模型那样只能单向学习。
  • 双流自注意力机制:为了处理置换语言模型中的预测任务,XLNet引入了一个双流自注意力机制,其中包括一个内容流和一个查询流,分别用于捕捉上下文信息和处理位置信息。
  • 广泛的预训练数据和任务:XLNet在更广泛和更大的数据集上进行预训练,包括BooksCorpus、英文维基百科、Giga5等数据集。它还结合了BERT和GPT的预训练技巧,以利用它们的优点。
  • 与BERT相比,XLNet通过置换语言模型解决了掩码单词造成的预训练和微调阶段不一致的问题。
  • 与GPT相比,XLNet利用了双向上下文信息,而GPT仅使用了单向上下文。

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏目艾拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值