0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简化版的XLNet在PyTorch Wrapper实现

DPVg_AI_era 来源:lq 2019-07-07 09:15 次阅读

XLNet虽然好用,但实在太费钱了!近日,一位韩国小哥成功将简化版的XLNet在PyTorch Wrapper实现,批规模仅为1,不再依赖谷歌爸爸的巨额算力,让“穷人”也能用得起。

不久前,谷歌大脑和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上。

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

$ 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、具有目标感知表示的双向自注意力模型

双向自注意力模型

目标感知表示

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    5845

    浏览量

    103245
  • nlp
    nlp
    +关注

    关注

    1

    文章

    463

    浏览量

    21816
  • pytorch
    +关注

    关注

    2

    文章

    759

    浏览量

    12825

原文标题:XLNet太贵?这位小哥在PyTorch Wrapper上做了个微缩版的

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    英特尔Gaudi2C处理器或为Gaudi2的简化版,Gaudi3预计2024年面世

    对于Gaudi2C和Gaudi2之间的差别,有推测认为它可能是“部分”改动后的产品,针对中国市场专门定制。Tomshardware则猜测可能是Gaudi2的简化版
    的头像 发表于 12-20 13:44 600次阅读

    pytorch模型转换需要注意的事项有哪些?

    什么是JIT(torch.jit)? 答:JIT(Just-In-Time)是一组编译工具,用于弥合PyTorch研究与生产之间的差距。它允许创建可以不依赖Python解释器的情况下运行的模型
    发表于 09-18 08:05

    如何往星光2板子里装pytorch

    如题,想先gpu版本的pytorch只安装cpu版本的pytorch,pytorch官网提供了基于conda和pip两种安装方式。因为咱是risc架构没对应的conda,而使用pip安装提示也没有
    发表于 09-12 06:30

    使用PyTorch加速图像分割

    使用PyTorch加速图像分割
    的头像 发表于 08-31 14:27 482次阅读
    使用<b class='flag-5'>PyTorch</b>加速图像分割

    pytorch用来干嘛的

    实现,并允许从Python等高级语言编写神经网络的设计和训练。 PyTorch包含了许多用于Computer Vision和NLP等领域的预训练模型,可以对它们进行微调,以便更好地适应特定的任务。 在机器学习和深度学习领域中,PyTor
    的头像 发表于 08-21 16:41 5014次阅读

    深度学习框架pytorch入门与实践

    深度学习框架pytorch入门与实践 深度学习是机器学习中的一个分支,它使用多层神经网络对大量数据进行学习,以实现人工智能的目标。在实现深度学习的过程中,选择一个适用的开发框架是非常关键
    的头像 发表于 08-17 16:03 1194次阅读

    如何将PyTorch模型与OpenVINO trade结合使用?

    无法确定如何转换 PyTorch 掩码 R-CNN 模型以配合OpenVINO™使用。
    发表于 08-15 07:04

    Pytorch模型转换为DeepViewRT模型时出错怎么解决?

    我正在寻求您的帮助以解决以下问题.. 我 Windows 10 上安装了 eIQ Toolkit 1.7.3,我想将我的 Pytorch 模型转换为 DeepViewRT (.rtm) 模型,这样
    发表于 06-09 06:42

    PyTorch教程3.2之面向对象的设计实现

    电子发烧友网站提供《PyTorch教程3.2之面向对象的设计实现.pdf》资料免费下载
    发表于 06-05 15:48 0次下载
    <b class='flag-5'>PyTorch</b>教程3.2之面向对象的设计<b class='flag-5'>实现</b>

    PyTorch教程4.4之从头开始实现Softmax回归

    电子发烧友网站提供《PyTorch教程4.4之从头开始实现Softmax回归.pdf》资料免费下载
    发表于 06-05 15:37 0次下载
    <b class='flag-5'>PyTorch</b>教程4.4之从头开始<b class='flag-5'>实现</b>Softmax回归

    PyTorch教程5.2之多层感知器的实现

    电子发烧友网站提供《PyTorch教程5.2之多层感知器的实现.pdf》资料免费下载
    发表于 06-05 15:32 0次下载
    <b class='flag-5'>PyTorch</b>教程5.2之多层感知器的<b class='flag-5'>实现</b>

    PyTorch教程13.6之多个GPU的简洁实现

    电子发烧友网站提供《PyTorch教程13.6之多个GPU的简洁实现.pdf》资料免费下载
    发表于 06-05 14:21 0次下载
    <b class='flag-5'>PyTorch</b>教程13.6之多个GPU的简洁<b class='flag-5'>实现</b>

    PyTorch教程3.5之线性回归的简洁实现

    电子发烧友网站提供《PyTorch教程3.5之线性回归的简洁实现.pdf》资料免费下载
    发表于 06-05 11:28 0次下载
    <b class='flag-5'>PyTorch</b>教程3.5之线性回归的简洁<b class='flag-5'>实现</b>

    PyTorch教程9.6之递归神经网络的简洁实现

    电子发烧友网站提供《PyTorch教程9.6之递归神经网络的简洁实现.pdf》资料免费下载
    发表于 06-05 09:56 0次下载
    <b class='flag-5'>PyTorch</b>教程9.6之递归神经网络的简洁<b class='flag-5'>实现</b>

    PyTorch教程之从零开始的递归神经网络实现

    电子发烧友网站提供《PyTorch教程之从零开始的递归神经网络实现.pdf》资料免费下载
    发表于 06-05 09:55 0次下载
    <b class='flag-5'>PyTorch</b>教程之从零开始的递归神经网络<b class='flag-5'>实现</b>