前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法、应用与计算平台,讯飞百度阿里360的深度学习经

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

作者头像
用户1737318
发布2018-06-05 15:34:01
1.1K0
发布2018-06-05 15:34:01
举报
文章被收录于专栏:人工智能头条人工智能头条

当前人工智能领域最热门的技术,无疑是大数据+深度学习。实验环境下,深度学习的性能在语音识别、图象分类和检索、人脸识别、文字识别以及智能交通等领域,都大幅超过了传统的方法。但从商业化的角度来看,深度学习的应用才刚刚开始,挑战依然巨大。深度学习如何才能有用、好用,依然困扰许多企业和开发者。在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集群和深度学习镜像的开放,至少提供了更多的可能。

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

本文分享自 人工智能头条 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从数据到智能,深度学习最有效
  • 深度学习在语音、搜素、视觉、安全领域的应用
  • 深度学习的挑战
  • HPC破深度学习计算力瓶颈
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档