Skip to content

Embedding 模型怎么选

给 RAG 选 Embedding 模型,试了三个。最终选 BGE,中间踩了几个坑。

试过的三个

模型中文英文大小成本
all-MiniLM-L6-v280MB免费
BAAI/bge-small-zh-v1.524MB免费
OpenAI text-embedding-3云端按 token

MiniLM 的坑

它处理中文的方式是 tokenizer 不认识中文 → 把每个汉字当成一个 token → 中文语义理解基本没有。搜「Transformer 架构」能勉强找到,搜「那个 Google 2017 年提出的模型」完全找不到。

结论:中文 RAG 不能用英文 Embedding 模型。

BGE 为什么对

BGE(BAAI General Embedding)是智源研究院出的。bge-small-zh-v1.5:

  • C-MTEB 中文基准前几名
  • 24MB,本地跑
  • 中文+英文混合输入效果都可以
  • 免费

我的 RAG 项目用的就是这个。Embedding 步骤零 API 成本。

OpenAI 什么时候用

不想管模型、愿意花钱、需要多语言 → OpenAI text-embedding-3。1M token 约 0.02 美元。开发阶段没必要花这个钱。

实际选型建议

  • 本地开发、中文为主 → bge-small-zh-v1.5
  • 多语言 + 还需要 Sparse 向量 → bge-m3(一个模型同时出 dense + sparse)
  • 不差钱、不想运维 → OpenAI
  • 英文为主 → all-MiniLM-L6-v2 或 bge-large-en