>Hugging Face 上的 BGE 模型 是由 北京人工智能研究院 (BAAI)发布的一系列开源嵌入和重排序模型。BGE 在 2023 年和 2024 年是最领先的开源嵌入模型系列之一,虽然 MTEB 排行榜 上的更新模型在原始检索分数上已经超越了它们,但 BGE(尤其是 BAAI/bge-m3 )仍然是多语言检索中广泛使用、平衡性很好的默认选择。
LangChain 提供了两种使用 BGE 模型的方式:
- -
HuggingFaceEmbeddingsfromlangchain-huggingface:通用的 Sentence Transformers 类。涵盖所有 BGE 变体,是 **推荐** 新项目的选择。
BAAI/bge-m3 以及更新的
pip install -qU langchain-huggingface
from langchain_huggingface import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(
model_name="BAAI/bge-m3",
encode_kwargs={"normalize_embeddings": True},
)
BAAI/bge-m3 训练时没有使用查询提示,因此无需额外配置。 normalize_embeddings=True 根据模型作者的建议,适合余弦相似度。
BAAI/bge-*-en-v1.5 (快速路径)
from langchain_huggingface import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(
model_name="BAAI/bge-large-en-v1.5",
encode_kwargs={"normalize_embeddings": True},
query_encode_kwargs={
"prompt": "Represent this sentence for searching relevant passages: ",
"normalize_embeddings": True,
},
)
不同的 BGE 变体使用不同的提示;请查看 Hugging Face 上各模型卡以获取确切的字符串。
选择 BGE 模型
| 模型 | 规模 | 备注 |
|---|---|---|
BAAI/bge-small-en-v1.5 | 33M | 最小英文模型,CPU 友好 |
BAAI/bge-large-en-v1.5 | 335M | 更强英文模型,广泛使用的基准 |
BAAI/bge-m3 | 570M | 多语言;稠密、稀疏和多向量合一 |
如需重排序(非嵌入),请参阅 BAAI/bge-reranker-v2-m3 通过 Cross Encoder 重排序指南.
更多
请参阅 Sentence Transformers 集成页面 for GPU configuration, batch sizes, query/document prompts, and deployment options.