01每个指标测到了什么
不要把最小组件的测量值放到整个请求旁边。
- encode + scores
- 编码路由文本并计算候选得分,是微基准;不包含完整的模式解析、成本策略和供应商调用。
- Router.decide
- 完整路由调用还包含模式选择、会话文本构造、描述向量组合、成本估计与候选排序。它选择模型,但不执行模型生成。
- 首 token 与完整响应
- 在客户端测量请求发出到首个有效内容、以及请求完成的时间;包含网络和上游服务行为,与路由器微基准分别报告。
- 01
固定环境
记录检查点、模型池、编码器、精度和实际加载设备。不能只记录传入的 device 参数,应核对模型最终所在设备。
- 02
分开冷启动与热态
单列进程首次调用,并在说明预热方式后统计热态。检查点加载、编码器初始化与请求决策也应分开计时。
- 03
覆盖实际输入与负载
测试代表性的会话长度与候选池,保留分位数和极值。组件测试之后,再增加并发、到达模式与客户端超时的服务测试。
03从症状回到测量层
先增加能区分原因的观测,再决定改配置或改代码。
- 长输入明显变慢
- 对照编码时间与完整 decide 时间,检查路由文本长度和截断策略。缩短路由输入可能改变选模质量,应同时评测。
- 首个请求慢,后续正常
- 检查初始化、权重载入、缓存与设备预热。把冷启动单独展示,不要用热态中位数代表首次访问。
- 组件正常,在线尾延迟高
- 补测网关排队、上游首 token、重试与网络。控制并发和请求到达模式,保留失败和超时样本。
- 保留比较条件
- 归档输出 JSON、命令、软件版本和设备信息。当前公开计时来自 crb-gen1,不能写成 crb-gen2 的重新测量结果。
python3 scripts/bench_decide.py \
--pool configs/pool.coderouterbench.yaml \
--checkpoint ~/.enthalpy/checkpoints/crb-gen1 \
--device cpu --out reports/router-latency.cpu.json