社区供稿 | Yuan2.0千亿大模型在通用服务器上的高效推理实现:以NF8260G7服务器为例

简介: 浪潮信息联合Intel在IPF大会上发布了可运行千亿参数大模型的AI通用服务器,首次实现了单机通用服务器,即可运行千亿参数大模型。并在发布现场演示了基于NF8260G7服务器进行yuan2.0-102B模型在代码编写、逻辑推理等高难度问题上的实时推理效果,引起了业界广泛的关注。本文将详细解读yuan2.0-102B模型在NF8260G7服务器上进行高效实时推理的原理和技术路径。

引言

近日,浪潮信息联合Intel在IPF大会上发布了可运行千亿参数大模型的AI通用服务器,首次实现了单机通用服务器,即可运行千亿参数大模型。并在发布现场演示了基于NF8260G7服务器进行yuan2.0-102B模型在代码编写、逻辑推理等高难度问题上的实时推理效果,引起了业界广泛的关注。本文将详细解读yuan2.0-102B模型在NF8260G7服务器上进行高效实时推理的原理和技术路径。

image.png

大模型推理部署难点

提到大模型的推理,大家最先想到的还是以GPU为主的异构加速计算。随着大模型从基础研发走向落地应用,如何构建高效、稳定、易用、低成本的基础设施,是当前业界关注的焦点。相比于异构加速计算,使用AI通用服务器进行大模型推理具有落地成本更低、和已有业务的计算基础设施兼容度更高以及更稳定高效等多方位的优势。

当前,大模型的推理计算主要面临着如下几大方面的挑战,制约着大模型的服务成本和落地应用。

模型参数量大

大模型的推理过程中,需要在GPU显存中存放全部的模型权重参数,以及计算过程中的KV Cache等数据,一般需要占用模型参数量2-3倍的内存空间。因此部署一个千亿大模型(100B)往往需要200-300GB的GPU显存空间。这超过了当前业界主流的AI加速芯片的显存大小。而随着当前业界的LLM的网络架构从GPT架构走向MOE架构,主流的开源模型的尺寸越来越大,千亿及以上参数的模型成为了主流。

算力与带宽需求大

大模型的推理主要分为预填充和解码2个阶段。其中预填充阶段把prompt一次性输入给模型进行计算,计算压力更为明显,而在解码阶段,因为每次推理仅生成1个token,计算访存比较低,对内存带宽的压力更为明显。因此,千亿大模型的实时推理,不仅需要计算设备具备较高的计算能力,也需要计算设备具备较高的存储单元到计算单元的数据搬运效率。

NF8260G7服务器的特点和优势

相比于异构加速方案,NF8260G7作为一款采用高密度设计的2U4路服务器,支持16TB大内存容量。可以轻松满足千亿大模型推理的内存需求,甚至于万亿参数的MOE架构大模型推理的内存需求。NF8260G7服务器配置了4颗具有AMX(高级矩阵扩展)的AI加速功能的英特尔至强处理器。单机可以达到300TFlops以上的FP16算力。

image.png

NF8260G7服务器前视图

Yuan2.0(源2.0)是浪潮信息在2023年11月发布的新一代基础语言大模型。它包括Yuan2.0-102B、Yuan2.0-51B和Yuan2.0-2B三个模型。在模型架构上,Yuan2.0提出了一种基于本地化过滤的注意力机制(Localized Filtering-based Attention),用于捕捉输入序列的局部依赖关系。

相对于传统的全局Attention机制,LFA在前向传播之前引入了两层一维卷积层,以考虑更多的输入信息,从而具有更强的时序性和局部性。另外Yuan2.0通过更多高质量的预训练数据和微调数据集来提升模型的理解能力。

image.png

为了尽可能的加速yuan2.0-102B的推理计算效率,我们采用了张量并行(tensor parallel)策略来同时使用NF8260G7服务器中的4颗CPU。张量并行通过把yuan2.0-102B模型中的注意力层和前馈层的矩阵计算分别拆分到多个处理器,来同时使用4颗处理器来进行计算加速。但是,需要提到的是,张量并行策略因为对模型参数的切分粒度较细,会需要处理器在每次张量计算后进行数据同步。这些额外的数据同步,对处理器间的通信带宽,提出了较高的要求。

传统在使用多个基于PCIe互联的AI芯片进行张量并行时,通信占比往往会高达50%,也就是AI芯片有50%的时间都在等待数据传输,处于空闲状态,极大的影响了推理效率。相比之下,NF8260G7服务器中的4颗CPU采用了全链路UPI总线互连,通过全链路UPI互连有两个优势:

1、全链路互连可以使得任意两个CPU的通信可以直接进行数据传输,

2、UPI互连的传输速率高,传输速率高达16GT/s。远高于PCIe的通信带宽,从而保障了4颗处理器间高效的数据传输。

image.png

UPI总线互连示意图

基于张量并行和NF4量化的模型部署策略

在此基础上,为了进一步加速yuan2.0-102B的推理效率,我们使用了NF4量化技术,来进一步提升推理的解码效率,从而达到实时推理的解码需求。NF4(4位NormalFloat)数据类型属于分位数量化,是一种信息论上对于正态分布数据来说最优的量化数据类型,确保每个量化区间中有相等数量的值来自输入张量。

分位数量化通过估计输入张量的分位数来实现,由于LLM模型权重为具有零中心的正态分布,因此可以通过缩放标准差来适应我们的数据类型的范围,其实际量化得到的精度结果比4位整数和4位浮点数(整形和浮点型数据的量化数据间隔呈现平均分布和指数分布,对于描述呈现正态分布的模型权重来说分位数量化描述更精确)更好。INT4数据类型(平均分布)和NF4数据类型(正态分布)对比图如下图所示:

image.png

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

基于NF4,yuan2.0-102B使用了嵌套量化(Double Quant)技术来压缩模型权重参数。嵌套量化为针对NF4量化后进行的二次量化,由于NF4量化后会产生大量的scale参数,由于对于千亿大模型的量化,如果量化后的scale以FP32作为存储的话会占用大量的内存空间,假设以每 64 个参数为做一个 block进行量化(block size=64),则千亿大模型的scale参数存储仍会额外用到的空间大小为:

(100B/64)*4=6GB

通过将scale参数进行量化到FP8可以将参数进一步减少,存储全部scale的空间仅需要额外增加:(100B/64/256)* 4 +  (100B/64) * 1 = 1.57GB

其中二次量化block size=256,在量化后,模型的每个权重参数仅占用4byte的内存空间,从内存到CPU的数据搬运效率提升了4倍。从而大幅减轻了内存带宽对yuan2.0-102B推理的解码效率的制约。

通过张量并行和NF4量化,我们最终在NF8260G7服务器上实现了千亿大模型的实时推理,最终通过张量并行和NF4量化后profiling结果(通过profiling结果,我们可以对服务器在LLM推理中的算子和通信有一个效率占比评估)如下图所示:

image.png

从profiling结果可以看出,其中线性层的运行时间占比50%,卷积运行时间占比20%,聚合通信时间占比20%,其它计算占比10%。

下面是yuan2.0-102B进行实时推理的几个例子:https://b23.tv/Z3UIYQi(源2.0千亿模型通用服务器推理-哔哩哔哩 )

结论

总的来说,如何实现千亿大模型推理是需要进行硬件、软件、模型三个方面进行综合考量的结果。NF8260G7服务器拥有16TB大内存容量和300TFlops以上的FP16算力,能满足千亿大模型推理的内存需求。此外,服务器中的4颗CPU采用了全链路UPI总线互连,传输速率高达16GT/s,保障了高效的数据传输。在此基础上,采用了张量并行策略和NF4量化技术,我们实现了yuan2.0-102B的高效实时推理。为业界构建千亿大模型的高效推理方案提供了新的选择。

更多信息,请访问以下页面

YuanChat Github 项目主页:

https://github.com/IEIT-Yuan/YuanChat/

Yuan 2.0 Github 项目主页:

https://github.com/IEIT-Yuan/Yuan-2.0

Yuan 2.0 系列模型Hugging Face 主页:

https://huggingface.co/IEITYuan

Yuan 2.0 系列模型Modelscope 主页:https://modelscope.cn/profile/YuanLLM

相关文章
|
24天前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
54 2
|
2月前
|
人工智能 运维 安全
世界级大模型群,进化阿里云服务器操作系统新范式
世界级大模型群,进化阿里云服务器操作系统新范式
|
30天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
1月前
|
弹性计算 Ubuntu Linux
阿里云服务器公共镜像、社区镜像、自定义镜像、共享镜像、云市场镜像区别及选择参考
阿里云服务器镜像有公共镜像、自定义镜像、共享镜像、镜像市场、社区镜像可选,对于新手用户来说,不知道他们之间的区别,因此往往不知道如何选择,本文为大家介绍他们之间的区别以及选择参考。
285 12
|
1月前
|
数据可视化 Linux 网络安全
如何使用服务器训练模型
本文介绍了如何使用服务器训练模型,包括获取服务器、访问服务器、上传文件、配置环境、训练模型和下载模型等步骤。适合没有GPU或不熟悉Linux服务器的用户。通过MobaXterm工具连接服务器,使用Conda管理环境,确保训练过程顺利进行。
55 0
如何使用服务器训练模型
|
13天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多种配置选项,包括CPU+GPU、CPU+FPGA等组合,支持高性能计算需求。本文汇总了阿里云GPU服务器的价格信息,涵盖NVIDIA A10、V100、T4、P4、P100等多款GPU卡,适用于人工智能、机器学习和深度学习等场景。详细价格表和实例规格见文内图表。
|
1月前
|
存储 PyTorch API
NVIDIA Triton系列09-为服务器添加模型
本文介绍了如何为NVIDIA Triton模型仓库添加新模型。通过示例模型`inception_graphdef`的配置文件`config.pbtxt`,详细解释了模型名称、平台/后端名称、模型执行策略、最大批量值、输入输出节点及版本策略等配置项。内容涵盖了模型的基本要素和配置细节,帮助读者更好地理解和使用Triton服务器。
33 0
|
1月前
|
机器学习/深度学习 人工智能 并行计算
StableDiffusion-01本地服务器部署服务 10分钟上手 底显存 中等显存机器 加载模型测试效果 附带安装指令 多显卡 2070Super 8GB*2
StableDiffusion-01本地服务器部署服务 10分钟上手 底显存 中等显存机器 加载模型测试效果 附带安装指令 多显卡 2070Super 8GB*2
32 0
|
2月前
|
人工智能 运维 安全
专访浪潮信息:AI 原生时代,浪潮信息引领服务器操作系统创新 全面贡献龙蜥社区
分享了关于 AI 原生化趋势下服务器操作系统进化的思考,以及浪潮信息在龙蜥社区开源贡献的思路、成果与未来技术发展规划。
专访浪潮信息:AI 原生时代,浪潮信息引领服务器操作系统创新 全面贡献龙蜥社区
|
3月前
|
机器学习/深度学习 人工智能 弹性计算
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多样化的选择,包括CPU+GPU、CPU+FPGA等多种配置,适用于人工智能、机器学习和深度学习等计算密集型任务。其中,GPU服务器整合高性能CPU平台,单实例可实现最高5PFLOPS的混合精度计算能力。根据不同GPU类型(如NVIDIA A10、V100、T4等)和应用场景(如AI训练、推理、科学计算等),价格从数百到数千元不等。详情及更多实例规格可见阿里云官方页面。
241 1