# 03B 本地 RAG 容量、并发与高可用验收表

> 对应课程：L2-08C。先在目标设备上压测，再填写最终值；不要把模型“能加载”当成“能稳定并发”。

## 1. 业务负载与 SLO

| 项目 | 目标 / 实测 |
| --- | --- |
| 使用人数 / 租户数 |  |
| 峰值请求/分钟 |  |
| 平均输入 / 输出 token |  |
| TTFT p95 |  |
| 总延迟 p95 / p99 |  |
| 可用性目标 |  |
| RPO / RTO |  |

## 2. 设备与内存预算

| 组件 | 型号 / 版本 | 量化格式 | 常驻内存 | 单并发增量 | 峰值 | 安全水位 |
| --- | --- | --- | ---: | ---: | ---: | ---: |
| 生成 LLM |  |  |  |  |  |  |
| KV Cache |  |  |  |  |  |  |
| Embedding |  |  |  |  |  |  |
| Reranker |  |  |  |  |  |  |
| 向量索引 |  |  |  |  |  |  |
| 系统与工作区 |  | 不适用 |  |  |  |  |

```text
总占用 ≈ 模型常驻 + 活动请求 KV + 批处理工作区
       + Embedding / Reranker + 向量索引 + 服务进程 + 系统预留
```

## 3. 量化质量对照

| 组件 / 格式 | 质量基线 | 量化后质量 | 差值 | p95 延迟 | 峰值内存 | 是否采用 |
| --- | ---: | ---: | ---: | ---: | ---: | --- |
| LLM FP16 / BF16 |  |  |  |  |  | 基线 |
| LLM Q8 / Q6 |  |  |  |  |  |  |
| LLM Q5 / Q4 |  |  |  |  |  |  |
| Embedding / Reranker INT8 |  |  |  |  |  |  |
| Vector Scalar / Binary |  |  |  |  |  |  |

质量至少记录 Answer pass rate、Recall@K、MRR / nDCG、Groundedness 和 Citation Accuracy 中适用的指标。

## 4. 并发压测矩阵

| 并发 | 输入长度 | 输出长度 | TTFT p95 | 总延迟 p95 | 单用户 token/s | 总吞吐 | RAM / VRAM 峰值 | 错误率 | 结论 |
| ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- |
| 1 |  |  |  |  |  |  |  |  |  |
| 2 |  |  |  |  |  |  |  |  |  |
| 4 |  |  |  |  |  |  |  |  |  |
| 8 |  |  |  |  |  |  |  |  |  |

- 实测安全活动生成数：
- 生产配置（保留 20%～30% 余量）：
- 最大等待队列 / 队列超时：
- 最大输入 / 输出 token：
- 最大 Dense / Sparse `top_k` 与 Rerank 候选数：

## 5. 分层并发与降级

| 层 | 并发 / 批量上限 | 超时 | 高水位 | 降级 / 拒绝动作 |
| --- | ---: | ---: | --- | --- |
| API 入口 |  |  | 队列长度 | 429 / 503 + Retry-After |
| Embedding |  |  | 批次等待 | 缩小批次或排队 |
| 向量 / BM25 |  |  | p95 / CPU | 减少 top_k / 限制过滤范围 |
| Reranker |  |  | 超时率 | 降级到混合检索排序 |
| LLM Prefill |  |  | KV / VRAM | 限制长上下文 / 小模型路由 |
| LLM Decode |  |  | 活动序列 | 有界队列 / 快速拒绝 |
| 文档导入 |  |  | 在线延迟 | 暂停后台任务 |

## 5A. 忙时 / 闲时资源调度

| 任务 | 优先级 | 忙时配额 / 动作 | 闲时配额 / 动作 | 检查点与恢复方式 |
| --- | --- | --- | --- | --- |
| 在线问答 | P0 |  |  |  |
| 报告 / 批量生成 | P1 |  |  |  |
| Embedding / Rerank | P1 / P2 |  |  |  |
| 文档解析 / OCR | P2 |  |  |  |
| 索引重建 / 优化 | P2 |  |  |  |
| 评测 / 备份 | P2 |  |  |  |

- 忙时保护时段：
- 实时触发条件（队列 / TTFT / KV / VRAM）：
- 退出保护条件与稳定窗口：
- P2 任务最大批次与取消延迟：

## 5B. 向量化、重排与生成模型归档

| 角色 | 模型与 revision | 量化 / dtype | 维度 / 上下文 | 指令版本 | 许可复核 | 最终用途 |
| --- | --- | --- | --- | --- | --- | --- |
| Embedding |  |  |  |  |  |  |
| Reranker |  |  | 不适用 /  |  |  |  |
| 忙时生成模型 |  |  |  |  |  |  |
| 闲时 / 高质量模型 |  |  |  |  |  |  |

- 热 collection / alias：
- 温归档快照：
- 冷数据原文与 Chunk 位置：
- `chunker_version` / `corpus_version` / `content_hash`：

## 5C. 文档入库与召回优化流程验收

| 环节 | 系统产物 | 人工确认点 | 异常与停止条件 | 是否通过 |
| --- | --- | --- | --- | --- |
| 多文件导入 | 文件清单、hash、来源、版本 | 资料所有者与允许用途 | 加密、损坏、不支持或来源不明 |  |
| AI 分类 | 分类、标签、目标知识库、ACL、置信度 | 低置信度与敏感资料 | 权限不明或多版本冲突 |  |
| 解析清洗 | 解析文本、页码、表格、标题结构 | 原文与解析抽查 | 空白页、乱码、结构丢失 |  |
| Chunk / 向量 | 边界、父子块、token、元数据、索引版本 | 拆分与元数据是否保留语义 | 超长块、表头丢失、版本混用 |  |
| 召回评测 | A/B Top-K、分数、来源、耗时、相关性记录 | 坏例、权限和过期判断 | 越权、无结果或质量低于基线 |  |
| 发布回滚 | 基线、候选、门槛、alias、快照 | 发布、暂停或回滚决策 | 未达门槛禁止发布 |  |

- 课程案例 / 生产流程：
- 分类人工修改是否进入审计：
- 相关 / 不相关评测记录位置：
- 影子索引与生产 alias：

## 6. 单点与高可用清单

| 组件 | 当前副本 / 分片 | 单点风险 | 故障时影响 | 目标方案 | 演练结果 |
| --- | --- | --- | --- | --- | --- |
| LB / API Gateway |  |  |  |  |  |
| RAG Orchestrator |  |  |  |  |  |
| 消息队列 |  |  |  |  |  |
| Embedding / Rerank |  |  |  |  |  |
| LLM 推理池 |  |  |  |  |  |
| 向量数据库 |  |  |  |  |  |
| 元数据数据库 |  |  |  |  |  |
| 对象存储 / 原文 |  |  |  |  |  |
| 指标 / 日志 / Trace |  |  |  |  |  |

## 7. 故障演练

- [ ] 关闭一个推理副本，流量可切换且新请求继续服务。
- [ ] 关闭一个向量节点，副本仍可检索。
- [ ] Reranker 超时能按规则降级并留痕。
- [ ] 队列满时快速拒绝，不发生 OOM 或无限等待。
- [ ] 新模型 / 新索引失败时能切回上一版本。
- [ ] 原始文档、配置和模型版本可重建向量索引。
- [ ] 一个租户达到配额时不影响其他租户。
- [ ] 达到 RPO / RTO 目标并记录实际恢复时间。

## 8. 上线结论

- 最终模型 / 量化 / 索引版本：
- 最终安全并发和队列：
- 已知限制：
- 回滚版本与负责人：
- 是否允许上线：是 / 否 / 限量试用
- 验收日期与签字：
