查看: 5907|回复: 1

继谷歌,FB之后,亚马逊开源的深度学习工具又能带来什么?

[复制链接]
  • TA的每日心情
    无聊
    2018-8-15 10:21
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2018-7-18 11:35:27 | 显示全部楼层 |阅读模式
    分享到:
    继Facebook、Google之后,亚马逊也宣布开源其深度学习工具,Open AI成为主流?本文由新智元翻译自GitHub、Hacker News,介绍了亚马逊DSSTNE的深度学习工具到底是什么,以及和其他开源工具相比有何不同?

    1.jpg

    亚马逊也被吹上“flow”的风口:继Facebook公开其深度学习训练平台FBLearner Flow细节后,亚马逊昨日下午突然宣布开源其深度学习和机器学习工具DSSTNE,并表示与相比其他深度学习工具,DSSTNE尤其擅于训练稀疏数据。近年来,谷歌,FB和OpenAI先后搭建平台,亚马逊也宣布工具开源,人工智能系统未来开源趋势已成,国内公司何时跟上国际潮流?

    2016年5月11日下午,亚马逊在GitHub网站将其深度学习和机器学习工具DSSTNE开源(译注:DSSTNE与英语“destiny”谐音)。亚马逊方面称,与其他开源工具相比,DSSTNE尤其擅长训练稀疏数据。新智元第一时间搜集信息,并获得内部核心开发人员对这款工具的详解。

    向来在开源上不那么积极的亚马逊有了新动作。难道最近在科技巨头间掀起了一股“开源”的浪潮?我们能否期待接下来苹果也会把它家的深度学习来个开源?玩笑说到这里,下面我们就一起来看看,亚马逊这个DSSTNE深度学习工具到底有什么用处。

    ▍DSSTNE是什么?

    根据GitHub网站消息,DSSTNE是英文“Deep Scalable Sparse Tensor Network Engine”的简写,即“深度可伸缩的稀疏张量网络工具”。亚马逊相关研究团队对DSSTNE的描述是 “一个使用GPU训练和部署深度神经网络的开源工具”。

    亚马逊的工程师最初创建DSSTNE是用于解决在亚马逊平台上需要处理的深度学习难题,建立的目标是解决现实中深度学习应用的产品部署问题,在试验灵活性以外,还强调速度和规模。团队希望把深度学习的潜力从语音、语言理解和物体识别领域扩展到搜索和推荐等其他领域,激发更多创意。

    每一天,有上亿人在亚马逊购物。亚马逊希望DSSTNE能帮助消费者从众多的商品中发现想找的东西。而想要做到好的推荐,就需要神经网络。即便是简单的3层自动编码器,加上一个有上亿节点的输入层(每一个节点代表一件商品),以及一个包含1000节点的隐藏网络,还有一个能反映输入层的输出层,所需要学习的参数就可以达到10亿以上。利用目前的硬件,这是很难实现的。即使把神经网络的大小局限在单一商品目录和身处美国的用户,也几乎要触及当下GPU的能力上限了。

    举例来说,一个3层的自动编码加权矩阵,加上输入时的800万个界定,以及输出层和隐藏层的256个节点,运行一次简单的计算就需要消耗8G的内存。使用开放资源软件以及上千万用户的消费数据来训练这样的网络,用市场上最快的GPU也得花上数周才能得到结果。亚马逊意识到,如果不能写出软件,然后在多个GPU中分配这些计算的话,他们是不会有大的进步的。

    DSSTNE有一系列的特征:

    • 多GPU伸缩:训练和预测扩展到使用多GPUs,在每一层平行模型拓展计算和存储。

    • 多层:模式平行伸缩,让更大型的网络成为可能。

    • 稀疏数据:在稀疏数据集中,DSSTNE经过了优化,可以有更快速的表现。特殊的GPU核心程序在GPU中运行稀疏计算。


    ▍DSSTNE与其他深度学习工具有何不同之处?

    在一些数据稀疏(几乎所有的数值都为零)的任务中,DSSTNE的表现要远优于当下的一些开放资源深度学习工具。

    DSSTNE是从无到有的一个工具,用于训练数据稀疏条件下的模型,其他的数工具,比如Caffe,Tensorflow,Theano和Torch都拥有大型的功能集以及网络支持。

    DSSTNE在气质上跟Caffe很像,强调产品应用的表现。在涉及稀疏数据的问题中,DSSTNE比其他仍和深度学习工具都要快(2.1x compared to Tensorflow in 1 g2.8xlarge),其中就包括推荐难题和许多自然语言理解(NLU)任务。单个服务器内,多GPU运行的情况,DSSTNE的表现也比其他的数据库表现要好。DSSTNE能够在所有可用的GPU中自动分配计算任务,加速所有的计算过程,并能建立更大的模型。

    从实际上来看,这意味着它能建立起推荐系统,把上千万种商品囊括到模型中,而不是上万种,或者能处理包含大量词汇的自然语言理解任务。对于这种等级的难题,其他的工具可能会需要转化到CPU来计算稀疏数据,这会将效果降低一级。另外,DSSTNE的网络定义语言会比Caffe的简单得多,只需要33行代码来表示通用的AlexNet图像识别模型,而Caffe语言要求超过300行代码。

    但是,DSSTNE还不支持图像识别所需要的卷积层,在一些自然语言理解和语音识别任务所需要的复发层中,支持也很有限。

    ▍该怎么用DSSTNE训练神经网络模型?

    亚马逊在GitHub网站上给出了使用DSSTNE训练神经网络模型的实例,包含3个基本步骤:转换数据、训练、预测。

    1. 转换数据:
    2.jpg

    下载数据后,把数据转换到NetCDF格式。然后在指定数据集中尝试运行一个自动编码器。

    1.1 生成输入数据集:

    3.jpg

    1.2 生成输出数据:

    4.jpg

    2. 训练:3层神经网络的隐藏层有128个节点

    5.jpg

    3. 预测:

    6.jpg



    总结

    7.jpg

    ▍内部人员神吐槽

    亚马逊开源DSSTNE的消息发布后不久,一位前DSSTNE核心开发成员就在hackernews网站上透露,DSSTNE创建于2年前,专用于在亚马逊商品目录中进行产品推荐。他表示:当时Tensorflow还没诞生,只有Theano和Torch;DSSTNE通过稀疏数据和多GPU跨神经网络进行优化,跟Theano和Torch都不一样;现在DSSENE还不支持Alex、VGG或者GoogleNet等,但是如果有需要,只用500行代码就能实现。

    那位前DSSTNE核心开发员还透露,DSSTNE现在还不明确支持RNN,但它支持分享加权。而虽然CuDNN 5使用几百行代码就能支持LSTM,但他认为CuDNN中的LSTM是一个黑盒子(Black Box),所以不能扩展到多重GPU。

    那位程序员还表示,亚马逊并不完美,但这家公司让他们从头开始搭建了这一平台,然后现在对外开源。据这位不愿意透露姓名的程序员表示,加入亚马逊之前,谷歌把他从Nvidia挖去(这是他难以拒绝的几个offer之一),但2011年却把他分配到搜索团队,不让其再涉及GPU的工作,完全没有考虑到他是Nvidia CUDA团队的创始成员之一,因此他认为谷歌完全没有认识到GPU的作用。在谷歌他没有待太久,如果他还留在亚马逊,他认为亚马逊会让他从事开源编码相关工作。

    这位选择匿名的程序员表示,在DSSTNE这个项目中自己是唯一的GPU编码员,在接受了又一份难以拒绝的offer后,他在4个月前离开了亚马逊。在他离开时,DSSENE的工作人员不到10人,并且其中大部分都已经到别处进行深度学习引擎开发去了。

    在hackernews网站写下这些文字的时候,那位不愿意透露姓名的程序员表示,他正在等飞机,在接下来的几天中将持续跟进这件事。最后,他写了一点剧透:

    DSSTNE的每一个GPU,处理的都是近乎完美伸缩的,具有1000个以上隐藏单元的隐藏层以及高效的自由稀疏输入层,因为激活和加权梯度计算有特定的稀疏核心;此外,虽然基于JavaScript轻量级的数据交换格式(JavaScript Object Notiation)在2014年获得认可,但DSSTNE需要一个类似TensorFlow图像输入才能达到100%的兼容。
    本文转载自网络








    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-3-13 10:11
  • 签到天数: 1088 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2018-7-23 17:37:28 | 显示全部楼层
    下一站,风口。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-20 00:44 , Processed in 0.133940 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.