深度指南
RAG 与向量数据库成本模拟器:每个检索增强的回答究竟花多少钱
行业管理层分析
检索增强生成看起来只是给聊天功能增加了一点东西:把文档存成向量,为每个问题取回最佳片段,再让语言模型写出回答。第一个原型几乎不花钱。问题出现在规模化之后,因为每个回答都会重复同一条付费链条,而其中最大的一项,即提示词中的令牌,并不是固定的,它取决于您粘贴了多少文本。一个在测试中只花不到一分钱的功能,到了生产环境中每个回答可能要花好几分钱。
这个问题的结构,是按回答计的成本叠加在按月计的成本之上。按回答,您要为输入令牌、输出令牌、可能的重排序调用以及一次数据库读取付费。按月,您要为把向量保存在内存中、为变更文档重新嵌入以及运行评估和追踪付费。收入与回答挂钩,所以产品的利润率,就是每个回答的收入与每个回答的可变成本之间的差额,再减去摊到总量上的月度成本。
多米诺模型分五步沿着这条链展开。上下文大小和提示词决定每个回答的令牌数。结合模型价格,它们决定每千个回答的成本。与每个回答的收入相比,这就成为成本占比。扣除可观测性成本之后,剩下的是边际贡献,而团队的固定成本决定每月利润。更长的上下文、更贵的模型或更高的重排序占比,每一项都会推高第二个方框,而使用量的增长随后只会放大损害,而不是稀释它。
冰山把您注意到的账单与没注意到的账单区分开来。水面之上是模型输入令牌和向量数据库。水面之下是价格为输入若干倍的输出令牌、每次搜索的重排序调用、文档变更时重新嵌入的成本,以及生产系统所需的评估、追踪和日志。每一项在早期估算中都很容易被漏掉。请用模拟器找出让您的月度结果降到零的上下文大小或模型价格,并决定先削减什么。
公式与方法论蓝图
该模型按月计算。收入等于回答数乘以每个回答的收入。每个回答会把检索到的上下文加上一段固定的提示词发送给模型,并收到一个长度固定、价格为输入费率四倍的回答。向量数据库按内存计费:文本块数乘以嵌入维度再乘以四字节,加上索引开销,按每 GB 定价,另加每百万次查询的读取费用。重排序按每次搜索定价,并适用于所选比例的查询。变更的文档每个月都会重新嵌入。
- 模型输入
- I = 回答数 × (上下文 + 提示词令牌) ÷ 1e6 × 价格
- 对大多数产品而言是最大的一项;它随上下文大小和回答量增长。
- 模型输出
- O = 回答数 × 350 令牌 ÷ 1e6 × 价格 × 4
- 输出令牌的成本是输入令牌的若干倍,所以冗长的回答会迅速累积。
- 向量存储
- V = 文本块数 × 1,536 × 4 字节 × 1.5 × 每 GB 5 美元 + 读取费用
- 常驻内存的向量加上索引开销,再加每次查询的读取费用。
- 重排序与重新嵌入
- R = 回答数 × 重排序占比 × 0.002 美元 + 文本块数 × 8% × 400 令牌 × 嵌入价格
- 每次重排序搜索的一次调用,以及每月对变更文档的刷新。
- 净利润
- 净额 = 收入 − I − O − V − R − 可观测性 − 固定成本
- 每月的结果。临界点就是它降到零的位置。
层层传导的弹性
上下文令牌和模型价格是弹性最大的输入项,因为它们相互相乘,然后再乘以回答量。每个回答的收入在收入一侧同样强大。重排序占比和索引规模的影响较温和但持续存在。回答量的影响是双向的:回答越多赚得越多,但前提是每个回答的收入始终高于生成它的可变成本。
三个真实案例研究
白手起家的初创者
索引整洁的小型客服机器人
一个产品团队为几十万个帮助文章文本块建立索引,使用中等模型、较短上下文和很少的重排序,每月提供六万个回答。每个回答的收入不错。加载这个案例,可以看到当提示词精简、知识库较小时,检索的成本是多么可以承受。
处于扩张期的中型市场企业
提示词高效的高流量助手
一个平台在六千万个文本块上每月提供二百五十万个回答,但保持上下文简短并使用低成本模型。每个回答的收入很薄,但总量很大。加载这个案例,可以看到提示词的纪律如何把规模变成利润,以及它对更贵模型有多敏感。
黑天鹅危机
高端模型上的超大上下文
一个团队在每个提示词中塞入一万五千个令牌的文档,使用高端模型,并对一亿个文本块上的每次搜索都进行重排序。每个回答只赚两美分。加载这个案例,可以看到仅模型令牌就超过了收入,这个月深陷亏损。
行业基准矩阵
| 指标 | 危险区 | 行业平均 | 前 10% 的佼佼者 |
|---|---|---|---|
| 模型与检索成本占收入的比例 | 高于 60% | 20–40% | 低于 15% |
| 每个回答的上下文令牌数 | 高于 9,000 | 2,000–5,000 | 低于 1,500 |
| 被重排序的搜索占比 | 每次搜索都 100% 重排序 | 30–60% | 有选择地进行,低于 30% |
| 每月重新嵌入占索引的比例 | 高于 25% | 5–10% | 低于 3% |
| 每个回答的边际贡献率 | 低于 25% | 45–60% | 高于 70% |
变量与杠杆
每月回答数
您的产品每月回答的问题数量,每个问题对应一次检索加一次模型调用。
杠杆: 只有在每个回答的成本低于每个回答的收入之后才扩大使用量,并对增加成本却不带来收入的免费用户进行限流。
每个回答的收入
归属于一个回答的平均收入,用订阅或用量费用除以所提供的回答数得出。
杠杆: 按用量定价,或为重度用户增设更高档位,让每个回答的收入跟上模型账单。
已索引的文本块
存储在向量数据库中的文本块数量,以百万计。
杠杆: 对索引去重并精简,把很少使用的内容放到更便宜的存储中,因为常驻内存的向量每个月都要计费。
每个回答的上下文令牌数
每个回答中粘贴到提示词里的检索片段。这是模型成本的最大驱动因素。
杠杆: 检索更少但更好的片段,并在放入提示词之前裁剪,因为输入令牌在每一个回答中都要付费。
模型每百万输入令牌的价格
语言模型每百万输入令牌的收费。输出令牌的价格是它的若干倍。
杠杆: 把简单问题分流给更小的模型并缓存重复的回答,因为每个令牌的价格会乘到最大的那一项成本上。
使用重排序的回答
经过重排序模型处理、以改进检索片段顺序的搜索占比。
杠杆: 只对有歧义的搜索进行重排序,并利用精度的提升来缩短发送给模型的上下文。
如何使用本模拟器
- 1根据您的计费数据,输入每月回答数和每个回答的平均收入。
- 2加入检索上下文的平均令牌数和模型每百万输入令牌的价格。
- 3设定已索引的文本块数量和使用重排序的搜索占比。
- 4点击“找出我的临界点”,查看哪个输入项最先把利润推到零。
- 5在 24 个月内比较当前设计与更精准的检索,包括其部署成本。
应避免的错误
- 根据原型估算成本。测试流量使用短提示词且用户很少;生产环境则会带来长上下文、重试和重复提问。
- 忘记输出令牌。回答按每个令牌计的价格高于提示词,冗长啰嗦的回复会悄悄抬高账单。
- 把索引当作免费。无论有没有人查询,常驻内存的向量每个月都要计费。
- 靠不断加大上下文来追求质量。超过某个点之后,更多的片段增加成本的速度快于提升准确率的速度,而更好的检索更便宜。
常见问题
什么因素对 RAG 回答的成本影响最大?
通常是发送给语言模型的令牌。您粘贴进提示词的每个检索片段,在每个回答中都要付费,所以上下文大小是首先要检查的杠杆。
向量数据库很贵吗?
它往往是较小的那一部分。当文本块达到数千万个,或者全部保存在内存中时,它才会变得显著。精简和分层存储会有帮助。
重排序能自己回本吗?
可以,当更好的排序让您能向模型发送更少的片段时。请测试节省下来的输入令牌是否超过额外一次调用的成本。
为什么模型中包含输出令牌?
它们的价格是输入令牌的若干倍。在相同的上下文大小下,冗长的回答比简洁的回答成本更高。
如何找到临界点?
点击“找出我的临界点”。工具会把每个输入项推向更差的一端,并报告月利润降到零时的数值。
这个结果有多准确?
这是带有明确假设的教学模型,不构成财务建议。请使用您自己的令牌日志和账单,并核对服务商当前的价格。
这是一个带有明确假设的教育性规划模型,不构成财务、税务或法律建议。请将输入替换为您自己的数据,并就重要决策咨询合格的专业人士。