解读神秘而又强大的百度人工智能计算机

Hanson Hanson     2022-09-06     430

关键词:

  2014年8月,在硅谷Cupertino Flint Center召开的26届Hotchips 会议上,百度宣读了其发表的论文(据不完全统计,这应该也是国内第四篇Hotchips文章,前3篇均为龙芯团队所发)。一年之后,一个叫“仙童”的项目,获得了奖金为一百万美金的百度最高奖。

  这两个看起来无关的事件,背后都是一个工作,就是百度自主研究的人工智能计算机。虽然百度从事人工智能计算机的研究和探索已经长度4年,本文是第一次系统阐述这背后的故事和历程。

  百度人工智能应用百度是国内应用深度学习的先锋,早在2012年初,百度就在语音识别上规模应用深度学习算法并取得了非常好的效果。在2012年底,百度CEO 李彦宏宣布成立公司的第一个研究院——百度深度学习研究院。当时,世界上也就Google、微软等少数几个公司公开宣布在深度学习、人工智能领域进行战略投入。

  这4年下来,深度学习技术已经渗透到百度各个产品,如网页搜索、广告点击率预估模型、百度杀毒等。深度学习技术极大地提高了百度产品的用户体验。如百度的语音识别,经过这4年的不断磨练,其识别准确率也从当初80%左右提高到了今天的96%。

  除了率先在各个产品线引入前沿的深度学习算法,百度在人工智能应用方面还有更长远的布局:

  l 百度建立了百度研究院,下设硅谷人工智能实验室、北京深度学习实验室、北京大数据实验室等三大前沿实验室。

  l 2014年,人工智能领域最权威的学者之一——吴恩达加入百度。

  l 同年,在百度技术开放日上,百度发布大数据引擎,对外开放大数据及人工智能能力。

  l 在之后的百度技术节上,百度高级副总裁王劲勾画了“万物智能”的愿景,并展现了百度为迎接万物智能时代所做的技术布局。

  l 2015年百度世界大会上推出的“度秘”,就是万物皆智能的一个很好的体现。它将成为人们生活中的智能秘书。度秘可以通过语音对话或者图像很自然地和人进行交互,甚至都不需要交互,而是根据历史信息、传感器信息、周围环境变化来判断一个人的需求。如果你饿了可以帮你订餐,在你生病后可以告诉你吃什么药,如果明天下雨会提醒你带上伞,你需要出行会时会帮你订好酒店、机票等等——这些看起来很平常的“秘书”服务,如果真要达到非常可用的状态,其实背后就需要非常先进的人工智能技术做支撑。

  人工智能对计算机系统及体系结构的挑战人工智能的应用,包括云(数据中心)和端(智能设备)两部分。云端除了训练(离线训练),还有在线的服务。训练是指利用训练数据,选择合适的训练方法,训练出一个模型。在线服务是指利用训练出来的模型来响应在线响应用户的请求。端部分也是人工智能的一个强需求,按照“万物智能”的愿景,很多终端设备,也都能运行人工智能的算法,能智能地响应外部请求,如智能辅助驾驶、无人车、智能摄像头、工业IOT等等。

  深度学习的离线训练,是工业界和学术界研究最多、关注最多的领域。自深度学习热潮席卷而来,无论是学术界还是工业界,涌现了很多新的、面向深度学习算法和应用设计的系统,如Google提出来的parameter server,其他人也借鉴了parameter server的思想,根据不同的应用场景,设计了不同的各种系统。

  在体系结构方面,深度学习训练多是基于GPU及infiniband高速互联网络。使用GPU来做大规模的矩阵计算,然后使用infiniband高速网络进行分布式参数更新。这种架构在工业界里面非常普遍,很多专有的服务器里带有8个GPU,服务器之间通过infiniband互联。很多论文都在研究怎么利用服务器内8个GPU的局部性、利用infiniband的RDMA、利用GPU的计算能力来完成完整的分布式深度学习训练任务。

  GPU加infiniband的硬件架构,目前比较适合深度学习的训练,也比较适合工业界的规模应用,毕竟这两种硬件性能都不错,且供应商众多,比较很容易获得产品及技术支持。所以一开始,这种架构就得到了工业界和学术界的青睐。

  在线服务方面,无论是工业界还是学术界,公开的信息都比较少。因为有机会大规模部署人工智能服务的,只有像百度这样技术驱动的大型互联网公司,而这些公司,一般处于保密考虑,会延后发布自己的核心技术。

  至于人工智能的终端设备,虽然媒体一直在勾画这个领域的宏伟蓝图,但实际上的成功规模应用并不多,所以工业界和学术界对这部分内容公开得也比较少。

  其实,无论是离线训练、在线服务还是智能设备,里面运行的都是一些常用的深度学习算法,如DNN/RNN(LSTM)/CNN,这些算法的具体实现这里不具体论述。这些算法都有一些共性,如都是计算和访存密集型,主要的计算算子是矩阵操作、卷积、激活函数等。如果是离线训练,考虑到分布式实现,对节点间的通信带宽和延时要求也很高。

  从大规模部署应用的角度看,无论是哪种类型的应用,对体系结构最终的衡量标准是performance/dollar及performance/Watt,也就是效率,包括能耗效率和成本效率。只有这两个效率足够高,这种体系结构才有生命力。例如在嵌入式终端里面,往往需要考虑极致的能耗和成本效率,有时候甚至需要对算法做些剪枝和模型规模限制。在数据中心里面,成本和功耗也是规模部署要考虑的第一要素。

  如今,人们提到深度学习的硬件架构,会首先想到GPU。这主要是因为,在能方便采购到的硬件里,GPU确实能提供较好的数学计算能力和访存带宽。但对于能耗和成本效率,即使在数据中心应用,GPU离我们的目标仍有很大的改进空间。所以我们需要重新思考,面向人工智能的典型应用和算法,设计一种新的、通用的体系结构,这种体系结构能实现极致的能耗和成本效率,还能灵活延伸扩展,很容易支持离线训练、在线服务和智能终端三种场景。

  大胆探索,问题导向人们在面对热门研究领域的时候,都比较容易自然而然地“仰望星空”,觉得只要参与其中就一定能有大收获。但如果只是急功近利,缺少冷静的思考,就很难取得突破性的成果及持续性的产出。这就像早期用几个GPU随便搭个小集群,做一些模型训练,也能发一些不错的paper,能很快看到产出,外界也会给一些不错的评价。但实际上,这些工作并没有本质的突破,也没办法带来持续的影响力,因为这并没有解决人工智能体系结构最关键的成本和功耗效率问题,也没有给整个学术界和产业界带来新的观点和思路。

  大家也可以看得到,最近这几年类似的工作非常多,也都大同小异,产业界的竞争也趋于红海。短平快的工作,再加上喧闹的市场氛围,是比较容易出一些所谓的“成果”,如果当初我们只是沉迷于此,就不会有突破性的新技术产生。

  在面对人工智能这种火热的研究领域,在加上喧闹的市场环境,我个人还是非常认同李国杰院士在10月刊的CCCF上的观点:“大胆探索,问题导向”,也就是说既要仰望星空,也要脚踏实地。只有抓住了最核心的问题,然后大胆发挥想象力,朝着一个远景目标一点一点的迭代和探索,在实践过程中以问题为导向,聚焦目标,才能最终做出经得起考验的东西。

  百度的探索及实践在人工智能体系结构这条路上,并不是只有百度一家在努力。大家能看到,计算所的陈云霁老师及其团队做出了非常好的成绩,发表了很多顶级论文,也给这个领域的同行带来了不少新的思路。

  百度在这个领域,起步也非常的早,在2012年就开始这方面的研究。虽然那时候百度语音识别已经规模应用了深度学习算法,但其他应用还在起步阶段,深度学习算法也在快速发展迭代中。那时候我们为了提高深度学习算法的计算速度,已经在GPU和CPU上做了很多优化,也发了一些深度学习算法GPU加速的论文,得到了外界的认可。

  经过这些工作,我们更能深刻理解GPU/CPU在深度学习应用里面的成本和能耗效率离目标有较大差距。于是,我们产生了一些大胆的想法——自己设计深度学习专有的体系结构和芯片。

  需求定义

  在当时看来,有很多具体方向可以做:例如离线训练,很多产品线都需要从传统的机器学习模型逐步迁移到深度学习算法,离线训练看起来机会很多;在线服务,很多产品的深度学习模型也逐步上线,所以也有需求;人工智能硬件、无人驾驶等等很多新产品与新技术都炒得热火朝天。

  这些方向要怎么选,是一个很大的难题。在工业界,如果方向选错,很有可能几年的资金和团队投入都会浪费,而且还会错失机会。所以当时我们比较冷静,坚定问题导向。经过深入的思考,发现离线训练GPU可以阶段性地满足要求,智能设备虽然炒的火,但时机仍没成熟。而在线的服务,这个需求是客观存在的,虽然2012年那会能上线的服务还很少,模型也不大,但可以预估模型肯定会越来越大,业务也是越来越多,而且GPU因为功耗、成本等原因,不适合线上大规模部署。在这样一个非常具体的问题驱动下,我们提出先针对这个细分领域定制我们的人工智能计算机。项目取名“仙童”,寓意是希望我们能像50年前的仙童,在人工智能体系结构及硬件芯片这个崭新领域做些开拓性的工作,开辟一块新天地,甚至能做出影响以后几十年的成果。

  系统定义

  深度学习算法的核心算子都比较容易抽象,例如DNN主要算子是矩阵乘法和激活函数,RNN/LSTM是向量乘矩阵和激活函数,CNN是卷积。这三种算法,核心计算都可以抽象成向量的内积及激活函数。为了保证系统的灵活性,该系统设计成SOC形式,设计专有的硬件加速器来加速深度学习算法。在数据中心, SOC里面的处理器很自然就是X86的CPU,深度学习协处理器通过PCIE总线和CPU互联。协处理的控制调度,都是由X86 CPU完成。这种架构以后如果要延伸到嵌入式智能设备领域,只需要把处理器换成ARM即可,加速器部分仍可以保持不变。

  架构设计

  向量的内积硬件比较好实现,只要堆足够多的ALU,性能就能线性提高,而且这个功能的流水线也很规则,很容易实现。但向量内积的瓶颈一般都在访问内存,所以主要挑战在于怎么利用cache/片内buffer的局部性,提高访存效率。这里需要跟进ALU的数量、运行频率、DDR的带宽来精细计算所需要的片内buffer的大小,及片内buffer的访问模式,以充分利用数据的局部性。加速器的硬件的架构如下, 该架构有两级的memory hierarchy,芯片外的DDR3和芯片内部的SRAM buffer,高效的访存控制是该系统的关键。

解读ai行业发展趋势

人工智能可谓近年来最为热门的话题,而且也一直在持续发热,创造着价值,人工智能行业的发展究竟是何等趋势?人工智能总体从业务应用发展上分为四个阶段:第一阶段,通过传统的数据ETL批处理的手段,完成一些数据分析... 查看详情

图文详解神秘的梯度下降算法原理(附python代码)

...#x1f525;作者:FrigidWinter🔥简介:主攻机器人与人工智能领域的理论研究和工程应用,业余丰富各种技术栈。主要涉足:【机器人(ROS)】【机器学习】【深度学习】【计算机视觉】🔥专栏:《机器人原理... 查看详情

计算机类专业解读:智能科学与技术

...科学技术以信息科学、认知神经科学、控制论为基础,以人工智能科学为核心,以实现机器智能和复杂智能系统应用为目标,是一个引领未来社会发展的新型学科。智能科学与技术属计算机类专业,基本修业年限为四年,授予理... 查看详情

文本编辑利器notepad++10个强大而又鲜为人知的特性

文本编辑利器Notepad++10个强大而又鲜为人知的特性-为程序员服务 查看详情

『ai原理解读』mindspore1.2强大并行能力介绍与解读

融合5大维度,强大的自动并行 MindSpore自动并行提供了5维的并行方式:数据并行、算子级模型并行、Pipeline模型并行、优化器模型并行和重计算,并且在图编译阶段,有机融合了5个维度的并行。这5维并行方式组... 查看详情

enote笔记语言

...p;why(whynot)&how&when&where&which:紫色,象征着神秘而又潜蕴着强大的力量,故取紫色。key&key-memo:“2k”和以上的“5w1h”合称“5w1h2k分析法”。棕色,给人一种朴实无华而又可靠的感觉,故取棕... 查看详情

人工智能自动写作软件2.0时代

大家好,人工智能人工智能(ai)的定义是计算机科学的一个分支,自20世纪70年代以来被称为世界三大最先进技术之一(空间技术、能源技术和人工智能)。它有许多定义,它们都是有意义的,没有对错之分。人工智能自动写作软件2.... 查看详情

第八届“互联网+”大赛|百度杰出架构师毕然解读产业赛道命题

...”正式上线。百度杰出架构师、飞桨产品负责人毕然从“人工智能产业发展及百度AI战略布局”“百度产业赛道命题总览及解析”“产业赛道评审规则要点”“百度提供的全方位支持”四个方面,向大家进行了赛道解析。在 查看详情

云智一体系列白皮书智能物联网篇为你一站式解读

以人工智能、大数据、云计算、5G等为代表的新一代信息技术蓬勃发展,驱动新一轮科技革命和产业变革。物联网作为产业互联网的重要基础,作用不言而喻。如何利用好物联网,进而带动企业完成产业跃迁?近... 查看详情

云智一体系列白皮书智能物联网篇为你一站式解读

以人工智能、大数据、云计算、5G等为代表的新一代信息技术蓬勃发展,驱动新一轮科技革命和产业变革。物联网作为产业互联网的重要基础,作用不言而喻。如何利用好物联网,进而带动企业完成产业跃迁?近... 查看详情

算法与模型的浅析

...发沟通中的一大障碍,极大地影响了沟通的效率。在人工智能尤其是机器学习领域,算法和模型是两个相关而又有区别的两个概念,弄清二者的含义和联系可以使我们讨论的问题更加明确。什么是算法?在计算机... 查看详情

算法与模型的浅析

...发沟通中的一大障碍,极大地影响了沟通的效率。在人工智能尤其是机器学习领域,算法和模型是两个相关而又有区别的两个概念,弄清二者的含义和联系可以使我们讨论的问题更加明确。什么是算法?在计算机... 查看详情

magicleap宣布开发神秘软件,专注vr内容

...已经完成了数额巨大的融资。而他们正在开发一种可以把计算机图形叠加在现实世界中的智能眼镜。但在产品正式向市场推出之前,MagicLeap需要开发者为其开发软件,这意味着他们有机会接触到这款神秘的硬件。MagicLeap的执行总... 查看详情

解读:ipfs助力数字经济下的大数据现状

...呼唤数据与信息相伴相生,随着信息技术朝着以5G、人工智能、虚拟化、分布式计算等为代表的新一代信息技术演进,数据也完成了从“小数据”向“大数据”的艰难蜕变。19世纪60年代前,信息技术尚未成熟,数... 查看详情

解读区块链智能合约!

  解读区块链智能合约!  区块链和智能合约技术的广泛适用性使得该领域参与者按照各自所在学科来解读它,因此现在还缺乏统一的术语定义,对于一个发展如此快速的技术领域来说是一大缺憾。本文作者JoshStark是律师和... 查看详情

基于百度云的ai接口调用

基于百度云的AI接口调用人工智能(ArtificialIntelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。  人工智能是计算机科学的一个分支,它企图了解... 查看详情

超全的位运算介绍与总结(代码片段)

...纳总结的。认识位运算什么是位运算?程序中的所有数在计算机内存中都是以二进制的形式 查看详情

『ai原理解读』mindspore1.2强大并行能力介绍与解读

融合5大维度,强大的自动并行 MindSpore自动并行提供了5维的并行方式:数据并行、算子级模型并行、Pipeline模型并行、优化器模型并行和重计算,并且在图编译阶段,有机融合了5个维度的并行。这5维并行方式组... 查看详情