QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

服务器仅靠 4 颗 CPU 运行千亿大模型的“算法秘籍”

InfoQ

  • 2024-08-01
    北京
  • 本文字数:2412 字

    阅读完需:约 8 分钟

服务器仅靠 4 颗 CPU 运行千亿大模型的“算法秘籍”

巨量模型的智能生产力正在逐步渗透到各行各业,但它们的部署和运行通常需要专用的 AI 加速卡,能否在 CPU 上运行千亿大模型,对千行百业智能化转型的深化与普惠至关重要。


日前,浪潮信息研发工程师基于 2U4 路旗舰通用服务器 NF8260G7,通过张量并行、模型压缩量化等技术,解决了通用服务器的 CPU 计算资源不足、内存带宽瓶颈、缺乏大规模并行计算环境等问题,在业内首次实现服务器仅依靠 4 颗 CPU 即可运行千亿参数“源 2.0”大模型。该方案建设成本更低,首次投入可节约 80%以上建设成本,且通用服务器功耗更低,运维更便捷,能够有效降低客户 TCO。

一、大模型推理的硬件需求:内存与带宽的双重考验

当前,大模型的推理计算面临多方面的挑战,制约了大模型服务成本的降低和应用落地。


首先是对内存容量的需求。大模型的推理过程中,需要将全部的模型权重参数、计算过程中的 KV Cache 等数据存放在内存中,一般需要占用相当于模型参数量 2-3 倍的内存空间。随着业界 LLM 的网络架构从 GPT 架构走向 MOE 架构,主流开源模型的尺寸越来越大,千亿及以上参数的模型已经成为主流,运行一个千亿大模型(100B),则需要 200-300GB 的显存空间。


其次是对计算和内存读写带宽的需求。大模型的推理主要分为预填充和解码两个阶段。预填充阶段把 Prompt 一次性输入给模型进行计算,对显存的需求更大;解码阶段,每次推理仅生成 1 个 token,计算访存较低,对内存带宽的需求更大。因此,千亿大模型的实时推理,计算设备需要具备较高的计算能力,以及较高的存储单元到计算单元的数据搬运效率。


NF8260G7 作为一款采用高密度设计的 2U4 路服务器,支持 16TB 大内存容量,配置了 4 颗具有 AMX(高级矩阵扩展)的 AI 加速功能的英特尔至强处理器,内存带宽极限值为 1200GB/s。尽管 NF8260G7 服务器可以轻松满足千亿大模型推理的内存需求,甚至于万亿参数的 MOE 架构大模型推理的内存需求。但是,按照 BF16 的精度计算,千亿参数大模型运行时延要小于 100ms,内存与计算单元之间的通信带宽至少要在 2TB/s 以上。因此,要在 NF8260G7 上实现千亿大模型的高效运行,仅靠硬件升级还远远不够,硬件资源与软件算法协同优化至关重要。

二、张量并行+NF4 量化,实现千亿模型极致优化

Yuan2.0-102B 是浪潮信息发布的新一代基础语言大模型,参数量为 1026 亿,通过提出全新的局部注意力过滤增强机制(LFA:Localized Filtering-based Attention),有效提升了自然语言的关联语义理解能力。



为了尽可能提升 Yuan2.0-102B 模型在 NF8260G7 服务器上的推理计算效率,浪潮信息算法工程师采用了张量并行(tensor parallel)策略。该策略改变了传统 CPU 服务器串行运行的模式,把 Yuan2.0-102B 模型中的注意力层和前馈层的矩阵计算分别拆分到多个处理器,实现同时使用 4 颗 CPU 进行计算加速。然而,张量并行对模型参数的切分粒度较细,要求 CPU 在每次张量计算后进行数据同步,增加了对 CPU 间通信带宽的需求。在传统的使用多个基于 PCIe 互联的 AI 芯片进行张量并行时,通信占比往往会高达 50%,也就是 AI 芯片有 50%的时间都在等待数据传输,极大影响了推理效率。


NF8260G7 服务器的 4 颗 CPU 通过全链路 UPI(Ultra Path Interconnect)总线互连,该设计带来了两个优势:首先,全链路 UPI 互连允许任意两个 CPU 之间直接进行数据传输,减少了通信延迟;其次,全链路 UPI 互连提供了高传输速率,高达 16GT/s(Giga Transfers per second),远高于 PCIe 的通信带宽,保障了 4 颗处理器间高效的数据传输,从而支持张量并行策略下的数据同步需求。



UPI 总线互连示意图


为了进一步提升 Yuan2.0-102B 模型在 NF8260G7 服务器上的推理效率,浪潮信息算法工程师还采用了 NF4 量化技术,来进一步提升推理的解码效率,从而达到实时推理的解码需求。NF4(4 位 NormalFloat)是一种分位数量化方法,适合于正态分布的数据。它通过确保量化区间内输入张量的值数量相等,来实现对数据的最优量化。由于大型语言模型(LLM)的权重通常呈现零中心的正态分布,NF4 量化技术可以通过调整标准差来适配量化数据类型的范围,从而获得比传统的 4 位整数或 4 位浮点数量化(这些量化方法的数据间隔通常是平均分布或指数分布的)更高的精度。



INT4 数据类型与 NF4 数据类型对比


为了进一步压缩 Yuan2.0-102B 模型的权重参数,浪潮信息算法工程师采用了嵌套量化(Double Quant)技术,这是在 NF4 量化基础上进行的二次量化。NF4 量化后,由于会产生大量的 scale 参数,如果使用 32 位浮点数(FP32)存储,会占用大量的内存空间。若以 64 个参数作为一个量化块(block size=64)来计算,对于一个千亿参数的大模型,仅存储 scale 参数就需要额外的 6GB 内存:


(100B/64) * 4 = 6GB


为了减少内存占用,浪潮信息工程师通过将这些 scale 参数量化到 8 位浮点数(FP8),可以显著减少所需的存储空间。在采用 256 为量化块大小(block size=256)的情况下,存储所有 scale 参数所需的额外空间仅为 1.57GB:


(100B/64/256)* 4 + (100B/64) * 1 = 1.57GB


通过嵌套量化,模型的每个权重参数最终仅占用 4 字节的内存空间,这比原始的 FP32 存储方式减少了大量的内存占用,从内存到 CPU 的数据搬运效率提高了 4 倍。这样的优化显著减轻了内存带宽对 Yuan2.0-102B 模型推理解码效率的限制,从而进一步提升了模型的推理性能。

三、高算效,低成本

通过在 NF8260G7 服务器上应用张量并行和 NF4 量化技术,浪潮信息工程师成功实现了千亿大模型 Yuan2.0-102B 的实时推理,根据性能分析(profiling)的结果,可以清晰地看到模型中不同部分的计算时间分布:线性层运行时间占比 50%,卷积运行时间占比 20%,聚合通信时间占比 20%,其它计算占比 10%。在整个推理过程中,计算时间占比达到了 80%,和此前相比,计算时间占比提升 30%,大幅提升了算力利用率。



Yuan2.0-102B 模型推理性能分析(profiling)结果图


浪潮信息基于通用服务器 NF8260G7 的软硬件协同创新,为千亿参数 AI 大模型在通用服务器的推理部署,提供了性能更强,成本更经济的选择,让 AI 大模型应用可以与云、大数据、数据库等应用能够实现更紧密的融合,从而充分释放人工智能在千行百业中的创新活力。

2024-08-01 17:128981

评论

发布
暂无评论
发现更多内容

架构1期第三周作业二

道长

极客大学架构师训练营

不一样的面向对象(三)

书旅

php 面向对象 面向对象编程

Go编程(一) 怎么写Go代码

dongfanger

编程 开发 Go 语言

点对点音视频应用场景及优势

anyRTC开发者

音视频 WebRTC 直播 RTC 安卓

信息公交服务在滴滴的应用实践

滴滴技术

滴滴技术 人工只能 信息公交 路径优化

查看mac电脑的温度信息, 并且给mac电脑降温

lmymirror

macos Mac terminal

JAVA集合之ConcurrentHashMap

彭阿三

Java JAVA集合

StreamNative 宣布开源 MoP:Apache Pulsar 支持原生 MQTT 协议

Apache Pulsar

开源 云原生 mqtt Apache Pulsar 消息中间件

Go编程(二) 多线程简单斗地主

dongfanger

编程 开发 Go 语言

10多家公司的Java开发面试常见问题合集

Java架构师迁哥

倒计时!Pulsar Summit Asia 2020 演讲征集

Apache Pulsar

开源 云原生 pulsar Apache Pulsar 消息中间件

融云技术分享:基于WebRTC的实时音视频首帧显示时间优化实践

JackJiang

音视频 即时通讯 实时通信

Spring 5 中文解析数据存储篇-JDBC数据存储(下)

青年IT男

Spring5

比曲婉婷云尽孝更可怕的是:2020年,低收入家庭仍然在被收割

成周

心理学 教育 培训 维权 曲婉婷

2020年行摄回忆录(上)

穿过生命散发芬芳

生活 摄影

java安全编码指南之:异常处理

程序那些事

java安全编码 java安全 java安全编码指南

聊一下《技术力量-一线技术团队成功启示录》

Man

中台 研发管理

Java源码系列1——ArrayList

超超不会飞

Java

浅谈滴滴需求响应式公交背后的技术

滴滴技术

滴滴技术 创新公交 路径优化

第 0 次面试

escray

程序员 面试 面经

奈学:Java 和 JavaScript 是什么关系?

古月木易

Java

DàYé玩转数据战略Step By Step

曲水流觞TechRill

数据中台 数字化

2020面试阿里字节跳动90%被问到的JVM面试题附答案

Java架构师迁哥

甲方日常 24

句子

工作 随笔杂谈 日常

数据挖掘技术在轨迹数据上的应用实践

滴滴技术

人工智能 数据挖掘 滴滴技术 轨道技术 创新公交

初学源码之——Spring IOC 应用

Java架构师迁哥

linux 文件权限控制

kcnf

linux 文件权限控制 acl

图解 K8S 源码 - Deployment Controller 篇

郭旭东

Kubernetes Kubernetes源码

国庆假期快来了,打开8天长假的正确方式是...

老胡爱分享

读书 书籍推荐 随笔杂谈

奈学:Java 和 JavaScript 是什么关系?

奈学教育

Java

一篇文章搞定 Nginx 反向代理与负载均衡

哈喽沃德先生

nginx 负载均衡 反向代理 服务器 正向代理与反向代理

服务器仅靠 4 颗 CPU 运行千亿大模型的“算法秘籍”_生成式 AI_Xue Liang_InfoQ精选文章