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

    文章

    6167

    浏览量

    105361
  • nlp
    nlp
    +关注

    关注

    1

    文章

    488

    浏览量

    22034
  • pytorch
    +关注

    关注

    2

    文章

    808

    浏览量

    13221

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

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

收藏 人收藏

    评论

    相关推荐

    利用Arm Kleidi技术实现PyTorch优化

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

    PyTorch 数据加载与处理方法

    PyTorch 是一个流行的开源机器学习库,它提供了强大的工具来构建和训练深度学习模型。构建模型之前,一个重要的步骤是加载和处理数据。 1. PyTorch 数据加载基础
    的头像 发表于 11-05 17:37 400次阅读

    使用PyTorch英特尔独立显卡上训练模型

    PyTorch 2.5重磅更新:性能优化+新特性》中的一个新特性就是:正式支持英特尔独立显卡上训练模型!
    的头像 发表于 11-01 14:21 430次阅读
    使用<b class='flag-5'>PyTorch</b><b class='flag-5'>在</b>英特尔独立显卡上训练模型

    CapTIvate™技术指南–简化版

    电子发烧友网站提供《CapTIvate™技术指南–简化版.pdf》资料免费下载
    发表于 10-29 09:42 0次下载
    CapTIvate™技术指南–<b class='flag-5'>简化版</b>

    LDO PSRR测量简化版

    电子发烧友网站提供《LDO PSRR测量简化版.pdf》资料免费下载
    发表于 10-18 09:23 0次下载
    LDO PSRR测量<b class='flag-5'>简化版</b>

    pytorch怎么pycharm中运行

    第一部分:PyTorch和PyCharm的安装 1.1 安装PyTorch PyTorch是一个开源的机器学习库,用于构建和训练神经网络。要在PyCharm中使用PyTorch,首先需
    的头像 发表于 08-01 16:22 1418次阅读

    pycharm如何调用pytorch

    与PyCharm结合使用,可以提高开发效率和代码质量。 安装PyTorch 2.1 检查Python版本 安装PyTorch之前,请确保您的Python版本为3.6或更高。可以通过以下命令检查
    的头像 发表于 08-01 15:41 603次阅读

    pytorch环境搭建详细步骤

    、创建虚拟环境、安装PyTorch及其依赖库、配置PyCharm等。 一、安装Anaconda Anaconda是一个开源的Python和R语言的分布式版本控制系统,旨在简化包管理和部署。它包含
    的头像 发表于 08-01 15:38 818次阅读

    PyTorch如何实现多层全连接神经网络

    PyTorch实现多层全连接神经网络(也称为密集连接神经网络或DNN)是一个相对直接的过程,涉及定义网络结构、初始化参数、前向传播、损失计算和反向传播等步骤。
    的头像 发表于 07-11 16:07 1181次阅读

    基于PyTorch的卷积核实例应用

    深度学习和计算机视觉领域,卷积操作是一种至关重要的技术,尤其图像处理和特征提取方面发挥着核心作用。PyTorch作为当前最流行的深度学习框架之一,提供了强大的张量操作功能和灵活的API,使得
    的头像 发表于 07-11 15:19 460次阅读

    如何在PyTorch实现LeNet-5网络

    PyTorch实现LeNet-5网络是一个涉及深度学习基础知识、PyTorch框架使用以及网络架构设计的综合性任务。LeNet-5是卷积神经网络(CNN)的早期代表之一,由Yann
    的头像 发表于 07-11 10:58 790次阅读

    pytorch如何训练自己的数据

    本文将详细介绍如何使用PyTorch框架来训练自己的数据。我们将从数据准备、模型构建、训练过程、评估和测试等方面进行讲解。 环境搭建 首先,我们需要安装PyTorch。可以通过访问PyTorch官网
    的头像 发表于 07-11 10:04 529次阅读

    PyTorch的介绍与使用案例

    学习领域的一个重要工具。PyTorch底层由C++实现,提供了丰富的API接口,使得开发者能够高效地构建和训练神经网络模型。PyTorch不仅支持动态计算图,还提供了强大的自动微分系统,极大地
    的头像 发表于 07-10 14:19 397次阅读

    tensorflow和pytorch哪个更简单?

    PyTorch更简单。选择TensorFlow还是PyTorch取决于您的具体需求和偏好。如果您需要一个易于使用、灵活且具有强大社区支持的框架,PyTorch可能是一个更好的选择。如果您需要一个
    的头像 发表于 07-05 09:45 862次阅读

    如何使用PyTorch建立网络模型

    PyTorch是一个基于Python的开源机器学习库,因其易用性、灵活性和强大的动态图特性,深度学习领域得到了广泛应用。本文将从PyTorch的基本概念、网络模型构建、优化方法、实际应用等多个方面,深入探讨使用
    的头像 发表于 07-02 14:08 415次阅读