Facebook通过10亿单词构建有效的神经网络语言模型

由于在语言识别、机器翻译和语言建模等领域表现出了优异的性能,为序列预测而设计的神经网络最近再次引起了人们的兴趣,但是这些模型都是计算密集型的,成本非常高。比如在语言建模领域,最新的成果依然需要在大规模GPU集群上训练几周的时间,虽然效果不错,但是这些计算密集型的实践对大规模计算基础设施的依赖性非常强,这限制了其在学术和生产环境中的研究速度与应用。

针对这一计算瓶颈,Facebook AI 研究院(FAIR)设计了一个新的、几乎是为GPU量身定制的softmax函数,能够非常有效地通过大规模词库训练神经网络语言模型。该函数名为自适应softmax,它能根据不均衡的单词分布构建集群,使计算复杂度最小化,避免了对词库大小的线性依赖。同时能够在训练和测试阶段充分利用现代架构的特点和多维向量运算进一步降低计算消耗。与分层softmax、NCE以及重要性抽样等之前的、大部分为标准CPU设计的方法相比,该方法更适合GPU。

此外,FAIR还开发并开源了一个名为torch-rnnlib 的类库,该类库允许研究者设计新的递归模型,并以最小的努力在GPU上测试这些原型。最近Edouard Grave、Justin Chiu 和Armand Joulin在Facebook的网站上发表了一篇文章,介绍了用户如何通过该类库设计新的递归网络。

使用torch-rnnlib构建递归模型

1. 什么是语言建模?

语言建模就是通过给定词典中的单词序列学习其概率分布,根据单词过去的概率计算其条件分布。T个单词序列(w1,..., w[T])的概率可以表示为: 
P(w1,..., w[T])) = P(w[T]|w[T-1],..., w1)...P(w1) 
该问题通常通过非参数化的计数统计模型来解决,但是目前基于递归神经网络的参数化模型已经被广泛应用于语言建模。

2. 如何使用Torch-rnnlib构建标准模型

Torch-rnnlib为递归神经网络的构建提供了三种不同的接口: 
1). nn.{RNN, LSTM, GRU} 接口,用于构建所有层具有相同数量隐藏单元的递归网络。

  2). rnnlib.recurrentnetwork接口,用于构建任意形状的递归网络。

3). nn.SequenceTable 接口,用于将各种计算有效地链接到一起。nn.RecurrentTable 构造器仅是一个轻量级的包装器,它会随着时间的迁移克隆递归模块。要注意的是,这是最底层的接口,必须调用rnnlib.setupRecurrent(model, initializationfunctions) 设置递归隐藏状态行为。

  3. 构建自己的递归模型

可以通过定义cell函数或者cell状态初始化函数来创建自己的模型。下面的代码展示了如何从零开始构建一个RNN:

  4. 在GPU上训练torch-rnnlib

因为torch-rnnlib遵循nn模块接口,所以调用模型的:cuda()方法就能将其拉到GPU上执行。rnnlib的目的就是让用户能够灵活地创建新的cell函数或者使用快基线。

此外,无论使用前面提到的第一个还是第二个接口构建递归网络,都能非常容易地使用cudnn来加速网络。对于第一个接口,通过usecudnn = true来调用构造函数:

对于第二个接口,将rnnlib.makeRecurrent替换成rnnlib.makeCudnnRecurrent,然后将cell函数修改为cudnn接口中的cellstring。例如:

这样模型的递归部分通常会有至少两倍的速度提升。但是这并不是说整个模型会提速至少两倍,特别是当主要计算工作并不在递归部分的时候,此时提升会更小一些。

图:torch-rnnlib及其他torch类库随着隐藏层数量的增加其运行时间的折线图

5. 自适应Softmax

在处理语言模型等大规模输出空间的时候,分类器可能是模型的计算瓶颈。过去提出的很多解决方案通常都是针对标准CPU而设计的,很少充分利用GPU所特有的能力。

Facebook开发的、新的自适应softmax能够根据数据的分布情况调配计算资源。它能通过加快常用类的访问速度,提供更多计算资源,来实现更好近似值和更快运行时间之间的平衡。更确切地说,它实现了一种k-way 分层softmax,能够根据GPU的架构,通过动态规划算法实现计算资源的有效分配。为了进一步降低分类器的计算负担,自适应softmax还使用了一些技巧:使用浅树(shallow trees)避免顺序计算;为每个集群设置类数量的最小值,避免浪费GPU的并行计算能力。

正如图表1所展示的那样,自适应softmax的性能与完整softmax的性能几乎不相上下,但是训练时间非常短。

  图表1:基于Text8的性能。 ppl越低越好。

  图:不同softmax近似函数语言模型的收敛性。该数据基于LSTM。

测试结果

Facebook两个模型的参数配置如下:小模型使用了有2048个单元的单层LSTM,大模型使用了每层有2048个神经元的双层LSTM。训练模型使用Adagrad,权重调整使用L2。批处理大小为128,反向传播窗口大小为20。

  图表2:基于10亿单词进行训练后的模型复杂度(越低越好)的比较。

如图表2所示,小模型经过几天的训练复杂度达到了43.9,大模型经过6天的时间复杂度达到了39.8。目前最佳复杂度是由Jozefowicz et al.在2016年实现的30.0,但是Jozefowicz et al.达到这一数值使用了32颗GPU,花了3周多的时间;而Facebook仅用1颗GPU花了几天时间。

本文转自d1net(转载)

时间: 2024-10-02 18:16:49

Facebook通过10亿单词构建有效的神经网络语言模型的相关文章

《神曲》荣登北美最火游戏 FaceBook近10亿人

<神曲>荣登北美最火游戏FaceBook近10亿人 由国内著名页游研发公司250.html">第七大道所研发的精品页游<神曲>,北美地区命名<Wartune>,北美地区的总代理是国际游戏公司国际游戏公司Proficient City Ltd. 2012对于Wartune是骄傲的一年,10万注册到近1000万的注册,一服到200服!从1000人同时最高在线到10万人最高同时在线,BBG5项最佳游戏提名.我们在一直的争取,一直的创造属于北美页游的奇迹. 20

广告增长乏力 Facebook向10亿用户续推电商化功能

在广告营收增长不如预期(第二http://www.aliyun.com/zixun/aggregation/34885.html">季度营收增长32%,低于第一季度45%的增幅).股价低迷的背景下,Facebook努力扩大其营收渠道.试图回答的核心问题是:除了广告,Facebook还能从10亿用户身上挖出什么收入? 从近期Facebook已经或即将上线的一些功能来看,电商(导购)是其着力开拓的一个方向. 礼品赠送 Facebook在9月27日推出了礼品赠送服务Facebook Gifts,

Facebook 基于十亿单词量构建高效神经网络模型

使用神经网络进行序列预测是众所周知的计算机科学问题,在语音识别.机器翻译.语言建模和其他领域中都有着广泛的应用.这种预测使用的模型对计算能力要求很高,这限制了它们的实际应用. Facebook AI Research的科学家设计了自适应的softmax算法,这是一种为GPU定制的近似算法,可在庞大的单词量基础上高效地训练神经网络.如公开发表的论文中所描述的,自适应softmax利用单词在大语料库中的不均衡分布,形成可以最小化计算复杂度的群集.完全softmax与词汇库大小线性相关,而自适应sof

QQ空间不可忽视:2014元旦当天QQ空间活跃突破10亿次,每秒发送1.15万条消息

中介交易 SEO诊断 淘宝客 云主机 技术大厅 在微博.微信逐渐成为洋气社交圈的代表,备受年轻人青睐的当下,QQ 空间似乎老了,变成了"上个世纪"的产物.据统计,在 2013 年,QQ 空间 50~70 岁的老年用户比 2012 年增加了 30%. 当人们认为 QQ 空间"不酷"了的时候,另一组数据可能会颠覆你对这一社交网络的认知:2014 年元旦伊始,QQ 空间说说发表量在第一个小时内就超过了 2800 万;元旦当天24小时内,QQ空间内容发表量超过10亿次,其中

2015年Facebook广告变现规模达10亿美金

根据2015年第四季度的广告支出,Facebook公布旗下新广告网络FAN(Facebook Audience Network)的广告变现规模达到10亿美金,日流水达300万美金.也就是说,FAN在2015年为移动应用出版商(publisher)挣了数亿美金. 通过一段时间内的运转率(run rate)收入可以预测在接下来一段时间内的财务收益.换句话说,FAN在2015年第四季度的广告变现规模至少有2.5亿美金.这也预示着FAN已经成为一个亿万美元级别的广告平台. FAN经营模式是为广告主提供高

Facebook、新浪微博OAuth2.0通行证惊爆漏洞,10亿APP用户账户面临盗号劫持威胁

那些支持Facebook.Google和新浪微博账号单点登录(SSO)的APP遇到大麻烦了,近日中国香港大学的三位研究者在欧洲黑帽大会上发布的研究报告"通过OAuth2.0轻松登录10亿APP账号"指出,部署糟糕的OAuth2.0安全协议,使超过10亿APP用户账户面临黑客劫持风险.此前IT经理网曾报道OAuth/OpenID协议爆出过严重漏洞,但是这次问题似乎出在了部署方式上.     研究者检测了来自中国和美国的600款支持OAuth2.0社交通行证(Facebook.Google

Facebook用户平均每天观看的视频片段已达到 10 亿个

摘要: 自2014年6月份以来,Facebook 用户平均每天观看的视频片段已达到 10 亿个.昨天 Facebook 又发布了一些视频相关的数据,旨在进一步鼓励用户.广告商和视频制作者更好地利用视频. 数据 自2014年6月份以来,Facebook 用户平均每天观看的视频片段已达到 10 亿个.昨天 Facebook 又发布了一些视频相关的数据,旨在进一步鼓励用户.广告商和视频制作者更好地利用视频. 数据表明,Facebook 用户比去年上传视频更为踊跃.全球每位用户上传的视频数上升了 75%

拥有1亿用户的Instagram被Facebook斥资10亿美元收购

Instagram CEO凯文·希斯特罗姆(Kevin Systrom)周三在巴黎LeWeb科技大会上表示,在被Facebook收购后,该公司的创收压力的确正在加大.希斯特罗姆罕见地系上了领带,这与他以往随意轻松的着装风格不同.在被问及是否会很快在Instagram中增加广告时,他说:"有关广告,我们还没有什么详细计划可以分享,主要是因为我们的重点是尽快发展公司."但他也承认,这一决策不再取决于他一个人.拥有1亿用户的Instagram今年4月被Facebook斥资10亿美元收购.而随

Facebook上市回顾:用户破10亿 转型移动

腾讯科技讯(瑾瑜)北京时间12月25日消息,2012年对Facebook来说,或许是该公司成立至今最不平凡的一年.在经过数月的筹备后,这家社交网络巨头于今年5月上市,但其股价表现却不尽如人意.今年,Facebook用户数破10亿大关,尽管如此,该公司也仍在就如何不影响网站用户体验的前提下实现盈利这一问题而焦头烂额.还是在今年,Facebook采取了多项措施来弥补自己最大的不足,即向移动设备转移. 以下是Facebook在2012年的大事件汇总: 上市 在成立8年后,Facebook终于在万众期待