选自arXiv
机器之心编译
参与:黄玉胜、李泽南
在最近一次机器学习热潮中,GPU 一直是承担神经网络模型训练和处理的主要计算设备,大多数模型都是针对 GPU 进行优化的。最近,微软研究院的 Jacob Devlin 等人发展了另一条路线,他们在神经机器翻译任务中选择 CPU 作为解码的主要计算芯片,并实现了超过 GPU 效能的结果。这或许能为我们优化模型性能带来新的思路。
论文:Sharp Models on Dull Hardware: Fast and Accurate Neural Machine Translation Decoding on the CPU
论文链接:http://cn.arxiv.org/abs/1705.01991
摘要:含有注意力机制的 sequence-to-sequence 模型近年来已经成为了机器翻译领域的新标准,但与基于短语的系统相比,这个模型也面临一个挑战——那就是训练和解码成本显著增加。这里我们专注于研究高效的解码,旨在精确度上与现有的神经翻译模型接近,同时在 CPU 解码速度和吞吐量上与短语解码器接近。
我们从两个角度来处理这个问题:首先,我们描述了用于加速 NMT 波束搜索解码器的几种技术,其在非改变解码器输出的情况下在非常有效的基线解码器上获得 4.4 倍的加速。其次,我们提出了一个简单而强大的网络架构,它在底层使用 RNN(GRU/LSTM)层,随后在每个时间步上应用一系列堆叠的完全连接的层。这种架构在少量训练和解码成本的情况下可以获得与深度循环模型相近的精度。通过结合这些技术,我们最好的系统在 2014 年的 WMT 英语-法语新闻测试集上达到了 38.3 BLEU——非常有竞争力的准确性分数,而在单线程 CPU 上达到 100 字/秒的解码速度。我们认为这是目前已发布的准确率和速度平衡上达到最佳的 NMT 系统。
图 1. 单线程 16 位定点矩阵乘法与英特尔 MKL 的 32 位浮点的对比,结果为 1000 词乘法的平均,二者都使用了 AVX2 指令集。
表 1. 在 Intel E5-2660 CPU 上单独处理每个句子时的解码速度
表 2. 利用 3 层 512 维的 Bi-GRU 模型在 2014 年的 WMT 英语-法语新闻测试集的结果。使用的 GPU 是英特尔 Haswell E5-2660。
尽管微软研究人员在论文中将整体与单个模型作比较,但是仍然得出了整体(E1)比单模型(S7)解码速度快 3 倍的结论。此外,研究人员还发现,在模型训练中,CPU(S4)的运算速度比同能耗的 GPU(S7)要快接近 3 倍,所以整体(E1)也比单个模型(S7)的训练速度要快 1.5 倍。