使用神经网络进行序列预测是众所周知的计算机科学问题,在语音识别、机器翻译、语言建模和其他领域中都有着广泛的应用。这种预测使用的模型对计算能力要求很高,这限制了它们的实际应用。
Facebook AI Research 的科学家设计了自适应的softmax 算法,这是一种为GPU 定制的近似算法,可在庞大的单词量基础上高效地训练神经网络。如公开发表的论文中所描述的,自适应softmax 利用单词在大语料库中的不均衡分布,形成可以最小化计算复杂度的群集。完全softmax 与词汇库大小线性相关,而自适应softmax 是次线性相关的,并且针对GPU 进行了优化。
在开发softmax 的同时,Facebook 研究人员发布了开源库 torch-rnnlib ,帮助研究人员设计和测试 GPU 中的递归模型。有了 torch.cudnn ,可以使用 NVIDIA CUDA Deep Neural Network 库轻松访问基线。 RNN 、 LSTM 、 GRU 和其他递归神经网络都有具体的实现,研究人员可以很容易地把它们用于递归神经网络的设计。
Facebook 研究人员在单个 GPU 上对该算法进行测试,速度达到了每秒 12500 个单词,同时保持精确度接近完全 softmax。从基准困惑度来看,谷歌公司的 Jozefowicz 等人在 2016 年使用 32 个 GPU 训练了 3 个星期得到 30 的困惑度(越低越好),同时使用 18 个 GPU 训练了几天得到 44 的困惑度。Google 使用 Tensorflow 实现的 LSTM 模型发布在 Github 上,它的主要作者在 Reddit 的相关话题中提出了一个有趣的方法来解释困惑度。相反地,自适应 softmax 可以在大约 14 小时内达到 50 的困惑度,在一两天内达到 43.9 的困惑度以及在六天内达到 39.8 的困惑度。如果没有 CuDNN 库,性能下降约 30%。所有工具和技术都针对 EuroParl 和十亿字语料库进行过测试,这些语料库是当前可获得的最大的几个语料库。
查看英文原文: Facebook Builds an Efficient Neural Network Model over a Billion Words
感谢薛命灯对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论