SentenceTransformerCrossEncoderRetriever
Cross-encoder re-ranker powered by SentenceTransformer models.
Retrieves candidates from a single child retriever and re-ranks them
using a SentenceTransformer CrossEncoder <https://sbert.net/docs/cross_encoder/pretrained_models.html>_
model that scores (query, chunk) pairs jointly.
The child retriever (the ranker) defines how many candidates are
fetched via its own top_k; this cross-encoder only selects
top_k of them after re-ranking.
Example usage::
Retrieve 15 candidates with BM25 (child's own top_k), keep top 5
after cross-encoding
config = { "model_name": "cross-encoder/ms-marco-MiniLM-L-6-v2", "top_k": 5, "children": [ { "component": "BM25Retriever", "params": {"...": "...", "top_k": 15}, } ], }
Parameters
- model_name : string, default=
cross-encoder/ms-marco-MiniLM-L-6-v2 - Pre-trained SentenceTransformer cross-encoder model to use.
- top_k : integer, default=
5 - Final number of chunks to return after re-ranking. The candidate set size is determined by the child retriever's own top_k.
- children : array, default=
[] - The child retriever whose candidates will be re-ranked.
Methods
get_metadata(cls) -> Dict[str, Any]
SentenceTransformerCrossEncoderRetrieverReturn UI metadata including the declarative operation summary.
inject_infra(self, env_RAG_path: str, chunks: Dict[int, Dict[int, DashAI.back.models.RAG.documents.chunk.Chunk]], persistence: Any) -> None
SentenceTransformerCrossEncoderRetrieverInject runtime infrastructure and load the cross-encoder model.
load(self, filename: str = '') -> None
SentenceTransformerCrossEncoderRetrieverDownload and load the cross-encoder model from HuggingFace Hub.
add(self, child: DashAI.back.models.RAG.retrievers.base_retriever.BaseRetriever) -> None
CompositeRetrieverAdd a child retriever.
get_children(self) -> List[DashAI.back.models.RAG.retrievers.base_retriever.BaseRetriever]
CompositeRetrieverReturn a copy of the children list.
get_chunk_vectors(self, chunk_ids: List[int]) -> numpy.ndarray
CrossEncoderRetrieverReturn chunk vectors from the child retriever.
get_credential(self, name: str)
ConfigObjectResolve a registered credential component by name.
Parameters
- name : str
- Credential component class name (e.g. "HuggingFaceCredential").
Returns
- BaseCredential
- An instance of the requested credential component.
get_id(self) -> int | None
BaseRetrieverReturn the database ID of this retriever, or None.
get_schema(cls) -> dict
ConfigObjectGenerates the component related Json Schema.
Returns
- dict
- Dictionary representing the Json Schema of the component.
init_model(self) -> None
CrossEncoderRetrieverInitialize the model by loading it.
remove(self, child: DashAI.back.models.RAG.retrievers.base_retriever.BaseRetriever) -> None
CompositeRetrieverRemove a child retriever.
retrieve(self, query: str, top_k: int | None = None, **kwargs) -> List[DashAI.back.models.RAG.documents.chunk.Chunk]
CrossEncoderRetrieverRetrieve and re-rank chunks using the cross-encoder.
save(self, filename: str = '') -> None
CrossEncoderRetrieverPersist the cross-encoder retriever's state.
score_chunks(self, chunk_ids: List[int], query: str) -> List[Tuple[int, float]]
CrossEncoderRetrieverScore a set of chunk IDs against the query with the cross-encoder.
set_id(self, id: int) -> None
BaseRetrieverAssign a database ID to this retriever.
validate_and_transform(self, raw_data: dict) -> dict
ConfigObjectIt takes the data given by the user to initialize the model and returns it with all the objects that the model needs to work.
Parameters
- raw_data : dict
- A dictionary with the data provided by the user to initialize the model.
Returns
- dict
- A validated dictionary with the necessary objects.