首页/AI/RAG 与向量库速查/BGE-M3 多语言多粒度模型
Embedding 与检索50 条

BGE-M3 多语言多粒度模型

BGE-M3 同时提供稠密、稀疏(学习型权重)与多向量(ColBERT 式)三种表示,覆盖多语言与较长输入,适合一体化混合检索方案。

RAG 与向量库速查AI更新于 2026-10-12
模型BAAI/bge-m3
稠密维度1024
最大长度8192 tokens(见模型卡)
输出dense / sparse / colbert 三种

三种表示

三种表示
from FlagEmbedding import BGEM3FlagModel

model = BGEM3FlagModel("BAAI/bge-m3", use_fp16=True)
out = model.encode(["什么是向量检索"], return_dense=True,
                   return_sparse=True, return_colbert_vecs=False)
print(len(out["dense_vecs"][0]))
print(list(out["lexical_weights"][0].items())[:2])
稀疏权重可直接写入支持稀疏向量的库(如 Qdrant 稀疏向量、Milvus 稀疏字段)与稠密向量组合做混合检索。

易错点

  • 三种表示的融合方式按官方示例实现,不要自行简单加权相加
  • max_length 放宽到 8192 会显著增加计算量,按需设置

数据来源与参考

  • Chen et al., BGE M3-Embedding, arXiv:2402.03216
  • FlagEmbedding 项目文档(github.com/FlagOpen/FlagEmbedding)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌