转载

一起来看看DSSTNE作者的爆料

大公司通常都有严格的制度,限制内部工作信息的外泄,Amazon就是这样,而且是出了名的严格。有人抱怨Amazon之前在开源方面就是个巨大的黑洞,工作中大量的使用开源软件却从来也不回馈开源社区。知识分享方面Amazon做得也不咋地,上一次有影响力的应该是关于DynamoDB的论文了。因此,当DSSTNE开源出来之后,大家都惊呼Amazon是不是要做出改变了。微博上 @洪亮劼 提到,「这些工作的核心主要是为了招人。没有这些开源项目,也不让发论文。亚马逊根本没法招到一流人才。」具体是什么样的真实原因推动了Amazon的这次转变外人尚不得而知,但希望这次DSSTNE的开源能成为Amazon对待「技术开放」这件事情的一个全新的开始吧。

DSSTNE的开源,最开心的也许要属他的作者Scott Le Grand了[1],之前确实没听说过此人,最近他显然有成为深度学习界网红的潜质了,看他的Google Plus页面,头像蛮霸气的,自我介绍也有够侧漏「My other datacenter is a GPU」。 这几天Scott在自己主页上爆料,感慨终于可以说一说自己最近2年的工作了。

  1. Scott确认,DSSTNE正是为了Amazon的商品推荐而开发的!DSSTNE的整个开发工作涉及到一大批幕后英雄,当时还没有TensorFlow,只有Theano和Torch。区别于后两者,DSSTNE针对稀疏数据与跨多GPU的神经网络进行了专门的优化。它并不是另外一个可以跑AlexNet/VGG/GoogleNet的框架,但如果有需要的话,500行代码+cuDNN基本就能搞定了。实现Krizhevsky的奇淫巧计对DSSTNE无足轻重,因为它把最复杂的模型并行化部分的工作都已经搞定了。

  2. DSSTNE尚不明确支持RNNs,但它确实有共享权重的支持,这足够可以构建一个展开的RNN了。事实上Scott他们也真试验过几个。cuDNN5再配上几百行代码就可以加入对LSTM的支持。但是,由于cuDNN里的LSTM是一个黑盒子,导致它无法跨多GPU。不过其实也没什么大不了,完全可以从头开始重写一个。

  3. 不管你如何评价Amazon,事实上他也确实不完美,但是是Amazon允许Scott他们从头开始完成了这项工作,并且现在还把它开源了。2011年的时候Scott是NVIDA CUDA团队的创始成员,Google用一个无法拒绝的Offer把Scott从NVDIA挖了过去,但当时Google并没有认识到GPU工作的价值,只是胡乱的把Scott分配到了搜索组。所以Scott没待多久就又跳槽去了Amazon,并在那儿完成了DSSTNE相关的工作。

  4. Amazon把DSSTNE开源出来的时候,Scott正要登机。他接下来的日子里面会做一些更详细的分析。DSSTNE针对每GPU用于1000个左右节点数量的隐藏层提供了近乎完美的伸缩性,并且还有效地释放了稀疏输入层的能力,因为DSSTNE针对激活与加权梯度计算都提供了定制的稀疏内核。

  5. DSSTNE在2014年的时候使用JSON格式是make sense的,但现在更需要一个TensorFlow图导入器。DSSTNE从一个非常简单的C语言结构开始构建网络,要加这个并不难,但要做到100%兼容还是需要一些额外的支持。

  6. Scott在4个月之前又得到了一个无法拒绝的Offer离开了Amazon。新项目里他是唯一一个搞GPU的人。Scott表示这方面能够得到他认可的人两只手就可以数的过来,这些人现如今都已经散落在各个深度学习项目里面了。Scott非常乐意为开源后的DSSTNE继续添砖加瓦,比如CNN和RNN,这些也都已经列入到官方计划里面了。

  7. Scott还表示,DSSTNE实现了100%的确定性训练,他是可重复计算的坚决拥趸。对于大数据文件NetCDF是一种非常有效的格式,他还推荐使用Ditto。他很希望向DSSTNE团队表达谢意,但不知道点出他们的名字是否合适。 猎头们自然是很希望的吧。

另外,最新的一个帖子里面,Scott还给出了DSSTNE接下来几个月的roadmap。

Currently: 

Adding some additional sparse data features for input and output layers to ignore inputs not relevant to training

Adding skip layer support

Benchmarks and sample networks

The next 60 days:

Streaming datasets for Pascal GPUs through the use of unified memory

Image data support

CNN and Pooling layer support through cuDNN

The next 120 days: 

Smart recurrent data support

Full LSTM/GRU support

The future: 

Sparse Convolution Layers for NLP and recommendations

截至目前网络上有关DSSTNE的有价值资料还不多,在Amazon内部DSSTNE究竟是如何应用于推荐引擎的,ResysChina会持续关注,也欢迎内部人士悄悄来爆下料,造福业界。^_^

[1] https://plus.google.com/+ScottLeGrand

微信公众号【 ResysChina 】,中国最专业的个性化推荐技术社区。

点击阅读原文,查看上一篇「 Amazon开源面向推荐系统的深度学习框架DSSTNE 」。

原文  http://mp.weixin.qq.com/s?__biz=MzA4OTk5OTQzMg==&mid=2449231093&idx=1&sn=405cecdf26105b772e3d9cb431bb1ff9
正文到此结束
Loading...