01 · 推理服务综合项目
项目类型:综合项目 所属模块:模块一·综合项目
项目定位
本项目把推理优化、性能优化、量化与部署专题中的方法组合起来,完成一个可复查的推理服务方案。重点不是单独实现某个算子或替换某个 backend,而是回答:在给定模型、请求流量、硬件和质量约束下,怎样选择方案并证明它值得交付。
项目结论应同时覆盖请求性能、显存容量、输出质量、运行稳定性和单位成本,不能只依据一次吞吐结果。
项目问题
给定一个目标模型和一组代表性请求,比较 baseline 与候选推理方案,形成最终的 accept / tune / reject 决策。
至少需要明确:
- 模型与权重格式:模型规模、dtype、量化格式和最大上下文长度;
- 服务条件:硬件、backend、并发、请求长度、输出长度和调度策略;
- 质量要求:任务质量、数值误差、拒答或格式约束;
- 性能目标:TTFT、TPOT、P50/P99、吞吐和峰值显存;
- 交付约束:启动方式、依赖版本、回滚方案和复现实验入口。
推荐项目流程
text
定义 workload
→ 建立服务 baseline
→ 分析 Prefill / Decode / KV Cache
→ 选择候选优化组合
→ 进行 CPU 机制验证与真实服务 benchmark
→ 检查质量、稳定性和容量边界
→ 估算单位成本
→ 输出部署决策建议的候选方案
候选方案不要求全部实现,应根据 baseline 证据选择能够解释瓶颈的方案:
| 候选方向 | 主要解决的问题 | 需要同时观察的代价 |
|---|---|---|
| KV Cache 管理与分页 | 并发容量、碎片和缓存复用 | 命中率、维护开销、TTFT 与质量 |
| Prefix Cache / 请求复用 | 共享前缀带来的重复计算 | 命中率、最长前缀、调度复杂度 |
| Continuous Batching | 请求到达不均和 GPU 空闲 | 排队时间、P99、调度开销 |
| 量化与低精度执行 | 权重容量、带宽和吞吐 | 质量变化、kernel/backend 支持 |
| Backend 或引擎切换 | 调度、算子和运行时效率 | 兼容性、启动成本、维护与回滚 |
| Prefill / Decode 分离 | 不同阶段的资源冲突 | 通信、同步、部署复杂度和成本 |
证据要求
Baseline 与 workload
baseline 和 candidate 必须使用同一模型、请求集、硬件、dtype、并发、warmup 和重复次数。每次实验至少保存配置、版本、日志和结果 JSON,避免只记录最终均值。
核心指标
| 证据类别 | 最少记录的指标 | 用途 |
|---|---|---|
| 请求性能 | TTFT、TPOT、端到端延迟、P50/P95/P99 | 判断交互体验与长尾风险 |
| 服务吞吐 | output tokens/s、request/s、有效完成量 | 判断资源利用和容量收益 |
| 显存与容量 | 峰值显存、KV Cache 占用、并发上限、OOM 边界 | 判断方案是否真正扩大服务容量 |
| 阶段归因 | Prefill、Decode、排队、通信和同步时间 | 解释收益来自哪里、代价转移到哪里 |
| 质量与稳定性 | 质量集、错误率、超时率、结果一致性 | 防止性能收益掩盖功能回归 |
| 成本 | GPU 时间、单位请求成本、单位输出 token 成本 | 支持最终部署与 TCO 决策 |
最终交付物
项目收口至少包含以下内容:
- 一份 workload、环境和版本清单;
- 一份 baseline / candidate 对照表;
- 一份显存、延迟、吞吐和质量证据记录;
- 一份瓶颈归因与失败实验记录;
- 一份候选方案成本和维护代价比较;
- 一项明确的
accept / tune / reject决策,以及适用条件和回滚路径。
与前面专题的连接
- 推理优化:请求生命周期、Prefill、Decode、KV Cache、Serving 和 backend;
- 性能优化:benchmark、profiling、显存、通信、I/O 和成本证据;
- 量化与压缩:低比特表示、质量评估和部署格式;
- 部署与异构系统:模型产物、运行时、设备协同和交付约束。
本项目不要求这些专题与项目章节一一对应;它们分别提供机制、方法和证据,项目负责把它们组合成一个可交付结论。
