前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XLNet太贵?这位小哥在PyTorch Wrapper上做了个微缩版的

XLNet太贵?这位小哥在PyTorch Wrapper上做了个微缩版的

作者头像
新智元
发布2019-07-12 15:25:31
4840
发布2019-07-12 15:25:31
举报
文章被收录于专栏:新智元


不久前,谷歌大脑和CMU联合团队提出面向NLP预训练新方法XLNet,性能全面超越此前NLP领域的黄金标杆BERT,在20个任务上实现了性能的大幅提升,刷新了18个任务上的SOTA结果,可谓全面屠榜。

论文地址:

https://arxiv.org/pdf/1906.08237.pdf

XLNet性能确实强大,不过还是要背靠谷歌TPU平台的巨额算力资源。有网友做了一下简单统计,按照论文中的实验设计,XL-Large用512 TPU chips训练了4天,也就是说,训练时的总计算量是BERT的5倍。语料规模是BERT-large的10倍。

要知道BERT作为谷歌的亲儿子,其训练量和对计算资源的需求已经让很多人望尘莫及。现在XLNet又来了个5倍,让人直呼用不起。

这么强劲的XLNet,只能看着流口水却用不起,岂不是太遗憾了?

土豪有土豪的用法,穷人有穷人的诀窍。最近有个韩国小哥就成功将XLNet挪到了Pytorch框架上,可以在仅使用小规模训练数据(批规模=1)的情况下,实现一个简单的XLNet实例,并弄清XLNet架构的预训练机制。他将实现方案放在了GitHub上。

要使用这个实现很简单,只需导入如下代码:

代码语言:javascript
复制
$ git clone https://github.com/graykode/xlnet-Pytorch && cd xlnet-Pytorch

# To use Sentence Piece Tokenizer(pretrained-BERT Tokenizer)
$ pip install pytorch_pretrained_bert

$ python main.py --data ./data.txt --tokenizer bert-base-uncased \
   --seq_len 512 --reuse_len 256 --perm_size 256 \
   --bi_data True --mask_alpha 6 --mask_beta 1 \
   --num_predict 85 --mem_len 384 --num_step 100

接下来对实现方法和超参数设置的简单介绍,首先贴出XLNet论文中给出的预训练超参数:

然后,作者给出了PyTorch框架下XLNet实现的超参数调节选项如下:

—data(String) : 使用文本文件训练,多行文本也可以。另外,将一个文件视为一个批张量。默认值: data.txt

—tokenizer(String) :目前仅使用【这里】的Tokenizer作为子词的Tokenizer(即将编入句子部分),这里可以选择bert-base-uncased/bert-large-uncased/bert-base-cased/bert-large-cased四种Tokenizer。

默认值: bert-base-uncased

—seq_len(Integer) : 序列长度。

默认值 : 512

—reuse_len(Interger) : 可作为记忆重复使用的token数量。可能是序列长度的一半。

默认值 : 256

—perm_size(Interger) : 最长排列长度。

默认值: 256

--bi_data(Boolean) : 是否设立双向数据,如设置为“是”,biz(batch size) 参数值应为偶数。

默认值:

—mask_alpha(Interger) : 多少个token构成一个group。

默认值: 6

—mask_beta(Integer) :在每个group中需要mask的token数量。

默认值: 1

—num_predict(Interger) :

要预测的token数量。在XLNet论文中, 这表示部分预测。

默认值: 85

—mem_len(Interger) : 在Transformer-XL架构中缓存的步骤数量。

默认值: 384

—number_step(Interger) :步骤(即Epoch)数量.。

默认值: 100

XLNet:克服BERT固有局限,20项任务性能强于BERT

XLNet是一种基于新型广义置换语言建模目标的新型无监督语言表示学习方法。此外,XLNet采用Transformer-XL作为骨架模型,在长时间环境下的语言任务中表现出非常出色的性能,在多项NLP任务性能上超越了BERT,成为NLP领域的新标杆。

关于XLNet中的一些关键词

1、自回归模型与自动编码模型

自回归(AR)模型

自动编码(AE)模型

2、部分预测的排列语言建模

排列语言建模

部分预测

3、具有目标感知表示的双向自注意力模型

双向自注意力模型

目标感知表示

参考链接:

GitHub:

https://github.com/graykode/xlnet-Pytorch

XLNet论文:

https://arxiv.org/pdf/1906.08237.pdf

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档