搜索
查看: 519|回复: 0

物端算网系统

[复制链接]
发表于 2024-4-15 13:50:00 | 显示全部楼层 |阅读模式
本帖最后由 中国计算机学会 于 2024-4-19 15:01 编辑

摘要—本文强调了分布式智算网络在支持大模型应用方面的作用,探讨了如何利用大规模物端设备支持大规模人工智能计算,以提供普惠、优质、经济的端侧算力,解决大模型算力成本和能耗高的问题。
  
天羽蜂(成都)科技有限公司
南开大学
关键词 :端计算 算力网络 大模型
  
人工智能的重大突破都是对算力前所未有的需求
        纵观人工智能发展30年里的五个重大突破事件:1997年IBM深蓝(Deep Blue)战胜象棋世界冠军卡斯帕罗夫(Gary Kasparov);2011年IBM沃森(Watson)赢得“危险边缘”(Jeopardy!)智力竞赛;2015年微软亚洲研究院开发的计算机视觉系统在ImageNet挑战赛中的图像分类能力首次超越了人类;2016年AlphaGo围棋战胜了世界冠军李世石(Lee Sedol);2023年OpenAI的GPT-4展示出类似人类处理语言的能力。每个事件皆展示出人工智能对算力前所未有的需求。
        IBM深蓝采用的NegaScout算法出现在1983年,而直到1997年,IBM设计出一个大规模并发系统运行在30个计算节点和480个超大规模集成电路(VLSI)专用象棋计算芯片之上,才有了IBM深蓝的出现[1]。IBM Watson采用的多种专家算法出现在1991年,而直到20年后,IBM将专家算法运行在90个计算节点、16 TB内存的Apache Hadoop分布式数据处理系统上[2],才有了IBM Watson的出现。在2015年以前,深度学习最多只能训练20~30层的神经网络。2015年,深度学习第一次训练出超过数百层的神经网络,人工智能技术进入大规模算力时代,即深度神经网络对大规模算力的需求每9.9个月翻一倍,微软人工智能模型拥有的超越人类的图像分类能力也是在这个时代孕育而生。AlphaGo是人工智能对算力需求的再一次重大提升,采用了1920个CPU及280个GPU,并创造了无限的围棋棋谱进行学习。最近的GPT-4拥有1.8万亿个参数,其模型训练要求的算力,需要2.5万个英伟达(NVIDIA)A100 GPU同时运行90~100天。
        由此可见,人工智能每次关键技术的重大突破对算力的需求都是空前的。
物端将能提供大规模算力
        当前人工智能需要的算力是一种稀缺资源,已经成为限制大规模人工智能模型训练以及部署这些模型到人工智能产品中进行推理的关键瓶颈。算力成本昂贵的原因在于其主要供给来自大型数据中心。大型数据中心的建设需要大量的土地成本、各类IT硬件设备、冷却降温设备以及备用发电机设备等投入。数据中心不仅建设成本高,运营也需要支付昂贵的电费。据报道,我国数据中心的能耗规模约等于两个三峡电站的发电量,预计到2025年全国用电总量的4%将为数据中心供电[3]。
        算力成本居高不下的现状之下,全球联网的物端设备的数量到2025年将超过750亿[4]。ARM公司预测[5],到2035年用于物端设备的ARM架构芯片出货量将累计高达2750亿颗。每个物端设备通常会配备核心CPU处理器,甚至异构加速的处理器(如GPU、NPU等),可提供微小的算力。如果能将数百万乃至上千万个这样的物端设备互联形成一个超大规模扩展的算力网络,将等同于数万台服务器(即一个数据中心)提供的算力。物端设备分散在各地,无须购买大量的土地与冷却降温设备来建设数据中心;并且物端设备通常采用低功耗的ARM或RISC-V芯片,在提供同等算力的条件下,其用电量要远远低于数据中心耗费的电量。因此,在物端设备数量持续爆发式增长的今天,大规模的廉价算力可以由物端设备提供。
        运营商为个人家庭用户提供的机顶盒是一种常见的物端设备。该设备通常采用Amlogic S905 SoC芯片,其主要的处理器是一个4核ARM Cortex-A53 CPU与一个5核ARM Mali-450 GPU,能提供59.5 GFLOPS(FP32)的算力。在不考虑通信损耗的情况下,约140个机顶盒设备能提供8.1 TFLOPS(FP32)的算力,相当于1个英伟达T4 GPU所能提供的算力。我国一座中等城市的家庭数量约在数百万,如果对每家每户的机顶盒算力进行统一调度与管理,将能提供总量超过一万张T4 GPU提供的算力,相当于修建一个100 PFLOPS(FP32)算力的城市人工智能计算中心。
物端算网系统面临的挑战
        虽然国内多个顶尖科研机构都已展开对算力网络相关技术的研究,但主要集中于异地数据中心之间的算力调度及管理。而对大规模物端设备之间算力调度及管理的研究,还处于萌芽阶段。克服物端设备之间协同的问题实现人工智能计算,面临四个方面的挑战:异构硬件、通信、系统软件以及安全。
异构硬件的挑战
        物端设备缺乏统一的行业标准,不同的设备制造商使用专有且不兼容的接口、处理器架构等。特别是物端设备使用多种类型架构处理器,如最常见的ARM架构处理器、普遍用于网关的x86架构处理器、用于网络设备或家用设备的MIPS架构处理器、开源指令集RISC-V架构处理器、用于嵌入式设备的PIC架构微处理器等,使不同物端设备之间的协同和集成变得非常困难。同时,物端设备的种类极其广泛,涉及不同的设备功能,如家用电器、可穿戴设备、工业机器、环境监测等,在处理数据的性能、内存、连接选项等方面也具有截然不同的功能。
通信的挑战
        物端设备通常分布在不同的地点,甚至部署在网络基础设施有限的偏远地区,网络通信可能会持续性中断。一些监测类物端设备配备传感器,会产生大量的传感器数据,传输大量的传感器数据也会占用大量的网络带宽,造成通信拥堵。此外,在连接这些物端设备时,由于物端设备间缺乏统一的通信协议标准,各类物联网通信协议(如Wi-Fi、蓝牙、Zigbee、LoRaWAN等)会变得难以互联互通。
系统软件的挑战
        不同的物端设备采用不同类型的操作系统。对实时性要求严格的物端设备,如工业自动化及控制设备、个人健康监控的穿戴设备、智能电网设备等,需要安装实时操作系统满足确定性时间内的低延时响应;其他家用物端设备,如机顶盒、智能助手设备等需要集成更多的生态应用,则安装安卓操作系统;数据采集类的物端设备,如城市环境监测设备、城市市民服务设备等,需要具备人工智能推理能力以及数据处理能力,则通常采用Linux操作系统。由于不同类型的操作系统支持的软件运行环境不同,又缺乏统一的开发环境标准,这会使开发系统软件适配不同类型的操作系统变得异常困难。
        另一方面,物端设备需要巨大的规模才能提供足够的算力,给实现分布式系统的扩展性带来巨大的挑战。常见的分布式基础软件系统Kubernetes最多能够支持5000个节点[6],而物端设备所需的分布式系统要求能够支持百万级别的节点。
安全的挑战
        物端设备由于分布在各地,无法统一进行管控,可能导致攻击者通过安全性较低的物端设备侵入其他联网设备,造成设备大规模失效或敏感的用户数据被窃取。同时,恶意设备将有机会进入互联的设备,监听网络数据或传输虚假数据。在数据通信方面,物端设备之间的数据传输可能未加密而被拦截或操纵。
物端算网系统设计思考
        为应对上述挑战,基于物端设备的算网系统,势必要重新思考分布式系统设计的特性,不仅要在物端设备有限的硬件资源上顺畅运行,还要能扩展到百万级数量的节点上协同完成异构计算任务。
系统架构
        目前产业界研究的算网系统主要采用主从分布式架构,即利用一个中心主节点调度,将数据分配到其他计算节点上,数据将在各个计算节点上单独进行处理,然后汇集到中心主节点上进行融合。这样的架构应用在数据中心并不会带来太大的问题,因为数据中心采用的是高性能的服务器,其数量规模远小于算网系统调用的物端设备的数量,且数据中心的通信是在封闭的有线网络中进行,因此能保证网络有足够的带宽和很高的稳定性。
        不同于数据中心,主从分布式架构应用到基于大规模物端设备的算网系统中会带来性能受损、数据易丢失、扩展性受限及可靠性较低等问题。第一,物端设备为了满足自身场景的需求,可能会出现大量的物端设备频繁加入或离开该物端算网的情况。而中心节点需要不断地与大量物端工作节点达成共识。在物端节点数量较多的情况下,节点之间需要协同工作很长一段时间才能达成共识,使算网系统难以应用,算网的扩展性受到限制。第二,在户外干扰较多的情况下,物端设备的通信连接具有间歇性,这让通信变得更加不可靠,算网系统数据的传输将会出现乱序或丢失的现象,导致更新状态时发生错误。比如新的节点在加入集群时,由于消息传递错误,该节点会显示为一个无效的状态,且这一问题在集群里难以得到及时修复。第三,主从架构的工作节点都是通过单一的通道将数据回传至中心节点。物端设备不仅要发送系统数据,还要回传大量的传感器数据,这样会造成数据的堵塞。在物端设备通信带宽受限的情况下,大量物端设备间通信变得不再可靠,数据可能会在传输过程中丢失,数据的一致性无法保障。第四,整个算网系统对中心主节点依赖度很高,如果中心节点失去连接或者发生故障,整个算网系统将完全瘫痪。且在维护升级过程中,由于只有一个中心节点,通常需要系统停止运行后再进行维护,这将降低系统可用性。
        基于物端设备的算网系统需要面向其特性重新设计一套分布式架构,即去中心化分布式架构,将整个网络分为若干个哈希分区,每一个节点管理一个分区,任意节点可以与算网系统的节点达成共识,自主地加入或离开这个集群,而这种共识是优先可用性的局部共识。一个节点先与周围的节点达成共识,周围的节点再以传递的方式与剩余的节点达成最终一致性的共识,从而优化算网系统的可用性,获得超高的扩展性。有了局部的共识以后,节点可以利用多节点的备份和无冲突的数据类型,保证算网系统各节点状态数据的一致性。即使在通信受限或不可靠的情况下,算网系统的所有节点也能确保状态的正确更新,避免对一个中心主节点的高度依赖以及数据通过单一通道进行传输导致的拥塞问题。
        物端算网系统主要采用基于TCP/IP的标准协议进行互联互通,为了连接载采用其他通信协议的物端设备,算网系统可以按设备类型、延时及软硬件兼容性选出相应的节点作为服务端,通过客户端-服务器(Client-Server)系统架构与采用其他通信协议的物端设备互联,即该分布式架构不仅可以具有横向的大规模扩展性,还可以纵向分为多个层次兼容不同的通信方式与系统架构。其横向扩展层形成的分布式软件系统可兼容以Linux内核为主的操作系统;纵向实现与采用非Linux内核的操作系统的物端设备进行并网通信,这需要针对各类操作系统进行定制化的软件开发。
面向大模型的算网系统应用
        在2021年谷歌大脑(Google Brain)研讨会上,通用人工智能(AGI)的两个发展方向被广泛讨论。一个方向是将通用人工智能设计成一个独立、完整及自治的个体;另一个方向是大量互联互通能够完成特定任务的个体集群,通过个体之间的相互协同实现通用人工智能[7]。目前主流的OpenAI GPT、Google PaLM、Anthropic Claude等大模型都是让通用人工智能成为一个独立、完整且自治的个体。而基于去中心化分布式架构的物端算网系统则是整合大量能够完成特定任务的个体实现通用人工智能的有效方式。如实现GPT-4V(GPT-4 with Vision)类似的通用机器视觉识别,物端算网系统中的每个物端设备可以加载一个或多个机器视觉模型,通过整合不同类型的机器视觉模型实现通用机器视觉识别。
        同时,物端算网系统也可以通过物端设备之间的相互协作实现对一个独立、完整且自治的大型神经网络模型的训练。训练神经网络是一个迭代过程,每次迭代将一批训练数据向前传递到模型的各层进行计算得到输出(loss),然后再将该输出向后传播到模型的各层,通过反向传播各层的参数计算出该次迭代的梯度(gradient)。随着训练在多批量训练数据上的迭代,模型不断地更新得到更优的参数权重。
        上述过程可以采用不同的并行计算方式:数据并发、模型并发、流水线并发、张量(tensor)并发以及混合专家等。以数据并发为例,算网系统中的每个物端设备可以先加载神经网络模型的一层。在一批训练数据输入到算网系统时,算网系统会为这批数据产生一个标识哈希码,并按照模型中各层的顺序,通过系统调度在多个物端设备中完成一次训练的迭代过程。每批训练数据都会有标识哈希码,在实现异步更新模型最后的权重时,不会导致数据更新冲突。由于物端设备的算力及内存相对有限,基于张量并发的训练方式更适用于物端设备。张量并发是将模型中的一层拆分成某些张量,将这些张量加载到不同物端设备内存中,通过系统调度实现物端设备之间的协同训练。如Transformer模型,其计算瓶颈在于激活矩阵与一个大型权重矩阵相乘。基于物端算网系统的张量并发可以将这样的矩阵相乘看成是多组“行”和“列”的张量分别加载在多组物端设备上独立计算,最后多组物端设备一起求和的过程。
物端算网系统的探索
        在人工智能领域,算网系统应用前景巨大。能完成特定任务的智能个体,通过算网系统的基础设施层随网转移并相互组合,形成一个智能集群来协作完成任务。举例来说,四川省达州市达川区社会治安综合治理中心已于2023年运用算网系统实现了城市级大规模视频智能分析。该场景将多项人工智能模型如目标检测、目标追踪、行人/车辆属性识别、人/车重识别(ReID)等部署在一个异构的物端算网系统中,每个物端设备都是一个能完成特定任务的智能个体,通过相互协作形成一个智能集群来完成城市治理的具体任务。如图1所示,首先由01号物端设备通过摄像头A的视频数据检测出行人或车辆目标,然后分发给02号与03号物端设备分别完成车辆属性识别与行人属性识别,随即将04号物端设备与摄像头B的分析结果进行结合完成人/车重识别,最后通过05号物端设备实现数据融合还原行人或车辆的行踪轨迹。参与任务的智能个体在完成上述任务后可以离开该集群与其他智能个体再组合新的集群,协作完成对交通、应急、环境监测等多领域的城市治理任务。该场景初步验证了物端算网系统应用于大规模人工智能分析的可行性,为基于物端算网系统实现大模型训练与部署提供了应用基础。

        最后,将算网系统中加入有着声音合成、语音识别、文本分析等模型的物端智能个体,将能实现一个多模态智能群体,通过语音交互协助工作人员完成城市的治理工作。
总结
        本文阐述了物端算网系统面临的挑战及实现该系统的初步设想。在物端设备爆发式增长的时代背景下,利用海量物端设备的闲置算力,为大模型训练及推理提供算力支撑具有重大意义。在大模型训练方面,物端算网系统可以采用如PyTorch Fully Sharded Data Parallel(FSDP)[8]和DeepSpeed ZeRO[9]的方式将模型参数分片到各个物端设备,通过all-gather与reduce-scatter更新模型参数分片;在大模型推理方面,每个专业领域的模型能与其他领域的模型协作或知识蒸馏的方式完成任务。以上两个方面使得开放、标准的专业领域模型能在物端算网内随网转移,成为智能社会的基石。未来物端算网系统必将成为计算机研究领域重要的新研究方向。  ■

参考文献
[1] Campbell M, Hoane A J, Hsu F. Deep blue[J]. Artificial Intelligence, 2002, 134(1-2): 57-83.
[2] Jackson J. IBM Watson Vanquishes Human Jeopardy Foes[OL]. PC World. (2011-02-16). https://www.pcworld.com/article/ ... jeopardy_foes.html.
[3] 赵良毕. ICT“双碳”新基建,IDC温控新机遇[R/OL]. (2022-06-17). https://pdf.dfcfw.com/pdf/H3_AP2 ... ?1655740127000.pdf.
[4] IoT: Number of Connected Devices Worldwide 2012–2025[OL]. https://www.statista.com/statist ... devices-worldwide/.
[5] Hughes P. Inside the numbers: 100 billion arm-based chips[OL]. (2017-02-27). https://community.arm.com/arm-co ... d-chips-1345571105.
[6] Considerations for large clusters[OL]. https://kubernetes.io/docs/setup/best-practices/cluster-large/.
[7] Alan D. Thompson, An Exploration of the Pathways Architecture from PaLM to Parti [OL]. https://lifearchitect.ai/pathways/.
[8] Zhao Y, Gu A, Varma R, et al. Pytorch FSDP: experiences on scaling fully sharded data parallel[OL]. (2023-09-12). https://arxiv.org/abs/2304.11277.
[9] Rajbhandari S, Rasley J, Ruwase O, et al. ZeRO: Memory optimizations toward training trillion parameter models[C]// SC20: International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE, 2020: 1-16.


版权声明:中国计算机学会(CCF)拥有《中国计算机学会通讯》(CCCF)所刊登内容的所有版权,未经CCF允许,不得转载本刊文字及照片,否则被视为侵权。对于侵权行为,CCF将追究其法律责任。

回复

使用道具 举报

您需要登录后才可以回帖 登录

手机版|CCF Link ( 版权所有 中国计算机学会  京ICP备13000930号-4|京公网安备 11010802032778号   )

GMT+8, 2025-4-27 06:12 , Processed in 0.046617 second(s), 20 queries .

快速回复 返回顶部 返回列表