当前位置: 首页 > 业界动态 > 技术评论 > 本文


算法、应用与计算平台,讯飞百度阿里360的深度学习经




发布时间: 2015-9-28 10:53:12  

  当前人工智能领域很热门的技术,无疑是大数据+深度学习。实验环境下,深度学习的性能在语音识别、图象分类和检索、人脸识别、文字识别以及智能交通等领域,都大幅超过了传统的方法。但从商业化的角度来看,深度学习的应用才刚刚开始,挑战依然巨大。深度学习如何才能有用、好用,依然困扰许多企业和开发者。在9月24日下午的2015高性能计算用户大会 (HPCUF2015)深度学习分论坛上,来自 工业界和学术界的六位专家分享了深度学习技术在智能语音、搜索、广告、视觉分析、流量识别等不同领域的应用,以及为如何构建高性能计算平台来支持这些应用。

 

  参与本次分论坛的专家包括:

  张致江 科大讯飞深度学习平台研发主管

  周杰 百度科学家、深度学习研究院算法组和自然语言理解组负责人

  张清 浪潮HPC应用研发经理

  王琤 阿里巴巴计算资深专家

  王占一 奇虎公司数据挖掘专家

  鲁继文 美国伊利诺伊大学香槟分校新加坡高等研究院研究科学家、清华大学2015年中组部青年千人计划入选者

  中国科学院自动化所研究员刘成林主持了本次论坛。

 

  从数据到智能,深度学习很有效

 

  人工智能、大数据与深度学习很近经常被一并提及,在周杰看来,三者之间不能划上等号,人工智能的核心是自学习的能力,目前机器学习只是在拟合历史数据,举一反一,和人类举一反三的思考能力差距尚远,需要更多的训练样本学习出更多的知识。当前大数据提供了大规模学习的样本,但传统机器学习算法受限于加速能力,只能用小规模的参数,拟合能力没有增强,无法达到千亿级的规模。

  以千亿级参数为目标,效的参数形式是矩阵乘法,而深度学习算法就是矩阵运算,可以连续叠加十几个矩阵(百度已经做到20+矩阵),并且深度学习能力是随着层数增加而增加的,所以是目前很方便很有效的方法。

  张致江认为,深度学习相对传统语音技术的优势,很典型的就是特征提取的简化。传统的GMM模型步骤繁琐,然而DNN可以从大数据中自动学习到特征,特征提取的流程可以简化好几个步骤。当然这是通用的好处。王占一也表示,在流量识别的工作中,基于行为特征和传统机器学习,好处是建:褪侗鸸套远,但特征抽取和选择依赖于专家经验,而深度学习可以实现非监督的特征学习。

  

 

  深度学习在语音、搜素、视觉、安全领域的应用

 

  张致江介绍了深度学习在科大讯飞智能语音领域的应用,包括语音识别、语音合成和自然语言理解三个方面。深度学习也越做越复杂,从DNN到RNN到LSTM,分别加入记忆功能,以及有针对性的记忆,这很符合语音识别的特殊需求。应用DNN,精度从传统方式的78.8%到90.8%,应用LSTM之后,精度达到95.5%。除了算法本身,精度的提升也有赖于大数据。为此,科大讯飞搭建了一个深度学习平台,支持PB级训练数据、百万模型参数的深度学习。

  对于百度而言,无论搜索服务还是广告盈利,都是基于海量数据的,百度早早组建IDL,从海外聘请吴恩达在内的多位深度学习大牛来处理这些数据。周杰介绍,IDL正在打造一个可进化的百度大脑,神经网络参数为百亿级(搜索数据量是百亿级别,用户量是亿级,现在做到千万级别乘亿级别),算法涉及语音识别、图像识别、自然语言理解、广告准确匹配、用户建模等。以广告为例,通过文本分析、语音识别、图像识别理解用户意图,然后匹配用户需求,包括优化搜索结果的智能排序,很后是准确推送和广告服务,即估计和优化点击率和转化率,这已经让百度广告收入实现2%的提升。

  周杰还介绍了百度大数据和深度学习其他的一些应用:

  图像搜索:模拟大脑结构的分层结构和行为,有边缘,下面是边缘交叉,然后通过排列组合自上而下对图象进行识别。

  文本搜索:通过深度学习语义模型的引入,在长词搜索上拉进与Google的距离。

  运单电话号码手写识别:不用传统先切割图像再进行模式匹配的方式,利用OCR的序列学习,直接识别整个电话号码,而不是分割线,可以用到书写交错的情况。

  自动驾驶:运用高精度的地图识别与马路上物体识别的结合。

  

 
 

  王琤在阿里云目前负责阿里异构计算以及高性能计算工作,他介绍,阿里从2013年开始部分的业务用到深度学习,2014年在各个主要业务线各个算法广泛采用深度学习,应用场景包括商品分类、拍照购、商品风格预测、图像搜素、OCR和标签识别等。

  在360的流量识别中,用到了栈式自编码(SAE),由多个自编码网络组成,采用逐层贪婪训练和fine-tuning。将采集的流式数据转化为初始数据是一维的形式,范围在0-255,引入深度学习,画出协议图像,通过协议图像识别出数据所述的协议,试验环境下平均识别率是97.9%。

  

 

  实现流程也是传统的流程,数据的关联、处理、采量,做一些变换,建一个深度学习的模型,很后得到识别的结构。

  

 

  王占一表示,一个是比较有用的地方是特征学习。特征抽取方面,通过流量数据,做两层自编码,虽然不知道是什么,但是很有效;特征选择,把原始数据截留,通过模型的参数和模型权重来衡量,知道很重要就是前25个字节,前100个字节非常有用,很不重要的300个字节在后面。这方法也可以用在应用程序,分析它的流量,做一个可视化的识别,平均识别率在90%以上。

  王占一很后表示,现在卷积神经网络(CNN)模型用于样本分类的尝试,用了六层,精度是96.32%。而传统特征+随机森林可以大于99%。如果可以通过结合传统方法或者再进一步深层次的去做,还有提高的空间。

  视觉分析(视觉识别+视觉跟踪+视觉目标搜索)领域前瞻,鲁继文分享了一种有别于CNN的模型——深度度量学习(Deep Metric Learning)。度量学习通过构建度量空间的方式计算视觉分析样本之间的相似度,从而实现分类。但传统的度量学习不能解决样本的高度分析,很多时候不能获得非线性的方式。

  深度度量学习是考虑到深度学习可以有效的对样本非线性建模,用现有的样本特征放在标准的多层网络,这一层的输入作为下一层的输入,网络顶层的距离用于计算样本的相似度,顶层目标函数基于不同的任务来设计。在人脸识别方面,深度度量学习结合大数据,不需要复杂的网络,只需要用现有的虚拟样本,用LFW数据库,可以做到90%多。在真实环境下,如果做迁移,做跨数据库的行为认证,还可以有5%-10%的提升。所以,相对于CNN,深度度量学习的一个好处,就是需要的训练集可以小很多。

  

 

  深度学习的挑战

 

  回顾人工智能和深度学习的发展,周杰表示,上世纪八十年代末,神经网络发展的重要阶段,人工智能实现的很快,从业者的期望值很高,但是后来发现遇到了一个瓶颈,在今天来看其实就是计算能力和数据量的瓶颈。当前深度学习得以流行,也是得益于大数据和计算性能的提升。

  针对数据量的需求,专家们可以通过模型的调整、变更来缓解,但计算力的挑战没有捷径。这一点,学术界专家的感受尤为突出。鲁继文表示,计算资源方面,从2012年之后,学术界一直滞后于工业界,希望业界给高校一些支持。另一位深度学习学术专家,新加坡国立大学Associate Professor颜水成也在主题演讲中表示,深度学习和大数据非常成熟,但产品化的一个问题,是速度还不够快。深度学习变成计算资源的比拼,这对全世界来说都是非常不利的事情。

  其实科大讯飞、百度、阿里、360在深度学习方面也面临着计算力的困扰。张致江表示,科大讯飞的深度学习平台属于计算密集型的平台,集群几百台机器之间要实现高速互联,是类似超算的结构,但它又不是一个非常典型的超算。科大讯飞很开始探索传统的方式,用大量CPU来支持大规模数据预处理,运行GMM-HMM等经典模型的训练,在千小时的数据量下,效果很不好。所以,他认为,高性能计算是人工智能成功的一个关键。

  360的数据规模也非常大,王占一介绍,360每天处理的数据有上亿条,参数50万以上,如果用CPU,每次模型训练就要花几天,这对于崇尚快速迭代的互联网公司运营来说,显然非常难以接受。

  周杰也认为,虽然是稀疏系统,20+矩阵、百亿级参数所需的运算量,依然很庞大,不是一般计算系统的计算性能所能支撑的。

 

  HPC破深度学习计算力瓶颈

 

  相对于学术界,工业界的专家对深度学习计算资源的构建有更多的经验,这也带来了HPC的新发展。科大讯飞方面,构建用于深度学习的HPC平台,采用GPU/IB加速为主的方案,底层硬件系统和整个上层资源进行统一,业务层算法的编程方式也进行修改,并和硬件做融合,中间的资源调度系统、融合调度界面和集群编程框架,都要做很多定制化工作。

  

 

  平台构建的整体思路:

  首先,在算法层对整个算法进行分解,看看算法有没有并行加速的可能,再和传统的并行加速的算法进行融合。

  其次,基于这个思路对系统的整个调度方面做设计和定制,落实到很底层运维方面做一些调整,比如存储架构进行调整,存储的IO在不同的计算方面的性能也做一些调整。

  因为数据量大,科大讯飞大量使用GPU加速,用4卡、8卡+IB、16卡+IB分别做小型、中型和大型深度学习任务,加速比分别为3.7x,7.0x,13.7x。的工作,直接可以抗住十万小时的数据的训练,而且十万小时数据跑到两三周时间就可以,效果在95%以上。

  阿里内部的HPC集群,同样是多机多卡并行,同样注重GPU加速,以及资源的统一管理、调度、监控。阿里部署了几百片Kepler GPU,亦采用IB高速互联的方式。

  360也采用多机多卡并行的方式,采用OpenCL框架,从2到10台CPU集群,到用两台CPU+4GPU,很后可以达到比较高的准确率。360做的是数据并行,50万模型参数,划分在不同的机器上,每个机器上有GPU,上面有负责参数的传递,通过如图的框架实现。

  

 

  深度学习平台编程工具的定制化是一个很重要而耗时的工作。浪潮HPC应用研发经理张清介绍了一个基于HPC的Caffe深度学习平台——Inspur-Caffe,同样是开源的。该版本Caffe与BVLC的原始版本核心代码同步更新。所不同的是,Inspur-Caffe做了更多的多机多卡数据并行以及HPC优化的工作。下图所示,为目前已经可用的数据并行版本的主要特性。

  

 

  之所以选择用Caffe,张清表示,是因为Caffe广受欢迎,通用性强,性能高,代码可读性好,有600多位工程师在维护。尽管如此,张清认为,Caffe原始开源版本有如下短板:

  单GPU计算ForwardBackward计算存在很大的性能瓶颈

  不支持数据并行,大数据训练时间长

  不支持模型并行,超过GPU显存大小的模型将无法训练

  实现数据并行,Inspur-Caffe计算流程采用MPI主从模式( 贾扬清亦主张基于MPI的实现方法 ),主节点为MPI单进程+多Pthread线程+CUDA,从节点为MPI多进程+CUDA。数据的读取基于Lustre文件系统多线程并行读。芍鹘炭俣喔鱿叱掏倍寥。对于集群并行带来的网络传输额外开销,Inspur-Caffe采用IB网络,实现GPU-GPU的互联。在NVLink商用之前,这种方案对于GPU上的数据并行很重要。另外一个重要的地方是参数更新服务器的设计,支持同步更新、同步+异步更新、异步更新三种方式,不过目前异步的效果并不是特别好,原因是这并非浪潮的强项,所以张清也呼吁更多的开发者加入到社区开发之中。

  与NVIDIA、上海交大合作,Inspur-Caffe数据并行版本分别做了4卡、8卡、16卡加速的测试,其中浪潮实验室16卡测试结果如下图,16卡的效果还有提升空间。所以,Inspur-Caffe下一步的开发计划,数据并行的优化,包括16卡加速比的提升,此外还要实现数据并行+模型并行,包括GPU组内部的卷积层数据并行、全连接层模型并行。

  

 

  显然Caffe只是众多的深度学习工具之中的一个,王琤介绍了一个阿里内部针对卷积层优化的一个汇编器——AsKepler。他认为,GPU的指令调度和CPU的不一样,软件的深度优化,是简化硬件复杂度、发挥GPU加速能力的关键。

  AsKepler就是阿里自己实现的Kepler native assmbler,真正在硬件上跑的底层汇编,目的是解决PTX指令集功能、性能的不足,实现更灵活的指令调度,避免编译器劣化。

  NVIDIA GPU现有native assmbler包括两层:

  Asfermi,Fermi架构,AMD

  Maxas,Maxwell架构

  AsKepler意图弥补两层之间的空白,并将以云服务的方式开放。即将开放的还有阿里HPC集群,包括调度、监控功能。此外,值得一提的是,阿里云还将开放深度学习Docker镜像。日前,有开发者对DIY深度学习硬件平台的文章评论称“然并卵”——文中选用的GPU加速卡太贵。那么,阿里云HPC集群和深度学习镜像的开放,至少提供了更多的可能。

 

  来源:CSDN 作者:周建丁

分享到: 微信 QQ空间 人人网 更多
阅读:2285次

版权所有 © 2011-2017 南京凯发网娱乐大数据科技股份有限公司(股票代码:835305), 保留一切权利。(苏ICP备11060547号-1)  
凯发网娱乐大数据-专业的云存储、大数据、云计算产品供应商