首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BAT小米深度学习平台,你会选择哪一家

BAT小米深度学习平台,你会选择哪一家

作者头像
智能算法
发布2018-04-02 17:08:57
1.7K0
发布2018-04-02 17:08:57
举报
文章被收录于专栏:智能算法智能算法

简介

近日重温了《深度学习在腾讯的平台化和应用实践(全)》,感兴趣可以在这里阅读 https://zhuanlan.zhihu.com/p/21852266 ,里面介绍了腾讯在深度学习平台基础架构上细致的工作,本人在2016 C++及系统软件大会上也分享了小米cloud machine learning平台的细节,在此给大家总结和对比一下。

腾讯Mariana平台

在前面提到的文章中,已经详细介绍了腾讯深度学习平台,也就是Mariana项目的实现细节了,这是一个真正意义上的平台。在参考文献上也体现出来,腾讯大量借鉴了Google DistBelief的设计,研发能力更是没得说,内部实现了DistBelief提出的模型并行和数据并行原理。而在GPU训练上也是参考了Google COTS HPC论文实现的,因此目前在DNN的CPU并行训练和DNN、CNN的GPU并行训练上支持很好,使用接口应该也是类似DistBelief + Parameter server的API。

Mariana架构图,取自《深度学习在腾讯的平台化和应用实践(全)》

腾讯业务部分非常多,机器学习与深度学习应用也非常广,和腾讯一些朋友也了解过,除了Mariana平台,公司内部甚至有多个深度学习的基础架构部门,使用的框架也不局限内部实现的“DistBelief”,目前Caffe、TensorFlow等开源框架也有使用。这样重新开发一套Mariana平台或者拓展Mariana平台,来支持Caffe、TensorFlow接口是非常难的,目前这些基础架构部门主要提供CPU和GPU物理机支持,开发者可以直接登录服务器调试模型,但也带来了服务器维护、应用部署成本高,服务器资源尤其是不可共享的GPU资源利用率低等问题。

小米Cloud-ml平台

小米的cloud machine learning深度学习平台,也叫cloud-ml平台,是基于TensorFlow和Kubernetes等开源技术实现的深度学习平台。我们知道DistBelief是Google第一代深度学习框架,而TensorFlow是在DistBelief的实践经验上开发的第二代深度学习框架,无论是使用接口、算法支持以及分布式实现上都有极大的改进。小米在深度学习上起步较晚,但正好也赶上了TensorFlow项目开源的契机,容器技术经过两年的打磨也逐渐production ready了,因此基于TensorFlow和Kubernetes的平台架构是目前比较state of the art和符合devops思想的理想模型。

cloud-ml架构图

相比腾讯和百度,小米并没有自研一个比肩TensorFlow的深度学习框架,而是在Kubernetes上层实现了授权认证、多租户等功能,通过容器调度集群管理GPU等物理机,提供一个类似CaaS的深度学习服务。这种分层架构充分利用了组件间的可拓展性,甚至在最新版中还增加了MXNet、Theano、Torch、Caffe以及CNTK深度学习框架的支持,开发者也可以自由选择不同的框架以及算法来实现业务的需求。

cloud-ml支持的深度学习框架

cloud-ml的特性远不止这些,它提供提交式接口用户编写好代码直接提交到云端训练,训练的模型可以保存到分布式存储中,然后直接在cloud-ml上一键部署,部署成功后传入JSON或者RPC请求就可以做inference了。TensorFlow支持GPU训练以及分布式训练,在cloud中同样支持,通过传入不同的集群规模就可以创建多个分布式任务开始训练,容器隔离也很好地解决了端口占用、磁盘失败、GPU被占用等问题。类似Hadoop、Spark这样的提交式平台还有一个好处,你可以同时提交几十个训练任务进行超参数调优,而cloud-ml实际上已经实现了automatically hyperparameter tuning,你把想调的超参数组合一次性列出来,用命令行或者API直接提交,云端就可以并发训练,然后给你返回“效果最好”的超参数组合,“效果最好”可以是loss最低、正确率最高或者auc最高等等,这也是用户可以自定义的。使用cloud-ml确实非常好用,极大降低了深度学习科学家、数据科学家的开发时间和压力.

cloud-ml使用接口

其他深度学习平台

阿里内部是否开发过深度学习框架不太了解,和阿里一些朋友了解过,他们业务部门非常多,暂时没有统一的深度学习基础架构部门,目前TensorFlow、Torch也在使用。由于缺乏一个统一的深度学习平台,目前有些部门也是直接使用GPU物理机,灵活性前面也提到了,但运维成本和资源利用率都是一个大问题。

目前阿里和蚂蚁内部也在积极探索,也希望能基于分布式的TensorFlow提供一个更易用和可靠的深度学习平台服务,底层可以直接依赖飞天等基础架构,但也存在一些问题,TensorFlow是Google开源的,在云基础架构上推荐使用Kubernetes,如果对接内部基础架构需要一定的改造,在易用性上可能也有一点影响。

百度近期也开源了内部使用的Paddle项目,Paddle已经支持GPU训练和分布式训练,而且在百度的众多生产业务中验证过,是一个非常不错的深度学习框架。并且在深入了解Paddle时,我们在百度云上也看到了云端托管的Paddle服务,内部实现不得而知,在公司内应该是很不错的深度学习平台,希望有渠道或者了解的人能联系我们多多交流。

总结

最后总结一下,深度学习是目前的潮流,各大企业也有所投入,一个好的平台对于业务的落地也是非常重要的。我大致了解了BAT和小米的深度学习平台,大家看完会选择哪一家呢?

无论你是否承认,“深度学习”都将成为继“云计算”和“大数据”后,IT领域的一个新时代。而只能在本地调用GPU、需要手动管理服务器资源和调整模型参数让我们又回到了旧IT时代,因此随着各个厂商在平台上的努力,下一个时代“云深度学习”也即将到来。

声明:本文系网络转载,版权归原作者所有。如涉及版权,请联系删除!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 腾讯Mariana平台
  • 小米Cloud-ml平台
  • 总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档