Skip to content

成本与性能优化

工程落地第四站:经济性。成本构成、生成侧优化、检索侧优化、延迟与吞吐。

Updated View as Markdown
For humans

成本与性能优化

RAG 的成本结构和纯 LLM 应用不同,钱花在四个地方,大头在生成。先看清构成,再谈优化。

成本构成

环节 成本特征 占比
嵌入 离线一次,按文档量计
向量库存储 按向量数量和维度 小到中
检索 查询嵌入推理加 ANN 查询
生成 每次请求按 token 计费,注入的上下文越多越贵 大头

生成侧的成本取决于注入量:Top-K 块越多、块越大,每轮 prompt 越贵。这里有个直接矛盾,检索质量要更多上下文,成本要更少 token。

生成侧优化

  • 重排后少注入:召回 50 块只取 Top-5 到 10 进上下文,质量不降成本大降
  • 上下文压缩:只留与问题相关的句子,去掉无关段落
  • 模型路由:简单问题用便宜小模型,复杂问题才用大模型。可以省下可观成本
  • Prompt 缓存:系统指令和稳定前缀缓存,长会话场景收益明显

检索侧优化

  • 块大小与冗余:overlap 过大会让多个块携带相同信息,检索和生成双重浪费
  • 向量量化:PQ 量化把向量压到原来的四分之一甚至更低,精度损失可控
  • 降维:支持 MRL 的模型用低维子向量,存储和检索成本随维度下降
  • 批量嵌入:索引构建时批量调用,摊薄调用开销
  • 缓存高频查询:见缓存策略篇

延迟与吞吐

  • 检索延迟:HNSW 参数(efSearch)在召回和速度之间调;混合检索两路并行而不是串行
  • 生成延迟:流式输出降低首字等待感知;TTFT 主要花在输入 token 的 prefill 上,上下文越长越慢,压缩上下文同时省成本省延迟
  • 吞吐:向量库连接池、批处理、热点查询缓存

一个典型的优化路径

  1. 评估集先量化现状(成本每查询、延迟 P95、质量指标)
  2. 重排 + 少注入:成本立降,质量不降反升
  3. 模型路由:简单问题走便宜模型
  4. 高频查询上语义缓存
  5. 每一步重新测量,指标没变好就回滚

面试追问

  1. RAG 成本大头在哪? 生成侧,按 token 计费,注入的上下文越多越贵。嵌入和检索都是小头
  2. 怎么降生成成本? 重排后少注入、上下文压缩、模型路由、Prompt 缓存。先压缩注入量,性价比最高
  3. 模型路由是什么? 按查询复杂度分发:简单问题用便宜小模型,复杂问题才用大模型
  4. 块大小和成本什么关系? 块越大、overlap 越大,检索结果携带的冗余越多,生成 token 越贵。质量允许时用小块
  5. 优化怎么验证? 评估集量化成本、延迟、质量三项指标,一次改一个变量,没变好就回滚。避免只盯着成本把质量改崩
Navigation

Type to search…

↑↓ navigate↵ selectEsc close