CrossEncoder based on cross-encoder/ms-marco-MiniLM-L6-v2

This is a Cross Encoder model finetuned from cross-encoder/ms-marco-MiniLM-L6-v2 using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.

Model Details

Model Description

Model Sources

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import CrossEncoder

# Download from the ๐Ÿค— Hub
model = CrossEncoder("cross_encoder_model_id")
# Get scores for pairs of texts
pairs = [
    ["How does the `DPMSolverMultistepInverse` scheduler relate to DDIM inversion and DPM-Solver's forward and reverse processes?", 'DPMSolverMultistepInverseis the inverted scheduler fromDPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 StepsandDPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Modelsby Cheng Lu, Yuhao Zhou, Fan Bao, Jianfei Chen, Chongxuan Li, and Jun Zhu. The implementation is mostly based on the DDIM inversion definition ofNull-text Inversion for Editing Real Images using Guided Diffusion Modelsand notebook implementation of theDiffEditlatent inversion fromXiang-cd/DiffEdit-stable-diffusion.'],
    ['How can I optimize AudioLDM prompt engineering and inference for faster, higher-quality audio generation?', 'The model usually performs well without requiring any finetuning. The architecture follows a classic encoder-decoder architecture, which means that it relies on thegenerate()function for inference. One can useWhisperProcessorto prepare audio for the model, and decode the predicted IDโ€™s back into text. To convert the model and the processor, we recommend using the following: The script will automatically determine all necessary parameters from the OpenAI checkpoint. Atiktokenlibrary needs to be installed to perform the conversion of the OpenAI tokenizer to thetokenizersversion.'],
    ['What AuraFlow-related attention processing tasks does the `AuraFlowAttnProcessor2_0` model excel at?', '() Attention processor used in Mochi.'],
    ['What are the key capabilities and applications of the CLIP (Contrastive Language-Image Pre-training) model?', 'The code snippet below shows how to compute image & text features and similarities: Currently, following scales of pretrained Chinese-CLIP models are available on ๐Ÿค— Hub:'],
    ['How effectively does CogVideoX translate text prompts into 720x480 videos?', 'To generate a video from prompt, run the following Python code: You can change these parameters in the pipeline call: We can also generate longer videos by doing the processing in a chunk-by-chunk manner:'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)

# Or rank different texts based on similarity to a single text
ranks = model.rank(
    "How does the `DPMSolverMultistepInverse` scheduler relate to DDIM inversion and DPM-Solver's forward and reverse processes?",
    [
        'DPMSolverMultistepInverseis the inverted scheduler fromDPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 StepsandDPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Modelsby Cheng Lu, Yuhao Zhou, Fan Bao, Jianfei Chen, Chongxuan Li, and Jun Zhu. The implementation is mostly based on the DDIM inversion definition ofNull-text Inversion for Editing Real Images using Guided Diffusion Modelsand notebook implementation of theDiffEditlatent inversion fromXiang-cd/DiffEdit-stable-diffusion.',
        'The model usually performs well without requiring any finetuning. The architecture follows a classic encoder-decoder architecture, which means that it relies on thegenerate()function for inference. One can useWhisperProcessorto prepare audio for the model, and decode the predicted IDโ€™s back into text. To convert the model and the processor, we recommend using the following: The script will automatically determine all necessary parameters from the OpenAI checkpoint. Atiktokenlibrary needs to be installed to perform the conversion of the OpenAI tokenizer to thetokenizersversion.',
        '() Attention processor used in Mochi.',
        'The code snippet below shows how to compute image & text features and similarities: Currently, following scales of pretrained Chinese-CLIP models are available on ๐Ÿค— Hub:',
        'To generate a video from prompt, run the following Python code: You can change these parameters in the pipeline call: We can also generate longer videos by doing the processing in a chunk-by-chunk manner:',
    ]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]

Evaluation

Metrics

Cross Encoder Binary Classification

Metric Value
accuracy 0.9118
accuracy_threshold -0.3893
f1 0.8254
f1_threshold -1.1288
precision 0.7898
recall 0.8643
average_precision 0.8781

Training Details

Training Dataset

Unnamed Dataset

  • Size: 25,200 training samples
  • Columns: sentence_0, sentence_1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence_0 sentence_1 label
    type string string int
    details
    • min: 19 characters
    • mean: 114.7 characters
    • max: 785 characters
    • min: 9 characters
    • mean: 700.88 characters
    • max: 11836 characters
    • 0: ~76.50%
    • 1: ~23.50%
  • Samples:
    sentence_0 sentence_1 label
    How does the DPMSolverMultistepInverse scheduler relate to DDIM inversion and DPM-Solver's forward and reverse processes? DPMSolverMultistepInverseis the inverted scheduler fromDPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 StepsandDPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Modelsby Cheng Lu, Yuhao Zhou, Fan Bao, Jianfei Chen, Chongxuan Li, and Jun Zhu. The implementation is mostly based on the DDIM inversion definition ofNull-text Inversion for Editing Real Images using Guided Diffusion Modelsand notebook implementation of theDiffEditlatent inversion fromXiang-cd/DiffEdit-stable-diffusion. 1
    How can I optimize AudioLDM prompt engineering and inference for faster, higher-quality audio generation? The model usually performs well without requiring any finetuning. The architecture follows a classic encoder-decoder architecture, which means that it relies on thegenerate()function for inference. One can useWhisperProcessorto prepare audio for the model, and decode the predicted IDโ€™s back into text. To convert the model and the processor, we recommend using the following: The script will automatically determine all necessary parameters from the OpenAI checkpoint. Atiktokenlibrary needs to be installed to perform the conversion of the OpenAI tokenizer to thetokenizersversion. 0
    What AuraFlow-related attention processing tasks does the AuraFlowAttnProcessor2_0 model excel at? () Attention processor used in Mochi. 0
  • Loss: FitMixinLoss

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • num_train_epochs: 2

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 5e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1
  • num_train_epochs: 2
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • tp_size: 0
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss Quora-dev_average_precision
0.1269 100 - 0.7617
0.2538 200 - 0.7991
0.3807 300 - 0.8186
0.5076 400 - 0.8476
0.6345 500 0.327 0.8500
0.7614 600 - 0.8518
0.8883 700 - 0.8616
1.0 788 - 0.8599
1.0152 800 - 0.8537
1.1421 900 - 0.8542
1.2690 1000 0.267 0.8663
1.3959 1100 - 0.8662
1.5228 1200 - 0.8781

Framework Versions

  • Python: 3.11.10
  • Sentence Transformers: 4.0.1
  • Transformers: 4.50.3
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.6.0
  • Datasets: 3.5.0
  • Tokenizers: 0.21.1

Citation

BibTeX

Sentence Transformers

@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}
Downloads last month
2
Safetensors
Model size
22.7M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for truong1301/reranker

Space using truong1301/reranker 1

Evaluation results