W9 · 部署 / 压测 / 性能 · 打卡清单
把 Agent 从「能跑」推到「能上线」:定契约 → 压吞吐 → 路由/缓存优化 → 拿到生产级性能数据。全部纯本地可跑,产出可写进简历的性能报告。
代码练习 · 第 9 周(M2)预估 6–7 小时含 FastAPI(可选)
本周里程碑(结束时你要能说)
- 有一份「基线 vs 优化」四象限性能报告:吞吐 / 延迟 / 成本 / 稳定
- 能口述上线前四问:TPS 够吗 / P95 在预算内吗 / 成本怎么随规模走 / 稳定性兜底如何
- 会讲模型路由(简单走便宜档)与 Prompt 缓存(幂等才缓存)两大省钱点
- 知道 Docker 多阶段、vLLM 自部署的取舍与大致账目
Day 1API 契约设计 + FastAPI 封装文件:day1_api.py / deploy/server.py
任务
✔ 自查:坏输入返回机器可读 code;正常响应含模型/耗时/成本。
运行
cd agent-learning-w9
python day1_api.py
重难点:把「先定契约」当纪律。入参 min( prompt, cacheable, model ),出参含 answer/model/latency_s/cost/tokens。固定 JSON 契约是「可并行开发 / 可压测 / 可被前端单独接」的起点,也是无状态水平扩容的前提。
Day 2并发压测:TPS / P50/P95/P99 / 错误率文件:day2_loadtest.py
任务
✔ 自查:优化组 TPS 更高且 err=0;你能解释 concurrency 的含义。
运行
python day2_loadtest.py
重难点:三口径压测。吞吐( TPS)、延迟(P50/P95/P99)、稳定(错误率)三者都要看。P95/P99 最能暴露长尾抖动——设置超时要以 P99 为据。生产换 Locust/k6,但口径一致。坑:同步 time.sleep 会阻塞事件循环,让「并发」退化成串行——这点面试很加分。
Day 3模型路由:分档选模型省成本文件:day3_router.py / deploy/router.py
任务
✔ 自查:cost_rt < cost_pro 且 lat_rt < lat_pro;你能讲出路由的取舍。
运行
python day3_router.py
重难点:省成本的本质 = 按需求分级供给。大多数请求是 simple,把这一大头打到便宜档(fast-mini),贵模型( pro-max)只服务真正难的请求。不牺牲大多数体验,成本大头被砍——这是 LLM 降本第一板斧。
Day 4Prompt 缓存:命中率 + 省钱/省延迟文件:day4_cache.py
任务
✔ 自查:命中率 ≥20%(热点流量下),且你能解释命中如何 0 成本 0 延迟。
运行
python day4_cache.py
重难点:缓存是「第二个省钱板斧」。重复/热门请求直接复用结果,latency≈0、cost≈0。工程要点:命中率上限由「长尾重复度」决定;生产务必 只缓存幂等查询(不能缓存会变的数据),并加 TTL 与 LRU 防止陈旧和无限膨胀。
Day 5Docker 容器化:多阶段构建文件:day5_docker.py
任务
✔ 自查:validate_dockerfile 全过;你能讲 6 个 must_have 每一项的理由。
运行
python day5_docker.py
重难点:多阶段 = 又小又安全。阶段一装依赖、阶段二只拷「干净的依赖+代码」→ 镜像更小、攻击面更小。运行用户非 root = 最小权限(呼应 W8 安全)。HEALTHCHECK 是 Docker/编排/压测三方共用同一个「就绪信号」。
Day 6vLLM 自部署与参数估算文件:day6_vllm.py
任务
✔ 自查:throughput > 1 RPS;你能为「要不要自部署」给出理由。
运行
python day6_vllm.py
重难点:自部署不是缺省选项,是权衡。取舍三看重:延迟/合规/规模化成本。vLLM 的价值在吞吐——continuous batching 把多请求动态拼批,谁先产出谁先走,避免 naive 批处理的「最慢木桶」。面试能算「单卡 RPS」是加分项。
Day 7综合性能报告:基线 vs 优化文件:day7_report.py
任务
✔ 自查:utput 多维度全优且 err=0;你能报出优化前/后关键数字。
运行
python day7_report.py
重难点:把「零件」变「谈资」。这页报告 = 你「能上线」的证据:吞吐提升、延迟改善、成本下降、稳定无错。面试被问「做过优化吗」——就答「我加路由+缓存,TPS 4.6倍、P95 降 6成、成本省 7 成」。
本周自测题(面试预热)
- Q:凭什么你的优化能上线?→ 回归闸门( W8 ) + 这套压测报告( W9 )给出量化依据
- Q:模型贵,怎么省钱?→ 路由分级 + 幂等缓存 + 观测成本看板(三板斧)
- Q:服务会崩吗?→ 无状态可扩容 + 压测找瓶颈 + P99 超时兜底 + W7 熔断