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

    文章

    6244

    浏览量

    110259
  • nlp
    nlp
    +关注

    关注

    1

    文章

    491

    浏览量

    23191
  • pytorch
    +关注

    关注

    2

    文章

    813

    浏览量

    14699

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    叠层电容是如何实现高频噪声抑制的?

    主题:求解叠层电容的高频秘诀:其叠层工艺是如何实现极低ESL和高自谐振频率的? 我们了解到超低ESR叠层固态电容能有效抑制MHz噪声。其宣传的叠层工艺是核心。 请问,这种叠层并联结构,物理上是如何具体地实现“回路面积最小化”,
    发表于 12-04 09:19

    安宝特产品丨3DE-实体模型简化-快捷简化和表面收缩

    CAD 实体模型如何轻量化?快捷简化与表面收缩助力版权保护和营销素材制作成本优化。
    的头像 发表于 12-01 13:28 40次阅读
    安宝特产品丨3DE-实体模型<b class='flag-5'>简化</b>-快捷<b class='flag-5'>简化</b>和表面收缩

    以太网通讯FPGA上的实现

    、双工模式、是否采用流控等。FPGA和PHY之间有一个RGMII接口。RGMII是GMII的简化版,数据位宽为2位,1000Mbps传输速率下,时钟频率为125Mhz。 PHY芯片KSZ9031RNX
    发表于 10-30 07:45

    EMC电路怎么整改:如何通过简化设计提升兼容性

    EMC电路怎么整改:如何通过简化设计提升兼容性|南柯电子
    的头像 发表于 10-29 10:09 213次阅读

    京东:对接订单结算API,实现企业采购批量开票,简化财务流程

    。通过对接该API,企业可以实现批量开票,显著简化财务流程。本文将逐步介绍API的功能、对接方法、实现步骤以及带来的好处,助您高效优化采购管理。 什么是京东订单结算API? 京东订单结算API是一套标准化接口,允许企业系统直接访
    的头像 发表于 09-11 15:27 494次阅读
    京东:对接订单结算API,<b class='flag-5'>实现</b>企业采购批量开票,<b class='flag-5'>简化</b>财务流程

    ADI安全产品如何简化不同机器人控制系统中安全机制的实现

    我们将探讨各种机器人安全用例,展示ADI的安全产品如何简化不同机器人控制系统中安全机制的实现
    的头像 发表于 08-12 10:43 9059次阅读
    ADI安全产品如何<b class='flag-5'>简化</b>不同机器人控制系统中安全机制的<b class='flag-5'>实现</b>

    Arm方案 基于Arm架构的边缘侧设备(树莓派或 NVIDIA Jetson Nano)上部署PyTorch模型

    本文将为你展示如何在树莓派或 NVIDIA Jetson Nano 等基于 Arm 架构的边缘侧设备上部署 PyTorch 模型。
    的头像 发表于 07-28 11:50 2497次阅读

    DigiKey 和 Würth Elektronik – 简化 IIoT

    Elektronik]携手提供旨在简化 IIoT 实施的广泛产品和工具。通过关注连接、开发资源和效率,企业将会找到实现运营轻松转型所需的支持。 本文将探讨一些关于物联网连接和传感器的解决方案、开发和部署工具
    的头像 发表于 05-25 11:53 805次阅读
    DigiKey 和 Würth Elektronik – <b class='flag-5'>简化</b> IIoT

    摩尔线程发布Torch-MUSA v2.0.0版本 支持原生FP8和PyTorch 2.5.0

    本次升级的核心亮点, Torch-MUSA v2.0.0率先在国产GPU上实现了对FP8数据类型的完整支持 。FP8是当前AI计算的一种前沿低精度格式,支持原生
    的头像 发表于 05-11 16:41 1269次阅读

    AG32软件包SDK更新:加入新例程(可实现至少15个UART串口)

    中,使用内置CPLD资源设计提供额外的串口。每个串口为内置串口的简化版,串口个数可以自定义。例程中使用了10个串口,占用大约1.8K 的逻辑。加上AG32自带的5个UART,可以实现15+的UART
    发表于 03-28 10:53

    使用OpenVINO™ 2021.4将经过训练的自定义PyTorch模型加载为IR格式时遇到错误怎么解决?

    使用 OpenVINO™ 2021.4 将经过训练的自定义 PyTorch 模型加载为 IR 格式时遇到错误: RuntimeError: [ GENERAL_ERROR ] Failed
    发表于 03-05 08:40

    如何在Arm Ethos-U85上使用ExecuTorch

    快速发展的机器学习领域,PyTorch 凭借其灵活性和全面的生态系统,已成为模型开发的热门框架。Arm 与 Meta 合作 ExecuTorch 中引入了对 Arm 平台的支持,进一步简化
    的头像 发表于 02-14 14:23 1015次阅读
    如何在Arm Ethos-U85上使用ExecuTorch

    操作指南:pytorch云服务器怎么设置?

    设置PyTorch云服务器需选择云平台,创建合适的GPU实例,安装操作系统、Python及Anaconda,创建虚拟环境,根据CUDA版本安装PyTorch,配置环境变量,最后验证安装。过程中需考虑
    的头像 发表于 02-08 10:33 606次阅读

    利用Arm Kleidi技术实现PyTorch优化

    PyTorch 是一个广泛应用的开源机器学习 (ML) 库。近年来,Arm 与合作伙伴通力协作,持续改进 PyTorch 的推理性能。本文将详细介绍如何利用 Arm Kleidi 技术提升 Arm
    的头像 发表于 12-23 09:19 1619次阅读
    利用Arm Kleidi技术<b class='flag-5'>实现</b><b class='flag-5'>PyTorch</b>优化

    vLLM项目加入PyTorch生态系统,引领LLM推理新纪元

    近日,vLLM项目宣布正式成为PyTorch生态系统的一部分,标志着该项目与PyTorch的合作进入了一个全新的阶段。本文将从以下几个方面进行介绍,特别提醒:安装方案第四个部分,可选择性阅读
    的头像 发表于 12-18 17:06 1574次阅读
    vLLM项目加入<b class='flag-5'>PyTorch</b>生态系统,引领LLM推理新纪元