编辑|星奈
媒体|AI大模型工场
谈到大模型私有化部署,很多人会首先想到数据中心,以为动辄就得使用很多台服务来支撑。一些中小企业或者应用部门,主要做知识库和智能体方向的应用,模型大小基本在70B以内。只要搭配合理,用本地的专业工作站同样可以训练推理,算得上极具性价比的方案了。
随着OpenAIo1-preview的发布,大模型已经越发成熟,距离走入企业生产应用已经很近了。但OpenAI提供访问的次数非常有限,这给企业用户的AI应用普及带来了一定的费用焦虑和困扰。为了应对日益增长的访问频率需求,越来越多的企业用户倾向于大模型的本地化部署。大模型本地部署可以极大地降低数据泄漏的风险,而且系统响应速度和实时性更强,在一些需要快速反馈的场景里优势非常明显,同时也能应对企业个性化需求。
通过在传统数据中心上进行本地大模型部署的方法,会对IT设施带来比较大的挑战,因为从计算资源来说,很多企业的数据中心计算资源很紧张,而且扩展成本比较高,甚至有些中小企业还不具备搭建数据中心的能力。所幸的是,对于知识库等企业级AI应用来说,完全可以用高配的AI工作站来应对计算需求,以经济高效的方式减轻对数据中心计算资源的压力,从而降低云服务的成本支出。
这次我们选用的是DellPrecision7960Tower,搭载了4张「NVIDIARTX5880Ada」显卡,每张显卡显存48GB,相当于在1台工作站里就能最多有192GB显存,完全可以部署Llama3.170B模型。
DellPrecision7960Tower
70B模型拥有700亿参数量,在语言理解和生成方面具有显著优势,已经能够满足常见的企业级AI应用,比如知识库应用、对话问答等,同时多任务处理能力也很强,可以支持企业在一个统一的平台上运行多种AI应用。同时,开源大模型70B的开放和灵活使得它在市场上具有广泛的适用性,大大降低企业的使用成本。而且量化后的70B模型仅占70G的显存,非常适合部署在工作站上,降低计算资源方面的成本。
购置机器前我们做了相对完整的测试和验证,包括推理、训练和噪音测试,下面给大家分享一些数据。
一、测试环境
硬件配置:
硬件平台:DellPrecision7960Tower
CPU:Intel(R)Xeon(R)w5-3433
内存:64GDDR5*8
GPU:NVIDIARTX5880ada*4
软件平台环境:
操作系统:ubuntu22.04
DriverVersion:550.107.02
CUDA:12.1
软件包:condapython3.10torch2.4vllm0.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显存,将其GPUutilization参数设置为0.99。
述语说明:
Batchsize:推理或训练时输入的数据批量数量,为1表示单个输入,例如一段文字,为2表明同时进行两段文字的生成,以此类推。它代表的是用户并发数量。
token/s:推理或训练的速度,每秒生成的数量。一个token是代表一个单词或词根,如果是中文的话,可能是一个字或一个词。
AI应用场景测试列表
二、推理测试
测试用例
为贴近真实情况,使用了两种测试用例:
1、短输入及短输出,测试模型进行闲聊的性能,具体输入长度为128,输出长度也为128;
2、长输入及长输出,测试大模型进行知识库应用的性能,具体输入长度3584,输出512。
为了消除误差,每个测试进行4次,并取平均值。
DellPrecision7960Tower搭载
单卡「NVIDIARTX5880Ada」的推理测试结果
在垂类行业的智能客服场景下,我们一般会采用单卡「NVIDIARTX5880Ada」的工作站来应对,模型大小集中在7B,8B,13B等。用户的输入普遍都比较短,AI的输出也不长。这种情况下,使用单卡推理效率是最高的,因为不需要进行卡间通信,能提高显卡的利用率。
我们选择测试的模型:Llama3.1-8B-Instruct、Baichuan2-13B-Chat-FP8
测试1:短输入及短输出(input128,output128)
首先我们测试了Llama3.18B,在测试batchsize达到256情况下,吞叶率最高可达约4454token/s,同时,总时延控制在合理的10秒左右,首字时延2.8秒左右。
为了对比,这次对Baichuan2-13B进行了FP8的量化,其表现如下图:在测试batchsize达到256的情况下,吞叶率最高可达2137token/s,首字时延为2.48秒。
测试2:长输入及长输出(input3584,output512)
在此测试用例中,首先测试了llama3.18B-Instruct,我们可以将batchsize控制在16-32之间,其首字时延在4-9秒之间,吞吐率可在400-635token/s。
再来看看百川13B(FP8量化)在长输入及长输出情况下的表现。
从上图可以看出,batchsize为8时,首字时延仅为2.59秒,但当batchsize增加到16时,首字时延则不成比例地来到15.11秒。因此batchsize在单张显卡的推理情况下不宜设置过大,建议控制在8到16之间。
DellPrecision7960Tower搭载
双卡「NVIDIARTX5880Ada」的推理测试结果
在企业级知识问答场景下,我们通常选择搭载双卡「NVIDIARTX5880Ada」的工作站。比如我们选择用32B模型,其推理能力以及准确性,对比8B、13B有较大的提升,而且双卡可以极大地提高响应速度和显卡利用率。
我们选择Qwen1.532B作为测试模型,并做了FP8量化。
测试1:短输入及短输出(input128,output128)
在双卡用于短输入短输出的场景下,batchsize最高可设置到256,此时的吞吐率约为2587token/s,首字时延仅为3.92秒。
测试2:长输入及长输出(input3584,output512)
双卡用于知识库的应用场景里,适中的batchsize应该是在16-32之间,其首字时延为6-12秒,总时延30-50秒。
DellPrecision7960Tower搭载
四卡「NVIDIARTX5880Ada」的推理测试结果
70B模型无论是在准确性或者推理方面,都达到目前主流大模型的水准,能广泛适用于智能体以及知识库应用,适合于企业的知识问答、效率级AI或RPA的赋能等场景。
这次我们选择Llama3.170B-Instruct模型来测试,并做了FP8量化。
测试1:短输入及短输出(input128,output128)
在4卡「NVIDIARTX5880Ada」的加持下,batchsize为256的情况下,吞吐率高达1730token/s,平均总时延为27秒左右,首字时延8秒左右,可以说是非常理想。
测试2:长输入及长输出(input3584,output512)
由于输入token较长,首字时延会成比例增长。测试结果反映,在batchsize为1的情况下,首字时延仅为1.4秒,同时吞吐率为32token/s,当batchsize增长到8时,首字时延来在6.68秒,总时延达到29.5秒,吞吐率则高达179token/s。从实际使用情况来看,Batchsize控制在8以内的情况下,使用体验相对较好。
三、训练测试
「NVIDIARTX5880Ada」具备48GB显存,特别适合于进行大模型的微调任务,这次我们使用了Llama-Factory对搭载不同数量「NVIDIARTX5880Ada」GPU的DellPrecision7960Tower进行了训练任务的测试,结果如下:
对于8B模型,我们使用一张「NVIDIARTX5880Ada」就足够Lora训练,其平均功耗达260W,即算力利用率可达91%。
对于13B模型,双卡即可做Lora训练,其算力利用率也高达92%。
对于32B和70B大小的模型,我们可用四卡来训练(因为这两模型参数较大,在现有192G显存中无法使用FP16来加载,所以我们使用QLora的方式进行微调训练),在多卡通信的情况下,算力利用率仍然高达82%以上。
8B模型全参微调
得益于4卡工作站高达192GB的超大显存,我们可以进行8B模型的全参微调。
我们使用了deepspeed框架进行多卡训练,并配置为zero3的模式,测试过程相当顺利,其训练的吞吐率接近Qlora的表现,达到67.4token/s的水平,在alpaca1k数据集上,训练3个epoch,也仅花了30多分钟。
四、噪音测试
考虑到办公环境的静音要求,这次我们特别对DellPrecision7960Tower工作站进行了噪音测试。
在训练测试过程中,4张显卡平均利用率80-90%的情况下,我们靠近工作站出风口,测得平均56分贝的水平。在推理测试中,测得接近50分贝的水平。
总体上噪音控制得非常好,相当安静,从实际感受来说,基本上对办公室工作没有影响。
总结
目前此阶段企业级AI应用,最常见的就是基于知识库以及智能体方向的应用,也就是本次测试中使用到的input3584/ouput512的测试用例。即便是比较大规模的70B模型,搭载4卡「NVIDIARTX5880Ada」的DellPrecision7960Tower也能支撑并发高达8个用户的访问,且用户体验不会下降。在此配置下,平均每个用户生成答案的总时延仅为30秒,也就是说平均每分钟可提供多达16次访问能力,每小时则能提供约1000次用户访问能力,可以支撑中小型企业的日常应用需求。
对于有海量数据或文档,用户数量也比较高的企业来说,建议使用私有数据对模型进行微调。因为这种方案,可以省去在做推理时的知识外挂,从而提高并发访问能力。而DellPrecision7960Tower,也能满足此要求。即使是70B的大模型,其在input128/output128的测试用例中,并发能高达256次,总时延仅为27秒。也就是说,在最理想的情况下,每小时可提供高达3万多次的访问。
除了实用之外,DellPrecision7960Tower超级静音的优势对于没有机房的企业团队简直过于友好!对于在做项目测试验证、并且想突破企业数据中心访问限制的小伙伴们来说,也是一个高效实现AI自由的选择!