您正在使用IE低版浏览器,为了您的雷峰网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
此为临时链接,仅用于文章预览,将在时失效
人工智能 正文
发私信给杨文
发送

0

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

本文作者:杨文 编辑:郭奕欣 2017-06-21 09:52
导语:深度学习系统可以模块化了

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

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

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

谷歌开源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,只需要几天就可以添加解析数据集生成器,并且调节注意力转化器模型来训练解决这个问题。令人兴奋的是,只用了一周的时间就得到了非常好的结果。

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

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

为T2T做贡献

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

提及表格内模型的三篇论文(雷锋网此前也做过覆盖与报道):

Attention Is All You Need

Depthwise Separable Convolutions for Neural Machine Translation

One Model To Learn Them All

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

via Google;雷锋网整理编译

雷峰网版权文章,未经授权禁止转载。详情见转载须知

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

分享:
相关文章

编辑&记者

AI科技评论员,微信:yeohandwin
当月热门文章
最新文章
请填写申请人资料
姓名
电话
邮箱
微信号
作品链接
个人简介
为了您的账户安全,请验证邮箱
您的邮箱还未验证,完成可获20积分哟!
请验证您的邮箱
立即验证
完善账号信息
您的账号已经绑定,现在您可以设置密码以方便用邮箱登录
立即设置 以后再说