作者丨李格映

来源 | 转载自CSDN博客

导读:2019 年 6 月,CMU 与谷歌大脑提出全新 XLNet,基于 BERT 的优缺点,XLNet 提出一种泛化自回归预训练方法,在 20 个任务上超过了 BERT 的表现,并在 18 个任务上取得了当前最佳效果!从 BERT 到 XLNet,预训练模型在不断进步,本文将解读 XLNet 的诞生过程,回顾它的前世今生。

前言

正当 GPT-2 还拿着 15 亿参数的模型吊着人们的胃口时,XLNet 带着开源的代码和 20 项 SOTA 的成绩悄悄发布了。从 BERT 到 XLNet,大一统预训练模型的成功,无疑昭示着行业的快速进步。现在是最好的时机。回到正题,本文虽篇幅较长,但能提供不一样的视角,帮你迅速理清模型的细节。废话不多说,笔者这就将带你快速品读,XLNet 诞生之路上最重要的三篇论文:

  • Attention Is All You Need (12 Jun. 2017)

  • Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context (9 Jan. 2019)

  • XLNet: Generalized Autoregressive Pretraining for Language Understanding (19 Jun. 2019)

一、Attention Is All You Need

论文链接:https://arxiv.org/abs/1706.03762

代码链接:https://github.com/tensorflow/tensor2tensor

这篇论文诞生于 2017 年 6 月,彼时 RNN、LSTM、GRU 早已名扬天下,发迹于 2015 年的 Attention 机制也在经历各种变形的考验,两者相互合作,占据了 NLP 的半边天。循环神经网络最大的缺陷,在于其序列依赖性,上一时刻输出的隐藏状态(以及 LSTM 的记忆细胞)和本时刻的输入共同作为新一轮的单元细胞处理材料,如此往复。

出于自回归的特性,单单凭借一到两个矩阵完整而不偏颇地记录过去几十个甚至上百个时间步长的序列信息,显然不太可能,其权重在训练过程中反复调整,未必能刚好应用到测试集的需求上。更不用提训练时梯度消失导致的难以优化的问题。这些缺陷从 LSTM 的单元公式便足以看出。后续新模型的开创者们始终没有推出一个可以完美解决以上问题,同时保证特征抽取能力的方案,直到 Transformer 出现。(下图为应用于文本摘要任务的模型结构示例,结构为双向 LSTM 搭配 Attention 机制)

在各种情景下历经切除试验而始终保持稳健性的 Attention 机制不能抛弃,于是 Transformer 的发明者选择将其保留,而彻底摒弃循环神经网络的设计架构。取而代之的,是回炉再造后焕然新生的 Attention 机制,叫做 Self-Attention,意为 “Attention on oneself”。

Attention机制

在介绍 Self-Attention 前,我们首先回顾一下 Attention 机制的原理,委屈一下对 Attention 机制熟悉的读者。Attention 机制的目的是作为 Encoder 的附加层,提取更为丰富的特征信息。其核心在于三个要素:Query, Key 和 Value,公式如下,

Attention(Q,K,V)=Similarity(Q,K)V

其中分dk一般为词向量的维度。在此基础上进一步变形,将 Query, Key, Value 经过多组线性变换后分别放入 Scaled Dot-Product Attention,对得出的结果进行合并并进行二次线性变换,这样的 Attention 机制称为 Multi-Head Attention:

在另一方面,以上问答系统案例中的 Query 和 Key 分别来自与文本和问题有关的隐藏状态,而当 Query 和 Key 来自同一组对象时,即计算相似度时我们将词向量与文本本身的其他词向量组合求相似度,不引用任何其他信息,这样的 Attention 机制称为 Self-Attention。自注意力输出的特征直接替换原隐藏状态,不再与其合并。以上四者的结合便是 Attention 机制在 Transformer 中的应用,更多细节我们将在下文中介绍。除以上几者之外,Attention 还有诸多不同的变形方式,包括拼接后导入感知机代替点积进行相似度计算,以及以加权平均的方式代替 Attention 输出特征与 Query 的纵向合并,感兴趣的读者可自行了解。

Transformer

使用循环神经网络搭配 Attention 机制进行各种变形形成 Encoder,再接一个作为输出层的 Decoder 形成 Encoder-Decoder 架构,是 Transformer 诞生前夕各类主流 NLP 神经网络的设计思路。

例如动态协同注意网络 (Dynamic Coattention Network, DCN) 使用作为 Encoder 的单向 LSTM + 协同注意力编码器对来自文本和问题的隐藏状态进行多次线性/非线性变换、合并、相乘后得出联合矩阵,再投入由单向 LSTM、双向 LSTM 和 Highway Maxout Networks (HMN) 组成的动态指示解码器 (Dynamic Pointing Decoder) 导出预测结果;双向注意流网络 (Bi-Directional Attention Flow, BiDAF) 除特殊的由循环神经网络构成的结构外,同时使用问题到文本和文本到问题的注意力矩阵提取特征。

在问答领域还包括 DrQA、AoA、r-Net 种种变形后表现有所提升的模型,其他领域则更多。但无论如何,始终摆脱不掉 RNN 或 CNN 的影子。

Transformer 超脱于其中,是第一个使用自注意力机制,彻底摆脱循环或卷积神经网络依赖的模型。模型结构如下:

左侧和右侧分别是基础的 Encoder 单元和 Decoder 单元,两者搭配在一起组成一个 Transformer 层 (Transformer-layer)。为行文清晰,我们将模型细节由浅入深,整理为以下要点:

  • Inputs:模型的训练基于单向 many-to-many,不要求 Inputs 和 Outputs 的长度相等,两者不等长时将空缺部分填充为 0 向量。

  • Outputs (shifted right):在一般任务下,模型训练的目的为预测 next token probability,从而保持 Inputs 和 Outputs 等长,Outputs 取自于文本中相对于 Inputs 右移一个位置,即 shifted right;在进行翻译任务的训练时,则输入一个不等长的句子对。

  • Nx:论文中的 Transformer 深度为六层。在每一层的结尾,Encoder 输送隐藏状态给下一层 Encoder,Decoder 同理。

  • 三个箭头:通向每个注意力层的三个并列的箭头从左到右分别为 Value、Key 和 Query。Encoder 在每一层将隐藏状态通过线性变换分化出 Key 和 Value 输送给 Decoder 的第二个注意力层。

  • Input Embedding:使用预训练词向量表示文本内容,维度为 dmodel  ,论文中 dmodel=512.

  • Positional Embedding:依据单词在文本中的相对位置生成正弦曲线,以记录序列长度信息,针对 pos pospos 位置上的奇数维和偶数维,

  • Masked Multi-Head Attention:仅应用于 Decoder 的第一个注意力层。在 Multi-Head Attention 的基础上做 Masking 处理,其目的在于计算某一位置 Self-Attention 时不利用到右侧我们将要预测的信息,所有与右侧位置的点积不参与计算,直接取值为 −∞,这样一来经过 Softmax 归一化处理,右侧位置的权重将接近于 0。

  • Linear:输出模型结果的概率分布,输出维度为预测目标的词汇表大小。

以上概括虽简短,但皆是论文内容的高度浓缩,相信读者到这里已经非常清楚 Transformer 的架构了。由于引入了自注意力机制,Transformer 避免了使用自回归模型提取特征的弊端,得以充分捕获近距离上文中的任何依赖关系。不考虑其优良的并行特性,在应对文本总长度小于词向量维度的任务时 (例如机器翻译),模型的训练效率也显著高于循环神经网络。夸归夸,Transformer 也有不足之处。之所以说是捕获近距离的任何依赖关系,是因为论文没有提到,当输入文本的固定长度持续增长时,其训练时间也将呈指数上涨。也因此,Transformer 的序列建模长度不如 LSTM,输入句子对是标准的训练形式。

成绩

论文作者在两项机器翻译任务上训练 Transformer,并刷新了历史最佳成绩。分别为 WMT 2014 年英德翻译数据集 (包含450万个句子对),和 2014 年英法翻译数据集 (包含3,600万句子对)。前者预测的是德语语料的双字节编码 (byte-pair encoding),词汇大小为 37,000,后者则是纯粹的单词,共计 32,000 个。

每次投入包含 25,000 个源语言词汇以及 25,000 个目标语言词汇的句子对批量进入模型训练。训练在 8 块 Nvidia P100 GPU 上进行,依据上文所述超参数进行配置的基础模型使用了 12 个小时训练了 100,000 个步长,平均每个步长耗时 0.4 秒;而经过反复调参,表现最好的大参数模型花费 3.5 天训练了 300,000 个时间步长,每个步长耗时 1 秒。

优化器选用 Adam Optimizer。训练时采用了三种正则化方式:1)在每一个注意力层和前馈层后接一个概率为 Pdrop=0.1 的 Dropout 层;2)在将 Input 或 Output Embedding 和 Positional Embedding 进行加法运算后以同样的概率随机 Dropout;3)对模型标签采用 els=0.1 的平滑处理。这三种方式都一定程度地提高了模型的泛化能力。更多细节请读者自行参考论文。

最终 Transformer 在第一个任务上将历史最佳表现提升两个百分点到 BLEU 28.4,第二个任务提升 0.5 个百分点到 BLEU 41.8。除这两个任务以外,论文阐述了在英文句法分析 (Consituency Parsing) 上也取得了不错的效果。

Transformer 最大的成就在于引入自注意力机制,摆脱了序列模型自回归式的设计。由于没能在实际任务的应用上大范围地刷新 RNN 系模型的成绩,因而没有引起如同 BERT 和 XLNet 诞生之时的轰动。在此期间,仍然有大量的学者致力于研究 LSTM 梯度消失问题的解决方案,包括调整参数初始化,增强记忆结构,调整单元架构等等,没有将注意力放在 Transformer 上。正是借助 OpenAI GPT、BERT 这些表现亮眼的上层模型,Transformer 才在一两年后逐渐奠定它的江湖地位。

二、Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

论文链接:https://arxiv.org/abs/1901.02860

代码链接:https://github.com/kimiyoung/transformer-xl

这篇论文发布于今年年初 (9 Jan. 2019)。论文中,Transformer-XL 旨在于解决长期以来困扰 NLP 界的难题:捕捉长距离依赖关系,这也是其名称的由来 XL: extra long。有学者研究表明,LSTM 的平均上下文长度为 200 (Transformer 低于 50)。而在同等的计算力下,Transformer-XL 最终可以捕获的依赖关系距离比循环神经网络远 80%,更超出 Transformer 450%。

这还不够,next token prediction 速度更是 vanilla Transformer (Transformer 在字符级和深度上的改良版本) 的 1,800+ 倍。这其中的秘诀在于 Transformer-XL 对自注意力机制引入的两项调整 —— 循环机制 (recurrence mechanism) 和 相对位置编码 (relative positional encoding)。但 Transformer-XL 和 Transformer 的区别还远不止于此,我们会在下文中逐步展开相关介绍。

Vanilla Transformer

两者还存在诸多区别的原因,在于 Transformer-XL 并非直接从 2017 年发布的原始 Transformer 演化而来,而是一个叫 vanilla Transformer 的版本。该版本首次出现在 Rami Al-Rfou 等人于 2018 年发布的 Character-Level Language Modeling with Deeper Self-Attention (9 Aug. 2018),论文链接。(该论文中并没有提到 vanilla 的字样,至于本文作者为何称呼该模型为 vanilla,笔者暂未找到答案,尚且沿用这一称呼)。

Vanilla Transformer 将 Transformer 的深度扩展到 64 层,并应用了 标准 Transformer 架构 (standard Transformer architecture):将每一层中的 Decoder 剔除,并将 Encoder 中的自注意力层改为 Masked 自注意力层,由此一来模型结构大大简化,使得 Transformer 具备成为优秀特征提取器的资质 (如同当年 RNN 那样)。在下文中介绍 BERT 和 XLNet 时我们将会多次提到这一概念。

Vanilla Transformer 还引入了一些其他独特的设计,包括在中间层添加辅助损失函数提前参与收敛,这里不进行赘述。训练时,首先将完整的语料分成若干个等长的 segment,计算 self-attention 不考虑本 segment 以外的语料信息,由此预测 segment 内部的 next token probability。而在推理 (预测) 时,逐字划分 segment 边界,每过一个时间步长则向右滑动一个单位。如下图所示:

本论文指出,这样的设计存在两个重要缺陷:1)捕捉长距离依赖关系依然受限于 segment 的长度,同时无法充分利用自注意力机制的优化优势;2)将语料序列直接划入等长的 segment 将把句子横空切断,造成上下文碎片化 (context fragmentation)。

循环机制

爱之深,责之切。批评过后,论文提出了解决方案:循环机制。同 vanilla Transformer 一样,将语料事先划分为等长的 segments,训练时将每一个 segment 单独投入计算 self-attention。每一层输出的隐藏状态作为记忆存储到内存中,并在训练下一个 segment 时,将其作为额外的输入,代表上文中的语境信息。这样一来便在上文与下文之间搭建了一座桥梁,使得模型能够捕获更长距离的依赖关系:

数学上,假设两个相邻的 segment 分别为,

Transformer-XL

将循环机制和相对位置编码结合起来,也就得到了完整的 Transformer-XL 模型。最终表达式为,

成绩

Transformer-XL 承袭了 vanilla Transformer 适用于字符级 (character-level) 任务的特性,并能够连续生成包含数千个字符的文本 (尚且不知同等参数量下,生成效果和后来大名鼎鼎的 OpenAI GPT-2 相比如何)。

论文作者将 Transformer-XL 广泛应用在词汇级和字符级的数据集上,包括 WikiText-103,enwik8,text8,One Billion Word,以及 Penn Treebank。前三个数据集重在检测长距离依赖关系的捕捉能力,Transformer-XL 不负所望,所有表现皆优于当下 SOTA 模型;

第四个数据集 One Billion Word 由于句子被打乱,考验的是短距离依赖关系的捕捉能力,Transformer-XL 依旧刷新了最佳成绩;第五个数据集体量仅有100万,不足前四者的百分之一,考验的是小数据集训练后的泛化能力,Transformer-XL 表现仍然亮眼。模型设置方面,注意力长度 O(N×L) O(N\times L)O(N×L) 训练时从 384 起底,最高 784,而预测时 Large 模型更是达到了原来不可想象的 3,800 的高度;Encoder 和 Decoder 层数从 12 层到 24 层不定。

RECL

abbr. Relative Effective Context Length。在论文的结尾,作者提出了将 RECL 作为判断模型有效文本利用长度的基准,换句话说,衡量模型对长距离关系的捕获能力。原理在于找出 r rr 百分比个最难预测的 token,求得能极小化损失函数的注意力长度。设定 r=0.1 r=0.1r=0.1,Transformer-XL 最终的成绩为 900,这便是前文中 80% 和 450% 数字的由来:

而在预测速度上,1,800+ 的数字来自于:

既能捕获长距离依赖关系,也能充分利用短距离依赖关系,Transformer-XL 名副其实地成为第一个同时在字符级和词汇级任务上超越循环神经网络的自注意力模型,并在为构建集成网络,刷新问答、分类、推理等 NLP 领域的成绩做着全面的准备。

三、XLNet: Generalized Autoregressive Pretraining for Language Understanding

论文链接:https://arxiv.org/abs/1906.08237

代码链接:https://github.com/zihangdai/xlnet

6 月 19 日,带着 Transformer-XL 的优良特性,XLNet 终于问世。自一月份 Transformer-XL 的论文发布以来,已过去五个月。期间,擅长暴力美学,堆砌训练材料和参数体量的 GPT-2 (16 Feb. 2019) 因续写文章表现出色,难以辨识真假,引发一阵道德舆论风暴。

但在模型设计本质上,GPT-2 相对于 GPT 并未获得具有价值的创新,因而论文中鲜有涉及 GPT-2 的讨论。相对地,无论是最终的模型表现,还是部分细节的设计初衷,XLNet 都和 BERT 紧密相关。因此读懂这篇论文,需要对 BERT 的原理有基本的了解。如果你对 BERT 不甚熟悉,没关系,笔者将带着你一起回顾。

BERT

如果说 BERT 的出现代表基于 Transformer 的自注意力派系彻底战胜基于 RNN 的自回归系,那么 XLNet 则是出自自注意力派系门下,融合两家武学之长的集大成者。BERT 出自论文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (11 Oct. 2018),论文链接。以下是 BERT 的结构:

由图我们看出,BERT 由双层双向 Transformer 构建而成,训练分为两个步骤:预训练 (pre-training) 和 微调 (find-tuning)。预训练是为了在输入的词向量中融入上下文特征,微调则是为了使 BERT 能适应不同的下游任务,包括分类、问答、序列标注等,两者是独立进行的。

由此我们可以看出,BERT 是一个普适性非常强的模型,而不像过去几年中很多为特定任务设计的模型 (feature-based task-specific models) 那样,只能应用于单一场景 ,这为 BERT 刷新 11 项记录奠定了基础。预训练时,BERT 采用的策略与标准 Transformer 不同的地方在于,后者是基于预测 next token,只在输入句子的结尾进行预测;而前者预测的是句子本身,只是输入时 15% 的 token 被随机遮盖 (mask) 掉了,这便是 BERT 独特的 Mask 机制,也是众多 data corruption 方式中的一种。而 BERT 在标准 Transformer 的位置编码基础上,还添加了一项 segment 编码,如下图:

这是 BERT 预训练时最标准的输入形式。每个训练步长,BERT 输入句子 A,然后以 50% 的概率选择下一个连续的句子作为 B,另外 50% 的概率是从语料中随机抽取不连续的 B 取而代之。这便是 BERT 论文中所提到的 Next Sentence Prediction。因此模型训练时的输出除了完整的句子本身外,还有一个是或否的标签,判断两个句子是否连续。

这样设计的初衷在于增强 BERT 的上下文推理能力。以上是预训练,在微调时,只需要改变模型的输入和输出即可。关于 BERT 的简短介绍就进行到这里。最终,BERT 在以下十一个任务上取得了 SOTA 成绩:

  • 分类及推理:GLUE (MNLI, QQP, QNLI, STS-B, MRPC, RTE, SST-2, CoLA), SWAG

  • 序列标注:CoNLL-2003 NER

  • 问答:SQuAD

由于 BERT 不是本文的重点,更多细节请读者自行参读论文,或参考网络博客 (出于 BERT 的知名度,网上的解读非常详尽)。以下将会经常提到关于 BERT 的以上内容。

▌有序因子排列

BERT 与 XLNet 的首要不同在于,BERT 底层应用的是 Mask 机制下的 标准 Transformer 架构,而 XLNet 应用的是在此基础上融入了自回归特性的 Transformer-XL。前者无论是在训练还是预测,每次输入的文本都相互独立,上一个时间步长的输出不作为下一个时间步长的输入;而传统的循环神经网络正好相反。

论文将满足前者特性的模型归类于 自编码 (autoencoding, AE) 语言模型,而把 RNN 系归类于自回归 (autoregressive, AR) 语言模型。以 BERT 为首的自编码模型虽可以学得上下文信息,但在 data corruption 设计上存在两个天然缺陷:

1)忽视了训练时被 Mask 掉的 token 之间的相关关系;

2)这些 token 未能出现在训练集中,进一步导致预训练的模型参数在微调时产生差异。而自回归模型虽不存在以上缺陷,但只能基于单向建模。双向设计 (如 GPT 的双层 LSTM) 将产生两套无法共享的参数,本质上仍为单向模型,利用上下文语境的能力有限。

不同的排列方式,使模型的训练充分融合上下文特征,同时不会造成 Mask 机制下的有效信息缺失,从而使模型充分利用自编码和自回归的优势,而避免了两者的不足。这样独特的思路并不是创造 XLNet 的学者们拍拍脑袋想出来的,而是借鉴了发表于 2016 年的一篇论文中的思想,只不过后者对元素的排列并没有如同 XLNet 进行有序的规划,而是全程无序的,论文指出这样的思路会使序列退化为词袋,从而丢失关键信息,因而做出调整。

▌双流自注意力

双流自注意力 (Two-Stream Self-Attention) 为配合有序因子排序而生,是相对于 Transformer-XL 的单流自注意力而言的。由于论文没有对 Transformer-XL 展开详细的介绍,因此不熟悉 Transformer-XL 的读者读到这里会觉得晦涩难懂 (笔者在阅读本论文前看了几篇知名博主发布的关于 XLNet 的解读,都没能将它解释清楚)。鉴于此,笔者会在后面详细解释相关要点,我们先依旧按照论文的逻辑展开。第一步,先尝试将有序因子排列应用在 Transformer-XL 上。似然函数表达式:

当读者看到上述公式中 Query Stream 的 Key 和 Value 用的是来自 Content Stream 的隐藏状态时,应当非常熟悉,这正是 2017 年发布的第一代 Transformer 的设计:将固定长度的语料作为 Inputs 导入 Encoder,而将语料整体向右移动一个字符作为预测对象 Outputs 导入 Decoder;Inputs 经过一个自注意力层和一个前馈层后,从输出结果中分离 Key 和 Value 给 Decoder;Decoder 经过一个 Mask 自注意力层后保留 Query,接收来自于 Encoder 的 Key 和 Value 进行进一步运算。

对以上过程不熟悉的读者可参读本文第一节。而在第二节中我们提到过,Transformer-XL 由 vanilla Transformer 演变而来,使用的是标准 Transformer 架构。这个架构本身的特点在于 Query 和 Key 你我不分家,两者通过不同的参数从一个矩阵线性 (隐藏状态) 变换而来;继续往下追溯,两者取自同一块语料;属于单流自注意力设计。因此双流自注意力实际上是 XLNet 为了配合有序因子排列,而将 Transformer-XL 的结构还原回初代 Transformer 的架构。Query Stream 中剔除等同于初版 Transformer 中 Decoder 对 Query 的 Mask 操作。

回到论文内容。这时的模型已经可以投入使用,但经过试验发现,有序因子排序增加了数倍的计算量使得模型的收敛速度过于缓慢,为此 XLNet 引入一项超参数 K KK,只对排列尾部的 1/K 1/K1/K 个元素进行预测,最大化似然函数。如此以来效率大大提高,而同时不用牺牲模型精度。这个操作称为 partial prediction,同 BERT 只预测 15% 的 token 类似。

XLNet

关于模型的设计还有以下要点:

  • Transformer-XL:关于 Transformer-XL 中的循环机制 (recurrence mechanism) 以及相对位置编码 (relative position encoding),应用到 XLNet 中并没有发生改变。XLNet 会为每一种排列记录隐藏状态记忆序列,而相对位置编码在不同排列方式间保持一致,不随排列方式的变化而变化。以一句话作为总结,我们可以将 XLNet 看成是不同排列下多个 Transformer-XL 的并行。

  • 训练过程:与 BERT 同样分为预训练和微调。预测时只需要关闭 Query Stream,将 Transformer-XL 再度还原回单流注意力的标准形态即可。

  • 问答任务:应用于提供一个问题和一段文本的问答任务时,仿照 BERT,从语料中随机挑选两个样本 segment 组成一个完整的 segment 进行正常训练。只有当两者来自于同一个上下文范围时使用循环机制。而对于相对位置编码,使用可训练参数替换原来的正弦曲线。经过切除测试 (ablation study),BERT 中的 next sentence prediction 并未对模型效果有显著提高,因此不使用。

到这里,XLNet 的介绍也就基本结束了。

成绩

集百家之长,避百家之短的 XLNet 融汇了过去几年里几乎所有相关模型的先进思想,成为超越 BERT 的又一个大一统的集成模型,并在 20 项任务上全面超越前者。其中,18 项任务创造了 SOTA 记录:

  • 分类:GLUE (MNLI, QNLI, STS-B, MRPC, RTE, SST-2, WNLI), RACE, IMDB, Yelp-2, Yelp-5, DBpedia, AG, Amazon-2, Amazon-

  • 文档排序:NDCG@20, ERR@20

  • 问答:SQuAD

XLNet 同时克服了自编码模型和自回归模型的缺陷,并出于 Transformer-XL 优秀的长距离依赖关系捕捉能力,对 BERT 的表现形成碾压趋势。其中最大体量的 XLNet-Large 参照 BERT-Large 的配置,包含 3.4 亿参数,16 个注意力头,24 个 Transformer 层,1024 个隐藏单元。论文指出即使是这样的配置,在训练过后依然呈现欠拟合的态势,而 15 亿参数量 GPT-2 的诞生无疑也预示着,将来 NLP 前沿模型将会持续保持大体量和大规模。

这对各项任务的数据提出了更高的要求。更有专业人士研究表明,XLNet 的训练成本高达 6 万美元,接近 BERT 的 5 倍 和 GPT-2 的 1.5 倍。我们期待未来的 NLP 前沿模型能适用于更多的 NLP 任务以及更小的数据集。

后续

XLNet 的官方 Github 地址 提供了使用预训练模型参数,以及应用于单场景下游任务 (回归/分类/SQuAD) 的微调 (fine-tuning) 教程。目前只发布了包含了 24 层自注意力,1024 个隐藏单元和 16 个注意力头的 XLNet-Large (TensorFlow 1.13.1, Python 2),将于近期发布 XLNet-Base,请读者自行关注官方网址以跟进动态。

作者介绍:

李格映,数据科学专业研究生,来自于香港中文大学(深圳)高等金融研究院,目前就职于华为 (实习)。在自然语言处理的命名实体识别、问答系统领域具备一定研究经验。

原文链接:

https://blog.csdn.net/weixin_43269174/article/details/94323036

(*本文为 AI科技大本营转载文章,转载请联系原作者

精彩推荐

“只讲技术,拒绝空谈”2019 AI开发者大会将于9月6日-7日在北京举行,这一届AI开发者大会有哪些亮点?一线公司的大牛们都在关注什么?AI行业的风向是什么?2019 AI开发者大会,倾听大牛分享,聚焦技术实践,和万千开发者共成长。

目前,大会盲订票限量发售中~扫码购票,领先一步!

推荐阅读

  • 扶稳!四大步“上手”超参数调优教程,就等你出马了 | 附完整代码基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法

  • 10个简单小窍门带你提高Python数据分析速度(附代码)

  • Python手写线性回归算法

  • 程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!

  • 抖音微博等短视频千万级高可用、高并发架构如何设计?

  • 为何 5G、物联网和区块链,可以成为科技铁三角?

你点的每个“在看”,我都认真当成了喜欢

追溯XLNet的前世今生:从Transformer到XLNet相关推荐

  1. 对Transformer、XLNet、 ALBERT、 CRF等技术仍然一知半解?再不学习就OUT了!

    谷歌Lab近日发布了一个新的预训练模型"ALBERT"全面在SQuAD 2.0.GLUE.RACE等任务上超越了BERT.XLNet.RoBERTa再次刷新了排行榜!ALBERT是 ...

  2. 对GCN,Transformer, XLNet, ALBERT, CRF等技术仍然一知半解?再不学习就OUT了!

    谷歌Lab近日发布了一个新的预训练模型"ALBERT"全面在SQuAD 2.0.GLUE.RACE等任务上超越了BERT.XLNet.RoBERTa再次刷新了排行榜!ALBERT是 ...

  3. 对Transformer,XLNet,ALBERT等技术仍然一知半解?再不学习就OUT了!

    NLP领域的现状以及AI工程师面临的严峻挑战 在过去几年时间里,NLP领域取得了飞速的发展,这也推动了NLP在产业中的持续落地,以及行业对相关人才的需求. 虽然,NLP的崛起滞后CV多年,但目前的势头 ...

  4. Attention Mechanism[Transformer、Transformer-XL、XLNet]

    Content Attention Mechanism--->聚焦关键点 1 History 2 Introduction 3 structure 4 application situation ...

  5. 碾压Bert?“屠榜”的XLnet对NLP任务意味着什么

    作者张俊林,中国中文信息学会理事,中科院软件所博士.目前担任新浪微博机器学习团队 AI Lab 负责人.在此之前,张俊林曾经在阿里巴巴任资深技术专家并负责新技术团队,以及在百度和用友担任技术经理及技术 ...

  6. 什么是XLNet中的双流自注意力

    2020-02-19 21:02:43 作者:Xu LIANG 编译:ronghuaiyang 导读 理解XLNet中的双流自注意力机制. 在我之前的文章什么是XLNet,它为什么比BERT效果好?中 ...

  7. XLNet 详解(看不懂你来骂我)

    B站视频讲解 "干翻芝麻街" 2018 年,谷歌发布了基于双向 Transformer 的大规模预训练语言模型BERT,刷新了 11 项 NLP 任务的最优性能记录,为 NLP 领 ...

  8. Pytorch——XLNet 预训练模型及命名实体识别

    介绍 在之前我们介绍和使用了 BERT 预训练模型和 GPT-2 预训练模型,分别进行了文本分类和文本生成次.我们将介绍 XLNet 预训练模型,并使用其进行命名实体识别次. 知识点 XLNet 在 ...

  9. 《拆解 XLNet 模型设计,回顾语言表征学习的思想演进》

    深度解析 XLNet 作者: 追一科技 AI Lab 研究员 Tony 在预训练语言模型 BERT 对自然语言处理的冲击还未平息时,CMU 和 Google 的研究员又放出了一个猛料:在 20 多项任 ...

最新文章

  1. No such file or directory: Failed to enable the 'httpready' Accept Filter
  2. 生产上如何设置线程池参数?拒绝策略怎么配?|| Executors 中 JDK 给你提供了,为什么不用??
  3. Spring集成Mybatis plus
  4. JavaScript 游动层onmouseover
  5. nginx fastcgi php-fpm的关系梳理
  6. 开源无收入,全职开源仍是少数,企业开源成热门,开发者正在见证开源历史
  7. 【写作技巧】毕业设计的附录放在论文的哪个位置?
  8. ProtecTIER网关演绎重复数据删除的硬道理
  9. linux命令行界面如何安装图形化界面
  10. iOS开发学习之NSFetchedResultsController
  11. 微信小程序中媒体api总结
  12. WebApp与HybridApp
  13. 20191026每日一句
  14. hadoop 2.7.3 源码编译教程
  15. 让iphone死机的短信内容
  16. IM多点登录与消息漫游架构随想
  17. 安装 配置BlackBerry Push Service SDK v1.1.0
  18. 软件测试-测试类型分类
  19. 百度统计、谷歌统计原理以及自定义统计源码
  20. Unity-Unity编辑器Part5

热门文章

  1. 使用photoshop 10.0制作符合社保要求的照片
  2. AD rodc扩展报错
  3. Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...
  4. Symfony学习笔记
  5. The Life Cycle of a Servlet
  6. 大一新生,你为何逃课?
  7. IBM蓝色基因/Q将采用NAND闪存存储
  8. 暑期集训5:并查集 线段树 练习题A:  HDU - 1232 ​​​​​​​
  9. ROS控制无人机offboard模式
  10. 八、LaTex中的表格