当前位置: 首页 > news >正文

Vllm-0.10.1:通过vllm bench serve测试TTFT、TPOT、ITL、E2EL四个指标

一、KVM 虚拟机环境

GPU:4张英伟达A6000(48G)

内存:128G

海光Cpu:128核

大模型:DeepSeek-R1-Distill-Qwen-32B

推理框架Vllm:0.10.1

二、四个性能指标介绍

2.1、TTFT:Time to First token

首次生成token时间(ms),TTFT 越短,用户体验越好,TTFT 受 prompt 长度影响很大,如果输入的prompt越长,TTFT就越长。

2.2、TPOT:Time per output token

除首token之后,每个 token 的平均生成时间(ms),TPOT 反映模型的解码速度,受 GPU 性能、KV Cache、batch size 影响。

2.3、ITL:Inter-Token Latency

两个连续 token 之间的实际时间间隔(ms),如果 ITL 波动大,说明生成不平稳

2.4、E2EL:End-to-End Latency

从首token到最后token完成的全部时间(ms)

E2EL=TTFT + TPOT × 输出长度

2.5举个例子

假设你问模型:“请写一篇 1000 字的作文。”

TTFT:800ms(你等了 0.8 秒看到第一个字)

TPOT:60ms(每个字平均 60 毫秒)

ITL:[58, 62, 59, 70, 57, ...](有时快,有时慢)

E2EL:800 + 60 × 999 ≈ 60.74 秒

→ 你等了 1 分钟才看到完整答案。

2.6、优化目标

想优化

关注指标

方法

让模型“更快响应”

TTFT

减少 prompt 长度、启用 chunked prefill、优化 KV Cache

让回答“说得更流畅”

TPOT

升级 GPU、使用 vLLM、减少 batch size

让生成“更稳定”

 ITL

避免资源争抢、使用 PagedAttention

让整体“更快完成”

 E2EL

降低 TTFT 和 TPOT,或减少输出长度

三、测试过程

3.1、启动命令

vllm serve "/mnt/data/models/DeepSeek-R1-Distill-Qwen-32B" \--host "127.0.0.1" \--port 9400 \--gpu-memory-utilization 0.7 \--served-model-name "qwen32b" \--tensor-parallel-size 4 \--chat-template "/mnt/data/models/qwen32_nonthinking.jinja" \--chat-template-content-format "string" \--enable-chunked-prefill \--max-model-len 65536 \--max-num-seqs 32 \--max-num-batched-tokens 131072 \--block-size 32 \--disable-log-requests

3.1.1、如何设置max-model-len?

max-model-len最大可以设置为131072(对应config.json的max_position_embeddings)。

哪max-model-len到底设置多大合适呢?

场景

推荐 max-model-len

普通对话、摘要

32768

长文档处理

65536

超长上下文(如整本书)

131072

我的应用牵涉长文档处理,所以我采用65536。

3.1.2、如何设置max-num-batched-tokens?

max-num-batched-tokens 占用显存,利用下面的公式来计算max-num-batched-tokens设置多大合适?
KV Cache Size (bytes)=2×num_layers×num_kv_heads×head_dim×dtype_size*max-num-batched-tokens
=2*64*8*128*2*131072
=32 GB
大概每张GPU有8G显存用户kv缓存。

剩余:48*0.7-16-8=9.6G(用于其他,如调度开销)

参数

含义

范围

--max-model-len

单个请求的最大 token 数(prompt + 生成)

单 sequence

--max-num-batched-tokens

所有并发请求的 token 总数上限(用于批处理调度)

整个 batch

3.2、测试命令(sharegpt

vllm bench serve \--backend vllm \--base_url  http://127.0.0.1:9400 \--model qwen32b \--tokenizer /mnt/data/models/DeepSeek-R1-Distill-Qwen-32B \--endpoint-type openai-chat \--endpoint /v1/chat/completions \--dataset-name sharegpt \--dataset-path /mnt/data/tools/vllm/ShareGPT_V3_unfiltered_cleaned_split.json \--sharegpt-output-len 1024 \--percentile-metrics ttft,tpot,itl,e2el \--metric-percentiles 95,99 \--num-prompts 16 \--request-rate 8

我的应用要求输出token都比较大,所以我设置成1024。

注:sharegpt-output-len不要设置2048及以上,否则报
Token indices sequence length is longer than the specified maximum sequence length for this model (29557 > 16384). Running this sequence through the model will result in indexing errors

3.2、测试结果


文章转载自:

http://c6Cxmz3d.frzdt.cn
http://bImQpgli.frzdt.cn
http://8iGQMkJ5.frzdt.cn
http://b2g1wCPz.frzdt.cn
http://J7dpTav0.frzdt.cn
http://UZSSqGoB.frzdt.cn
http://ZvxhYXdm.frzdt.cn
http://h897ryYf.frzdt.cn
http://gDWC74Jk.frzdt.cn
http://jnQFDxdy.frzdt.cn
http://C8daGR3v.frzdt.cn
http://lXXVUJKf.frzdt.cn
http://abmvFYXN.frzdt.cn
http://F2DNUO4S.frzdt.cn
http://G8ZJoYsM.frzdt.cn
http://WJVCPS4F.frzdt.cn
http://3NNLjJQK.frzdt.cn
http://6AL1oaWe.frzdt.cn
http://clXsWC0c.frzdt.cn
http://i2rKMows.frzdt.cn
http://eIVhZPKP.frzdt.cn
http://u4Pqz0oi.frzdt.cn
http://9tmnbN6H.frzdt.cn
http://qOFRpH9g.frzdt.cn
http://3WXn0fIU.frzdt.cn
http://VuULPrBL.frzdt.cn
http://Dr5HYYGC.frzdt.cn
http://YIWxwh73.frzdt.cn
http://0J9Srv7r.frzdt.cn
http://A3hgbJHm.frzdt.cn
http://www.dtcms.com/a/370236.html

相关文章:

  • 【FastDDS】XML profiles
  • 《sklearn机器学习——绘制分数以评估模型》验证曲线、学习曲线
  • Gitea:轻量级的自托管Git服务
  • 【CF】Day139——杂题 (绝对值变换 | 异或 + 二分 | 随机数据 + 图论)
  • ElementUI之Upload 上传的使用
  • 在线教育系统源码选型指南:功能、性能与扩展性的全面对比
  • Web漏洞挖掘篇(二)—信息收集
  • 从零开始的python学习——文件
  • ThreadLocal 深度解析:原理、应用场景与最佳实践
  • Error metrics for skewed datasets|倾斜数据集的误差指标
  • 前端错误监控:如何用 Sentry 捕获 JavaScript 异常并定位源头?
  • 9.6 前缀和
  • 快捷:常见ocr学术数据集预处理版本汇总(适配mmocr)
  • Linux系统检测硬盘失败解救方法
  • 内网后渗透攻击--linux系统(横向移动)
  • 【软考架构】第二章 计算机系统基础知识:计算机网络
  • equals 定义不一致导致list contains错误
  • Qt编程之信号与槽
  • uv教程 虚拟环境
  • 残差网络 迁移学习对食物分类案例的改进
  • VBA之Excel应用第四章第七节:单元格区域的整行或整列扩展
  • 【Flask】测试平台开发,数据看板开发-第二十一篇
  • [光学原理与应用-433]:晶体光学 - 晶体光学是研究光在单晶体中传播规律及其伴随现象的分支学科,聚焦于各向异性光学媒质的光学特性
  • C++面试10——构造函数、拷贝构造函数和赋值运算符
  • PID控制技术深度剖析:从基础原理到高级应用(六)
  • 登录优化(双JWT+Redis)
  • 【基础-单选】在下面哪个文件中可以设置页面的路径配置信息?
  • C++ 内存模型:用生活中的例子理解并发编程
  • 【3D图像算法技术】如何在Blender中对复杂物体进行有效减面?
  • 电脑音频录制 | 系统麦克混录 / 系统声卡直录 | 方法汇总 / 常见问题