文章目录
网页地址:
https://huggingface.co/transformers/model_summary.html#autoregressive-models
Transformer模型可以分为几大类:
-
Autoregressive models 自回归模型
-
Autoencoding models 自编码模型
-
Sequence-to-sequence models
-
Multimodal models
-
Retrieval-based models
1.Autoregressive models
自回归模型是在经典语言模型任务上进行了预训练:已读取所有先前的token然后猜测下一个token。 它们对应的是原始Transformer模型的Decoder,并且在完整句子的顶部使用了一个掩码(句子开头),以便attention head只能看到下一句之前的内容,而不是后面的内容。 尽管可以对这些模型进行微调并在许多任务tasks上取得出色的结果,但最自然的应用是文本生成text generation。 这种模型的典型示例是GPT。
1.1几种自回归模型介绍
1.Original GPT
在Book Corpus数据集上预训练的第一个基于Transformer体系结构的自回归模型。
该库提供了用于语言建模和多任务语言建模/多分类的模型版本。
2.GPT-2
GPT的更大更好的版本,已在WebText上进行了预训练(来自Reddit有影响力的网页)。
该库提供了用于语言建模和多任务语言建模/多选分类的模型版本。
3.CTRL
4.Transformer-XL
5.Reformer
6.XLNet
XLNet不是传统的自回归模型,而是使用基于此模型的训练策略。 它对句子中的token进行置换,然后允许模型使用最后的n个标记来预测标记n + 1。 由于这一切都是通过掩码完成的,该句子实际上以向右的顺序馈送到模型中,但是XLNet并不是使用掩码掩盖了n + 1的前n个标记,而是使用掩码在某些给定的排列1中隐藏了先前的标记。 ,…,序列长度。
XLNet还使用与Transformer-XL相同的递归机制来建立长期依赖关系。
该库提供了用于语言建模,token分类,句子分类,多项选择分类和问题解答的模型版本。
2.Autoencoding models
自编码模型是:通过以某种方式破坏输入的token并尝试重建原始句子来进行预训练。 从某种意义上讲,它们与原始transformer模型的encoder相对应,因为它们无需任何掩码即可访问全部inputs。 这些模型通常建立整个句子的双向表达。 可以对它们进行微调并在许多任务(例如文本生成)上取得出色的结果,但是最自然的应用是句子分类或token分类。 此类模型的典型示例是BERT。
请注意,自回归模型和自动编码模型之间的唯一区别在于模型的预训练方式。 因此,相同的体系结构可用于自动回归模型和自动编码模型。 当给定模型同时用于两种类型的预训练时,我们将其放在与首次引入该模型的文章相对应的类别中。
2.1 BERT
通过使用随机屏蔽来破坏inputs,更准确地说,在预训练期间,给定百分比的token(通常为15%)被以下方式给掩盖:
- 一个特殊的掩码token,概率为0.8
- 0.1的概率用一个随机token来替代mask
- 相同token的概率为0.1
该模型必须预测原始句子,但是具有第二个目标:输入是两个句子A和B(之间有一个分隔标记)。 有50%的概率句子在语料库中是连续的,其余50%不连续。 该模型必须预测句子是否连续。
该库提供了用于语言建模(传统或masked版),下一句预测,token分类,句子分类,多项选择分类和问答的模型版本。
2.2 ALBERT
跟BERT有一些不一样:
-
Embedding size E与已证明的Hidden Size H有所不同,因为embeddings是上下文无关的(一个嵌入向量表示一个token),而隐藏状态hidden states是上下文相关的(一个隐藏状态代表一系列token),因此H 大于 E是更符合逻辑的.而且,嵌入矩阵很大,因为它是V x E(V是vocab的大小)。 如果E <H,则参数较少。
-
Layers被分成组,共享参数(以节省内存)。
-
下一个句子的预测被一个句子的顺序预测所代替:在输入中,我们有两个句子A和B(是连续的),并且我们在A后面跟着B或B在后面跟着A。模型必须预测它们是否已交换 或不。
2.3 RoBERTa
跟BERT略有区别:
-
动态屏蔽:每轮epoch迭代时,token都被不同地屏蔽,而BERT只做一次
-
没有NSP (next sentence prediction) 损失(下一句预测),不是将两个连续的文本放在一起,而是将一堆连续的文本放在一起以达到512个token(因此这些句子可能是按照顺序来的,也可能是跨文档的)
-
更大批的训练train with larger batches
-
使用byte分词的BPE作为子单元而不是字符(由于unicode字符)
该库提供了用于掩盖语言建模,令牌分类,句子分类,多项选择分类和问题解答的模型版本。
2.4 DistilBERT
与BERT相同,但较小。 通过提炼Distillation预训练的BERT模型进行训练,这意味着它经过训练可以预测与较大模型相同的概率。
2.5 还有许多
3.Sequence-to-sequence models
序列到序列模型将原始transformer的编码器和解码器同时用于翻译任务或通过将其他任务转换为序列到序列问题。 可以将它们微调成许多任务,但最自然的应用是翻译,摘要和问题解答。 原始转换器模型是此类模型的一个示例(仅用于翻译),T5是可以在其他任务上进行微调的示例。
4.Multimodal models
MultiModal模型将文本输入与其他类型的输入(例如图像)混合在一起,并且更特定于给定任务。