社区供稿 | 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

相关文章
|
1月前
|
弹性计算 Linux 定位技术
【图文】2024年Palworld/幻兽帕鲁社区服务器超详细搭建教程
幻兽帕鲁是一款令人兴奋和富有创意的游戏,它将玩家带入了一个神秘而奇幻的幻兽世界。在这个游戏中,玩家可以探索各种各样的地图,与不同类型的幻兽进行战斗,并收集和培养自己的帕鲁团队。 本文将详细介绍如何在腾讯云服务器实现一键部署幻兽帕鲁联机服务器,帮助大家快速搭建自己的游戏联机服务器。
217 2
|
1月前
|
存储 弹性计算 安全
ECS的安全责任共担模型
云服务器ECS的云上安全性是阿里云和客户的共同责任。本文介绍云服务器ECS(Elastic Compute Service)与客户在安全性方面各自应该承担的责任。
|
15天前
|
机器学习/深度学习 人工智能 网络安全
人工智能平台PAI产品使用合集之在本地可以成功进入模型流,但在服务器上无法进入,是什么原因
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
23天前
|
异构计算 弹性计算 并行计算
|
1月前
|
测试技术 PyTorch 算法框架/工具
魔搭开源推理引擎 DashInfer,助力CPU服务器解锁大模型超强推理
ModelScope推出了预训练大语言模型(LLM)推理引擎DashInfer,采用C++ Runtime编写,提供C++和Python语言接口,具有生产级别的高性能表现,适用于多种CPU架构,包括x86和ARMv9。DashInfer支持连续批处理(Continuous Batching)和多NUMA推理(NUMA-Aware),能够充分利用服务器级CPU的算力,为推理14B及以下的LLM模型提供更多的硬件选择。该项工作已开源。
|
11天前
使用高性能服务器训练StableDiffusion——人物模型.safetensors
使用高性能服务器训练StableDiffusion——人物模型.safetensors
11 0
|
1月前
|
运维 监控 Serverless
【专栏】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器(Serverless)
【4月更文挑战第28天】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器。它基于事件驱动,自动扩展资源并按需计费。优势包括缩短开发周期、优化资源利用、降低成本、提高可用性及简化维护。然而,冷启动延迟、调试困难、性能监控、安全性和学习曲线等挑战仍需解决。随着技术进步,无服务器架构将在科技发展中发挥更大作用。
|
1月前
|
弹性计算 Linux 数据安全/隐私保护
1分钟幻兽帕鲁社区服务器搭建架设开服教程(Linux)
1分钟幻兽帕鲁社区服务器搭建架设开服教程(Linux)玩转幻兽帕鲁服务器,幻兽帕鲁Palworld多人游戏专用服务器一键部署教程,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云百科分享2024年新版基于阿里云搭建幻兽帕鲁服务器教程
87 3
|
1月前
|
网络协议 Java Linux
用Java来实现BIO和NIO模型的HTTP服务器(二) NIO的实现
用Java来实现BIO和NIO模型的HTTP服务器(二) NIO的实现
|
1月前
|
弹性计算 运维 安全
palworld幻兽帕鲁,社区服务器搭建教程,一看就懂!
palworld 幻兽帕鲁,社区服务器搭建教程,如何自建幻兽帕鲁服务器?基于阿里云服务器搭建幻兽帕鲁palworld服务器教程来了,一看就懂系列。
140 0