引言
做RAG应用的人多半有过这个体验:Demo跑得很顺,上线一周账单吓人。问题不在哪个单一环节,而是RAG的成本分散在五个地方,容易东漏一点西漏一点,加起来就很夸张。
这篇文章把RAG的每个环节成本拆开算,帮你在选型时心里有数。
Embedding阶段:token花在哪
RAG的第一步是把文档切片送去向量化。成本取决于两个变量:文档量和Embedding模型定价。
以OpenAI的text-embedding-3-small为例,每百万token收费$0.02。假设你有10万篇文档,平均每篇2000 token,切片后大约2亿token。算下来Embedding一次性费用$4。如果用text-embedding-3-large($0.13/百万token),同样数据量要$26。
这笔钱听起来不多,但文档会更新。每周增量1万篇,一年下来就是50万篇新增,small模型年Embedding成本约$10,large模型约$65。
省钱思路很直接:用small模型做初筛,对高价值文档集再用large模型重新Embedding。OpenAI官方文档显示small模型在MTEB基准上得分62.0,large是62.7,差距不到一个百分点,大多数场景small够了。
向量存储:托管服务的定价差异
存向量的费用差异很大。Pinecone的Starter计划免费,但超过一定量后按pod计费,每个pod(约100万向量)月费约$70。如果你有1000万条向量,需要10个pod,月费$700。
Qdrant的Free Tier支持单节点0.5vCPU/1GB RAM/4GB磁盘,适合原型验证。Standard Tier按用量计费,专用资源可灵活扩展。官方页面显示支持AWS、Azure、GCP三个云平台。
自托管Qdrant或Chroma能省下托管费,但你要算上服务器成本。一台2核4G的云服务器月费大概$15-30,能扛百万级向量。问题是你得自己管运维、备份、扩容。
选型建议:100万向量以下用免费托管,100万到500万自托管或Qdrant Standard,500万以上认真对比Pinecone vs Qdrant的托管方案。
检索阶段:每次查询的token消耗
用户问一个问题,系统先把这个问题的Embedding算出来(一次Embedding调用),然后去向量库检索Top-K相似文档,再把文档片段拼进Prompt发给LLM。
关键变量是K值和上下文长度。假设K=5,每个片段500 token,加上系统Prompt 200 token和用户问题100 token,每次请求总上下文约2800 token。
用GPT-4o(输入$2.50/百万token,输出$10.00/百万token),假设输出500 token:
单次查询成本 = (2800 × $2.50 + 500 × $10.00) / 1000000 = $0.007 + $0.005 = $0.012
每天1000次查询,月费约$360。换成GPT-4o-mini(输入$0.15/百万token,输出$0.60/百万token),同样计算:单次约$0.00072,月费约$22。
差距16倍。对于简单的问答场景,mini模型加上好的Prompt,效果差不了多少。
检索增强:重排序的额外成本
光靠向量相似度排序往往不够准。很多团队会加一层重排序,用Cross-encoder模型对Top-K结果重新打分。
Cohere的Rerank API每1000次调用$2。如果每天1000次查询,每次重排5个结果,月费约$300。这和LLM调用成本一个量级了。
替代方案是用开源模型自托管重排序。BAAI的bge-reranker-v2-m3在Hugging Face上开源免费,效果在MTEB重排序基准上表现不错。自托管需要一台GPU服务器,但如果你已经有GPU跑其他推理任务,加个reranker几乎不增加额外成本。
容易被忽略的成本:索引维护
向量库不是存进去就完事。文档更新、删除、重建索引都有开销。Pinecone的pod在索引重建期间会产生额外计算费用。Qdrant的向量删除是免费的,但大量删除后需要手动触发压缩操作优化查询性能。
还有监控成本。你得追踪检索准确率、延迟、Token消耗,这些指标不监控到位,成本优化就无从谈起。
一个实际场景的成本估算
假设做一个产品文档问答Bot,文档量5万篇,日均查询2000次:
- Embedding(一次性+每周增量):small模型,年约$50
- 向量存储:约200万向量,Qdrant Standard或自托管,月$30-50
- LLM检索增强:用GPT-4o-mini,月约$45
- Rerank:自托管bge-reranker,月$0(利用现有GPU)
- 监控+杂项:月$10
月运营成本大概$85-105,年成本$1000-1260。如果全用高端方案(large Embedding + Pinecone托管 + GPT-4o + Cohere Rerank),同样规模月费可能到$1500+,差距十倍以上。
成本优化的三个优先级
第一,换小模型。 GPT-4o-mini在多数问答场景够用,省80%以上LLM费用。用text-embedding-3-small代替large,省85% Embedding费用。
第二,控制K值和上下文长度。 K=3和K=5的成本差40%,但检索效果差距在很多场景不明显。上下文Prompt尽量精简,别把系统说明写成长篇大论。
第三,缓存高频问题。 用户问得多的那几十个问题,答案直接缓存,不用每次都跑RAG全链路。Cloudflare的Cache API或Redis都能做,命中率20%就省不少。
RAG不是贵,是容易在不知不觉中花多了。把每个环节拆开算清楚,优化方向自然就出来了。
