Skip to content

【RFC】【性能测评】AISBench性能测评能力增强 #284

@GaoHuaZhang

Description

@GaoHuaZhang

背景描述

【AISBench】【性能测评】合成负载与多模态 Token 计数增强能力建设

需求背景:大模型服务性能测评已从“固定文本请求”演进为“分布可控的合成请求 + 多模态混合负载 + 可审计的 token 计量”。AISBench 在 tokenid 合成分布、多模态负载建模和服务端返回 token 长度解析方面能力不足,难以支撑真实业务压测与横向对比。

需求描述:在 AISBench 中建设面向性能测评的统一能力,覆盖:

  • tokenid 合成数据集 自定义分布
  • 多模态请求自定义负载;
  • v1/chat/completions(需求文档中为 compeletions,实施以实际 API 路径为准)服务端返回多模态输入/输出 token 长度 解析与统计

形成可配置、可复现、可验证的性能评测链路。设计可参考 aiperf_synthetic.md / AIPerf 的分布参数化、混合负载、随机种子、多模态 batch 等机制。

验收标准

  • 三个子模块均完成并通过各自验收标准。
  • 三项能力均可通过统一命令行配置启用,重复执行统计口径一致。
  • 输出具备样本级与聚合级追踪信息,支撑性能定位与版本回归。

方案设计

整体设计思路

将性能压测输入生成、请求构造与响应计量拆为三层:分布与负载模型(配置)→ 样本生成器 → 执行与 stats 管线。与 AISBench 现有性能 benchmark 入口及结果产物规范对齐。

flowchart TB
  subgraph config [配置层]
    M1[子模块1 Tokenid分布]
    M2[子模块2 多模态负载]
    M3[子模块3 Usage解析]
  end
  subgraph runtime [运行时]
    Gen[合成样本生成]
    Req[请求下发]
    Parse[响应解析与计数]
  end
  M1 --> Gen
  M2 --> Gen
  Gen --> Req
  Req --> Parse
  M3 --> Parse
  Parse --> Report[聚合报表与落盘]
Loading

子模块 1:Tokenid 合成数据集自定义分布能力

目标:模拟真实业务长短请求混合(ISL/OSL 分布可控、可复现)。

方案要点

  • 参数模型:mean/stddev、混合 (ISL, OSL) 分布(多组长度 + 概率权重)、随机种子、前缀提示池(prefix pool)、确定性生成。
  • 采样器:解析混合 (ISL, OSL) 配置,生成长度序列并接入合成 tokenid 生成器。
  • 接入:生成样本可被现有性能执行链路直接消费,无需手工转换。

验收要点:配置体现目标分布趋势;混合分布稳定采样;固定种子重复生成一致序列;与历史纯文本场景兼容。

子模块 2:多模态请求自定义负载能力

目标:支持文本/图像/音频/视频参数化负载及混合编排。

方案要点

  • 按模态配置样本规模、分布参数、batch 组合;参数模型建议按模态分组扩展。
  • 多模态样本生成器:产出合法请求实体与元信息。
  • 混合负载编排器:按比例或规则组合不同模态请求,统一下发压测。
  • 统计:分模态聚合指标与基础观测字段输出。

验收要点:四模态可配置生成;混合负载稳定执行;结果可分模态统计;配置可复用。

子模块 3:v1/chat/completions 多模态输入输出 Token 长度解析计数

目标:从服务端响应中稳定提取输入/输出 token 用量,支撑 TPS、分段时延与成本估算。

方案要点

  • 响应适配层:兼容不同服务端 usage/token 字段命名与嵌套结构;与现有解析流程解耦。
  • 归一计数:多模态输入/输出 token 长度统一口径;建议同时保留原始字段与归一字段便于审计。
  • 容错:缺失字段、异常结构不阻断整批任务;可观测告警(样本标识、异常类别、原始字段摘要)。
  • 落盘:样本级与汇总级接入标准性能报表。

验收要点:多模态场景下稳定提取;容错不影响任务完成;相同响应条件下统计稳定一致。

影响范围

  • 性能测评模块的配置 schema、生成器与报表字段扩展;需注意与旧配置 backward compatible。

使用说明

  1. 子模块 1 配置:文档化 meanstddevseq_dist(或等价)、random_seed、前缀池大小与长度;提供结构化与简写两种配置形式(若实现)。
  2. 子模块 2 配置:各模态宽高、时长、视频参数、batch size、混合比例或策略。
  3. 子模块 3:指明服务端类型或字段映射策略;告警日志级别与采样开关。
  4. 约束:随机种子固定才可复现同一合成序列;多模态压测对带宽与存储资源要求高,需在文档中说明最小环境。

测试设计

单元测试

  • 分布参数校验与边界;混合 (ISL, OSL) 采样分布蒙特卡洛或统计检验(可选)。
  • 随机种子:同一 seed 生成序列字节级或序列级一致。
  • 响应解析:构造多种 usage JSON 分支;缺字段降级路径。
  • 归一计数:给定 mock 响应,输出符合预期的总量与分项。

集成测试

  • Tokenid 合成样本接入压测链路端到端跑批。
  • 多模态混合负载小规模并发执行无构造失败。
  • Token 统计写入标准产物并可被报表读取。

端到端 / 验收对照

  • 子模块 1:分布趋势与固定种子复现满足验收描述。
  • 子模块 2:分模态统计字段存在且合理。
  • 子模块 3:容错场景整批成功完成且告警可追溯。

需求拆分验收点

  • 参数模型、混合分布解析、合成生成器、确定性前缀、多模态参数模型与生成器、混合编排、分模态统计、解析适配、归一计数、容错告警、落盘联动(见内部需求拆分)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions