当前位置:   article > 正文

大模型推理资源评估方法_商用部署(模型推理阶段)预算估算

商用部署(模型推理阶段)预算估算

序言

        深度学习训练过程的GPU与部署推理阶段的关注点不同,训练过程最耗时的是频繁的张量运算。NVIDIA针对深度学习的训练过程设计了专用于矩阵运算的Tensor Core组件。通过硬件上的特殊设计,Tensor Core 理论上可以实现 8 倍于 FP32 Core 的计算吞吐量(Volta 和 Turing 架构),并且没有明显的占用面积和功耗增加。FP32 Core 是普通GPU中CUDA Core的一种数据类型包含的小核心。GPU的Tensor Core>内存带宽>=缓存层次结构>FLOPS算力,下图是各GPU的综合性能表现。

image.png

        根据以上工作规划,基于大模型的训练与部署需求评估所需硬件参数与成本。首先以chatGLM2-6b为例进行估算。由于1、模型容量限制可能不足支撑专业分析任务 2、代码类的模型往往具有更大的参数量, 也对当前开源的34B与70B模型的部署进行了硬件资源需求评估。

        另外,针对未来开源的千亿级模型,例如chatGLM-130B或GPT3.5(200B),可以参考的需求评估见GPT-3.5(ChatGPT)训练和部署成本估算_gpt3.5参数量-CSDN博客

一、chatGLM2-6b开发阶段与部署阶段评估

1.1 chatGLM2-6b磁盘占用

image.png

模型占用磁盘空间共12.5GB。

1.2 chatGLM2-6b用于推理时显存占用

  1. 显存占用=模型参数占用显存+batch_size×每个样本显存(输出梯度和动量)
  2. 模型参数占用显存=参数量×N(float32:n=4 float16:n=2 double64:n=8

chatGLM2-6b参数采用FP16格式存储。

chatGLM2-6b显存占用=6200000000 × 2 / 1024 / 1024 /1024 +  优化器参数(占比很小 约1GB) ≈ 12GB + 1GB = 13GB

模型实际运行时占用显存情况:

image.png

约12.64GB,与估算基本一致。

对于该模型的开发阶段,考虑微调的情况(显存消耗约为推理的3倍:12.64×3=37.92GB),需要大约1块A100/A800(40GB)或 2块V100(32GB)。

1.3 考虑用户访问模型的情况

1.3.1 算力需求

        以日活200人的情况测算,每人提问每天平均花费10000字,合计每天产生200万字(500万token)。假设8小时平均分配任务,需要的算力计算如下:

  1. 平均每秒钟需要进行的浮点运算次数:5000000×6200000000/8/3600/0.51/10^153 × 10^12/
  2. 按峰值算力需求10倍于平均需求,那么算力需求为 10 × 3 × 10^12 = 3 × 10^13 = 0.03 PFLOPS(Peta floating point operations per second)

        备注:1PFLPOS(Peta) = 10^15 FLOPS    1TFLOPS(Tera) = 10^12 FLOPS    1GFLOPS(Giga)= 10^9 FLOPS    1MFLOPS(Mega)= 10^6 FLOPS

        NVIDIA的Megatron项目,利用Tensor parallel和pipeline parallel等技术提高模型对显卡的算力利用率,下图为其测算结果。经过多项式插值可得6B模型的算力利用率约为35%,即上式的0.35。

image.png

        下图分别是A100、A800、V100的GPU规格参数(来源NVIDIA官网):

image.png

image.png

image.png

        A100与A800的FP16的Tensor core峰值算力为312 TFLOPS = 0.312 PFLOPS,V100为112 TFLPOS = 0.112 PFLOPS。

        因此,仅考虑chatGLM-6b模型用户访问算力需求,200日活大约需要 0.03 / 0.312 ≈ 0.10 块A100/A800,或者0.03 / 0.112 ≈ 0.27 块V100。

1.3.2 吞吐量考虑

大模型的吞吐量可通过每秒钟能进行的推理次数与总共需求进行的推理次数比得到。

每秒进行的推理次数(inferences per second)表示模型每秒钟能够完成的推理操作次数。取决于模型的计算复杂度和硬件性能。

对于吞吐量要求暂未找到公开可参考的评估方法。若采用异步方式进行多用户访问,则对于此模型需要至少300GB显存容量,相当于4块A100/A800(80GB)或 8块A100/A800(40GB)。

二、30B模型开发阶段与部署阶段评估(以Anima33b为例——第一个开源的基于QLoRA的33B中文大语言模型 )

2.1 Anima33b磁盘占用

image.png

约65GB(相同规模模型类似)。

2.2 Anima33b用于推理时显存占用

根据前文计算公式可得:

Anima33b显存占用=33000000000×2/1024/1024/1024 × 1.167.6GB

模型在推理时的空转显存占用约70GB,大约需要2张A100/A800(40GB)显卡 或 1张A100/A800(80GB)或 3张V100(32GB)显卡。

三、llama2-70B模型开发阶段与部署阶段评估

3.1 llama2-70B磁盘占用

image.png

约138GB。

3.2  llama2-70B用于推理时显存占用

 llama2-70B显存占用 = 70000000000 × 4 / 1024 / 1024 / 1024 × 1.1286.8GB

大约需要4块A100/A800(80GB) 或 8块A100/A800 (40GB)显卡。

补充:A40显卡参数

image.png

A40针对FP16算力峰值为149.7 TFLOPS,约为A100(312 TFLOPS)的50%,chatGLM2-6b模型算力需求方面,200日活大约需要 0.03 / 0.312 ≈ 0.20块A40。

算力能够满足,因此以显存需求为主要关注点,可直接对A100/A800做等效转换。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/802087
推荐阅读
相关标签
  

闽ICP备14008679号