社会焦点

百度深度学习实验室于洋:深度学习系统本身面临的一些挑战

字号+ 作者: 来源: 2017-03-23

百度深度学习实验室于洋:深度学习系统本身面临的一些挑战,基于深度学习的目标检测,1天搞懂深度学习,百度深度学习实验室,tensorflow 深度增强学习

  

百度深度学习实验室于洋:深度学习系统本身面临的一些挑战

  在钛媒体Pro专业用户和付费用户专享的“钛坦白”在线课堂第33期,我们再次请来三位钛客分享对机器学习的思考 。本期钛客之一、百度资深工程师、Paddle API重构设计负责人于洋,从事百度深度学习平台PaddlePaddle开发工作。加入百度后一直从事深度学习系统的研发,主要负责深度学习系统的性能优化和功能开发工作。2016年获得百度年轻高潜人才(YTP)项目成员以及百度最佳个人。

  本文根据于洋的分享整理。全文需要成为钛媒体专业用户才可以查看。进入钛坦白九个专业群交流,并查看更丰富的专业数据和信息,可点击:注册成为钛媒体专业用户。

  以下根据于洋在钛坦白的分享实录整理:

  大家晚上好,我是来自于百度深度学习实验室的于洋,在百度主要从事百度深度学习系统PaddlePaddle的开发,今天给大家带来的分享题目是《深度学习系统本身所面临的一些挑战》。

  先思考一个AI落地的真实问题

  AI已经是一个很火的话题,但是AI如何在中小企业落地,其实牵扯到很多现实的问题。比如一个最简单的问题,如何通过语音来控制电视,我们认为有四种解法:

  1、用AI HUB,也就是说将神经网络的模型放到一个芯片或者是一个很小的机器里让这个机器去控制电视。这个AI Hub不应该放到电视。例如Amazon Alexa或者Google Home。二者虽然实现了声控,但是人可能在屋里到处走动,不是身在何处都能唤醒Alexa的。

  但这么做其实不是特别经济,因为如果要让AI去控制电视的话,首先每一台电视都要具有神经网络的预测功能,同时当用户的真实数据预测完之后,神经网络也要去根据用户的新数据去重新训练模型,让模型更好。这就要求一个芯片既具备神经网络的推断能力,又具备训练能力。

  2、提供一个深度学习的API给大家,比如百度提供一个深度学习训练和预测的平台。大家愿不愿意把自己的数据放到百度或者谷歌的云盘里,让百度给大家提供机器学习训练预测的API呢?

  我想这在很多场景下是不现实的。第一个原因是,用户要学会用API就很难,要在IoT上调用API更难。另一个原因是,在百度PaddlePaddle团队和其他企业进行交流的时候发现,大部分企业都想用的是私有云。不使用公有云的理由其实不是成本,主要还是公有云可能带来的数据安全问题,因为对于企业来说真正有价值的东西其实是训练数据。

  3、企业自己搭一个AI的专用集群,或者说买一百台GPU机器只去跑深度学习的训练,这样做是不是可行的呢?我想也是不可行的,因为专用的AI集群的GPU是非常昂贵的,大体上,租用一个AWS GPU instance一年的费用和买一台一样。而专用集群的集群利用率并不会非常高,因而很不划算。至于专用集群的利用率为什么不会很高,我们稍后再讲。

  4、PaddlePaddle提出的目标是做一个通用的AI集群。通用的意思是AI集群里既可以跑神经网络的训练任务也可以跑其他的任务,对于各项任务既可以跑生产环境的作业,也可以跑实验性作业。这样一来,一个企业里各个业务的各个团队都可以使用同一个机群,甚至如果部署到云上可以使不同企业一起用一个机群。你不用的时候我用,你的作业用GPU同时我的在用磁盘,从而使得机群的总体利用率大幅提升。

  选择专用集群还是通用集群?

  下面这张图是谷歌Deepmind的AlphaGo所使用的资源使用情况。可以看到,在最后分布式的时候使用了280块GPU:

  

百度深度学习实验室于洋:深度学习系统本身面临的一些挑战

  下图是百度的GPU训练机器,我们的一台机器就可以支持16块GPU显卡,最多可以扩展到64块显卡:

  

百度深度学习实验室于洋:深度学习系统本身面临的一些挑战

  所以这种深度学习的专用集群地球上没有几个企业能真正玩得起。比如说百度的机器翻译系统,在我们组训练的时候,可能会用32块K40的GPU做十天左右的训练;谷歌的机器翻译用了96块K80做GPU训练;AlphaGo其实用了50块GPU训练了一个月。这些昂贵的使用成本是初创企业所不能承受的,也是不应该承受的。

  为什么像百度、谷歌或者微软之类的大公司可以承受这样成本呢?其实原因还是比较简单的,在这些公司,深度学习在产品线里应用是比较广的。比如大部分的百度产品线都使用了PaddlePaddle,利用深度学习提升这些产品的功能和用户体验。

  大家如果调试过深度学习任务就可以很明显知道, 深度学习任务是有一定的资源使用周期的。比如在实验刚刚开始的时候,用户可能从大量的数据中采样出来一个小的样本集合,在这个小的样本集合里调通一个比较好的模型。在这个阶段里,机器的使用量其实是不大的,可能只有单台机器或者几块显卡。之后,为了验证这个模型的效果,可能会将全量的数据进行线下的训练,也就是用一个专用的深度学习集群去做训练,在这个阶段可能会提交几十到上百个计算机机器的训练任务,这些机器每一台都可能有数块显卡。

  用户的模型在线下训练中得以验证正确,在大数据集上可以再对模型进行一些精细化调整,从而将模型打造成可以用来做线上预测的状态。线上预测时使用的机器数量明显要少于训练时的机器数量,这是因为预测的时候,其实不需要将神经网络的前馈和反馈全跑一遍,也不需要去反复的跑训练集。

  在这个预测模型上线之后,收集到用户提供的新的数据和真实的反馈。我们将这些日志进行收集,从而进行一些增量训练,进而让我们的模型越来越好。在增量训练之后,就是更新预测模型,预测和增量训练的再一个循环过程。

  可以看到一个初创企业如果只有少数的几个深度学习任务,由于深度学习任务的周期性,专用的深度学习集群一定不会有非常高的使用率,大体上能有20%的使用率就已经很不错了。但像在百度、谷歌之类的大公司,有各种各样的产品线,这些产品线都需要使用深度学习进行一些提升,所以这些任务虽然有周期性,但是任务和任务之间发生的时间是不同的,所以就形成了各个任务之间的一个叠加效应

  

百度深度学习实验室于洋:深度学习系统本身面临的一些挑战

转载请注明出处。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 中兴通讯基于区块链的下一代电子证照共享平台亮相数博会

    中兴通讯基于区块链的下一代电子证照共享平台亮相数博会

  • 基于文本的远程医疗应用Lemonaid Health获得1100万美元的A轮融资

    基于文本的远程医疗应用Lemonaid Health获得1100万美元的A轮融资

  • 房贷申请太复杂?基于IBM Watson的虚拟助手可以帮助简化流程

    房贷申请太复杂?基于IBM Watson的虚拟助手可以帮助简化流程

  • 【读书】价格游戏之推翻基于成本的计算

    【读书】价格游戏之推翻基于成本的计算