Skip to main content
一个跨编码器直接对每个(query, document)对进行评分,而不是比较独立的嵌入,这会产生更准确的排序,但每个文档会多一次推理。在向量搜索之上应用重新排序器(通过嵌入检索前20个,重新排序到前5个)是 RAG 管道中最高影响力的质量改进之一,当你使用 Hugging Face 的小型跨编码器时,它可以在本地 CPU 上免费运行。 本指南展示了如何将HuggingFaceCrossEncoder与 LangChain 的CrossEncoderReranker和ContextualCompressionRetriever结合使用。该模式适用于 Hugging Face 上的任何跨编码器模型,包括BAAI/bge-reranker-*、mixedbread-ai/mxbai-rerank-*、Alibaba-NLP/gte-multilingual-reranker-*、Qwen/Qwen3-Reranker-*,以及经典的cross-encoder/ms-marco-*系列。

设置

构建基础检索器

从标准的向量存储检索器开始。检索一个相对较大的k;重新排序器会将其缩小。
langchain-community包已不再维护。从langchain_community导入的示例可能过时或无法使用。请谨慎使用。

使用跨编码器重新排序

CrossEncoderReranker封装了任何跨编码器,并可以插入ContextualCompressionRetriever。

选择跨编码器

HuggingFaceCrossEncoder自动选择最佳可用设备(CUDA > MPS > CPU)。要固定到特定设备,请传递model_kwargs={"device": "cpu"}或类似选项。

部署到 SageMaker

你也可以在 SageMaker 端点上托管跨编码器,并使用SagemakerEndpointCrossEncoder。这里是一个示例inference.py,它动态加载模型(无需model.tar.gz工件)。有关分步指导,请参阅此演练。

官方原文:src/oss/python/integrations/document_transformers/cross_encoder_reranker.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026