首页 › cost-hacks › 别把向量化当单次消费:RAG三笔复利税

很多人算 LLM 账单算得很细——缓存、批处理、上下文裁剪、路由器,全用上了。但你只要在做 RAG(检索增强生成)、企业知识库、智能客服、语义搜索,账单上就还躺着另一条管线:向量化与检索。这条管线的钱,90% 的团队根本没单独算过,因为它被拆进了"embedding API 调用""向量库托管费""rerank 重排"三个小栏目里,单看每一笔都不贵。但它的本质是订阅制 + 复利:你的语料越大、查询越多、换模型越勤,这三笔钱就越滚越大,而且和 LLM token 不同,它们往往无法靠缓存和批处理彻底关掉。今天拆开这笔账,并给你五招把它翻面。

为什么向量化是「订阅制」而非「单次消费」

心智模型先摆正:买一次 embedding,你以为付的是"生成这串向量的钱",实际上你同时订阅了三笔持续收费——

下面这张图把漏钱的三个位置标了出来:

flowchart LR
    subgraph WRITE["写入侧 一次性成本 但会复利"]
        D[文档集] --> C[分块 chunk]
        C -->|token数=账单基数| E[Embedding 调用]
        E --> V[(向量数据库)]
    end
    subgraph READ["查询侧 每问一次都收钱"]
        Q[用户提问] --> QE[查询向量化]
        V --> R[召回 top-k]
        QE --> R
        R --> RR[Rerank 重排]
        RR --> L[LLM 生成回答]
    end
    C -. hash缓存命中则跳过 .-> E
    V == 换模型则全量重算 税1 ==> E
    V -. 维度越高 存储加搜索越贵 税3 .-> R
    RR == 每查询都调 税2 ==> L

第一笔复利税:重新向量化税

症状:你从 text-embedding-ada-002 换到 text-embedding-3-small,或者从 3-small 换到 Voyage-3,再或者模型厂商悄悄升级了版本——你的整个语料库必须重新生成一遍向量,否则新旧向量不在同一个空间,相似度全乱。

很多人以为这只是一次性的小钱,但忽略了两件事:

  1. 它会反复发生。embedding 模型每 6–12 个月就有一代新品(MTEB 榜单一直在刷新),你不可能永远不换。
  2. 迁移期的双重存储。切库期间,旧索引和新索引要并存(为了灰度比对),向量库存储费临时翻倍,而且重算要走满一遍 API + 网络。

算一笔:一个 100 万 chunk、每 chunk 约 512 token 的知识库,约 5.12 亿 token。

API 美元本身不算夸张,但如果你是十亿级 token 语料(大型企业、爬全网做搜索),3-large 一次重算就是 $1300+,一年换两代就是 $2600 纯重算费,外加工程师人天和停机。更扎心的是:这其中大部分 chunk 根本没变过,你却在为"同样的文本"付第二遍钱。

翻面三招:

第二笔复利税:维度膨胀税

症状:你以为"维度越高 = 越准 = 越好",于是无脑选 3072 维的 large 模型。但维度直接影响两笔持续成本:

放大数据看就触目惊心:1 亿条向量,1536 维 float32 = 1e8 × 1536 × 4 ≈ 572 GiB 纯向量(还没算 HNSW 图结构开销,实际通常再 ×1.5–2)。3072 维直接干到 1.1 TiB+。托管向量库按内存计费(约 $0.1–0.5/GB·月),这笔月费随维度线性上涨,且每查询都在付搜索算力的钱。

主流 embedding 模型定价与维度对照(2026 年中水平,请以官网为准):

模型 维度 价格 / 1M token 定位
OpenAI text-embedding-3-small 1536 $0.02 性价比基准
OpenAI text-embedding-3-large 3072 $0.13 贵 6.5×,存储贵 2×
OpenAI text-embedding-ada-002(旧) 1536 $0.10 别再用,被 3-small 平替
Voyage voyage-3-lite 512 $0.02 低维便宜
Voyage voyage-3 1024 $0.06 中段
Voyage voyage-3-large 1024 $0.18 贵但维度不高
Cohere embed-v4 1024 约 $0.10 多模态/多语
Google text-embedding-004/005 768 免费额度大,付费约 $0.025 最便宜 API 之一
BGE-M3 / nomic-embed / gte(自托管) 可配 $0 开源,一次性 GPU

翻面三招:

  1. Matryoshka 维度截断:OpenAI 的 3-small / 3-large 支持 dimensions 参数——你可以让一个 3072 维模型只返回前 768 维,质量几乎不掉,存储和搜索成本直降 75%。Voyage 部分模型也支持。这是 90% 开发者不知道的开关:用着大模型的质量,付着小模型的存储费。
  2. 向量量化(quantization):在库层把 float32 压成 int8(scalar 量化)甚至 binary。Qdrant / Milvus / Weaviate / pgvector(halfvec、bit)都原生支持。int8 省 4× 内存,binary 省 32×,配合 rerank 兜底质量损失极小。生产里常见组合:召回用 binary/int8 量化向量(极快、省内存),rerank 阶段再上 float32 或重打分。
  3. 自托管开源 embedding 把 API 费归零:BGE-M3(中英多语、MTEB 中文榜常年前列,单模型同时输出 dense+sparse+ColBERT 三种向量,混合检索一站式)、nomic-embed-text、gte-large。一个 2GB 显存就能跑,首次向量化 $0、重算 $0、维度你说了算。只有当语料小、不想运维时,才值得为 API 付费。

第三笔复利税:rerank 重排税

症状:两阶段检索(先 embedding 召回 top-100,再 reranker 重排出 top-10)是质量标配。但 rerank 是每查询都调的 API,定价模型分歧极大,选错 provider 账单天差地别:

Rerank 服务 计价方式 大致价格 100 万查询/月成本
Voyage rerank-2-lite 按 token $0.02/1M token 约 $1–5
Voyage rerank-2 按 token $0.05/1M token 约 $3–12
Cohere rerank(生产) 按搜索次数 约 $2 / 1000 次搜索 约 $2000
bge-reranker / jina-reranker(自托管) 免费 $0 $0

同样 100 万查询/月,Voyage 按量计费是几美元,Cohere 按搜索次数计费能干到 $2000——差了近三个数量级。这不是 Cohere 不好(它质量确实强),而是计价模型决定了它在高查询量场景下根本不划算。很多人不看计价单位,直接接了 Cohere rerank,月底账单直接爆炸。

按 token 算的细节:每次重排 top-20 chunk × 约 256 token ≈ 5120 token/查询;100 万查询 × 5120 = 51.2 亿 token,voyage-2-lite 就是 5120 × $0.02 = $102/月,voyake-2 是 $256/月。可控。

翻面三招:

一张账单:原方案 vs 优化后

还是上面那个 100 万 chunk、512 token/chunk 的知识库,100 万查询/月。假设你之前的"豪华默认"配置是:3-large 向量化 + 3072 维 float32 存储托管 + Cohere rerank。

成本项 原方案 优化方案 优化后
首次向量化 API 3-large:$67 BGE-M3 自托管 $0
模型升级重算(年2次) 3-large:$134/年 缓存+增量,老 chunk 复用 接近 $0
向量库存储(月) 3072维 float32 ≈ 17 GiB,约 $3.4/月 768维 int8 ≈ 0.7 GiB 约 $0.14/月
查询召回算力(月) 3072维 HNSW,高 768维 int8 + BM25 降 75%+
Rerank(100万查询/月) Cohere 按次:$2000 Voyage rerank-2-lite 按token 约 $100
月度合计 ≈ $2003 — ≈ $100

从 $2000/月砍到 $100/月,省 95%,而检索质量在混合检索 + rerank 兜底下基本持平甚至更好(因为 BM25 补回了 dense 在术语上的短板)。最大的那 $2000 单笔,纯粹是"选错 rerank 计价单位"造成的——这就是典型的认知差。

说明:以上价格为 2026 年中的公开定价水位,各厂商会不定期调整,迁移前请以官方 pricing 页为准。

信息差总结:你知道的 vs 别人不知道的

维度 大多数人以为 信息差真相
向量化成本性质 一次性消费 订阅制 + 复利(存储、查询、迁移三笔持续费)
换 embedding 模型 点一下就行 整库重算 + 迁移期双倍存储,需版本锁定+缓存兜底
维度选择 越高越准越好 维度直接 ×存储 ×搜索,可用 Matryoshka 截断拿质量省存储
向量存储 当成普通数据库 float32→int8/binary 量化可省 4–32× 内存
Rerank 接个 API 就行 计价单位(按token vs 按搜索)决定账单差 200×,高 QPS 必自托管
BM25 过时技术 免费且在术语/型号/人名上强于 dense,混合检索省钱主力
开源 embedding 不如闭源 BGE-M3 中英榜单顶级,自托管 API 费归零
## 行动指南

按你的预算对号入座:

  1. 个人/小团队(月预算 < $50):embedding 用 BGE-M3 自托管(或 Google text-embedding-004 免费额度),向量库用 pgvector / Qdrant 自建,召回走 BM25+dense 混合,rerank 用 bge-reranker 自托管。整条管线几乎零 API 费。
  2. 中型团队(月预算 $50–500):embedding 用 OpenAI text-embedding-3-small($0.02/1M,最省心的闭源)并开启 dimensions 截断到 768;向量库开 int8 量化;rerank 用 Voyage rerank-2-lite 按量计费。质量与成本平衡点。
  3. 高 QPS 生产(月查询 > 100 万):绝对避开按搜索次数计费的 rerank;embedding 重算必须上缓存 + 增量 + 版本锁定;存储全量走量化;BM25 扛主力召回。
  4. 所有人立刻能做的三件事:① 给 chunk 加 content_hash,重建只算增量;② 建 embedding 缓存表,永不重复算同一文本;③ 把 rerank 喂入量从"全召回"压到 top-20–50。

记住一句话:LLM 的钱省在 token,RAG 的钱省在"别让同一串向量被付费两次"。

参考来源

下一步计划(What's next)

注意事项

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入