跳转至

Benchmark 与工具

不同 Benchmark 的结论可能相互矛盾,原因往往是 Workload 不同。报告性能数据时,必须同时说明 Workload 特征。

常用工具

vLLM Benchmark Suite

vLLM 自带的压测脚本,是目前最广泛使用的推理引擎基准工具。

  • benchmark_serving.py:模拟真实服务场景,支持并发请求、固定 QPS、ShareGPT 数据集
  • benchmark_throughput.py:离线吞吐测试,批量处理所有请求,专注最大 token 吞吐
  • 支持采集:TTFT、TPOT、E2E latency、requests/s、tokens/s
  • 使用 ShareGPT 数据集时可模拟真实多轮对话分布
python benchmark_serving.py \
  --model meta-llama/Llama-3-70b-instruct \
  --dataset-name sharegpt \
  --num-prompts 1000 \
  --request-rate 10

SGLang Benchmark

SGLang 提供类似 vLLM 的 benchmark 脚本,额外支持:

  • RadixAttention 的 prefix cache 命中率统计
  • 多并发下的 RadixTree 效率分析

LLMPerf

MLCommons 维护的标准化推理性能测试框架:

  • 支持多种模型和推理引擎
  • 输出结构化 JSON 报告,便于跨框架对比
  • 适合合规测试和供应商对比场景

合成 Workload 生成

当真实数据不可用或需要控制变量时,合成 Workload 是必要手段:

# 控制 prefix 共享比例的合成请求生成示意
def gen_requests(shared_prefix_len, unique_suffix_len, n_requests):
    shared = "X" * shared_prefix_len
    return [shared + random_suffix(unique_suffix_len) for _ in range(n_requests)]

关键变量: - Prompt 长度分布:短(< 1K)、中(1K–10K)、长(10K+) - Output 长度分布:短(< 100)、中(100–1K)、长(1K+) - Prefix 共享比例:0%(完全随机)→ 100%(全员相同 system prompt) - 并发数:1 → N(揭示排队和抢占效应)


SCBench:KV 生命周期视角的评估框架

SCBench(Microsoft, 2024, arxiv 2412.10319)是目前最系统化的 KV cache 评估基准,将 KV 评估拆解为四个生命阶段:

生命周期阶段 SCBench 对应场景 评估内容
Generation 生成阶段的 KV 写入 首次 Prefill 和 Decode 的 KV 产生效率
Compression KV 压缩/剪枝后保留效果 压缩方法在多轮复用下的退化程度
Retrieval 长上下文中检索特定信息 压缩/剪枝方法对远距离信息检索的影响
Loading KV 重载到新请求 跨请求复用时 KV 的有效性

核心发现:

  • Sub-O(n) 内存方法(StreamingLLM、SnapKV 等)在单轮测试中表现尚可,但在多轮场景下系统性退化——压缩是 query-conditioned 的,新 query 可能使之前丢弃的 KV 变得关键
  • O(n) 稀疏注意力方法在多轮复用场景下保持或提升性能
  • Attention 分布在长生成过程中发生漂移,早期上下文的注意力可能随时间衰减

覆盖矩阵: 8 种方法 × 6 个模型 × 12 个任务,是目前覆盖最广的 KV cache 评估基准。

来源:主站 reading SCBench


Agent + KV Cache 评估:当前空白

Agent 场景的 KV cache 评估需要同时关注系统指标和任务成功率,但目前没有统一基准:

现有 Benchmark 侧重 缺失
SCBench 系统效率(命中率、压缩率) 任务成功率
LoCoBench-Agent 多轮交互任务成功率 系统指标
WebAgent 系列 Web 操作成功率 KV cache 效率

当前研究空白: 尚无 benchmark 同时结合系统指标(cache hit rate、TTFT、压缩率)和 agent 成功率(工具调用准确率、任务完成率)。

来源:主站 essay KV Cache Agent 长上下文 Benchmark

Agentic 评估的新指标

Agentic serving 的新论文把评估从"单请求缓存命中率"扩展到 workflow 和 memory pressure:

指标 用途 代表来源
middle-phase hit-rate trough 衡量 agent 批处理进入中段后是否发生 cache thrashing CONCUR
cache-compute ratio (GB/PFLOP) 判断 append-prefill 是算力瓶颈还是存储 I/O 瓶颈 DualPath
sustained working set 判断 HBM prefix cache 是否足够,还是需要 L2/L3 tier LMCache MI300X
task success under quant/offload 防止只看 TTFT/吞吐而破坏 tool call / reasoning 正确性 TriAxialKV、语义感知内存层级

评估矩阵至少需要同时扫三轴:prefix 复用率、HBM 利用率 / working set、任务成功率。只固定 cache hit rate 的合成 benchmark 会低估 L2 cache;只跑系统吞吐会高估 aggressive eviction / quantization。

来源:主站 field-note LMCache 在 AMD MI300X 上的部署实录,主站 essay Agentic 推理的性能重构


Benchmark 使用建议

不要只跑单点指标。合理的评估矩阵:

场景 关键指标 关键变量
低负载单请求 TTFT、TPOT Prompt 长度
中等并发 吞吐、命中率 并发请求数
高负载压力 尾部延迟、Recompute 率 KVCache 利用率
Prefix Cache 专项 命中率 vs TTFT 降幅 Prefix 共享比例
Offload 专项 换入延迟、带宽利用率 HBM 容量限制
Agent 专项 task success、middle-phase hit-rate trough、working set agent trace、工具调用、并发用户数

数据集选择:

  • ShareGPT:真实多轮对话分布,Prompt 长度分布接近生产
  • 合成 Workload:控制变量,用于诊断单一因素的影响
  • 私有生产 Trace:最真实,但难以公开对比

关联章节

版本历史

版本 日期 说明
v0.2 2026-06-02 新增 agentic KVCache 评估指标:middle-phase trough、cache-compute ratio、sustained working set 与任务成功率联测
v0.1 2026-05-14 从评估方法总览拆分,补充工具使用示例与 Agent 评估空白分析