.跑端侧推理,还得靠CPU 很多AI从业者对于CPU或多或少带有一些先入为主的“偏见”,认为大模型的大规模并行计算特点更适合GPU来处理,但并不适合CPU。
在大模型的训练阶段的确如此。但在大模型的推理阶段,尤其是端侧推理,实际上CPU也能胜任大部分计算任务。
关于GPU与CPU的关系,可以概括为“专才”与“通才”的对比——GPU像是一名“拥有最强大脑的专才”,其强大的计算能力专门应对图像处理、AI计算等需要大规模并行计算与数据吞吐的任务;而CPU像是一名“十八般武艺的通才”,虽然加速计算能力比不上GPU,但擅长处理操作系统、系统软件与应用程序等复杂指令调度、循环、分支、逻辑判断与执行的任务。
既然是一名“通才”,CPU自然也能处理AI计算任务。实际上,CPU过去一直就是这么做的。比如在智能手机里,有很多功能都涉及AI计算,包括对面部、手部和身体动作的追踪,高级的相机效果和滤镜,以及许多社交应用中的细分功能。此类AI工作负载的处理可能全权交由CPU,或是结合GPU或NPU等协处理器一起提供支持。
到了大模型时代,端侧推理出现了新的计算需求,主要的应用场景包括文本生成——虚拟助理撰写电子邮件;智能回复——即时通讯应用自动提供针对某个问题的建议回复;文本摘要——电子书阅读器提供章节摘要等。
针对不同的设备和应用场景,计算需求也呈现出差异化。在诸如入门级智能手机、汽车智能座舱、AIoT设备等中低端应用场景中,对计算能力的要求相对较低,CPU能够高效处理参数规模在数十亿级别的小型计算任务。在一些高端场景,如PC和旗舰智能手机上,所需处理的任务相对更为复杂和庞大,即便配备了AI专用加速器,CPU仍是不可或缺的算力基石,且能独立承担处理百亿参数级别的更大规模计算任务。以当今的安卓平台来看,第三方应用中有70%的AI运行在Arm CPU上。
今天,智能手机的CPU几乎都是基于Arm架构。得益于Arm CPU本身的AI计算能力,全世界约99%的智能手机都具备在端侧处理大模型所需的技术。这些技术包括:
NEON扩展架构,主要用于加速多媒体和信号处理算法,如视频编码/解码、2D/3D图形处理、游戏渲染、音频和语音处理,以及图像处理等;
SVE(Scalable Vector Extensions)可扩展向量扩展技术,特别适用于需要进行大规模数据处理和高性能计算的场景,如机器学习、数据分析和科学计算等;
SVE技术的进阶版SME(Scalable Matrix Extensions)可扩展矩阵扩展技术,则进一步提升了性能和能效,能够满足人工智能、机器学习和高性能计算等领域对计算能力和效率的严苛需求。
据Arm官方消息显示,预计到2025年底,将有超过1000亿台使用Arm处理器的AI设备。
在2024世界移动通信大会(MWC 2024)上,Arm还专门演示了在搭载Arm Cortex-A700系列的安卓手机上,使用3个CPU核运行Llama-2-7B的性能表现,其文本生成速率达到每秒9.6个单词,这大约是一般成年人平均读取速度的两倍。这一过程全都在手机本地完成,无需联网。
一个70亿参数的模型之所以能够在手机端畅通地运行起来,除了Arm CPU本身就具备的AI算力之外,也得益于Arm针对开发者生态做了一系列优化工作,核心是压缩与量化技术。
其中,int4位量化技术可以将模型压缩至足够小,以便能在RAM资源有限的设备上流畅运行;高效的线程绑定技术能够轻松提升各类设备的CPU工作负载性能,确保系统的稳定运行;深度优化的矩阵乘CPU例程,使得LLM的Token首次生成时间缩短50%以上,文本生成速率提升20%,不仅进一步降低了延时,还为用户带来了更为高效和流畅的使用体验。
AI手机是现阶段CPU做端侧推理最大的应用场景,当然这仅仅只是开始。随着大模型的不断演进,越来越多新的模型与应用涌现,相信这些都将会在CPU上率先跑通。
|