成本怎样构成
RAG 的成本分三段:索引期(解析、embedding 调用、向量写入)、存储期(向量库内存与磁盘)、在线期(查询向量化、向量检索、重排、生成)。三段中在线生成通常占比最高,因为每来一个问题都要重新付费;索引是一次性投入,摊到整个生命周期后往往反而是小头。估算方法是先确定文档规模与日均问答量,再分别按量乘单价。
估算三要素
| 索引期 | 文档页数 × 每页 token × embedding 单价 × 重跑次数 |
|---|---|
| 存储期 | 向量条数 × 维度 × 每维字节 × 副本数 + 索引结构开销 |
| 在线期 | 日问答量 ×(查询向量化 + 重排 + 生成 token)× 天数 |
| 主要变量 | 切分粒度、缓存命中率、检索与重排的候选数量 |
典型使用场景
- 立项做预算:向业务方分别给出索引一次性费用与月度在线费用两个数字
- 方案对比:在「小模型 + 大候选池」与「大模型 + 小候选池」之间做取舍
- 账单异常排查:费用突增时按索引期与在线期分段,定位是哪一段涨了
- 技术决策:判断是否上量化索引、是否把简单问题分流到便宜模型
- 采购与谈量:把预估 token 量与调用次数作为与厂商谈阶梯价格的依据
估算示例
估算示例
索引:2 万页 × 约 800 token/页 = 1600 万 token # 一次性,量级约 0.3 美元
在线:日 1 万问 ×(检索 embedding + 生成 各约 1500 token) # 按月再乘 30
结论:主要成本在生成而非检索
存储:100 万条 × 768 维 × 4 字节 ≈ 2.9 GiB(float32) # 加副本与索引结构后上浮
缓存与重排:命中率高时在线费明显下降 # 幅度按自身日志测算,不要照搬分段占比与抓手
| 费用段 | 计价方式 | 主要抓手 |
|---|---|---|
| 索引期 | 按 token 或按量一次性 | 切分质量优先,不为省索引费牺牲检索效果 |
| 存储期 | 内存与磁盘规格、副本数 | 量化(SQ/BQ)、冷热分层、按需副本 |
| 在线检索 | 按查询次数与向量库规格 | 查询缓存、批量检索、调小候选数 |
| 在线生成 | 按输入与输出 token 计费 | 上下文压缩、限制输出长度、简单问题分流 |
示例数字只演示估算方法,实际单价以所用厂商当期定价为准;做预算时留出两到三成余量,并把全量重建索引的次数算进去。
降本先看用量结构:把在线花费按「问答量 × 平均 token」拆开记录,才能分清费用上涨来自用量增长还是单价或缓存策略变化。