AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


H20对决4090:大规模模型部署中的性能巅峰之战
发布日期:2024-09-07 08:09:40 浏览次数: 2072 来源:Neolink AI



前言

在当前的大模型部署与应用中,计算资源的选择与优化至关重要。本报告通过在H20算力设备上的部署与测试,详细探讨了H20与4090在大型语言模型推理中的性能表现。通过对吞吐量、响应时间、token生成时间等关键指标的评估,旨在为高效部署提供有力的数据支撑和优化建议。

Part 1

环境配置

1.1

软件环境

Ubuntu22.04,配备miniconda和pytorch,cuda版本12.4,vLLM框架

1.2

vLLM简介

vLLM是一个开源且易于使用的大模型(LLM)推理加速框架,我们用vLLM部署训练好的大模型。vLLM通过PagedAttention高效地管理attention中缓存的张量,实现了比HuggingFace Transformers高14-24倍的吞吐量。

vLLM具有以下特点

  1. 先进的服务吞吐量;

  2. PagedAttention对注意力Keys和Values存储的有效管理;

  3. 连续批处理传入请求,即continous batching,而不是static batching;

  4. 使用CUDA/HIP图快速执行模型;

  5. 支持张量并行推理和流式输出;

  6. 兼容 OpenAI 的接口服务;

  7. 与 HuggingFace 模型无缝集成。


Part 2

目的与方法

2.1

目的

测试大模型在H20上的表现,包括吞吐量,单个token花费的时间,以及token之间的延迟和响应速度等。

2.2

预期结果

与4090相比,H20的吞吐量更高,延迟更低,响应更快。

2.3

测试方法

用vllm的benchmark,测试8B,15B和34B的模型在4090和H20上的性能。

# 测试流程 #

  1. 申请H20 8卡算力 24小时的实例;

  2. 下载llama3.1-8B-instruct、llama3-15B-stocktest、Yi-34B-Chat;

  3. 用vllm host不同的模型后,运行vllm benchmark脚本进行评测,记录结果;

  4. 在4090上重复步骤2、3,记录结果。


Part 3

过程

3.1

安装vllm

pip install vllm

3.2

更新cuda驱动版本

安装vllm后,nvidia-cublas-cu12版本为12.1.3.1。这一版本在4090上没有问题,但是在H20上会报错,升级后解决。

pip install nvidia-cublas-cu12==12.4.5.8

3.3

下载模型

从huggingface上下载模型,没有代理可以从mirror上下载,或者下载到本地再scp传上去:

  1. https://hf-mirror.com/meta-llama/Meta-Llama-3.1-8B-Instruct

  2. https://huggingface.co/athirdpath/Llama-3-15b-StockTest

  3. https://huggingface.co/01-ai/Yi-1.5-34B-Chat

  4. https://huggingface.co/01-ai/Yi-34B-Chat-8bits

3.4

运行vllm server

修改tp、pp、--enable-prefix-caching 等参数:

vllm serve /root/data/Meta-Llama-3.1-8B-Instruct --dtype auto \--host 0.0.0.0 --port 8007 --tensor-parallel-size 1 --pipeline-parallel-size 1 --disable-log-requests \

3.5

Testing

用sharegpt的数据集测试

python benchmarks/benchmark_serving.py \        --host 0.0.0.0 \        --port 8000 \        --backend vllm \        --model Meta-Llama-3.1-8B-Instruct \        --dataset-name sharegpt \        --dataset-path /home/cuiyuxin/scripts/vllm/ShareGPT_Vicuna_unfiltered/ShareGPT_V3_unfiltered_cleaned_split.json

3.6

记录结果

记录不同设置下的实验结果。


Part 4

结果

4090与H20对比

# 内存大小 #

  •  4090 24G。

  •  H20 :96G。

对于34B的模型,4张4090才可以跑起来,1张H20就足够。

# yi34b模型,4卡,tp=4 #

  •  吞吐量(throughputs) H20的吞吐量约为4090的一倍。

  •  响应时间(time to first token) :H20处理并发的能力更强。

  •  输出每个token的时间(time per output token) :H20输出单个token的时间比4090少7倍左右。

  •  Token间的延迟(inter-token latency) :H20输出多个token时,token之间的延迟比4090少7倍左右。

  •  整体评测时间(benchmark duration) 

4090:496.97 s;

H20: 233.22 s。

H20整体花费的时间约为4090的1/2。

不同参数设置下表现

# H20 8卡,修改tp和pp #

  • tp越小,整体花费的时间越长,吞吐量越低,响应速度越慢,输出单个token以及token之间的延迟越长。

<<   左右滑动或点击放大查看全图   >>

# H20 8卡,tp=8,pp=1 #

测试vllm的其他参数:

  •  use-v2-block-manager :响应速度快了一点,token间延迟低了一点(P99 ITL降低10ms左右),但吞吐量稍微降低(3个token左右)。

  •  enable-prefix-caching :吞吐量变高(25个token左右),响应速度降低,延迟变长。

  •  disable-custom-all-reduce :吞吐量变高,响应速度降低,延迟变长。

  •  enable-chunked-prefill :吞吐量没有明显变化,响应速度变高,延迟降低(P99 ITL降低一半)。

  •  max-num-batched-tokens :值为32768时吞吐量最高,对响应速度和延迟没有明显影响。

<<   左右滑动或点击放大查看全图   >>


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询