YAML Metadata Warning: The pipeline tag "text-ranking" is not in the official list: text-classification, token-classification, table-question-answering, question-answering, zero-shot-classification, translation, summarization, feature-extraction, text-generation, text2text-generation, fill-mask, sentence-similarity, text-to-speech, text-to-audio, automatic-speech-recognition, audio-to-audio, audio-classification, audio-text-to-text, voice-activity-detection, depth-estimation, image-classification, object-detection, image-segmentation, text-to-image, image-to-text, image-to-image, image-to-video, unconditional-image-generation, video-classification, reinforcement-learning, robotics, tabular-classification, tabular-regression, tabular-to-text, table-to-text, multiple-choice, text-retrieval, time-series-forecasting, text-to-video, image-text-to-text, visual-question-answering, document-question-answering, zero-shot-image-classification, graph-ml, mask-generation, zero-shot-object-detection, text-to-3d, image-to-3d, image-feature-extraction, video-text-to-text, keypoint-detection, visual-document-retrieval, any-to-any, other

CrossEncoder based on microsoft/MiniLM-L12-H384-uncased

This is a Cross Encoder model finetuned from microsoft/MiniLM-L12-H384-uncased on the ms_marco dataset 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("yjoonjang/reranker-msmarco-v1.1-MiniLM-L12-H384-uncased-plistmle-normalize-temperature")
# Get scores for pairs of texts
pairs = [
    ['How many calories in an egg', 'There are on average between 55 and 80 calories in an egg depending on its size.'],
    ['How many calories in an egg', 'Egg whites are very low in calories, have no fat, no cholesterol, and are loaded with protein.'],
    ['How many calories in an egg', 'Most of the calories in an egg come from the yellow yolk in the center.'],
]
scores = model.predict(pairs)
print(scores.shape)
# (3,)

# Or rank different texts based on similarity to a single text
ranks = model.rank(
    'How many calories in an egg',
    [
        'There are on average between 55 and 80 calories in an egg depending on its size.',
        'Egg whites are very low in calories, have no fat, no cholesterol, and are loaded with protein.',
        'Most of the calories in an egg come from the yellow yolk in the center.',
    ]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]

Evaluation

Metrics

Cross Encoder Reranking

  • Datasets: NanoMSMARCO_R100, NanoNFCorpus_R100 and NanoNQ_R100
  • Evaluated with CrossEncoderRerankingEvaluator with these parameters:
    {
        "at_k": 10,
        "always_rerank_positives": true
    }
    
Metric NanoMSMARCO_R100 NanoNFCorpus_R100 NanoNQ_R100
map 0.5170 (+0.0274) 0.3373 (+0.0763) 0.5692 (+0.1496)
mrr@10 0.5045 (+0.0270) 0.5709 (+0.0711) 0.5682 (+0.1415)
ndcg@10 0.5625 (+0.0220) 0.3716 (+0.0465) 0.6279 (+0.1273)

Cross Encoder Nano BEIR

  • Dataset: NanoBEIR_R100_mean
  • Evaluated with CrossEncoderNanoBEIREvaluator with these parameters:
    {
        "dataset_names": [
            "msmarco",
            "nfcorpus",
            "nq"
        ],
        "rerank_k": 100,
        "at_k": 10,
        "always_rerank_positives": true
    }
    
Metric Value
map 0.4745 (+0.0844)
mrr@10 0.5479 (+0.0799)
ndcg@10 0.5206 (+0.0653)

Training Details

Training Dataset

ms_marco

  • Dataset: ms_marco at a47ee7a
  • Size: 78,704 training samples
  • Columns: query, docs, and labels
  • Approximate statistics based on the first 1000 samples:
    query docs labels
    type string list list
    details
    • min: 11 characters
    • mean: 33.69 characters
    • max: 88 characters
    • min: 4 elements
    • mean: 7.00 elements
    • max: 10 elements
    • min: 4 elements
    • mean: 7.00 elements
    • max: 10 elements
  • Samples:
    query docs labels
    what is the average elevation of florida ['Answer by Clement (1453). Mean elevation in Florida is 98 feet or 30 meters, while the highest point of Florida is Britton Hill. The elevation of Britton Hill is equal to 345 feet or 105 meters. The state of Florida is 500 miles long and 160 miles wide at the most distant points. While 11,761 square miles of Florida are covered by water it is the 3rd wettest state after Alaska (first) and Michigan (second).', 'In this exaggerated view even those highest elevations are only about 60 meters (197 feet) above sea level. For the view on the right, elevations below 5 meters (16 feet) above sea level have been colored blue, and lighter blue indicates elevations below 10 meters (33 feet). ', "A small inset shows Florida among the other 47 Continental United States. Florida base map, Courtesy of Maps.com. This elevation map of Florida illustrates the number of feet or meters the state rises above sea level. Britton Hill, in the Florida Panhandle, is the highest point in Florida, at 345 feet a... [1, 0, 0, 0, 0, ...]
    what does sunil mean ["[ 2 syll. su-nil, sun-il ] The baby boy name Sunil is pronounced as Suw-N IY-L †. Sunil is of Sanskrit origin and it is predominantly used in the Indian language. The name is of the meaning 'deep dark blue'. Variant forms of Sunil include the names Suneal, Suneel, Suneil, Suniel, and Sunyl. Sunil is an infrequently used baby name for boys. It is not ranked within the top 1000 names.", 'Then just follow the diagram below. Just for fun, see the name Sunil in Hieroglyphics, learn about ancient Egyptian Hieroglyphics and write a Hieroglyphic message. Learn about nautical flags and see your name or message written in nautical flags, on the Sunil in Nautical Flags page.', 'You are spiritually intense and can sting or charm. Your name brings love and new starts into life and attracts money. In business, you are the creator and promoter of original ideas and usually enjoy considerable financial success.Emergencies may raise your intuitive abilities in order to resolve conflict or situation.', "Sunil is generally used as a boy's name. It consists of 5 letters and 2 syllables and is pronounced Su-nil. In the U.S. in 2014 less than 5 boys given the name. Less than 5 girls were", 'Indian names generally contain a given name followed by some number of secondary names. Secondary names are often patronyms, names derived from the father, grandfather or other paternal ancestor, village names, occupation names, or names of gods. Hindu given names are from Sanskrit.'] [1, 0, 0, 0, 0]
    explain what makes up jamaican culture ['Jamaican culture represents a combination of cultures that have inhabited the Greater Antilles island, Jamaica. The original Taino Settlers, followed by their Spanish conquerors (who were in turn were conquered by the British), all made major contributions. African american slaves became the dominant cultural force as they suffered and resisted the harsh conditions of forced labour.', 'Jamaican Culture And Jamaican Traditions. Jamaican culture can be aptly described as the Jamaican human activity within different aspects of everyday life that relate to Jamaican traditions. Jamaican culture can be divided into several sectors or sects, usually called Jamaican aspects of culture. Origin: Jamaican culture is defined as the origin of its entire population.', 'As a Jamaican, I must say that we are indeed special. The way we walk, the way we talk, even the way we approach and address situations. And, along with our uniquely “colourful” nature comes our own set of unique customs and traditi... [1, 1, 0, 0, 0, ...]
  • Loss: PListMLELoss with these parameters:
    {
        "lambda_weight": "sentence_transformers.cross_encoder.losses.PListMLELoss.PListMLELambdaWeight",
        "activation_fct": "torch.nn.modules.linear.Identity",
        "mini_batch_size": null,
        "respect_input_order": true
    }
    

Evaluation Dataset

ms_marco

  • Dataset: ms_marco at a47ee7a
  • Size: 1,000 evaluation samples
  • Columns: query, docs, and labels
  • Approximate statistics based on the first 1000 samples:
    query docs labels
    type string list list
    details
    • min: 11 characters
    • mean: 33.9 characters
    • max: 96 characters
    • min: 3 elements
    • mean: 6.50 elements
    • max: 10 elements
    • min: 3 elements
    • mean: 6.50 elements
    • max: 10 elements
  • Samples:
    query docs labels
    definition fetters ['fet·ter. n. 1. A device, usually one of a pair of rings connected to a chain, that is attached to the ankles or feet to restrict movement. 2. often fetters Something that serves to restrict; a restraint: the fetters of tyranny. tr.v. fet·tered, fet·ter·ing, fet·ters. 1. To put fetters on; shackle.', 'fet·ter. n. 1. A device, usually one of a pair of rings connected to a chain, that is attached to the ankles or feet to restrict movement. 2. often fetters Something that serves to restrict; a restraint: the fetters of tyranny. tr.v. fet·tered, fet·ter·ing, fet·ters. 1. To put fetters on; shackle.', '1 Her hands were bound by rigid metal fetters connected by a chain to a leather belt around her waist. 2 Her gaze fell to the fetters at her wrists and ankles. 3 He took a second dagger and jammed it into the lock of her fetters, twisting with a meaty hand. 4 The fetters broke open.', "Dictionaries-Smith's Bible Dictionary-Fetters. Fetters were for the feet only, while chains were for any part of the body. They were usually made of brass, and also in pairs, the word being in the dual number. Iron was occasionally employed for the purpose.", 'Fetters were for the feet only, while chains were for any part of the body. They were usually made of brass, and also in pairs, the word being in the dual number.'] [1, 0, 0, 0, 0]
    temperature for tropical fish ['Tropical fish are those that require heated water, generally in the range of 75-80°F (24-27°C). Because many homes are not kept in that temperature range day and night, these fish require a heated aquarium.', 'It depends on the species, but in general tropical fish are most healthy in the range of 75-80°F (24-27°C). Cold water fish do better in temperatures well below that, some of them enjoy water well below 70°F, which is not suitable for any tropical fish.', 'Aquarium Water Temperature. For the vast majority of tropical fish, an aquarium water temperature of 76 to 78º Fahrenheit will be fine. Some species like cooler water and some prefer warmer water, but as a compromise, this range works well.', "Heating. Tropical fish require a normal maintenance temperature between approx. 22-29 o C (72-84 o F), with many species being kept at a 'middle value' of 24-25 o C (75-77 o F). Maintaining a stable temperature (and more importantly avoiding rapid changes) is vital to avoid stressing fish.", 'Not only is temperature important for your fish but also for the plants you put in your aquarium. Close attention to keeping your temperature in the right range will ensure you have a thriving freshwater aquarium. Temperature Ranges. Most tropical fish prefer a temperature range of 72 to 79 degrees. Most people who operate tropical fish aquariums will keep their tanks at a constant 77 degrees. The best thing to do is ask the sales representative at your local fish store for the best temperature for the fish you want.'] [1, 0, 0, 0, 0]
    what is nuclear medicine salary ['The average annual nuclear medicine technologist salary is $70,840. The mean salary is calculated by adding all the wages within the occupation and divid that value by the total number of employees. Lowest 10% of this occupation makes less than $50,560 and the top 10% makes over $93,320. What is a Nuclear Medicine Technologist. Nuclear medicine technologists prepare and administer radioactive drugs for patients, then use scanners to create images of the area of the body in need of scanning.', '$72,000. Average Nuclear Medicine Technologist salaries for job postings nationwide are 26% higher than average salaries for all job postings nationwide. ', 'Nuclear medicine technologist salary in USA. The average annual salary for nuclear medicine technologist in the US ranges from $48,699 to $83,024, based on PayScale reports, while the hourly wage is $23.30 to $38.81. The median salary is $62,165. Nuclear medicine technologist salary in Canada. The average salary for nuclear medicine techno... [1, 0, 0, 0, 0, ...]
  • Loss: PListMLELoss with these parameters:
    {
        "lambda_weight": "sentence_transformers.cross_encoder.losses.PListMLELoss.PListMLELambdaWeight",
        "activation_fct": "torch.nn.modules.linear.Identity",
        "mini_batch_size": null,
        "respect_input_order": true
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • seed: 12
  • bf16: True
  • load_best_model_at_end: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • 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: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • 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: 12
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: True
  • 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: True
  • 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}
  • 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 Validation Loss NanoMSMARCO_R100_ndcg@10 NanoNFCorpus_R100_ndcg@10 NanoNQ_R100_ndcg@10 NanoBEIR_R100_mean_ndcg@10
-1 -1 - - 0.0372 (-0.5032) 0.2859 (-0.0391) 0.0977 (-0.4029) 0.1403 (-0.3151)
0.0002 1 2.2779 - - - - -
0.0508 250 2.1881 - - - - -
0.1016 500 2.0219 1.9720 0.3191 (-0.2213) 0.2905 (-0.0345) 0.4120 (-0.0886) 0.3405 (-0.1148)
0.1525 750 1.9385 - - - - -
0.2033 1000 1.8842 1.8974 0.4875 (-0.0530) 0.3411 (+0.0161) 0.5581 (+0.0575) 0.4622 (+0.0069)
0.2541 1250 1.868 - - - - -
0.3049 1500 1.8465 1.8177 0.5154 (-0.0250) 0.3351 (+0.0100) 0.6174 (+0.1168) 0.4893 (+0.0340)
0.3558 1750 1.8315 - - - - -
0.4066 2000 1.8423 1.8077 0.5036 (-0.0368) 0.3557 (+0.0307) 0.5824 (+0.0818) 0.4806 (+0.0252)
0.4574 2250 1.8125 - - - - -
0.5082 2500 1.8056 1.8148 0.5221 (-0.0183) 0.3415 (+0.0164) 0.6289 (+0.1283) 0.4975 (+0.0421)
0.5591 2750 1.8064 - - - - -
0.6099 3000 1.7952 1.7797 0.5625 (+0.0220) 0.3716 (+0.0465) 0.6279 (+0.1273) 0.5206 (+0.0653)
0.6607 3250 1.7954 - - - - -
0.7115 3500 1.7892 1.7754 0.5354 (-0.0051) 0.3499 (+0.0249) 0.5947 (+0.0941) 0.4933 (+0.0380)
0.7624 3750 1.7607 - - - - -
0.8132 4000 1.7766 1.7712 0.5508 (+0.0104) 0.3593 (+0.0343) 0.6209 (+0.1203) 0.5103 (+0.0550)
0.8640 4250 1.7746 - - - - -
0.9148 4500 1.7798 1.7651 0.5557 (+0.0153) 0.3551 (+0.0301) 0.6225 (+0.1218) 0.5111 (+0.0557)
0.9656 4750 1.7762 - - - - -
-1 -1 - - 0.5625 (+0.0220) 0.3716 (+0.0465) 0.6279 (+0.1273) 0.5206 (+0.0653)
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.11
  • Sentence Transformers: 3.5.0.dev0
  • Transformers: 4.49.0
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.5.2
  • Datasets: 3.4.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",
}

PListMLELoss

@inproceedings{lan2014position,
  title={Position-Aware ListMLE: A Sequential Learning Process for Ranking.},
  author={Lan, Yanyan and Zhu, Yadong and Guo, Jiafeng and Niu, Shuzi and Cheng, Xueqi},
  booktitle={UAI},
  volume={14},
  pages={449--458},
  year={2014}
}
Downloads last month
8
Safetensors
Model size
33.4M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for yjoonjang/reranker-msmarco-v1.1-MiniLM-L12-H384-uncased-plistmle-normalize-temperature

Finetuned
(83)
this model

Dataset used to train yjoonjang/reranker-msmarco-v1.1-MiniLM-L12-H384-uncased-plistmle-normalize-temperature

Evaluation results