TransformersSimilarityRanker
Rank documents based on their semantic similarity to the query.
This component is considered legacy and will no longer receive updates. It may be deprecated in a future release, with removal following after a deprecation period. Consider using SentenceTransformersSimilarityRanker instead, which provides the same functionality along with additional features.
Key Features
- Uses a pre-trained cross-encoder model from Hugging Face to rank documents by semantic relevance.
- Configurable
top_kandscore_thresholdto control number and quality of returned documents. - Supports score scaling with Sigmoid activation and calibration factor.
- Supports query and document prefix strings for instruction-tuned reranking models.
- Compatible with local model paths or Hugging Face Hub model names.
Configuration
- Drag the
TransformersSimilarityRankercomponent onto the canvas from the Component Library. - Click the component to open the configuration panel.
- On the General tab:
- Enter the model name or local path, such as
cross-encoder/ms-marco-MiniLM-L-6-v2.
- Enter the model name or local path, such as
- Go to the Advanced tab to configure the device, token, top_k, score threshold, batch size, model kwargs, tokenizer kwargs, scale score, and calibration factor.
Connections
TransformersSimilarityRanker receives a query string and a documents list — typically from a Retriever or DocumentJoiner. It outputs a ranked documents list sorted from most to least relevant. Connect its output to ChatPromptBuilder or AnswerBuilder.
Usage Example
components:
TransformersSimilarityRanker:
type: components.rankers.transformers_similarity.TransformersSimilarityRanker
init_parameters:
Parameters
Inputs
| Parameter | Type | Default | Description |
|---|---|---|---|
| query | str | The input query to compare the documents to. | |
| documents | List[Document] | A list of documents to be ranked. | |
| top_k | Optional[int] | None | The maximum number of documents to return. |
| scale_score | Optional[bool] | None | If True, scales the raw logit predictions using a Sigmoid activation function. If False, disables scaling of the raw logit predictions. |
| calibration_factor | Optional[float] | None | Use this factor to calibrate probabilities with sigmoid(logits * calibration_factor). Used only if scale_score is True. |
| score_threshold | Optional[float] | None | Use it to return documents only with a score above this threshold. |
Outputs
| Parameter | Type | Default | Description |
|---|---|---|---|
| documents | List[Document] | A list of documents closest to the query, sorted from most similar to least similar. |
Init Parameters
These are the parameters you can configure in Pipeline Builder:
| Parameter | Type | Default | Description |
|---|---|---|---|
| model | Union[str, Path] | cross-encoder/ms-marco-MiniLM-L-6-v2 | The ranking model. Pass a local path or the Hugging Face model name of a cross-encoder model. |
| device | Optional[ComponentDevice] | None | The device on which the model is loaded. If None, overrides the default device. |
| token | Optional[Secret] | Secret.from_env_var(['HF_API_TOKEN', 'HF_TOKEN'], strict=False) | The API token to download private models from Hugging Face. |
| top_k | int | 10 | The maximum number of documents to return per query. |
| query_prefix | str | A string to add at the beginning of the query text before ranking. Use it to prepend the text with an instruction, as required by reranking models like bge. | |
| document_prefix | str | A string to add at the beginning of each document before ranking. You can use it to prepend the document with an instruction, as required by embedding models like bge. | |
| meta_fields_to_embed | Optional[List[str]] | None | List of metadata fields to embed with the document. |
| embedding_separator | str | \n | Separator to concatenate metadata fields to the document. |
| scale_score | bool | True | If True, scales the raw logit predictions using a Sigmoid activation function. If False, disables scaling of the raw logit predictions. |
| calibration_factor | Optional[float] | 1.0 | Use this factor to calibrate probabilities with sigmoid(logits * calibration_factor). Used only if scale_score is True. |
| score_threshold | Optional[float] | None | Use it to return documents with a score above this threshold only. |
| model_kwargs | Optional[Dict[str, Any]] | None | Additional keyword arguments for AutoModelForSequenceClassification.from_pretrained when loading the model. |
| tokenizer_kwargs | Optional[Dict[str, Any]] | None | Additional keyword arguments for AutoTokenizer.from_pretrained when loading the tokenizer. |
| batch_size | int | 16 | The batch size to use for inference. The higher the batch size, the more memory is required. If you run into memory issues, reduce the batch size. |
Run Method Parameters
These are the parameters you can configure for the component's run() method. This means you can pass these parameters at query time through the API, in Playground, or when running a job. For details, see Modify Pipeline Parameters at Query Time.
| Parameter | Type | Default | Description |
|---|---|---|---|
| query | str | The input query to compare the documents to. | |
| documents | List[Document] | A list of documents to be ranked. | |
| top_k | Optional[int] | None | The maximum number of documents to return. |
| scale_score | Optional[bool] | None | If True, scales the raw logit predictions using a Sigmoid activation function. If False, disables scaling of the raw logit predictions. |
| calibration_factor | Optional[float] | None | Use this factor to calibrate probabilities with sigmoid(logits * calibration_factor). Used only if scale_score is True. |
| score_threshold | Optional[float] | None | Use it to return documents only with a score above this threshold. |
Was this page helpful?