LLM推理引擎性能评测对比:vllm、lmdeploy、tensorrt-llm

01

简介

在当今LLM时代,大模型的效果已经取得了长足的进步,逐渐成为业务流程中的重要部分,因此对性能进行评估变得至关重要,由于目前LLM推理都需要比较高级的GPU,使得LLM推理成本高,因此在不同使用场景下优化推理就很有必要。对于提供公共推理服务,比如openai等来说,提高吞吐率优先级比较高,而在一些专用的业务场景,则对首包延迟和整体请求延迟有着较高要求。

目前业界已经开发了各种各样的LLM推理引擎,如VLLM,LLMDeploy,huggingface(text-generation-inference), DeepSpeed-Inference,以及大量的商业化API,本文介绍LLM性能主要指标,进行性能压测,并通过wandb进行压测结果对比。

02

LLM推理关键指标以及影响

  • Throughput

总的吞吐(output tokens/seconds),对于LLM Serving重要,可以提高总的服务能力。

  • Time to First Token(TTFT)

在prefill阶段后返回的第一个token的时间,在stream输出模式下,对体验影响大,越小用户等待返回第一个token时间越小,体验越好。

  • Time per output token

生成每个token的时间,影响体验

  • Latency

处理完整请求用时。

  • QPS

每秒处理完成的请求数。

03

性能测试工具

为了支持各种服务API以及开源LLM推理性能,评估是否满足生产需求,我们提供一套简单可扩展的工具,支持LLM各项指标,详细可以参考eval-scope项目中的性能perf工具说明: https://github.com/modelscope/eval-scope/tree/main/llmuses/perf

04

环境信息

测试机器(A100 80G)

图片

测试评测引擎以及版本版本

引擎

版本

vllm

v0.5.0.post1

lmdeploy

0.4.1

tritonserver(tensorrt-llm backend)

tensorrt_llm 0.11.0.dev2024061100

测试数据

性能评测请求根据下列数据集构造。

  • 正常上下文:

https://huggingface.co/datasets/Hello-SimpleAI/HC3-Chinese/blob/main/open_qa.jsonl

  • 长上下文数据集:

https://huggingface.co/datasets/Yukang/LongAlpaca-12k/blob/main/LongAlpaca-12k.json

测试模型

为了使测试更具有代表行,我们测试了不同size的模型(qwen2 7B,qwen2 72B),在不同请求长度以及并发下的性能,所有引擎参数大多使用默认值,未针对性调参,不代表引擎最优性能。

qwen7B单卡推理,qwen72B 4卡推理(tensor parallel 4).

参考: https://github.com/triton-inference-server/tensorrtllm_backend

05

测试结果

Qwen7B

1.open_qa正常上下文

1.1单并发

**结果对比(时间单位均为秒)**

![图片](https://img-blog.csdnimg.cn/img_convert/106026539807a0289083ea867869780d.png)

**Throughput VS TTFT(Time to first token)**

![图片](https://img-blog.csdnimg.cn/img_convert/8a4211cb491c1fc1e579d95a2dda144c.png)

**wandb详细对比图表**

![图片](https://img-blog.csdnimg.cn/img_convert/06d05b8d0ea251b70bfd0536384ed956.png)

在单并发情况下tensorrt-llm TTFT最小,用户体验最好,lmdeploy through最高,服务性能最好。

**多并发(128)**

**结果对比(时间单位均为秒)**

![图片](https://img-blog.csdnimg.cn/img_convert/40bdeb6ee65ab6181723dc77ea7521e2.png)

lmdeploy在短文本,多并发情况下,vllm TTFT最小,用户体验最好,响应最快,但Throughput最低,lmdeploy TTFT最大,Throughput最高。

**Throughput VS TTFT(Time to first token)**

![图片](https://img-blog.csdnimg.cn/img_convert/b6f7ecb5297ad6067be2e53e898e1899.png)

wandb详细对比图表

![图片](https://img-blog.csdnimg.cn/img_convert/c9a79a8e94402b64a8a1347c1c20e81f.png)

**2.LongAlpaca-12K长上下文**

**2.1单并发**

**结果对比(时间单位均为秒)**

![图片](https://img-blog.csdnimg.cn/img_convert/2c1b837b3bbee3321e7e94bb1571a692.png)

**Throughput VS TTFT(Time to first token)**

![图片](https://img-blog.csdnimg.cn/img_convert/a09b0540201e76e5e66789f74bace045.png)

**wandb详细对比图表**

![图片](https://img-blog.csdnimg.cn/img_convert/9d8c75d0555476f7388f9c12013638fd.png)

**2.2多并发(4)**

**结果对比(时间单位均为秒)**

![图片](https://img-blog.csdnimg.cn/img_convert/42caf41709c461b89a92caefbc83870e.png)

**Throughput VS TTFT(Time to first token)**

![图片](https://img-blog.csdnimg.cn/img_convert/f6dbc4f6288a27466403043e348780d6.png)

**wandb详细对比图表**

![图片](https://img-blog.csdnimg.cn/img_convert/6485c95e5eb482dfbf3f11f39a4d156d.png)

## **Qwen72B**

**1.open\_qa正常上下文**

##### **1.1单并发**


``

结果对比

图片

Throughput VS TTFT(Time to first token)

图片

wandb详细对比图表

图片

1.1多并发(128)

结果对比(时间单位均为秒)

图片

Throughput VS TTFT(Time to first token)

图片

wandb详细对比图表

图片

2.LongAlpaca-12K长上下文

2.2单并发

结果对比(时间单位均为秒)

图片

Throughput VS TTFT(Time to first token)

图片

wandb详细对比图表

图片

2.2多并发(4)

结果对比(时间单位均为秒)

图片

Throughput VS TTFT(Time to first token)

图片

wandb详细对比图表

图片

06

总结

从总体结果看,主流引擎在不同场景下各有优势,用户可以根据自己使用场景,选择合适的引擎,如果您服务少数用户,选择TTFT小的,用户体验更佳,如果您要服务大量用户,可以选择throughput大的,提高资源利用率。

但从使用体验上看,vllm,lmdeploy使用方便,直接从model hub下载模型即可,而tensorrt-llm需要转换和编译模型,并且创建合适的引擎环境也有一定的成本,需要tensorrt-llm,triton server以及tensorrt-llm backend,格步骤参数有一定关联性,极易出错,总体使用成本对比会高不少。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值