大模型应用性能优化
大模型 API 调用慢(2-5 秒)、贵(按 Token 计费),如何在保证效果的前提下优化性能和成本?
一、大模型应用的性能瓶颈
- 1.1 延迟——大模型推理本身慢
- 1.2 成本——每次都调 API 很贵
- 1.3 吞吐——API 有并发限制
二、语义缓存(Semantic Cache)
- 2.1 原理——相似的问题,答案也相似
- 2.2 不是精确匹配——余弦相似度 > 0.95 就复用
- 2.3 Redis + Embedding 实现
- 2.4 Spring AI 的缓存支持
- 2.5 缓存命中率和成本节省
三、SSE 流式响应
- 3.1 普通调用——等 5 秒,一次性返回
- 3.2 SSE(Server-Sent Events)——边生成边返回
- 3.3 用户体验——从”等 5 秒”变成”马上看到第一个字”
- 3.4 Spring AI 的 SSE 实现
- 3.5 前端 SSE 消费——EventSource API
四、请求合并(Batching)
- 4.1 多个请求合并为一次 API 调用
- 4.2 减少 API 调用次数
- 4.3 实现——队列 + 定时批处理
五、Token 优化
- 5.1 Prompt 精简——去掉不必要的上下文
- 5.2 摘要历史对话——不要无限累积
- 5.3 限制输出长度——
max_tokens - 5.4 计费模型理解——输入 Token vs 输出 Token
六、并发控制
- 6.1 API 的 RPM/TPM 限制
- 6.2 令牌桶限流——Guava RateLimiter
- 6.3 降级策略——主模型限流后切备用模型
七、总结
- 语义缓存 + SSE + 请求合并 = 成本降低 50%+
- AI 应用的性能优化是一个新的技术方向
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 谜思录!