奎克的藏经阁 · MinerU 解析内容

人工智能时代:破解人机共存密码(套装共10册)

3314 个 PDF 物理页 · 本页显示文件第 2561–2570 页

PDF 物理页索引 2560

文件中的第 2561 页 · 印刷页码:未识别

要跨越数据世纪的“马尔萨斯陷阱”,我们需要做三件事情:一是对并发的大量数据做出即时高效处理;二是高效存储数据并删除不需要的数据;三是对积存的数据资料进行深入挖掘。重点谈谈第一个。

对于第一点来说,最具有突破性的处理技术就是并行计算或分布式计算。庞大的数据计算任务分解开来,将每一小块任务分配给一台计算机。这些计算机分别运算完后将结果汇总就得到总计算成果。Hadoop和Spark就是代表性的技术。Hadoop的MapReduce(一种编程模型,用于大规模数据集的并行运算)功能可以将单个任务打碎,并将各个任务碎片(Map)发送到多个计算节点上,之后再以单个数据集的形式加载(Reduce)到数据库里。Hadoop能够在计算节点之间动态地移动数据,调节各个节点任务的动态平衡。这样做可以大量减少任务排队时间,将一般服务器的效率集合起来,而无须使用昂贵的超级计算机。这种技术最早在网页搜索中发挥作用,并很快成为分布式计算的平台。Spark技术可以看作对Hadoop技术的优化,把子任务中间的输出结果保存在内存中,从而无须频繁读取存储文件,加快了速度。这种优化仍然是基于对硬件性能的调配,对数据的基本处理方式还是批处理。

批处理是旧时代的续命者,也是半新半旧时代的过渡者。在数据爆发时代来临之前,人们处理数据的方法一般是先存储下来再进行分析。对静态数据的高效分析主要依靠批处理命令来完成。数据流时代的来临逼着人们要迅速处理,最好是在数据事件发生的时候就立刻做完分析判断,尽早和尽快追求近似性结果,比如人流数据、电网运行状况数据等。批处理技术并不是被设计来应对数据洪流时代的,只能差强人意地应付一下大数据流。

数据洪流的产生与激增,必然召唤一种“流计算”方式,这就是数据领域的最新挑战和创新方向。“流计算”不是一种具体技术,而是一种态度和方法的总称。

PDF 物理页索引 2561

文件中的第 2562 页 · 印刷页码:未识别

不是所有的应用场景都需要即时计算,但越来越多的业务正在变成时间的艺术。理想情况下,事件发生时,产生的数据就应该被立即处理分析。比如手机业务计费状态中,打完一个电话就应该完成计费而不是等待日后某时再来计算话费;新闻网站和电商网站的用户画像也应该及时完成,同步指导机器进行信息推荐,而不是先存储用户行为数据,等到事后再来分析;很多工业机组的异常检测也是如此。但想要实现即时计算会遇到很多困难,比如数据的汇总、通信、计算等。

Hadoop和Spark都是“流计算”的先声,但还远不能应付需求。2014年时,卡内基梅隆大学教授、ICML2014程序主席邢波就指出,大数据处理平台的大量资源都浪费在集群的通信上。即使比较优秀的平台,计算时间也只有20%,而通信时间占80%,比如Hadoop的通信时间就占到了90%。<sup>[2]</sup>

“流计算”驱动了智能的发展。说到底,智能是一种时间性能力。如果任务时间无限,滴水也能穿石,那就无所谓智能了。人类要想办法用工具迅速穿石,这就是智慧。“流计算”代替旧时代的批处理传统,还是个任重道远的工作,科学家已经从硬件架构和算法优化上做出探索,本书在此不做详细讨论。

至于巨大数据的存储问题和数据挖掘问题,如果能即时处理数据,得到分析结果,很多数据就不必存储下来,只要留下日志,比如侦测系统是否正常运行。对于必须存储的数据,人类想出各种策略来解决。大多数用户在PC时代就频繁使用的压缩软件就是精简数据体积的代表方法。压缩软件都是基于算法的工具,对数据进行重新编码,得到编码后的压缩数据和解码“钥匙”,就可以随时通过钥匙复原数据。人们不断改进文件格式,比如视频文件体积越来越小却可以保持清晰度。人们也把大数据策略引入存储,比如有多人向云盘上传同样的文件,系统可以只保留两个备份,其他人上传的文件则变成虚拟文件,指向同一个备份,这样就大大节省了空间。

PDF 物理页索引 2562

文件中的第 2563 页 · 印刷页码:未识别

<sup>“</sup>思维<sup>”</sup>倒逼<sup>“</sup>生理<sup>”</sup>革命——硬件基 础设施创新

数据与计算量的增加,要求整个信息基础设施都做出相应的变革。前文描述的所有数据处理方法都还是在旧的信息基础设施上展开的。但机器智能的发展已经要求机器大脑做出“生理”性变化。

绿色机体

人类的大脑重量只占体重的2%左右,但是消耗的能量却要占到全身消耗量的20%——每天消耗总氧气量的20%,消耗肝脏储存血糖的75%。

在机器智能领域发生的事情也有类似之处。数据和算法都非实体,与物质、硬件相对,仿佛世界的“思维”。但运行这个“思维”需要庞大的物质资源和能源。在那些大型数据中心,除了层层叠叠的服务器外,还有大大小小的电源、环境控制设备、监控设备以及各种安全装置,像大脑这个器官一样昼夜运行。这个器官本身也消耗了大量的能源。

互联网是全天候无间断服务,服务器耗能巨大。据统计,2011年我国数据中心耗电量达700亿千瓦,占全社会耗电总量的1.5%,相当于天津市全年用电量。

2015年3月,中国工业和信息化部、国家机关事务管理局、国家能源局制定颁布了《国家绿色数据中心试点工作方案》,这个方案透露了几个数字:“随着信息化快速发展,全球数据中心建设步伐明显加快,总量已超过300万个,耗电量占全球总耗电量的比例为1.1%~1.5%,其高能耗问题已引起各国政府的高度重视……目前,美国数据中心平均电能使用效率(PUE=数据中心总设备能耗/工厂设备能耗)已达1.9,先进数据中心PUE已达到1.2以下……近年来,我国数据中心发展迅猛,总量已超过40万个,年耗电量超过全社会用电量的1.5%,其中大多数数据中心的PUE仍普遍大于2.2,与国际先进水平相比有较大差距,节能潜力巨大。国际上普遍通过应用节能、节水、低碳等技术产品以及先进管理方法建设绿色数据中心,实现能源效率最大化和环境影响最小化。美国政府实施了‘数据中心能源之星’‘联邦数据中心整合计划’,欧盟实施了‘数据中心能效行为准则’,国际绿色网络组织开展了数据中心节能标准制定和最佳实践推广,建立了绿色数据中心的推进机制,引导数据中心节能环保水平的提升。

PDF 物理页索引 2563

文件中的第 2564 页 · 印刷页码:未识别

具体该怎样做呢?

给机房“降温”是一项需要不断创新的工作。大公司可以选择将数据中心放在靠近南北极的寒冷地区,这也使冰岛成为最近几年一些重大数据事件的重要地点,比如现实中的维基解密事件和电影《谍影重重》中的内容。也可以采取海水制冷或者空气制冷的方式,节约电能,保护环境。

太行山麓的山西阳泉市是一座历史悠久的古城。在阳泉以西200公里是1400年前唐高祖李渊兵发中原的大本营。阳泉东北大约50公里处的娘子关电厂,数年前孵育出了构建“宇宙社会学”的世界级科幻小说《三体》。阳泉是煤矿基地,空气污染不亚于北京,早已面临产业升级的问题。历史与未来的紧张感如同雾霾一般弥散于此地山川。

2015年百度云计算(阳泉)中心(以下简称阳泉云计算中心)在这里投入使用。建成后的数据中心存储量超过4000PB,可存储的信息量相当于20多万个中国国家图书馆的藏书总量;数据中心CPU总数高达70万个,CPU内核总数超过300万个;由于使用了高性能、低功耗服务器和多项适用中国环境及法规的科技来提升数据中心的整体能源效率,其PUE小于1.3。相当于每1.3度电进入机房,其中有1度电用于数据计算,0.3度电用于数据中心的散热等其他用途,在绿色节能方面达到亚洲一流水准。

PDF 物理页索引 2564

文件中的第 2565 页 · 印刷页码:未识别

秉承开放精神,百度联合腾讯、阿里巴巴、中国移动、中国电信等行业翘楚共同成立了中国首个硬件开源项目——天蝎计划。其宗旨是打造一个开放的技术标准,研发定制化的整机柜服务器解决方案,从而满足数据中心海量计算与存储需求,有效降低数据中心采购与部署成本。

2014年9月,天蝎计划整机柜服务器技术规范迭代升级到2.0版本,对空间利用、散热策略等有了更加精细的优化定义,模块、接口、协议均有了详细的标准化定义。基于该标准,在阳泉云计算中心,通过各类资源的整合设计,实现了两位数的功耗节约。互联网快速迭代精神在这个计划中体现得淋漓尽致,全新的3.0规范更加强调模块化,同时规范的细节更加详细,可执行性更强。

2015年5月,阳泉云计算中心太阳能光伏发电项目成功并网发电。这是太阳能光伏发电技术在国内数据中心的首例应用,每年可减少107.76吨二氧化碳排放量,节能高达43%。

计算机架构革新

不过,节能减排办法是外部改变,好比用节能空调为发烧病人吹冷风,计算机更需要内部革新。正如批处理是旧时代的产物,现有的服务器和数据中心架构也是在旧时代的计算机技术架构上搭建起来的,半新半旧。

传统的计算机核心架构基于冯·诺依曼结构:数据存储和处理分离,计算逻辑呈线性分布。计算芯片执行指令代码,把结果存储到内存中,供下一个计算指令来调取,依次循环。这样的架构对于人类来说逻辑很清楚,但速度大受影响。而且在这样一种线性流程下,由于

PDF 物理页索引 2565

文件中的第 2566 页 · 印刷页码:未识别

CPU可能执行任意指令,就需要有指令存储器、译码器、运算器、分支跳转处理器等共同工作,分配指令执行的先后顺序。控制指令流的逻辑复杂,难以有太多条独立的指令流,并行处理能力低下。

摩尔定律行将式微。目前计算机内存运行方面的提速仅为每年9%,硬盘性能的提速平均每年只有6%,计算机内存的运行速度只有CPU速度的几百分之一,成为瓶颈。数据存储吞吐的模式严重拖累了计算机性能。

早期就有人提出一种可自改变架构的计算机。以个人计算机为例,属于通用任务型,即便执行打字之类的简单任务,整个计算机系统都在运作,资源浪费严重。而可自改变架构的计算机能针对复杂程度不同的任务,有节制地调用计算机不同部分,不会大事小事都倾巢而出。真正具有现实性的计算机革新方案在新科技发展中找到了方向。

一个方向是物理学的突破应用,比如令人神往的量子计算,利用量子物理学中的量子态叠加效应,创造性能百万倍于现在的计算机芯片。用光流代替电流传递数据和运算,也是提速的一个方向。另一个方向就是伴随脑科学和深度学习的兴起,有希望模仿人脑原理开发神经学芯片,其运行速度也将比现有的计算机快多个数量级。

人们从多条路径发起尝试。深度学习科学家利用GPU代替CPU组机器学习就是破天荒的一步。GPU使用SIMD(单指令多数据流)来让多个执行单元以同样的步调处理不同的数据,原本用于处理图像数据,但也特别适合处理深度学习任务经常面对的非线性离散数据。百度利用大规模的GPU集群,加以工程优化,开发出自己的GPU服务器,大大提升了硬件性能。但GPU毕竟也是建立在冯·诺依曼结构之上的。

FPGA芯片是当下热门的另一种发展尝试。它本是用于解决专用集成电路的一种方案。专用集成电路是为特定用户或特定电子系统制作的集成电路。以往数字集成电路因为其通用性和规模生产,使电子产品成本大幅度下降,但同时也产生了通用与专用的矛盾以及系统设计与电路制作脱节的问题。集成电路规模越大,组建系统时就越难以针对特殊要求加以改变。为解决这些问题,就出现了允许用户参与设计特征的专用集成电路,也就是FPGA。

PDF 物理页索引 2566

文件中的第 2567 页 · 印刷页码:未识别

复杂并行电路的设计思路被搬到了计算芯片上。FPGA计算芯片布满“逻辑单元阵列”,内部包括可配置逻辑模块、输入输出模块和内部连线三个部分。它们是既可实现组合逻辑功能又可实现时序逻辑功能的独立的基本逻辑单元模块,以硬件描述语言定义各自的逻辑和彼此的关系。与冯·诺依曼结构不同,冯氏结构中内存有两种作用:一是保存中间计算结果,二是执行单元间通信。由于内存是共享的,当多个指令要求调用内存时,就需要做访问仲裁,依次调用;FPGA中的寄存器和片上内存(BRAM)各有自己的控制逻辑,无须多余的仲裁和缓存。FPGA每个逻辑单元与周围逻辑单元的连接关系由于可编程,可以预先确定,无须通过共享内存来通信。以并行运算为主,可以执行多指令流、多数据流,大大节约了计算时间。还可以针对不同的应用场景在硬件上做特别编程,灵活性高。

百度在2012年开始部署FPGA,是中国最先引进FPGA的公司,也是全球最先用FPGA做集群的公司之一。张亚勤说,一开始是CPU,后面加了GPU,基本上所有做人工智能的公司都用GPU。但是用FPGA也有好处,一个是整个架构的速度和效率提高了很多,另一个是GPU处理图像和语音数据比较好,但是也有很多别的通用计算用FPGA更快。因为FPGA可编程,可以很快改变架构,百度用的FPGA目前在GPU和CPU架构上面效率提高了5\~6倍,而且不需要改变现有的架构,直接用FPGA就可以加速。

从计算角度看,网络的传输往往是最重要的瓶颈。百度在整个网络通信上投入了最先进的技术,使用100G的RDMA<sup>[3]</sup>,在GPU之间、FPGA之间通信。所以在集群之间,在数据库之间,数据可以快速无缝传输。

PDF 物理页索引 2567

文件中的第 2568 页 · 印刷页码:未识别

FGPA相当于用硬件来做软件的算法,在实现复杂算法方面有一定难度。目前是配合GPU、CPU架构一起工作。

既然概率计算是大数据和人工智能常用的数学方法,有人受此启发,提出概率芯片的概念。采用概率算法替代以往的微积分算法,牺牲一点计算精度,但是能极大提升计算速度并降低能耗,适合于无须追求极致精度的应用场合,比如物联网。

深度学习兴起之后,芯片科学家受到极大启发。目前最前沿的芯片革新还是来自以深度学习原理为基础的人工神经网络芯片的探索。Intel、IBM、NVIDIA(英伟达)等各大公司都纷纷为此打造自己的芯片发展方向。中国的寒武纪科技公司等推出的深度学习芯片已经具有国际领先水平。

人工神经网络是模仿生物神经网络的计算架构的总称,由若干人工神经元节点互连而成,神经元之间通过突触连接。这里,每个神经元其实是一个激励函数,突触则是记录神经元间联系的强弱权值。

神经网络是多层的,一个神经元(函数)的输入由与其相连的上一个神经元的输出以及连接突触权重共同决定。所谓训练神经网络,就是通过输入大量数据和监督,调整输出结果,这个过程就是不断自动调整神经元之间突触权重的过程,直到输出结果稳定正确。然后在输入新数据时,能够根据当前的突触权重计算出输出结果,这样就实现了神经网络对已有知识的“学习”。也就是说,神经网络中存储和处理是一体化的,中间计算结果就化身为突触的权重。

传统的处理器(包括x86和ARM芯片等)受制于冯·诺伊曼结构,在处理深度学习神经网络任务时效率低下,不仅存储和处理分离,而且其基本运算操作为算术操作(加减乘除)和逻辑操作(与或非),往往需要数百甚至上千条指令才能完成一个神经元的处理,因此AlphaGo才需要那么多块芯片(分布式版本有1202个CPU和176个GPU)。

PDF 物理页索引 2568

文件中的第 2569 页 · 印刷页码:未识别

为深度学习专门打造的芯片则不同,以寒武纪开发的DianNaoYu为例,指令集直接面对大规模神经元和突触的处理,一条指令即可完成一组神经元的处理,并对神经元和突触数据在芯片上的传输提供一系列专门的支持。在现有的工艺水平下,单核处理器平均性能超过主流CPU的100倍,但是面积和功耗仅为1/10,综合效能提升可达三个数量级。

当然,神经网络芯片只是在处理人工智能任务时相对于传统CPU有优势,适合认知图片、语音识别等领域,而像运行数据库、Office(办公软件)、微信等任务还是更适合传统芯片来处理,除非这类任务本身也发生了结构性的革命。

神经网络进化哲学

作为当下人工智能最基础方法的深度学习及神经网络技术,其自身的发展决定了人工智能的发展能力。这种模仿人脑机理的技术,也表现出类似生物进化的特点。

竞争还是合作?这是人类经常纠结的一对概念问题,但大自然的哲学并非如此。近年来,不同学者都提出所谓的共同进化的观念。黑脉金斑蝶(又叫帝王蝶)与植物马利筋的关系就是典型的例子。

PDF 物理页索引 2569

文件中的第 2570 页 · 印刷页码:未识别

马利筋的汁有毒,其花蕊的封闭构造使其难以通过风力传播花粉,但可以通过蜜汁吸引蝴蝶,通过蝴蝶来传粉。黑脉金斑蝶幼虫以马利筋的嫩茎叶为食,能将后者的毒素存在体内以防御敌人。如果蝴蝶幼虫过度吞噬茎叶,马利筋就会死亡,而有些马利筋变异出更封闭的结构,能阻碍蝴蝶进入。有些黑脉金斑蝶也在变异中强化了侵入马利筋花蕊的能力。于是二者在对抗中变得越来越难分难解,黑脉金斑蝶不吃别的植物,马利筋不欢迎别的昆虫,没有第三者能参与它们的游戏。病毒与反病毒软件、黑客与反黑客工作则是发生在互联网上的另一个共同进化的例子。如今机器学习已经被运用于网络安全,相比过去基于设定特征的防火墙,效率大大提高。所谓共同进化就是:不是你死我活,也不是一团和气,而是在对抗中一起升级。