动态|谷歌开源T2T模型库,深度学习系统进入模块化时代!

AI 科技评论按:6月19日,谷歌发布了T2T(Tensor2Tensor)深度学习开源系统,这个系统的一大优点是模块化,这也就意味着系统更加灵活,适应性更强。深度学习的研究进度也会因此而加速。

深度学习(DL)让很多技术领域都得以迅速发展,比如机器翻译,语音识别,以及物体检测。在研究社区,人们可以找到研究作者开源的代码,复制他们的结果,帮助自己做进一步深度学习研究。然而,大多数深度学习系统使用了需要耗费大量工程开发的特殊设置,可能只对特定的问题或结构起作用。这使得在新实验中运行以及进行实验结果对比变得比较困难。

可喜的是,谷歌终于找到了解决这一问题的办法,发布了T2T(Tensor2Tensor),一个用于在TensorFlow上训练深度学习模型的开源系统。T2T方便了对各种各样的机器学习应用的模型进行创新,比如翻译,句法分析,图像说明等等。这次发布也包含数据集库和模型库,包括最近几篇论文中提到的最好模型。

在标准WMT英语-德语翻译任务中,各模型的BLEU分数(越高越好

作为举例,谷歌将T2T库用于机器翻译。如上表所示,两种不同T2T模型,SliceNet和Transformer,性能表现胜过之前业界表现最好的模型GNMT+MoE。其中最好的T2T模型Transformer,高出GNMT模型3.8分。而GNMT本身已经高出MOSES 4分(以短语翻译系统MOSES为最低标准)。值得注意的是,使用单块GPU在一天内训练就可以达到之前最好的结果,一个小型的Transformer模型在单GPU训练一天后可以得分24.9(上图表格并没有显示)。可见使用T2T效果非常明显。现在所有人都可以自己用一块GPU来训练这个翻译模型了。Github有操作说明。(地址见文末)

模块化多任务训练

T2T库是用人们熟悉的TensorFlow工具和深度学习系统中所需的定义多个组件:如数据集,模型结构,算法,学习速率衰减方案,超参数等等开发出来的。关键是,它在所有这些组件之间执行了一个标准接口,实现了当前机器学习的最佳效果。所以你可以拿走任何一个数据集,模型,算法,或一组超参数,来执行训练并观察它的性能表现。通过使架构模块化,输入数据和预测输出之间的每一部分都是T2T函数。这意味着如果对模型架构有了新的想法,则不需要替换整个设置。你可以保留需要嵌入的部分,损失函数和其他所有部分。

这就意味着T2T很灵活,训练不再依赖于特定的模型或数据集。甚至连比较有名的LSTM序列模型都可以用几十行代码来定义。此外还可以对不同领域的多个任务进行单个模型的训练。甚至还可以在所有数据集上同时运行单个模型。MultiModel就可以这样训练并包含在T2T中,在很多任务上都产生了良好的效果。即使在ImageNet(图像分类)MS COCO(图像说明)WSJ(语音识别)WMT(翻译)以及Penn Treebank(解析语料库)联合训练也依然表现良好。这也是第一次证明了单个模型可以同时执行多个任务。

内置最佳实践

这次的首次发布也提供了脚本,用来生成大量数据集,广泛用于研究社区,一些模型和大量超参数配置。trade的其他重要技巧在执行中表现良好。把他们全部列出来很难,如果你决定用T2T运行你的模型,你将得到序列的正确填充(padding)和相应的交叉熵损失,调试良好的Adam优化器参数,自适应批处理,同步的分布式训练,调试良好的图像数据增强,标签平滑和大量的超参数配置。

例如,考虑把英语句子解析成语法选区树(grammatical constituency trees)的任务。这个问题已经研究了几十年才找到可靠的方法。它可以表示为一个序列到序列的问题,可以用神经网络求解,但是在过去需要调试很多次。现在运用T2T,只需要几天就可以添加解析数据集生成器,并且调节注意力转化器模型来训练解决这个问题。令人兴奋的是,只用了一周的时间就得到了非常好的结果。

在WSJ 23节的标准数据集上解析F1分数。只在Penn Treebank WSJ训练集上比较了文本中经过特殊训练过的模型。更多结果详见论文(https://arxiv.org/abs/1706.03762)

为T2T做贡献

除了探索现有的模型和数据集,还可以轻松地定义自己的模型,并添加自己的数据集到T2T。谷歌相信已有的模型将很好的执行诸多NLP任务,所以只需添加你的数据集,也许就会得到一个有趣的结果。通过构建T2T模块,还可以很容易构建你自己的模型,并观察其如何执行不同任务。通过这样的方式,整个社区都可以从基线库(library of baselines)中受益,并加速深度学习研究。所以,来Github库,尝试一些新模型,来为T2T做点贡献吧!

提及表格内模型的三篇论文(AI科技评论此前也有做过覆盖与报道):

Attention Is All You Need - AI科技评论

Depthwise Separable Convolutions for Neural Machine Translation

One Model To Learn Them All

Github操作说明:https://github.com/tensorflow/tensor2tensor

via Google;AI 科技评论整理编译

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-06-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

Keras 之父讲解 Keras:几行代码就能在分布式环境训练模型

AI研习社按:在今年的谷歌开发者大会 I/O 2017 的讲座中,Keras 之父 Francois Chollet 被请出来向全世界的机器学习开发者进行一场对...

4465
来自专栏ATYUN订阅号

谷歌开源基于TensorFlow的通用框架AdaNet,快速且易于使用

Ensemble learning结合不同机器学习模型预测,被广泛用于神经网络以实现最先进的性能,得益于丰富的历史和理论保证,成功的挑战,如Netflix奖和各...

542
来自专栏量子位

Facebook开源移动端深度学习加速框架,比TensorFlow Lite快一倍

Facebook发布了一个开源框架,叫QNNPACK,是手机端神经网络计算的加速包。

1332
来自专栏目标检测和深度学习

Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络

? ---- 新智元报道 来源:arXiv 编译:肖琴、克雷格 【新智元导读】深度学习领域的大牛、多伦多大学计算机科学教授Geoffrey Hint...

4229
来自专栏机器之心

学界 | 抛弃黑箱,斯坦福大学与Facebook提出程序生成式图像推理模型

选自arXiv 作者:Justin Johnson等 机器之心编译 参与:李泽南 去年 12 月,斯坦福大学联合 Facebook 推出了一个用于组合式语言和初...

2755
来自专栏BestSDK

深度学习 VS 深度克隆,谁才是解决聊天机器人的最佳方法?

对话式 AI (聊天机器人)涉及到三个维度的问题:(1)语言技能(2)知识获取(3)对话行为。 这三者虽然强相关,但人类大脑通过单独的实验,在不同的时间段内,可...

3045
来自专栏新智元

Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络

【新智元导读】深度学习领域的大牛、多伦多大学计算机科学教授Geoffrey Hinton近年在distillation这一想法做了一些前沿工作。今天我们介绍的是...

34010
来自专栏机器之心

学界 | 谷歌大脑提出MAPO:用于程序合成的策略优化方法

该框架可用于从弱监督 (如问答对) 中学习语义解析和程序合成,这比全监督 (如问答对) 更容易收集,也更灵活。应用程序包括虚拟助手、数据库的自然语言接口、人机交...

983
来自专栏AI科技评论

学界 | 女朋友说「我想要MAC」,OpenAI帮直男get到是口红还是电脑

AI 科技评论按:语言词汇的多义性已经是一个越发让人头疼的问题。比如女生对男朋友说:「生日礼物我想要MAC」,本来心怀期待地揣测他买来的唇彩会是什么色,结果收到...

3629
来自专栏机器之心

深度 | 苹果博客解读iPhone上的人脸识别深度神经网络

36610

扫码关注云+社区