BAAI M3-Embedding 技术报告
BGE系列核心技术报告包括BGE(v1/v1.5)和BGE-M3两篇论文。BGE-M3创新性地提出统一模型解决多语言、多功能、多粒度检索问题,支持100+语言、8192token输入,能同时输出稠密、稀疏和多向量三种表示。关键技术包括位置重训、大batch训练和自知识蒸馏,在MIRACL、MKQA等评测中全面领先。该模型显著简化了现有检索系统架构,但极长文档处理仍有提升空间。相关论文可在arXiv
BGE 系列有两份核心技术报告,分别对应 BGE(v1/v1.5)与 BGE-M3。下面给出可直接阅读或下载的原始 PDF / arXiv 链接,方便你后续对话时引用。
-
BGE(v1/v1.5)
标题:C-Pack: Packaged Resources To Advance General Chinese Embedding
arXiv: https://arxiv.org/abs/2309.07597
对应模型:bge-large-zh-v1.5、bge-base-zh-v1.5 等 -
BGE-M3
标题:BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation
arXiv: https://arxiv.org/abs/2402.03216
对应模型:bge-m3(支持 100+ 语言、8192 token 超长输入)
把这两篇论文读完即可覆盖 BGE 系列的全部技术细节,后续讨论可随时引用对应章节。
(基于 arXiv:2402.03216v4 与社区实践)
1 背景与定位
现有文本检索系统普遍面临“语言割裂、功能单一、长度受限”的三重瓶颈:
- 多语言:除英语外,低资源语言缺乏可用嵌入。
- 多功能:稠密、稀疏、多向量检索需三套独立模型。
- 多粒度:主流模型≤512 token,长文档只能分段后聚合,效果衰减明显。
M3-Embedding(简称 BEG-M3)由 BAAI 与 USTC 联合提出,目标是用统一模型同时解决“多语言×多功能×多粒度”检索,单模型即可输出 100+ 语、8 192 token 的稠密、稀疏、多向量三种表示,并可任意组合。
2 模型架构
单塔 XLM-RoBERTa-large(24L/1024H)(图 1)
┌─[CLS]──────────────┐ → norm(H[0]) ──► 稠密向量 1024D
Transformer 最后一层隐状态 H
├─token i────────────┤ → ReLU(W_lex^T H[i]) ──► 词权重 1D (稀疏)
├─token i────────────┤ → norm(W_mul^T H[i]) ──► 多向量 1024D
└─…──────────────┘
- W_lex ∈ R^{1024×1},W_mul ∈ R^{1024×1024} 可学习
- 三头共享同一套 H,一次前向同时拿到三种表示
3 支持 8 192 token 的关键步骤
步骤 ① 位置重训
随机初始化 8 K×1024 位置矩阵,用 RetroMAE(MLM+检索目标)在 2 K-8 K 长单语上继续预训练 20 K 步,让模型重新学会长距离依赖。
步骤 ② 大 batch 长样本
长度分层采样 + split-batch + 梯度检查点:8192 token 序列单卡 batch 从 6 → 130,保证对比学习所需的大量负例。
步骤 ③ 8 K 级监督
GPT-3.5 合成 41 k“问题-长文档”对,平均 4 737 token;训练时 50 % 概率打乱段落顺序,防止“首段捷径”。
缺任何一步,MLDR 长文档 nDCG 均掉 15-20 点。
4 训练数据总览
| 来源 | 规模 | 语言 | 用途 |
|---|---|---|---|
| 无监督回标 | 1.2 B 对 | 194 语 | 对比预训练 |
| 人工标注 | 1.6 M 对 | 18 语 | 微调 |
| 合成数据 | 41 k 对 | 多语 | 长文档微调 |
5 自知识蒸馏
三路得分 s_dense、s_sparse、s_multi 加权集成得到教师信号 s_inter,再用 KL 散度把每一路对齐到 s_inter,缓解多目标冲突。实验 sparse 头提升 17.2 点(36.7→53.9)。
6 推理模式
模式 1 仅稠密
模式 2 仅稀疏(存 {token:weight},兼容 Lucene)
模式 3 仅多向量(ColBERT-like late-interaction)
模式 4 任意融合 s_rank = w1·s_d + w2·s_s + w3·s_m
推荐通用设置:w1=1, w2=0.3, w3=1(已在 18 语验证)。
7 主要评测结果
7.1 同语检索 MIRACL(18 语 nDCG@10)
M3-All 71.5,超最强基线 mE5-large(66.6)4.9 点;低资源语言 km 提升 41.1 点。
7.2 跨语检索 MKQA(25→en Recall@100)
M3-All 75.5,领先 E5-mistral-7b 5.4 点;高棉语 km 提升 34.9 点。
7.3 长文档 MLDR(14 语 8192 token nDCG@10)
M3-All 65.0,领先 E5-mistral-7b 22.4 点;仅稀疏头已达 62.2,超全部对比模型。
7.4 英文长文档 NarrativeQA
M3-All 61.7,超 OpenAI-3-large 10+ 点。
8 应用技巧
- 长文本免训练增强:MCLS(每 256 token 插 [CLS],平均池化)41.2→45.0。
- 稀疏剪枝:weight>0.01 才入库,倒排体积 ↓30 %,精度不变。
- 显存不足:打开 split-batch + 梯度检查点,8192 token 单卡可跑 130 batch。
9 局限与展望
- 极长文档(>16 K)(法律、医学)尚未验证;后续将引入 Rotary-PI 或 Yarn 继续外推。
- 低资源语言性能差异仍大,计划通过回译+质量过滤进一步平衡数据。
- 计划发布“蒸馏小模型”版,3× 提速,边缘设备可跑。
10 结论
BEG-M3 通过“位置重训-大 batch-自蒸馏”三连环,首次实现单模型同时输出 100+ 语、8 K token 的稠密/稀疏/多向量表示,在多国、跨语、长文档三大 benchmark 全面 SOTA,可直接替代现有“多模型+分段”架构,显著降低部署与维护成本。
更多推荐


所有评论(0)