加速基于 Arm Neoverse N2 的大语言模型推理
人工智能 (AI) 正在众多行业掀起浪潮,尤其是在大语言模型 (LLM) 问世后,AI 发展呈现井喷之势。LLM 模型不仅极大改变了我们与技术的交互方式,并且在自然语言理解和生成方面展现出了惊人的能力。虽然 GPU 在训练生成式 AI 模型方面发挥了重要作用,但在推理领域,除了 GPU 和加速器之外,还有其他可行的选择。长期以来,CPU 一直被用于传统的 AI 和机器学习 (ML) 用例,由于 CPU 能够处理广泛多样的任务且部署起来更加灵活,因此当企业和开发者寻求将 LLM 集成到产品和服务中时,CPU 成了热门选择。
在本文中,我们将探讨基于 Arm Neoverse N2 的阿里巴巴倚天 710 CPU 在运行 Llama 3 [1] 和 Qwen1.5 [2] 等业内标准 LLM 时所展现的灵活性和可扩展性。此外,本文还将通过比较分析,展示倚天 710 CPU 相较于其他基于 CPU 架构的服务器平台所具备的主要优势。
阿里云倚天 710 云实例上的 LLM 性能
通用矩阵乘法 (General Matrix Multiplications, GEMM) 是深度学习计算(包括 LLM 中的计算)中广泛使用的一项基本运算。它对两个输入矩阵进行复杂的乘法运算,得到一个输出。Armv8.6-A 架构增加了 SMMLA 指令,该指令将第一个源矢量中的 2x8 有符号 8 位整数值矩阵与第二个源矢量中的 8x2 有符号 8 位整数值矩阵相乘。然后将生成的 2x2 的 32 位整数矩阵乘积加到目标矢量中的 32 位整数矩阵累加器中。这相当于对每个目标元素执行 8 路点积运算。SMMLA 指令已添加到基于 Neoverse N2 的阿里巴巴倚天 710 CPU 中。
在过去几个月内,Arm 软件团队与合作伙伴紧密协作,利用上述 SMMLA 指令,优化了在 llama.cpp 中实现的 int4 和 int8 GEMM 内核。最近,我们在阿里云倚天 710 云实例上进行了多次实验,采用了最新的优化 [3][4] ,以评估 llama.cpp 在不同场景下的性能表现。
所有实验均在阿里云 ecs.g8y.16xlarge 实例上进行,该实例带有 64 个虚拟 CPU (vCPU) 和 256 GB 的内存。所用的模型是经过 int4 量化的 Llama3-8B 和 Qwen1.5-4B。
提示词处理
提示词词元 (Token) 通常是并行处理的,即使对于单次操作 (batch=1),也会使用所有可用核心,而且随着批量大小的增加,提示词处理速率基本不变。在这方面,经过 Arm 优化,每秒处理的词元数提升了 2.7 倍。
词元生成
词元生成以自回归的方式进行,词元生成的总时间与需要生成的输出长度相关。在这方面,经过 Arm 优化,在处理更大批量的数据时提升效果更为明显,吞吐量最多可提高 1.9 倍。
延迟
词元生成的延迟对 LLM 的交互式部署非常重要。对于下个词元响应时间 (time-to-next-token),100ms 的延迟是关键的目标指标,这是基于人们每秒 5-10 个单词的典型阅读速度计算得出的。在下方图表中,我们看到在单次操作和批量处理的场景下,阿里云倚天 710 云实例都能满足 100ms 的延迟要求,因此是常规体量 LLM 的合适部署目标。我们使用了两组不同的新模型 Llama3-8B 和 Qwen1.5-4B,以展示实际部署中不同体量的常规 LLM 的延迟情况。
性能比较
此外,我们使用经过 int4 量化的 Llama3-8B 模型,比较了它在倚天 710 与在阿里云上其他服务器 CPU 的性能 [注] 。
阿里云倚天 710:ecs.g8y.16xlarge,64 个 vCPU,256 GB 内存,12.8 人民币/小时
Intel Icelake:ecs.g7.16xlarge,64 个 vCPU,256 GB 内存,16.74 人民币/小时
Intel Sapphire Rapids:ecs.g8i.16xlarge,64 个 vCPU,256 GB 内存,17.58 人民币/小时
[注] 阿里云倚天 710 采用了 [3][4] 中的优化,Intel Icelake 和 Sapphire Rapids 使用了现有的 llama.cpp 实现。
我们发现,与其他两款 CPU 相比,阿里云倚天 710 的提示词处理表现出最高达 3.2 倍的性能优势,词元生成性能最高达 2.2 倍的优势。
同样值得注意的是,阿里云倚天 710 平台的成本效益高于 Icelake 和 Sapphire Rapids,这在阿里云倚天 710 实例相对较低的定价中就有所体现。这使得阿里云倚天 710 在 LLM 推理的总体拥有成本方面具有显著优势,与其他两款 CPU 相比,每元词元数量最高多了近三倍,这为希望在采用 LLM 的过程中逐步扩大规模的用户提供了令人信服的优势。
结论
当开发者想要在应用中部署专用 LLM 时,服务器 CPU 为开发者提供了灵活、经济和简化的部署流程。Arm 集成了几项关键的增强功能,大幅提高了 LLM 的性能。得益于此,基于 Arm Neoverse 的服务器处理器(如阿里云倚天 710)能够提供优于其他服务器 CPU 的 LLM 性能。此外,它们还有助于降低采用 LLM 的门槛,使更多应用开发者能够轻松将 LLM 部署于各种场景。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码