深度学习框架TensorFlow、Caffe、MXNet、PyTorch如何抉择?6 位大咖现身说法

2017 年 6 月,EGO 邀请了 6 位行业大咖,聚焦深度学习框架选择与应用实战,进行了近 3 小时的在线探讨。本文根据当天内容精编而成。6位参与人分别是(排名不分先后):

彭垚-七牛人工智能实验室负责人(主持人)

郭烽-易成自动驾驶CTO

于振华-科大讯飞内核研发总监

杨军-阿里大规模深度学习优化技术负责人

张鹏-新浪深度学习负责人

赵晓萌-小红书算法科学家。

开场与自我介绍

彭垚:我是彭垚,花名叫土土,现在在七牛云,负责整个人工智能实验室。咱们先做个自我介绍吧。

于振华:我是于振华,讯飞研究院副院长,内核研发中心研发总监,我在公司负责敏捷开发和Deep Learning高性能计算平台建设。

郭烽:我是郭烽,刚刚从美国回来,加入易成自动驾驶不久。之前我是在高通,负责高通公司整个计算机识别、机器识别、深度学习系统芯片开发,现在在易成主要是做自动驾驶方面的研发。

赵晓萌:我是赵晓萌。我一直在做搜索和推荐,一年前加入小红书。小红书是做社区电商的,我主要负责搭建完善搜索服务。小红书是以图像为主的社区,图像搜索是很重的一块业务。

杨军:我是杨军,在阿里巴巴计算平台事业部,主要负责对深度学习的优化跟加速相关工作。我们整个部门的产品叫做PAI,是阿里开发的一套同时对外和对内的AI基础设施,我在这边负责底层模型的计算加速,包括训练的加速、inference的加速、Modeling的探索。希望了解彼此公司和行业对deep learning model应用的情况,以及实际应用中对的框架选型和遇到的问题,比如model过大的问题或者计算量过大的问题。

张鹏:我是新浪网的张鹏,在新浪门户。我前10年一直在做工程,最近六七年在做机器学习和深度学习相关工作。我这边主要是侧重深度学习的应用和理论层面的计算可解释性,应用场景主要包括文本生成、人脸检测识别、文章配图、自动配图、视频推荐、OCR等,主要是围绕内容生产和文章分发两个领域。

图片来自https://yq.aliyun.com/articles/57677

话题一:框架选型及原因

彭垚:关于框架选型,比如MXNet、TensorFlow、Caffe、Torch,大家在用哪些?用在哪些场景?

于振华:这几个框架我们都在用。像Torch、Caffe、TensorFlow是研究员人员在用,尤其是比较灵活的PyTorch;需要落地和不停迭代的,用的是MXNet,好处是training效率比较高。深度学习团队针对MXNet投入最多,做了不少自主的优化,大约一半的力量投入在MXNet,开发了比较完备的MXNet通用训练框架。业务层面,无论是基于CNN、DNN和IPM的识别,还是基于Encoder-Decoder的ED框架的翻译,所有的云上代码都是自主开发的,几乎没用现成的开放框架。我们也开发了一些工具,把torch、Caffe、TensorFlow的结果转到MXNet上。

可以这样理解,我们的生产系统是MXNet为主,研究系统是根据各个研究员喜好去做

图片来自http://echiev.com/index.php

郭烽:今天嘉宾在服务器端比较多,高通和易成自动驾驶主要是在嵌入式端。高通早期以开源的Caffe为主,现在逐渐往TensorFlow上移植。我们的应用是手机端目标检测、人员检测、智能监控、无人机解决方案,Caffe比较易用。另一方面,高通要支持Google的硬件平台,高通整个公司也在转向支持TensorFlow,这是两部分的训练框架

应用框架方面,高通有自有芯片,也有自己的神经网络处理引擎SNPE包(Snapdragon Neural Processing Engine)。训练平台的模型都可以转到SNPE,在高通自己的平台上做homogeneous计算,这是现在基本训练选型和实现手段。

在嵌入式端,在训练上不光是简单的模型训练,还要做模型的筛检、压缩、硬件化,包括深度的模型匹配和优化。

图片来自https://www.xiaohongshu.com/

赵晓萌:我们暂时没有自己搭建平台。我们使用的还比较浅,主要针对图像做feature抽取,做图像检测分类,在用Caffe。Caffe有Model Zoo这样预先train好的模型,我们可以直接用。我们跟Caffe团队的成员有一些交流。

同时,我们不排除以后考虑其他品牌,尤其TensorFlow社区在慢慢壮大,可以考虑。

图片来自https://mxnet.incubator.apache.org/

杨军:阿里的框架比较多元化。我们在Caffe上做过优化,比如Caffe多级多卡的优化,包括怎么样把迭代过程中训练图形量降下来。刚才讯飞的朋友说prefer MXNet,阿里更看中TensorFlow。原因比较简单,TensorFlow更popular,更容易上手。

对TensorFlow的优化首先是单卡的优化。TensorFlow自己在卷积处理做得还不错。这块有个趋势,就是会调用优化cuDNN,让英伟达帮我们做更多的事情。但是,它在某些具体OP层面不够好,我们会做优化。在多卡方面,我们做了一些有损的图形优化,包括我们在机器翻译TensorFlow里做了优化,还达到了不错的效果。

TensorFlow本质上是由Google来控制的,对于做云平台的公司会有一点不利。我们判断,TensorFlow的性能在不断的提升,其他的问题还是属于细节的问题,不是框架本身的问题。这就决定了,我们愿意把更多资源投入进去优化框架。

张鹏:我们Deep learning还没有做特别大规模的应用,目前生产环境部署全部是在TensorFlow上面。我们以应用为导向,模型本身看的比较多。我们的模型大概有50%是自己构建的,另外50%是采用开源的模型,尤其是图像领域。在OCR领域,模型基本上都是由我们自己来建的。我们偏重于研究,包括模型、参数和我们自己做的周边工具,工程层面考虑比较少。我们平台的服务器也不是很多,广告加内容自动生产也就大概20台的规模,所以我们关注底层比较少。

彭垚:大家可以对每位嘉宾做提问。我想问杨军,我们之前也是很早测就开始TensorFlow,但是在训练效率尤其是分布式上面,跟MXNet差得特别远。当然我们也没有像阿里这样对每个OP性能调优。整体测试下来,差距还不是一点儿。你们怎么去看这个问题?我们的时间上测试出来是要相差五倍。

于振华:我们在语音上大概差了两到三倍。

杨军:做平台会考虑到一些更general的问题,比如有多少用户关心这个问题。涉及到多机的训练,我们会发现可能90%是不需要多机。另外我们分析业界态势看到,单机里面卡的数量会变得越来越高,比如说现在单机8卡比较多,英伟达已经在研发单机32卡的机器;同时很多场景下可能需要跑到10台以上规模的Model会比较的少。所以对于我们来讲,用户怎么样更容易上手、更容易从社区获得更多建模收益,这是关注的第一点。第二点,因为我不确定你们评估的版本是哪个。TensorFlow的版本演化很快,它刚出来的时候性能很糟糕,甚至在图像领域里也很糟糕,在1.0版本以后,在主流的model里面,TensorFlow单卡图像性能跟Caffe几乎没有差异了。关于优化方面,我们认为相应的场景应用优化早晚会以某种方式提供,一个是我们自己的improvement,一个是TensorFlow内部improvement。

再说多卡和多机。多卡优化的话,我认为不存在本质系统差异。多机的话,TensorFlow确实比较惨,它的主流实现存在一些问题,第一个问题是TensorFlow的多机通讯跟Google内部的通信框架不太一样;第二,它的序列化和反序列化做得不太讲究,因为TensorFlow设计理念很激进,力度很高,一般人看了不太敢下手会改。两个原因造成多机性能更差一些。这个里面会有些变化,并且通过社区也可以知道有大量工作已经在筹备研发中。

所以,我会有这种判断,TensorFlow本身的性能是存在一些潜在的问题,但是更多是一个框架的问题,不存在fundamental的问题。从阿里来看,我们希望找一个让用户获得建模、社区、收益的平台框架,我们在继续投入。这是我们这边对这个事情的一个考量。

问:我是很同意。尤其对我们这样的小公司,量也不是特别大,数据不是特别多,我们首先考虑能不能很快上手。容易上手是非常关键的。

我们很关注容易上手这个问题。阿里的子公司很多,有搜索,有广告,有蚂蚁金服,有高德,有优酷,大家使用习惯也不一样,我们会找最大公约数。

问:我的理解你们现在是有一个开源的Caffe,然后你们会做具体优化,同时在优化TensorFlow是这样吗?

目前主要在优化TensorFlow,Caffe花的力气会越来越小。

问:Caffe的优化做完了吗?

Caffe工作做得比较早,当时Caffe甚至都没有像样的LSTM的实现,当时是我们自己加进去的。这两年Caffe有很多变化,包括像英伟达、浪潮等很多公司也有相应版本出现。第一,现在已经有趋同情况;第二,Caffe的灵活性,我个人认为已经到极限了。更多的优化不太好把持的,所以我们基本暂时停止了。

问:假设有新的Caffe Model,没有优化过的话,你们会继续support,还是根据客户的需求来考量?

杨军:我们会去跟客户negotiate一下,有没有可能去迁到我们TensorFlow平台里面去,如果他不愿意的话,我们考虑做支持。

问:我有个问题,TensorFlow版本更新非常快,我看从1.0跳到最新研发的版本,加了很多改进。我们平台这边跟它的版本是怎么保持一致的,尤其是我们的一些优化可能跟它的新功能已经重复了?

杨军:你问了一个特别好的问题。如果我个人来看,这是平台公司应用TensorFlow最大的痛点。关于TensorFlow演化的趋势和历程,我们也很头痛。TensorFlow演化过程是由Google强势主导的,阿里作为平台方的期待,不仅仅是Follow Google的趋势,可能在未来希望有一定的自研甚至超越的机制。这个需要一段路程,我们要承认国外的公司进展会更快一些,这是第一个。第二个,优化做重复了怎么办?这是我们该有的代价。做基础设施,我们要先Follow才能超越它,这个过程中需要交学费。而这个cost可能就需要跟管理层沟通好,大概有一个量化的估计,比如说我们在选型时,尽可能避开特别容易发生冲击的点,比如如果这个优化是偏cuDNN层面的,我们一般不会去碰,我们认为是会跟英伟达撞车的;同时,我们也会对TensorFlow优化的方向做预估,我们会找一些基于行业的信息判断、它不太容易进到的开源点会去打,这是我们的态度。对于那些绕不过去的,我们愿意去承担相应的后果

问:我就想问一下,群里有人考虑过Caffe 2吗?

答:效率很高,但是我们也不大考虑。

杨军:我们曾经讨论过是不是接Caffe 2。我们担心的是,这个框架太年轻,而且重新接入新的框架,是不划算的。所以暂时没有考虑用这个东西。

彭垚:我这边感觉PyTorch出来以后,research层面好像是用的最多。不知道大家怎么看?我觉得有些Model、有些training是在PyTorch上面去做,然后inference还是按照自己的inference去推,在做converse之类。大概是这样的做法。

杨军:我的理解是,现在从research角度,不管是从model还是framework角度,Caffe、PyTorch基本上比较成熟,也有一些establish的Model比较好。但是专业的工程开发还是会根据应用的具体情况、流行趋势和support的力度,这个很难讲。我觉得从Caffe、TensorFlow到TPU,业界的形式都是在变化,现在英特尔和高通都出专用的hardware。从工业界来说,我觉得以后还会再不断演进。

杨军:我也稍微补充下我的观点。我知道,Facebook的researcher用的PyTorch,他们市场环境用的是Caffe 2。我个人觉得现在Deep learning社区,或者这个行业,处于一个转变阶段,硬件在变,软件也在变,暂时很难统一起来。到未来的时候可能就剩下一套或者两套,做得比较general。过程中不断地迭代,最终收敛。

彭垚:我感觉,到最后应该会收敛到两三套,不会像现在这么多的Deep learning Framework。

张鹏:最后可能是大厂每人一套,Facebook的Caffe 2,Amazon的MXNet,Google的TensorFlow,Google整个生态包括TPU都是在TensorFlow。我觉得现在工程层面,对深度学习的支持稍微滞后,深度学习理论很多方面还不太完备,大家其实靠经验驱动和靠实验驱动比较多。这些框架都在改,现在看来是呈现加速发展的趋势。所以说,深度学习框架品牌可能会稍微稳定,但是这几大品牌在具体的深度学习任务上,我估计还会走比较长的路。

于振华:通过我们讯飞的一些经验,我认为可能会走两个极端,公司应用角度比较看好还是MXNet,但是另外一个就是无论是高校还是公司研究人员,他们更喜欢灵活的,我认为目前灵活度最高的还是PyTorch。目前他的对抗网络和异地框架都支持的非常好,而且最关键的是,PyTorch网络设备是动态的,所以强化学习对于他来说最容易实现的。而其他框架,目前我们还没有能够把它做的比较现成的东西。

将来,对于高校、研究机构和公司研究人员,灵活性最高的框架可能会是流行度最高的,效率不是他们的首要需求。在企业之外,高校的学生和研究人员实际上也会是风向标。我也面试很多高校研究生,前两年高校里最流行的是Caffe,现在PyTorch在高校中流行度更高。从长久来看,灵活性最高的框架的传播度和大家接受的程度会是更高的。

彭垚:刚刚于振华这边也是说了蛮重要的一件事情,大家在工作环境里边做是分两块工作的,一块是跟实现和产品更相近的,把算法应用到行业工程,另外一块基本上一直在做research Framework相关的。

其实我个人大部分时间都在用PyTorch,因为PyTorch做东西特别快,很多东西很容易上手。

图片来自 https://www.tensorflow.org/

话题二:深度学习的应用与发展

彭垚:下一个话题,聊一下深度学习应用和Research相关的发展情况。

于振华:讯飞在识别效果上、云的规模、落地等方面,都走在比较前列。我们最近在Deep learning这块取得了比较大的突破。我们当初做CNN效果提升比较大,对我们来说是个意外。我们为什么做CNN呢?讲个很现实的工程问题,我们LTM模型考验的核心就是前后帧的相关性。在高性能计算平台上,相关性会导致并发路数会上不来。为什么呢?对任何一路进来的识别服务,它的第N帧跟第N+1帧是没办法并行的,它必须是串行的。但是我们做CNN,在一路上可以多帧并行,这样在inference上会做到比较好的效率实现。

在工程上,我们已经实现了int 8的系统,这个工作大约是两年前开始做。Nvidia的P4和P40都是支持int 8的,理论上int8相当于3倍加速。我们做到了3.2倍。

问:改到int8,在别的平台,比方说inference、FPGA之类会更方便?

是的。我们公司也做了FPGA实现。我们还跟Intel合作在微机上做到了0.87到0.89的CPU效果。CPU这块我们投入的就是两三个人和两三个月,实实在在的做到了P4差不多的水平,大概是0.9倍的量级。有个更重要的优势是,现在它的低功耗。

问:int8优化达到3.2倍加速,是在CPU还是GPU上?

于振华:GPU。P4。

郭烽:我在高通的多媒体研发部门,主要是视觉的应用,包括手机端目标检测和智能拍摄的接口。我们也有智能监控的应用,包括跟海康、大华都有合作,同时也有无人机平台和VR平台。早期我们集中在目标分类,现在关注重点是在图像的目标检测和分辨率提高。

另外,我们还有一块业务是DSP。前面大家对GPU关注比较多,高通芯片是多样化的,有CPU,有GPU,还有DSP。在DSP端做一定研发之后,DSP效果和一些专用芯片得到的效果,尤其是稍早版本的芯片效果,差不太多。到下一代芯片,在DSP端会看到高通有一些成功的应用。高通的DSP的核会开放给OEM用,另外会加上vital process类似于sim效果的DSP,这是早期版本。高通的GPU主打低功耗,我们的目标要求是在1W以下。

易成自动驾驶第一个重点在训练端,包括数据、精度,这是一个最基本的保证。另外,作为解决方案,我们不光是依赖于摄像头,肯定要有多传感器。在多传感器的融合端如何实现深度学习,这是两块业务。第三块业务,因为现在公司不大,英伟达支持讯飞等大公司会比较多,对于不大的公司的支持非常有限,在这种情况下,我们也开发一些适用硬件。

问:做自动驾驶的产品方向,包括哪几个关键环节?你们在产业里面会去做哪些事情?

郭烽:易成不完全是一家startup,我们在深圳有一家投资方,他在汽车产业链有一些上下游渠道;同时我们也在做一些早期的研发产品,自动驾驶现在来说为期遥远。另外,从技术角度来说,我们会做融合解决方案。至于解决方案和产业链上的哪些渠道厂商进行合作,还要进行探索。

赵晓萌:大家的分享都比较深。我们不太涉及优化等深度学习本身算法的东西,我觉得我是你们的用户。对我们小公司来说,深度学习的应用和开发趋势很明显:门槛降低的非常快——不管是计算能力,计算机平台,还有Model本身开源。小公司可以做的,就是把这东西尽快的用到业务当中——如果容易上手,更多的人会参与进来。以后应用这些东西,包括在大平台上的使用,可能是创业公司的标配。在内容图片文本方面,我们会做更多的尝试,也会有些比较有意思的应用。我大概就分享这么多。

彭垚:我们继续。杨军讲一下你们现在平台主要的应用点?

杨军:我这边比较典型的是传统的NLP和图像。阿里有广告推荐的经典业务场景,也在开始尝试深度学习做优化。

机器翻译是阿里基于深度学习获得很大提升的项目,比如我们已经完成的离线训练优化。其中单卡比较多,计算比较耗时,我们通过某些tricks获得更优的计算图形比,做些小tuning配合,以获得效果;另外,传统机器翻译和传统翻译的inference很简单,耗时也很短,但是换成神经网络翻译,如果不做优化,它的耗能会高出一个数量级,这块我们会做一些工作。

NLP的应用是在客服机器人。阿里有很多的店铺、商家、买家,与淘宝客服,或者买家跟商家的对话方面,我们会研发机器人减少客服的工作量。

图像方面,阿里会用AI方法做一些智能设计的工作,包括UED的团队希望做的素材生成、素材识别、素材提取。抽象来看,这就是个简单的图像监测识别的问题。在这里面,我们会把OCR的技术应用进去。除了这个,UED能不能根据某些场景、某些信息自动生成一些图片及素材,属于生成学习的范畴,这块是比较艰难的新领域。不过这一年非常火,也有很多的开源的代码。真做项目就会感觉喜忧参半,喜的是开源项目多,忧的是问题也多。我们对这个效果要求很高,所以需要做很多优化及尝试。搜索和广告方面,跟Google会有点相似,不同的是我们输入比较庞大,所以需要在输入层做针对系数的优化,这是它跟NLP和图像不一样的地方。图像场景的优化对于搜索不太适用。

另外就是搜索广告。搜索广告是典型的模型大、计算量大,所以需要更多的机器规模才可以跑的更多一些,对多机的通勤优化要求更为苛刻。这些是离线训练的范畴

在线预测我们也在做。在AMT里面,我们会用基于Spark的方法,目前的项目大概有近3倍的加速效果,我们还在继续优化。图像这块我们也在做自动化网络,确实存在精度问题,目前在base model上还有两到三个点的gap,说大不大,说小也不小,还有很多要去探索。或者,如何把Model做的更复杂来弥补精度的下降,同时获得性能的加速?这是优化这块的一些事情。

因为历史原因,阿里有很多的线上业务跑CPU的,从机器资源利用率和降低CPU来讲,我们关注CPU会多。这在将来会限制我们的空间,因为CPU有些硬件设计对inference优化并不非常有利。

另外,阿里也在基于FPGA做优化,大概适用图象场景,针对model做吞吐的优化。

于振华:我们在FPGA方面已经有一个落地的东西,大约在单颗芯片上实现了相当于P4 的50%左右性能。如果我在板上装两片MTP,首先设计会很困难,这是其一;其二,这样做得话,功耗上不占优势。我们知道,P4已经做到70W以下的性能,实际上就证明MP路线是对inference绝对可以的。当然我们知道英特尔还会推出新东西,这是很期待的。MP开发还是比较痛苦的,我也参与了做DNN、LTM、CNN、TMC的优化,这个开发难度非常大。如果没有很强的功能能力,我建议不要随便碰,这个东西很痛苦。

问:开发很大一块是数据流的,因为不同网络应用有些不太一样。我想问,是开发FPGA版本还是相对比较通用一点?

杨军:相对比较通用的。这个痛苦是多,本质上底层有个DNN,一块是MP的逻辑实现,一块就是所有的DMP,还有一块将近40%去控制外围的拓扑调度——这个跟做软件差别是很大的。做软件的话,拓扑描述都是Framework本身,我不需要去关注,但是这块是自己去开发的,比较麻烦的。

而且还有个更恶心的是,PSE和DPR做的接口是软实现的,它占了几大类,本身就占掉一块,留给我们的逻辑空间只剩下70%。

问:你们最终FPGA的功耗方法没有测过?

杨军:它的功耗大概是70多瓦,但是我们只跑到了40瓦。另外我们知道FPGA能跑500兆,我们最终做到了将近400兆,大约实际功耗是40多瓦,比P3稍微低点。

问:刚才提到了大概百分之二到三个点下降,我想问的是,你们主要是在分类方面做的测试,还是在目标检测方面做的测试?

杨军:目前在分类上做的测试。目标检测会更难、更有挑战。

郭烽:拿手机应用来举例,实际上模型吞吐不是个非常大的瓶颈。说降低模型尺寸和把APP做得小都是忽悠人的,本质上要有提升。就是相当于我们在load的时候是load的int 8然后转成16的,我们这块大约有3%收益;去做int 16的变化,把它到减到int 8,运算还是使用int16,系统性能大约会有40%的提升。高通对功耗要比较高,所以我们注重这些方面。

彭垚:我稍微补充一点点。像郭烽说的,除了技术加入和内存收益以外,他的功耗挺高的。另外,它的优化机制不太一样,这个时候是有优势的。

问:还有一个题外话,讯飞的数据量比较大,对于深度学习,你看到数据量的提高,margin是不是下降。

于振华:现在在语音识别上,我们原来在做DNN的时候,做到六千小时数据,就撞到边界了,就不提升了。刚做MTM,做两万小时,到边界了。我们现在做DEEP CNN,用了半年多,我们发现我们以前不Work的,在nxnet我哪怕做到十万小时他还是有收益的。

问:从六千到一万的收益率和从一万到七万的收益率是一样的吗?

当然后面越大,收益率越小。语音识别想占位的话,哪怕是3%或者4%,对我们来说也是非常重要。

问:你觉得数据的贡献会有极限,或者说到某一点之后他的贡献就微乎其微?

就看你做什么/追求什么。如果要抢占第一的话,哪怕是百分之一二的提升也是要去抢占的。如果就想把它落地做个比较好的应用,我觉得是做到一定程度就足够了。

彭垚:新浪张鹏聊一聊最近的进展?

张鹏:我们现在的工作重点是帮助内容生产,工作重点是提升生产效率。一方面是机器文本内容的自动生成,用在突发事件的报道以及转播。还有一个领域是自动配图。很多文章是没有图的,编辑人工找图是非常大的工作量,我们会用算法做匹配。再有就是自动切图——也是跟图像相关的。自动切图的内容生产量比较大,在各个客户端适配的时候,我们会对人脸物体都做相应的检测,然后根据情况提供最佳的切图建议。

还有一部分就是视频推荐,视频推荐主要是我们在尝试理解视频的内容。视频可以有很多标签,但是目前它能够提供的文本信息很少,所以这方面我们也做了一些工作。这方面我们用Google的Inception V3,把里边的视频信息提取物体特征,我们自己做了FrameNetwork,主要是把视频映射到自己的语义空间里面去,然后根据用户的行为来做推荐。未来继续提升内容的生产和分发效率。我们也在看图像增强,因为我们现在图像质量不是很高,但是还没有什么比较有效的解决办法。

彭垚:七牛是云服务厂家,跟阿里云差不太多。不一样在于,我们的客户都是短视频,或者直播,或者是社交的APP,我们这边对AI的大部分需求都是在图片和视频,比如给社交场景做图像标签。我们平台上有各种各样社交软件,像男同社交、女同社交、短视频。我们需要识别非常少见的内容,比方男的穿黑丝袜。我们通过客户提供的少量素材,依靠快速的Learning,之后爬取,再滚动做标注,有很多APP层的training迭代。我是主要在做的工作。

我比较好奇,阿里的客户都用你们的平台去做什么?

杨军:像小蚁是一个小米生态系统的公司,他做视频的分析和解析工作。像机器人公司,对NLP处理会有诉求。搜索推荐场景在我们的深度学习平台比较少。比较多的是以图像为主,语音少一些。我的判断是,语音的技术门槛相对比较深,产品形态相对不是那么多样化,更多是被几家比较出色的公司垄断了,比如讯飞,不像图像能够开放和多元。

图片来自 http://caffe.berkeleyvision.org/

话题三:深度学习展望

彭垚:我们做视频相关,我觉得影视多线索标注有很大提升空间。现在的Learning可以做到非常少的标注,多线索标注还在Research的阶段。

杨军:我认为,对抗生成学习GAN(Generative adversarial networks)和强化学习未来会有更大的发展空间。

原因有两个,一是对抗生成在一定程度上可以帮我们解决样本稀缺的问题,二是它会把我们的视角从判别问题领域更多走向生成领域

强化领域我比较关注,是因为我发现,有更多的工作可以通过限制反馈来拿到结果,大量节省了获取样本的成本。比如说像最近深度学习训练的多卡的placement有最新的工作,大概是5月份Google已经有这样的信息出来。这就是典型的一个Reinforcement Learning,来减少标准样本做优化的过程。我也非常看好组合优化的问题。

强化学习引出一个新问题。很多时候想用reinforcement learning去做一些事情,就会发现硬件不够了。这可能会推动新一轮的硬件变化。我自己看中GAN和reinforcement learning两个方向。

郭烽:我比较关注的是在目标方面的应用。在图像上面,单祯图片不管是目标检测还是目标分类都比较多,但是对目标追踪没有比较好的方法。怎么能简化运算量,同时提升智能效果,我觉得还有些值得探讨的地方。

另外一大块,是深度学习的应用、深度学习的公众化。以后如果手机端的硬件大规模普及,手机端智能应用发展起来,可以有各种各样单祯或者视频流的分析应用场景。是不是在手机端能够铺开,这是个值得关注的点。

于振华:从我的理解,不管是高通,还是海思,都在做深度学习的专用芯片。我估计未来要不了多久,基于深度学习专用芯片肯定会有的,可能不会面向普通的开发者,而是会面向比较大的客户。这是第一。

第二,刚才于总提到的GPU,至少从我的理解,一般不会用GPU来做移动端大规模计算。一旦你把在手机上把GPU打开,特别是连续待机,功耗非常大。GPU应用会有限制。这是我的基本理解。

张鹏:我有两个问题。我们一直挺关注合成语言领域,未来内容分发很可能是通过语音的。在个性化的语音生成这块,讯飞进展如何?在语言识别领域,尤其是在高背景噪音的情况下,现在公开出来的几种技术都非常糟糕,比如鸡尾酒会问题等,讯飞这方面进展如何?

于振华:我先回答你第二个问题。环境嘈杂和多人说话,实际上不能单靠软件,肯定要结合硬件,包括多麦克。会议室很大的问题是混响,如果不结合硬件的话,效果也是不太好的。结合硬件系统,将来的解决方案,对于鸡尾酒会问题或者会议室环境噪音,都是能够有效解决的。目前的会议效果会差些,基本上能做到80%以上的准确率。用手机输入法会好些,因为人知道在对计算机讲话,他会配合、会特别注意语音语调语速,所以输入法能做到97%或者98%。

第一个问题方面,我们以前做语音合成有70%是像的,30%是不像的。我们现在做什么水平?可以做到都是相同的。70%以上他讲的内容是我们平时熟悉的人分辨不出来的,听不出来是录音还是机器合成的。剩下的30%的内容,熟悉的人可以察觉,一听声音就知道是谁,但是能分辨这不是他自己在说话。

赵晓萌:我们现在深度学习用的比较好的,是把图片用CNN向量化,文本用doc2vec去向量化,然后通过浅的神经网分类器,能够把主题等东西识别出来。

我们还有一个比较有意思的应用。有一段时间,小红书上面脸上长痘子的特别多,不是每个人都喜欢看到长满痘子的照片,我们就做了一个能够识别痘痘脸图片的应用,CNN可以非常好的识别全脸、半脸、甚至1/4脸的图片,有少量器官的图片都会识别出来。这个对我们来说很有用。

下一步,在深度学习方面要做的是,把搜索和推荐系统从统计搬到深度学习上。我们会参考平台提供的解决方案,也会读一些这方面的paper自己来试一试。以后,一切比较牛B的我们觉得很好的事情,比如用户分享图片的质量,甚至是图片的逼格,我要识别出来这种图。我们想研究用户穿衣的style和风格等方面,比如都是鞋,用户更喜欢哪种鞋;都是眼镜,用户更喜欢哪些眼镜。这个是不太好拿出来去搜的,但是能从用户交互的过程中,通过深度学习把相应特征提取出来。我觉得对我们来说非常有用。

总结

彭垚:最后大家轮流总结一下。我感觉收获比较大,老于介绍了语音方面的东西,包括平台上的优化。听了杨军在平台上做优化,我感觉我们对TensorFlow的投入不够,值得花点时间再看看。

于振华:我们在图像图片领域也是刚刚起步,跟大家学到挺多。大家在不同平台投入的都挺多,我们也要加大些投入了。

郭烽:首先非常高兴认识大家。我刚回来没多久,在国内能认识大家,很高兴。在深度学习方面,不管是从应用层还是从实验层,大家见解也非常深,对我也是个很大的提高。我分享了一些比较底层的东西,受众稍微少一点,希望今后和大家多交流。

赵晓萌:我今天学到很多东西。我原来关注底层优化比较少,听了大家的交流,我想还是先借用大家的已有优化成果。

杨军:我之前并没有接触过PyTorch,今天不只一位朋友在提PyTorch,我会关注一下。通过交流,我确实了解到很多use case,高清图片生成、讯飞语音、小红书图片搜索、新浪内容业务和郭烽自动驾驶都蛮不一样的。我们做平台,最需要知道顶层应用有哪些困扰,这是我觉得有收获的地方,可以说超过预期。

张鹏:我最大的感受是大家比较多样。我这边一直是做应用很多,底层考虑较少。对我们来讲,应用场景不成问题,现在最大的问题就是成本。我们也在测阿里的云服务,未来应该还会有比较深入的合作。谢谢大家。

结语

彭垚:感谢大家,大家的分享都非常精彩,我也受益匪浅。希望之后大家常联系。今天就到这里。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow: - 原理:TensorFlow是一个基于数据流图的深度学习框架,使用静态计算图来表示计算任务。它使用张量(Tensor)作为数据的基本单位,并通过计算图定义了数据流和操作之间的关系。 - 结构:TensorFlow提供了丰富的API和工具,包括高级API(如Keras),用于简化模型的构建和训练过程。它支持分布式计算和跨平台部署,并具有强大的计算性能和优化能力。 PyTorch: - 原理:PyTorch是一个基于动态计算图的深度学习框架,它使用动态构建计算图的方式来执行计算任务。这使得PyTorch在灵活性和易用性方面具有优势,可以方便地进行模型的调试和动态图的操作。 - 结构:PyTorch提供了直观的API和丰富的工具,使得模型的构建和训练过程更加简洁和灵活。它也支持分布式计算和跨平台部署,并且在学术界广泛使用。 Keras: - 原理:Keras是一个高级神经网络API,可以在多种深度学习框架上运行,如TensorFlow、Theano和CNTK。它提供了简洁易用的接口,使得模型的构建和训练过程更加快速和方便。 - 结构:Keras的结构相对简单,主要包含顺序模型和函数式模型两种方式。它提供了丰富的层和模型组件,可以快速搭建各种类型的神经网络模型。 Caffe: - 原理:Caffe是一个基于数据和计算图的深度学习框架,它使用protobuf文件定义网络结构和参数。Caffe主要用于图像分类和目标检测等计算机视觉任务。 - 结构:Caffe的结构相对简单,通过定义网络结构文件和参数文件来构建和训练模型。它具有高效的推理性能,并且支持在多个平台上进行部署。 MXNet: - 原理:MXNet是一个基于动态计算图的深度学习框架,它支持静态和动态混合的计算图。MXNet具有高度可扩展性和灵活性,可以适应不同规模和需求的深度学习任务。 - 结构:MXNet提供了简洁的API和工具,使得模型的构建和训练过程更加容易。它还支持分布式计算和多种编程语言接口。 Darknet: - 原理:Darknet是一个开源的深度学习框架,主要用于计算机视觉任务,如目标检测。它使用基于卷积神经网络的深度学习方法,并采用全卷积和多尺度预测等技术。 - 结构:Darknet的结构相对轻量级,具有较小的参数量和较快的推理速度。它提供了简单而高效的网络结构和特殊的层操作,使得模型具有较好的性能。 综上所述,这些流行的深度学习框架在原理和结构上有所差异,各自适用于不同的应用和需求。选择合适的框架取决于任务类型、开发者的经验和项目需求等因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值