如何保证 AI 应用的性能和稳定性?
- 标签:后端、编程导航
🏛 业务架构师
AI 应用的性能与稳定性,我的体系是**"分层缓存、预算控制、可观测、降级链"**十二字:
1. 性能(延迟与成本双优化)
- 流式输出:首 token 时间压到 1~2 秒——用户感知"在动"就不焦虑,这是体验的第一杠杆;
- 缓存分层:相同问题的答案缓存(语义缓存/精确缓存)、Embedding 结果缓存、工具调用结果缓存——重复请求不打模型,成本直降;
- 模型分级路由:简单任务(分类、重写)用小模型,复杂推理才用旗舰——成本可降 50% 以上,请求按任务类型自动路由;
- 预计算:RAG 的元数据标注、高频知识的向量化全部入库时算好——能前置的成本绝不放到在线链路。
2. 稳定性(对冲模型服务的不可控)
- 超时与重试:模型调用设明确超时(P99 预算),重试带退避——上游是别人的 API,纪律要更严;
- 多模型降级链:主模型超时/限流自动切备用(国外→国产),单一供应商=把业务可用性抵押给别人;
- 功能降级:RAG 检索失败退化为直接问答、工具失败退化为文字建议——AI 功能的部分可用优于整体不可用;
- 限流与配额:按用户/功能的并发与 token 预算限制——防止单个大任务拖垮共享资源。
3. 可观测(AI 特有的监控面)
- 业务指标:首 token 延迟、完整回答时长、token 消耗、成本/请求;
- 质量指标:答案引用率、用户点踩率、工具成功率——AI 应用要监控"答案质量"这个传统应用没有的维度;
- 告警:成本突增(异常调用模式)、错误率、供应商限流率。
一句话:AI 应用的稳定性本质是**"对外管理供应商风险,对内管理成本与质量"**——传统 SRE 手段 + 成本工程 + 质量监控三合一。
🏗 系统架构师
AI 应用的性能与稳定性治理,我按"延迟优化、成本控制、可用性、可观测"四个象限讲:
1. 延迟优化:
- 全链路流式(SSE):首 token 时间(TTFT)是体验核心指标,目标 < 2s;
- 模型分级路由:简单任务(路由、改写、摘要)用小/便宜模型,复杂推理用旗舰模型——延迟成本双降;
- 预检索优化并行化:多查询扩展、多路检索并行(CompletableFuture),不串行等;
- 上下文瘦身:记忆摘要压缩、无关历史裁剪——上下文每减 1K token,延迟与成本同步降。
2. 成本控制:
- token 预算(会话/日);高频问答缓存(语义相似命中直接回);批处理 embedding;
- 用量按租户/用户维度计量计费,超额限流。
3. 可用性(把 LLM 当不稳定外部依赖治理):
- 超时分级:连接、首 token、总时长分别设限;
- 重试 + 指数退避 + 熔断:模型 API 5xx/限流时自动切换备用供应商(多供应商配置热切换);
- 降级:模型全挂时返回知识库检索结果或友好提示,不白屏;
- Agent 循环护栏:最大步数、token 预算、循环检测(防死循环烧钱)。
4. 可观测:
- 每次调用打点:模型、token in/out、TTFT、总时长、缓存命中、工具调用链;
- 慢查询与失败率告警;对话 trace(含完整 prompt)留存排障;
- 质量侧:用户反馈(点赞/重新生成率)作为效果回归指标。
核心认知:LLM 应用 = 传统分布式系统 + 一个极慢极贵方差极大的外部依赖——传统 SRE 手段(超时/重试/降级/限流/监控)全部适用,再加"token 是新 QPS"的成本维度。
💻 全栈开发专家
性能(感知延迟是核心指标):
- 流式优先:首 token 时间(TTFT)决定体感,长任务先回"正在分析...";
- 多级缓存:相同问题语义缓存(embedding 相似度 > 0.95 直接回缓存答案);RAG 结果缓存(知识库没变,检索结果复用);
- 并行化:RAG 检索和意图判断并行;多路查询扩展并行调用;
- 模型分级:简单任务小模型(快、便宜),复杂任务强模型;embedding 用批量接口。
稳定性(AI 应用特有的故障面):
yaml
# 模型调用的韧性配置(自定义网关层)
timeout: 60s # 读超时按 LLM 特性放宽
retry: 2 (on 429/5xx) # 指数退避
circuit-breaker: # 单厂商错误率>50% 熔断 30s
fallback: deepseek -> qwen -> ollama # 多模型降级链- 上游限流保护:厂商 QPM 限制,网关层令牌桶 + 排队;
- token 预算:按用户/会话设配额,防失控烧钱;上下文窗口截断策略保证单次调用成本上限;
- 流式断连处理:客户端断开终止上游订阅;断线重连续传(前端带已收到的位置);
- 可观测三件套:每次调用记录模型、延迟(TTFT/总时长)、token 数、错误码——监控面板按模型/场景聚合,成本异常和延迟劣化第一时间发现;
- 兜底体验:模型全挂时返回预设话术 + 工单入口,别让用户对着转圈。