LangChain 支持三种使用 Hugging Face 嵌入模型的方式:
- 本地推理 通过
HuggingFaceEmbeddings:下载模型并在进程内使用 Sentence Transformers. - 推理提供者和专用推理端点 通过
HuggingFaceEndpointEmbeddings:通过 Hugging Face 进行无服务器或专用托管推理。 - 大规模自托管 通过 Text Embeddings Inference (TEI):Hugging Face 的生产级推理服务器,由
HuggingFaceEndpointEmbeddings.
这三种方法都使用相同的 Embeddings 接口,因此您可以从本地开始,逐步升级到托管或自托管部署,而无需更改应用程序的其余部分。
设置
pip install -qU langchain-huggingface
本地嵌入
通过以下方式在本地生成嵌入 sentence-transformers。首次运行时会下载模型权重。
from langchain_huggingface import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(
model_name="sentence-transformers/all-mpnet-base-v2",
encode_kwargs={"normalize_embeddings": True},
)
query_result = embeddings.embed_query("This is a test document.")
doc_result = embeddings.embed_documents(["This is a test document."])
请参阅专门的 Sentence Transformers 指南 for model selection, GPU configuration, and query/document prompts.
Hugging Face 推理端点和提供者
如果您更愿意在本地下载模型,可以通过以下方式访问嵌入模型 Hugging Face 推理提供者 或专用 推理端点。两者都在 Hugging Face 可扩展的无服务器基础设施上提供开源嵌入模型。
首先,从以下位置获取令牌 您的 Hugging Face 设置:
from getpass import getpass
os.environ["HUGGINGFACEHUB_API_TOKEN"] = getpass()
然后使用 HuggingFaceEndpointEmbeddings:
from langchain_huggingface import HuggingFaceEndpointEmbeddings
embeddings = HuggingFaceEndpointEmbeddings(
model="sentence-transformers/all-mpnet-base-v2"
)
query_result = embeddings.embed_query("This is a test document.")
要通过特定的推理提供者路由(例如 hf-inference, sambanova, together),请传递 provider=:
embeddings = HuggingFaceEndpointEmbeddings(
model="BAAI/bge-m3",
provider="hf-inference",
)
提供者和及其支持的模型的完整列表在 推理提供者文档中.
使用 Text Embeddings Inference 自托管
要在您自己的基础设施上对 Sentence Transformers 模型进行生产级服务,请使用 Text Embeddings Inference (TEI)。TEI 处理批处理、GPU 加速,并暴露 OpenAI 兼容的 API。请参阅 TEI 集成指南 了解详细步骤。