以编程方式使用文档

>Hugging Face 上的 BGE 模型 是由 北京人工智能研究院 (BAAI)发布的一系列开源嵌入和重排序模型。BGE 在 2023 年和 2024 年是最领先的开源嵌入模型系列之一,虽然 MTEB 排行榜 上的更新模型在原始检索分数上已经超越了它们,但 BGE(尤其是 BAAI/bge-m3 )仍然是多语言检索中广泛使用、平衡性很好的默认选择。

LangChain 提供了两种使用 BGE 模型的方式:

  • - HuggingFaceEmbeddings from langchain-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.533M最小英文模型,CPU 友好
BAAI/bge-large-en-v1.5335M更强英文模型,广泛使用的基准
BAAI/bge-m3570M多语言;稠密、稀疏和多向量合一

如需重排序(非嵌入),请参阅 BAAI/bge-reranker-v2-m3 通过 Cross Encoder 重排序指南.

更多

请参阅 Sentence Transformers 集成页面 for GPU configuration, batch sizes, query/document prompts, and deployment options.