9. 最佳实践
从 Perplexity 案例提炼出的、可直接复用到任何 AI 应用基础设施的九条原则。每条标注信息来源强度(一手 / 访谈 / 教学推导)。
9.1 设计原则
1. 把单次请求成本写成公式,并公开到定价层。 Perplexity 的定价表(按 token、按搜索次数、按请求档位)本质是把成本模型产品化【一手】。可复用动作:上线前先把"单次请求成本 = Σ 各阶段成本"算出来,并保证定价结构能反映它。
2. TTFT 与吞吐分开度量、分开优化。 访谈明确二者是 serving 的两个独立指标【访谈】;Mini Demo 场景 3 显示用户只读开头时 TTFT 占感知延迟 64%。可复用动作:监控面板第一行放 P50/P90/P99 的 TTFT 与整段时延两个族,均值只作参考。
3. 对每一层追踪 tail latency(P90/P99),不只均值。 借自 Google 的 "The Tail at Scale",访谈明确搜索层与 LLM 层都要追踪【访谈】。可复用动作:任何依赖 N 个下游调用的环节,端到端 p99 由最慢环节决定,容量规划按 p99 做。
4. 模型路由做成显式产品参数。 Agent API 的 fast/low/high/xhigh 预设把成本-质量权衡交给调用方【一手】;阈值路由教学模型显示可同时优于两种极端策略(Mini Demo 场景 1)。可复用动作:网关支持按请求标注质量档位,默认档要按"满足下限的最便宜模型"自动选择。
5. exact + 语义缓存是毛利率的隐藏杠杆。 教学演示:高重复负载下 99% 成本节省(Mini Demo 场景 2)。可复用动作:缓存键先做规范化;语义缓存设阈值 + 按查询类别分级 TTL(新闻类短、百科类长)。
6. 重排候选池由质量-延迟拐点决定,不是越大越好。 教学模型显示池子从 12 扩到 24 质量饱和、延迟线性上涨(Mini Demo 场景 4)。可复用动作:扫池子大小画出 NDCG-延迟曲线,选拐点;用 WAND 式剪枝扩大"有效召回"而不是物理候选数。
7. 自建边界划在差异化层,商品层一律外购。 检索(Photon)、热存储(CobbleDB)、Agent 沙箱(SPACE)自建——这些是答案质量与安全的根;基础模型、通用云计算、通用 KV 外购。可复用动作:评估"自建 X"时先问"X 是不是我们的差异化来源",不是就别自建(参考 CobbleDB 只替换热路径、不替换全部存储的判断)。
8. 构建与查询永远分离。 Photon 的索引构建节点与查询节点分离、滚动发布 + 真实流量回放预热【一手】;CobbleDB 的 Pillar/Lorry/在线三层同理。可复用动作:任何"离线批量 + 在线服务"的系统,把发布做成"下流量 → 预热 → 就绪检查 → 回切",回滚路径与发布路径同构。
9. Agent 凭证与执行环境物理隔离,并把对抗测试常态化。 SPACE 的 VM 级隔离、沙箱外凭证管理、公开的逃逸对抗结果【一手】。可复用动作:Agent 能触达的每个外部服务都走短期凭证 + 出站白名单;红队发现的问题修复后复测,并考虑向生态披露。
9.2 何时学、何时不学
| 学 Perplexity | 不学 Perplexity |
|---|---|
| 推理成本是主要成本中心的 AI 应用(搜索、问答、Agent) | 训练效率是命脉的实验室(学 DeepSeek 更合适) |
| 需要多模型对冲的网关层设计 | 需要单模型极致优化(学 DeepSeek 的推理内核) |
| 检索 + 生成混合负载的延迟预算制定 | 万卡训练网络(学 Google/xAI) |
| Agent 产品的沙箱与凭证架构 | —— |
9.3 决策清单
上线一个"类答案引擎"产品前,用这十个问题自查:
- 单次请求成本公式写出来了吗?各阶段占比量化了吗?
- TTFT 与整段时延的 P99 分别达到多少?瓶颈在哪一层?
- 有无 exact + 语义缓存?TTL 按查询类别分级了吗?
- 模型路由是显式档位还是隐式硬编码?fallback 路径存在吗?
- 检索 p99 多少?索引发布能否在分钟级完成且不打断查询?
- 热存储的 p50/p99 与成本是什么?有没有 hedged reads 之类的慢副本吸收机制?
- 生成侧有没有"自推理"容量兜底,还是 100% 依赖第三方 API?
- Agent 执行是否有 VM 级隔离?凭证在沙箱内可见吗?
- 抓取/数据来源的合规边界明确吗?robots.txt 与版权风险进了架构评审吗?
- 定价结构是否反映成本结构(按 token/按次/按档位)?
下一章 面试题 用 14 道题检验本章吸收程度。