为什么 RAG系统里,Embedding成本往往远低于 LLM成本,但很多公司仍然疯狂优化 Embedding?

0 阅读4分钟

前两天一个朋友问了我这个问题。

这是一个 AI 工程里非常典型、但很多人第一次会困惑的问题

还不了解Embedding的小伙伴点击了解详情,建议了解了什么是 Embedding 再继续看哦。

先说结论

Embedding 单次成本低,但调用规模极大、频率极高、可优化空间大,所以公司会疯狂优化。

换句话说:

LLM 是*“贵但少用”*,毕竟每一次对话大多数情况下LLM只调用一次(公司有额外的业务场景另算

Embedding 是 “便宜但一次对话里一般需要调用多次”

一、调用次数不是一个量级

在一个典型的 RAG系统 里:

LLM 调用

只在 最后一步回答问题 时调用。

流程:

用户问题
   ↓
Embedding(query)
   ↓
向量检索
   ↓
拿到文档
   ↓
LLM 生成回答

所以:

一次提问 == 1 次 LLM

Embedding 调用

假定你是一个完善的AI产品,拥有完整的agentEmbedding,接下来我们模拟一次输入。

Embedding通常包括:

1.用户问题 embedding
用户问题 → embedding → 检索

这就一次了,而且每次提问都会发生

有些产品为了持久化缓存历史记录,还会把回答的内容再次进行切片,然后分片继续 embedding,存入。

分完片embedding又得好几次。

2.公司数据预填入

假设公司有文档100万条需要存入向量数据库,那么每条都要 embedding 一次。就是1000000 次 embedding

3.数据更新 embedding

企业知识库会更新:

新增文档
修改文档
重新切片

都会重新 embedding。

4. 缓存失效 / 重建索引

例如:

换 embedding 模型
向量维度升级
索引重建

可能要 全库重新 embedding

所以调用规模通常是:

类型调用次数
LLM1 次 / query
EmbeddingN 次 / query + 全库

很多系统里:

Embedding调用量 = LLM 的 10 ~ 1000//具体哪个数量级取决于公司产品业务需求

二、Embedding 发生在“高 QPS 环节”

QPS = Queries Per Second每秒查询数

Embedding 是在线服务

用户提问
   ↓
embedding
   ↓
向量搜索

如果:

DAU = 10万
每人10次提问

DAU = Daily Active Users
日活跃用户数

一天:

100万次 embedding

这是 实时调用

而 LLM:

很多公司会做:

缓存
FAQ
模板回答
降级

所以:

很多请求不会真的打到 LLM,不然容易破产。

但:Embedding 基本无法绕过 因为:检索必须有向量

三、Embedding 优化收益大

假设:

embedding 单价

$0.00002 / 次

一天:

100万次

成本:

$20 / 天

一年:

$7300

如果系统规模是:

1亿次 / 天

那就是:

$2000 / 天
≈ $73万 / 年

所以很多公司会:优化策略

1.query embedding 缓存

很多问题是重复的。

北京天气
北京天气
北京天气

缓存:

query → vector

直接命中。

2.本地 embedding 模型

不用 API:

bge-small
e5-small
gte-small

GPU 一次跑几百条。

成本几乎:

≈ 0
3.批量 embedding

很多 API 支持:

batch embedding

例如:

100 条一起 embedding

吞吐量会高很多。

4. 只 embedding 新数据

很多公司会做:

hash
版本号

只对新增内容 embedding。

四、Embedding 是 RAG 的“基础设施”

LLM 只是 生成层

但 RAG 系统真正的核心其实是:

数据层

结构是:

数据
 ↓
切片
 ↓
embedding
 ↓
向量数据库
 ↓
检索
 ↓
LLM

这里面:

embedding 是整个数据 pipeline 的入口。

如果 embedding 不好:

问题会很多:

  1. 检索不准
  2. 召回差
  3. 上下文错
  4. LLM乱答

所以公司优化的不只是 成本,还有:embedding质量

可以记住一个 AI工程经验公式

LLM = 最贵的脑子
Embedding = 最忙的工人

所以:

LLM 优化 = 节省单次成本
Embedding 优化 = 节省规模成本

总结

  1. Embedding 单次成本低,但调用规模极大、频率极高、可优化空间大,所以公司会疯狂优化
  2. 一次对话里大概只有一次LLM,但是会有多次Embedding
  3. Embedding的触发原因包括但不限于:*数据更新/公司数据预填入/缓存失效 + 重建索引/用户问题 *等等
  4. 优化Embedding不止优化成本,还优化质量

最后

如果对你有用的话

image.png