文|AI大模型工场,编辑|星奈

谈到大模型私有化部署,很多人会首先想到数据中心,以为动辄就得使用很多台服务来支撑。一些中小企业或者应用部门,主要做知识库和智能体方向的应用,模型大小基本在70B以内。只要搭配合理,用本地的专业工作站同样可以训练推理,算得上极具性价比的方案了。

随着OpenAI o1-preview的发布,大模型已经越发成熟,距离走入企业生产应用已经很近了。但OpenAI提供访问的次数非常有限,这给企业用户的AI应用普及带来了一定的费用焦虑和困扰。为了应对日益增长的访问频率需求,越来越多的企业用户倾向于大模型的本地化部署。大模型本地部署可以极大地降低数据泄漏的风险,而且系统响应速度和实时性更强,在一些需要快速反馈的场景里优势非常明显,同时也能应对企业个性化需求。

通过在传统数据中心上进行本地大模型部署的方法,会对IT设施带来比较大的挑战,因为从计算资源来说,很多企业的数据中心计算资源很紧张,而且扩展成本比较高,甚至有些中小企业还不具备搭建数据中心的能力。所幸的是,对于知识库等企业级AI 应用来说,完全可以用高配的AI工作站来应对计算需求,以经济高效的方式减轻对数据中心计算资源的压力,从而降低云服务的成本支出。

这次我们选用的是Dell Precision 7960 Tower,搭载了4张「NVIDIA RTX 5880 Ada 」显卡,每张显卡显存48GB,相当于在1台工作站里就能最多有192GB显存,完全可以部署Llama3.1 70B模型。

打开网易新闻 查看精彩图片

Dell Precision 7960 Tower

70B模型拥有700亿参数量,在语言理解和生成方面具有显著优势,已经能够满足常见的企业级AI应用,比如知识库应用、对话问答等,同时多任务处理能力也很强,可以支持企业在一个统一的平台上运行多种AI 应用。同时,开源大模型70B的开放和灵活使得它在市场上具有广泛的适用性,大大降低企业的使用成本。而且量化后的70B模型仅占70G的显存,非常适合部署在工作站上,降低计算资源方面的成本。

购置机器前我们做了相对完整的测试和验证,包括推理、训练和噪音测试,下面给大家分享一些数据。

一、测试环境 硬件配置:

硬件平台:Dell Precision 7960 Tower

CPU: Intel(R) Xeon(R) w5-3433

内存:64G DDR5 * 8

GPU: NVIDIA RTX 5880 ada * 4

软件平台环境:

操作系统:ubuntu22.04

Driver Version: 550.107.02

CUDA: 12.1

软件包:conda python3.10 torch2.4 vllm0.6.1

测试模型:

这次我们分别测试了单GPU、双GPU以及四卡GPU的表现情况。并在不同的模型下进行测试,模型参数分别为8B/13B/32B/70B,具体模型名称如下:

Meta-Llama-3.1-8B-Instruct

Baichuan2-13B-Chat

Qwen1.5-32B-Chat

Meta-Llama-3.1-70B-Instruct

说明:接下来的推理测试,会使用FP16或FP8格式进行测试。在模型名称的后缀,如果有FP8字样,则使用的是FP8格式,否则使用的是FP16格式。

FP8是NVIDIA、Arm、Intel联合推出的8位浮点数据格式,用于加速深度学习训练和推理。相对于常用的半精度FP16而言,FP8在不损失多少精度的情况下,将显存的占用大小减少了一半,特别适合于将大模型部署于工作站上。FP8训练利用E5M2/E4M3格式,具备与FP16相当的动态范围,适用于反向传播与前向传播。FP8训练在相同加速平台上的峰值性能显著超越FP16/BF16,并且模型参数越大,训练加速效果越好,且其与16-bits训练在收敛性和下游任务表现上无显著差异。

推理框架:

vllm推理引擎来进行测试,为最大程度利用GPU显存,将其GPU utilization参数设置为0.99。

述语说明:

Batch size: 推理或训练时输入的数据批量数量,为1表示单个输入,例如一段文字,为2表明同时进行两段文字的生成,以此类推。它代表的是用户并发数量。

token/s:推理或训练的速度,每秒生成的数量。一个token是代表一个单词或词根,如果是中文的话,可能是一个字或一个词。

AI 应用场景测试列表

打开网易新闻 查看精彩图片

二、推理测试 测试用例

为贴近真实情况,使用了两种测试用例:

1、短输入及短输出,测试模型进行闲聊的性能,具体输入长度为128,输出长度也为128;

2、长输入及长输出,测试大模型进行知识库应用的性能,具体输入长度3584,输出512。

为了消除误差,每个测试进行4次,并取平均值。

Dell Precision 7960 Tower搭载

单卡「NVIDIA RTX 5880 Ada」的推理测试结果

在垂类行业的智能客服场景下,我们一般会采用单卡「NVIDIA RTX 5880 Ada」的工作站来应对,模型大小集中在7B,8B,13B等。用户的输入普遍都比较短,AI的输出也不长。这种情况下,使用单卡推理效率是最高的,因为不需要进行卡间通信,能提高显卡的利用率。

我们选择测试的模型:Llama 3.1-8B-Instruct、Baichuan 2-13B-Chat-FP8

测试1: 短输入及短输出(input 128, output 128)

首先我们测试了Llama3.1 8B,在测试batch size达到256情况下,吞叶率最高可达约4454 token/s,同时,总时延控制在合理的10秒左右,首字时延2.8秒左右。

打开网易新闻 查看精彩图片

为了对比,这次对Baichuan2-13B进行了FP8的量化,其表现如下图:在测试batch size 达到256的情况下,吞叶率最高可达2137 token/s,首字时延为2.48秒。

打开网易新闻 查看精彩图片

测试2: 长输入及长输出(input 3584, output 512)

在此测试用例中,首先测试了llama 3.1 8B-Instruct,我们可以将batch size 控制在16-32之间,其首字时延在4-9秒之间,吞吐率可在400-635 token/s。

打开网易新闻 查看精彩图片

再来看看百川13B (FP8量化)在长输入及长输出情况下的表现。

打开网易新闻 查看精彩图片

从上图可以看出,batch size为8时,首字时延仅为2.59秒,但当batch size增加到16时,首字时延则不成比例地来到15.11秒。因此 batch size 在单张显卡的推理情况下不宜设置过大,建议控制在8到16之间。

Dell Precision 7960 Tower搭载

双卡「NVIDIA RTX 5880 Ada」的推理测试结果

在企业级知识问答场景下,我们通常选择搭载双卡「NVIDIA RTX 5880 Ada」的工作站。比如我们选择用32B模型,其推理能力以及准确性,对比8B、13B有较大的提升,而且双卡可以极大地提高响应速度和显卡利用率。

我们选择Qwen 1.5 32B作为测试模型,并做了FP8量化。

测试1: 短输入及短输出(input 128, output 128)

打开网易新闻 查看精彩图片

在双卡用于短输入短输出的场景下,batch size 最高可设置到256,此时的吞吐率约为2587 token/s,首字时延仅为3.92秒。

测试2: 长输入及长输出(input 3584, output 512)

打开网易新闻 查看精彩图片

双卡用于知识库的应用场景里,适中的batch size应该是在 16-32之间,其首字时延为6-12秒,总时延30-50秒。

Dell Precision 7960 Tower搭载 四卡「NVIDIA RTX 5880 Ada」的推理测试结果

70B模型无论是在准确性或者推理方面,都达到目前主流大模型的水准,能广泛适用于智能体以及知识库应用,适合于企业的知识问答、效率级AI或RPA的赋能等场景。

这次我们选择Llama3.1 70B-Instruct 模型来测试,并做了FP8 量化。

测试1: 短输入及短输出(input 128, output 128)

在4卡「NVIDIA RTX 5880 Ada」的加持下,batch size为256的情况下,吞吐率高达1730 token/s,平均总时延为27秒左右,首字时延8秒左右,可以说是非常理想。

打开网易新闻 查看精彩图片

测试2: 长输入及长输出(input 3584, output 512)

打开网易新闻 查看精彩图片

由于输入token较长,首字时延会成比例增长。测试结果反映,在batch size为1的情况下,首字时延仅为1.4秒,同时吞吐率为32 token/s,当batch size增长到8时,首字时延来在6.68秒,总时延达到29.5秒,吞吐率则高达179 token/s。从实际使用情况来看,Batch size 控制在8以内的情况下,使用体验相对较好。

三、训练测试

「NVIDIA RTX 5880 Ada」具备48GB显存,特别适合于进行大模型的微调任务,这次我们使用了Llama-Factory对搭载不同数量「NVIDIA RTX 5880 Ada」 GPU的Dell Precision 7960 Tower进行了训练任务的测试,结果如下:

打开网易新闻 查看精彩图片

对于8B模型,我们使用一张「NVIDIA RTX 5880 Ada 」就足够 Lora训练,其平均功耗达260W,即算力利用率可达91%。

对于13B模型,双卡即可做Lora训练,其算力利用率也高达92%。

对于32B和70B大小的模型,我们可用四卡来训练(因为这两模型参数较大,在现有192G显存中无法使用FP16来加载,所以我们使用QLora的方式进行微调训练),在多卡通信的情况下,算力利用率仍然高达82%以上。

8B 模型全参微调

得益于4卡工作站高达192GB的超大显存,我们可以进行8B模型的全参微调。

我们使用了deepspeed框架进行多卡训练,并配置为zero3的模式,测试过程相当顺利,其训练的吞吐率接近Qlora的表现,达到67.4 token/s的水平,在alpaca 1k数据集上,训练3个epoch,也仅花了30多分钟。

四、噪音测试

打开网易新闻 查看精彩图片

考虑到办公环境的静音要求,这次我们特别对Dell Precision 7960 Tower工作站进行了噪音测试。

在训练测试过程中,4张显卡平均利用率80-90%的情况下,我们靠近工作站出风口,测得平均56分贝的水平。在推理测试中,测得接近50分贝的水平。

总体上噪音控制得非常好,相当安静,从实际感受来说,基本上对办公室工作没有影响。

总结

目前此阶段企业级AI应用,最常见的就是基于知识库以及智能体方向的应用,也就是本次测试中使用到的input 3584/ouput 512的测试用例。即便是比较大规模的70B模型,搭载4卡「NVIDIA RTX 5880 Ada」的Dell Precision 7960 Tower也能支撑并发高达8个用户的访问,且用户体验不会下降。在此配置下,平均每个用户生成答案的总时延仅为30秒,也就是说平均每分钟可提供多达16次访问能力,每小时则能提供约1000次用户访问能力,可以支撑中小型企业的日常应用需求。

对于有海量数据或文档,用户数量也比较高的企业来说,建议使用私有数据对模型进行微调。因为这种方案,可以省去在做推理时的知识外挂,从而提高并发访问能力。而Dell Precision 7960 Tower,也能满足此要求。即使是70B的大模型,其在input 128/output 128的测试用例中,并发能高达256次,总时延仅为27秒。也就是说,在最理想的情况下,每小时可提供高达3万多次的访问。

除了实用之外,Dell Precision 7960 Tower 超级静音的优势对于没有机房的企业团队简直过于友好!对于在做项目测试验证、并且想突破企业数据中心访问限制的小伙伴们来说,也是一个高效实现AI自由的选择!