进阶 11 分钟Embeddings

BGE-M3:真正会说话的嵌入向量 法语

直接回答

BGE-M3(BAAI,MIT 许可证)是一个支持超过 100 种语言的嵌入模型,每个文本片段最多可接受 8,192 个 token,并在一次处理过程中生成三种表示:稠密表示(整体语义)、词汇表示(精确词项,类似 BM25)和多向量表示(类似 ColBERT 的重排序)。对于法语语料,它比公开排行榜中的英语模型更稳妥。通过 Ollama 使用时(bge-m3:567m),其大小为 1.2 GB,无需显卡也能运行。

大多数排名靠前的嵌入模型主要使用英语数据训练。用于法语语料时,它们不会报错,但检索效果较差——这种失败最具隐患,因为没有任何迹象提示问题。中国 BAAI 实验室发布的 BGE-M3 是少数真正支持多语言的模型之一,还具备一项实用特性:一次生成三种表示形式,无需额外成本。

作者: Mohamed Meguedmi·更新于 2026-09-30·已在 Windows、macOS 和 Linux 上测试

#法语处理的难题

嵌入模型从训练语料中学习如何判断相似性。如果语料中有 90% 是英语内容,模型就能准确地表示英文文本之间的相对关系,而对法语文本的处理则远没有那么精细。实际使用时,在法语文档语料库中,这会导致相关段落未被检索出来,无关段落却被检索出来——没有任何错误提示,日志中也没有警告,而且往往直到有用户指出回答答非所问,才有人注意到这个问题。

这就是为什么“选择哪种嵌入模型”这个问题会因语言不同而有不同的答案。公开排行榜(如 MTEB)中的任务大多是英语任务;这些排名无法预测模型在您的文档或专业词汇上的表现。中国研究机构 BAAI(Beijing Academy of Artificial Intelligence,北京智源人工智能研究院)正是针对这种情况设计了 BGE-M3:其名称代表 Multi-Functionality、Multi-Linguality、Multi-Granularity,即多功能、多语言、多粒度——三种检索功能、100 多种语言,以及从短句到长文档的输入,都整合在一个模型中,而不是分散在多个工具之间。

#BGE-M3带来的优势

本地 RAG 工具包

你的文档,你的 AI:基于你的 PDF、笔记和邮件的可靠本地 RAG——无需向云端发送任何内容。

  • 在线空间,终身可用
  • PDF + 文件
  • 终身更新
多语言设计
该模型根据官方规格支持超过100种工作语言;其对法语的处理准确,同时支持用法语查询英文语料库。
长上下文:8192个标记
它能接受的文本段落明显长于大多数嵌入模型所支持的长度(后者通常限制在 512 个 token),因此在选择索引分块大小时更灵活。
同时支持三种表示形式
稠密、词汇和多向量三种表示在一次前向计算中生成;据 BAAI 称,不会增加计算开销。
MIT 许可证
企业使用无特殊限制;在集成模型前,请始终查阅模型详情页,因为许可证可能在不同版本间发生变化。
无需额外指令
与其它较早的BGE模型不同,BGE-M3不再需要在请求中添加指令:可直接使用,简化了集成流程。

#稠密、词法、多向量:各有什么用

三种输出,三种用途(定义引自官方模型卡)
表示它所捕捉的信息它带来的价值
Dense将文本表示为一个捕捉其整体语义的向量经典语义搜索
词汇(稀疏)词表中的每个词项都有一个权重,除文本中出现的词外,其余权重均为零像 BM25 一样,找出语义检索遗漏的引用编号、缩写和专有名词
Multi-vecteur每个文本多个向量,类似ColBERT的结构对最佳候选结果进行更精确的重排序

优势在于可以进行混合检索,而无需运行两个独立模型:官方模型说明明确推荐混合检索与重排序相结合,利用在生成稠密嵌入向量的同时获得的“无额外成本”的词法权重。词法部分恰好能弥补稠密向量部分的检索失败,多向量部分则用于对筛选出的约二十个候选结果进行重排序。并非所有向量数据库都能利用这三种输出,但仅使用稠密向量就已足以满足常规使用需求——这也是入门时最容易实现的配置;如果准确性仍然不足,再添加词法层。

!
选择需在首次导入前完成
更换嵌入模型意味着必须重新编码所有内容:两个模型生成的向量不能相互比较。对于规模较大的语料库,这项处理需要数小时。用您自己的问题样本测试两三个模型需要半天时间,可以避免之后重新编码。

#本地使用

在本地测试 BGE-M3 最快的方法是使用 Ollama,它以 bge-m3:567m 的名称提供该模型的量化版本——拥有 5.67 亿参数,下载大小约为 1.2 GB,模型页面标注的上下文窗口为 8000 个 token。该模型基于 XLM-RoBERTa-large 构建,先通过专门的预训练(RetroMAE)将上下文长度扩展至 8192 个 token,再通过一个统一的微调阶段同时针对三项检索任务进行训练,而不必维护三个独立模型。

终端 — 下载并测试模型
ollama pull bge-m3
ollama run bge-m3 "Quel est le délai de rétractation légal en France ?"

对于完整的 RAG 流程,只有稠密输出能在无需特殊配置的情况下直接用于大多数标准向量数据库(Qdrant、Milvus、pgvector);词法输出和多向量输出则需要能够将它们结合使用的引擎,例如 BAAI 引用的 Milvus 和 Vespa 集成文档就说明了这一点。

在传统的 RAG 流程中,使用本地 LLM 时,BGE-M3 仅替换默认的嵌入模型:文档的每个片段在索引时仅编码一次,每次用户提问时对问题进行编码,然后将检索到的最优段落传递给负责生成的 LLM(Qwen、Mistral、Llama 等),该模型运行在 Ollama 或 LM Studio 上。嵌入模型与生成模型的选择是两个独立的决策:无需两者来自同一模型家族,实践中也极少如此。

i
一个常让人踩坑的细节
建立索引时使用的嵌入模型必须与查询时使用的模型完全一致。在这两个阶段之间更改版本,哪怕只是小版本,或更改归一化参数,都会降低相关性,却不会产生明显的错误——这与引言中描述的是同一种隐蔽问题,只不过这次是自己造成的。

#用您自己的文档进行验证

产品页面标注‘超过100种语言’并不保证语言间的质量一致性:这仅表示覆盖范围,而非每种语言的评分。BAAI在MIRACL(多语言检索)和MLDR(长文档检索数据集)上评估BGE-M3,MLDR是该实验室为该模型专门发布的、覆盖13种语言的长文档检索数据集,并提供相应的公开评估流程。这些评估基于标准化的检索语料库,仅能反映总体趋势;无法替代在您自身领域、使用您专属技术术语和问题表述方式的自有语料库上的实际测试。

  1. 01
    构建一个具有代表性的小样本
    从目标语料库中选取二十到三十份真实文档,保留其在长度和词汇上的常见多样性,而不是只挑选精心筛选的样本。
  2. 02
    按照您的用户实际提问的方式编写问题
    十到二十个真实问题,包括使用同义词或与源文档表述不同的问题。
  3. 03
    在同一组样本上比较两个或三个模型
    将BGE-M3与一个知名的英语模型进行比较;如果条件允许,再加入另一个多语言模型。记录正确文本段落出现在前三个结果中的次数。
  4. 04
    在大规模导入前作出决定
    测试需要半天时间;在完整语料库索引后更换模型,必须重新编码全部内容,如上文所述。
→
以本站的模型目录为参考
要比较嵌入模型与您已经在本地运行的 LLM 的规模,可以参考 QuelLLM 目录(quelllm.fr/api/models.json),其中提供了本网站收录模型的规模和内存需求。

#成本是多少

这个嵌入模型比当下流行的小型英语模型更大:它有 5.67 亿个参数,下载大小为 1.2 GB,在这类模型中属于中等规模,与那些只有几千万个参数、在纯速度排行榜上占据领先位置的模型相去甚远。它的编码速度更慢,占用的内存也更多。首次为大型语料库建立索引时,这种差异很明显;但只查询一个问题时,相比后续语言模型的生成耗时,这点差异几乎察觉不到。

另一个影响是:其稠密向量有 1 024 个维度,因此索引比使用 384 或 768 维模型时占用更多空间。当文本片段达到一百万个时,算下来增加的存储空间就不容忽视了,这时应考虑向量数据库的压缩选项。

BGE-M3 属于 BAAI 发布的模型系列
模型维度最大长度覆盖范围
BAAI/bge-m31 0248 192 tokens支持多语言,统一了三种检索方法
BAAI/bge-large-en-v1.51 024512 tokens仅支持英文
BAAI/bge-base-en-v1.5768512 tokens仅支持英文,更轻量
BAAI/bge-small-en-v1.5384512 tokens仅支持英文,最轻量级

对比很鲜明:在相同维度(1 024)下,BGE-M3 每段文本可接受的 token 数量是 bge-large-en-v1.5 的十六倍,并且覆盖 100 多种语言,而 BAAI 的整个“en”系列仅限于英语。为了不必为语料库中的每种语言选择不同的模型,也不必根据传入文档的语言维护多个独立索引,需要付出的代价就是更大的下载体积和更长的编码时间。

#何时选择它,何时无需使用它

实事求是地选择
情况选择
法语或多语言语料库BGE-M3 或其他真正支持多语言的模型
关于英文文档的法语问题必须使用多语言模型
纯英语语料库,优先考虑速度一个以英语为主的专用小模型
长度较长(超过512个token)且不希望进一步分割的段落BGE-M3,因为其输入长度可达 8192 个 token
硬件资源极为有限更轻量的模型,即使这意味着法语内容的检索相关性会有所下降

#FAQ

BGE-M3在法语中表现良好吗?+
是的,这正是它的优势:官方规格表显示其支持超过100种工作语言,而大多数排名靠前的模型主要以英语为主。但请根据您的具体问题进行核实,公开排名仍以英语为主。
可以用法语查询英文文档吗?+
这是 BGE-M3 这类多语言模型的优势之一:与仅用一种语言训练的模型不同,即使问题和文档使用不同语言,它们仍能在向量空间中彼此接近。这对混合语言的文档库很有用,例如法语团队查询英文技术文档的情况。
需要显卡吗?+
不需要,它可以在 CPU 上运行:Ollama 版本的大小约为 1.2 GB,拥有 5.67 亿参数,这样的模型大小适合在 CPU 上运行。GPU 能显著缩短大型语料库的索引时间;对于单次查询,与随后由语言模型处理回答所需的时间相比,这点速度差异可以忽略不计。
这三个输出项有什么作用?+
密集向量输出负责常规语义搜索,词项稀疏向量输出(sparse)则像 BM25 一样补充检索精确词项,例如引用和缩写;多向量输出则像 ColBERT 一样,用于对最优候选结果进行精细重排序。仅使用密集向量输出也是一种合理的用法,而且是最容易集成到标准向量数据库中的方案。
BGE-M3 每个文本段落最多支持多少 token?+
根据官方规格,最多支持 8 192 个 token,而同一发布方的英语模型系列 bge-large-en-v1.5、bge-base-en-v1.5 和 bge-small-en-v1.5 支持 512 个 token。这有助于为合同或报告等长段落建立索引,无需进一步切分,但处理大量文档时,编码速度会更慢。
我之后可以更换吗?+
是的,需要对整个语料库进行重新编码:两个模型的向量不可比较,即使它们维度相同。建议在首次大规模导入前,先在样本上测试两个或三个模型,而不是在语料库已索引后才发现问题。
BGE-M3是否比OpenAI的模型在法语处理上更优?+
BAAI 引用的独立评测显示,该模型在英文及其他语言中均在特定测试中优于 OpenAI 模型,但单次评测无法替代在您自有语料库上的实际测试。最佳实践仍是先在您自己的问题集上测试多个模型,再做最终选择。
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。