Text Ranking
sentence-transformers
Safetensors
English
modernbert
cross-encoder
reranker
Generated from Trainer
dataset_size:95939
loss:LambdaLoss
Eval Results (legacy)
text-embeddings-inference
Instructions to use kwondw/reranker-ModernBERT-base-gooaq-lambda with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use kwondw/reranker-ModernBERT-base-gooaq-lambda with sentence-transformers:
from sentence_transformers import CrossEncoder model = CrossEncoder("kwondw/reranker-ModernBERT-base-gooaq-lambda") query = "Which planet is known as the Red Planet?" passages = [ "Venus is often called Earth's twin because of its similar size and proximity.", "Mars, known for its reddish appearance, is often referred to as the Red Planet.", "Jupiter, the largest planet in our solar system, has a prominent red spot.", "Saturn, famous for its rings, is sometimes mistaken for the Red Planet." ] scores = model.predict([(query, passage) for passage in passages]) print(scores) - Notebooks
- Google Colab
- Kaggle
metadata
language:
- en
license: apache-2.0
tags:
- sentence-transformers
- cross-encoder
- reranker
- generated_from_trainer
- dataset_size:95939
- loss:LambdaLoss
base_model: answerdotai/ModernBERT-base
pipeline_tag: text-ranking
library_name: sentence-transformers
metrics:
- map
- mrr@10
- ndcg@10
model-index:
- name: ModernBERT-base trained on GooAQ
results:
- task:
type: cross-encoder-reranking
name: Cross Encoder Reranking
dataset:
name: gooaq dev
type: gooaq-dev
metrics:
- type: map
value: 0.7235
name: Map
- type: mrr@10
value: 0.722
name: Mrr@10
- type: ndcg@10
value: 0.7664
name: Ndcg@10
- task:
type: cross-encoder-reranking
name: Cross Encoder Reranking
dataset:
name: NanoMSMARCO R100
type: NanoMSMARCO_R100
metrics:
- type: map
value: 0.44
name: Map
- type: mrr@10
value: 0.4276
name: Mrr@10
- type: ndcg@10
value: 0.5023
name: Ndcg@10
- task:
type: cross-encoder-reranking
name: Cross Encoder Reranking
dataset:
name: NanoNFCorpus R100
type: NanoNFCorpus_R100
metrics:
- type: map
value: 0.3312
name: Map
- type: mrr@10
value: 0.5754
name: Mrr@10
- type: ndcg@10
value: 0.3743
name: Ndcg@10
- task:
type: cross-encoder-reranking
name: Cross Encoder Reranking
dataset:
name: NanoNQ R100
type: NanoNQ_R100
metrics:
- type: map
value: 0.2867
name: Map
- type: mrr@10
value: 0.281
name: Mrr@10
- type: ndcg@10
value: 0.3538
name: Ndcg@10
- task:
type: cross-encoder-nano-beir
name: Cross Encoder Nano BEIR
dataset:
name: NanoBEIR R100 mean
type: NanoBEIR_R100_mean
metrics:
- type: map
value: 0.3526
name: Map
- type: mrr@10
value: 0.428
name: Mrr@10
- type: ndcg@10
value: 0.4101
name: Ndcg@10
ModernBERT-base trained on GooAQ
This is a Cross Encoder model finetuned from answerdotai/ModernBERT-base 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 Type: Cross Encoder
- Base model: answerdotai/ModernBERT-base
- Maximum Sequence Length: 8192 tokens
- Number of Output Labels: 1 label
- Supported Modality: Text
- Language: en
- License: apach-2.0
Model Sources
- Documentation: Sentence Transformers Documentation
- Documentation: Cross Encoder Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Cross Encoders on Hugging Face
Full Model Architecture
CrossEncoder(
(0): Transformer({'transformer_task': 'sequence-classification', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'logits'}}, 'module_output_name': 'scores', 'architecture': 'ModernBertForSequenceClassification'})
)
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 inputs
pairs = [
['what are the 5 characteristics of a star?', 'Key Concept: Characteristics used to classify stars include color, temperature, size, composition, and brightness.'],
['what are the 5 characteristics of a star?', 'The biggest difference was compression. The most recent Z-STAR has a compression of 90, while the Z-STAR XV comes in at 102. The original Q-STAR Tour had a compression of 75 (this new version, like Gen 2, is 72), and with its performance characteristics, Srixon could have called it Z-STAR Soft.'],
['what are the 5 characteristics of a star?', "While 4-star hotels provide quality services to its patrons, a 5-star luxury accommodation will have impeccable service delivery. You'll often end up paying extra for the amenities like room service and concierge services in a 4-star hotel. But a 5-star hotel will always offer personalised services."],
['what are the 5 characteristics of a star?', 'However, the brightness of a star depends on its composition and how far it is from the planet. Astronomers define star brightness in terms of apparent magnitude β how bright the star appears from Earth β and absolute magnitude β how bright the star appears at a standard distance of 32.6 light-years, or 10 parsecs.'],
['what are the 5 characteristics of a star?', 'A "falling star" or a "shooting star" has nothing at all to do with a star! These amazing streaks of light you can sometimes see in the night sky are caused by tiny bits of dust and rock called meteoroids falling into the Earth\'s atmosphere and burning up. ... Meteors are commonly called falling stars or shooting stars.'],
]
scores = model.predict(pairs)
print(scores)
# [9.4520e-01 1.7401e-04 4.5739e-03 2.9579e-03 1.3631e-05]
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'what are the 5 characteristics of a star?',
[
'Key Concept: Characteristics used to classify stars include color, temperature, size, composition, and brightness.',
'The biggest difference was compression. The most recent Z-STAR has a compression of 90, while the Z-STAR XV comes in at 102. The original Q-STAR Tour had a compression of 75 (this new version, like Gen 2, is 72), and with its performance characteristics, Srixon could have called it Z-STAR Soft.',
"While 4-star hotels provide quality services to its patrons, a 5-star luxury accommodation will have impeccable service delivery. You'll often end up paying extra for the amenities like room service and concierge services in a 4-star hotel. But a 5-star hotel will always offer personalised services.",
'However, the brightness of a star depends on its composition and how far it is from the planet. Astronomers define star brightness in terms of apparent magnitude β how bright the star appears from Earth β and absolute magnitude β how bright the star appears at a standard distance of 32.6 light-years, or 10 parsecs.',
'A "falling star" or a "shooting star" has nothing at all to do with a star! These amazing streaks of light you can sometimes see in the night sky are caused by tiny bits of dust and rock called meteoroids falling into the Earth\'s atmosphere and burning up. ... Meteors are commonly called falling stars or shooting stars.',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
Evaluation
Metrics
Cross Encoder Reranking
- Dataset:
gooaq-dev - Evaluated with
CrossEncoderRerankingEvaluatorwith these parameters:{ "at_k": 10, "always_rerank_positives": false }
| Metric | Value |
|---|---|
| map | 0.7235 (+0.1924) |
| mrr@10 | 0.7220 (+0.1981) |
| ndcg@10 | 0.7664 (+0.1751) |
Cross Encoder Reranking
- Datasets:
NanoMSMARCO_R100,NanoNFCorpus_R100andNanoNQ_R100 - Evaluated with
CrossEncoderRerankingEvaluatorwith these parameters:{ "at_k": 10, "always_rerank_positives": true }
| Metric | NanoMSMARCO_R100 | NanoNFCorpus_R100 | NanoNQ_R100 |
|---|---|---|---|
| map | 0.4400 (-0.0496) | 0.3312 (+0.0702) | 0.2867 (-0.1329) |
| mrr@10 | 0.4276 (-0.0499) | 0.5754 (+0.0756) | 0.2810 (-0.1457) |
| ndcg@10 | 0.5023 (-0.0381) | 0.3743 (+0.0492) | 0.3538 (-0.1468) |
Cross Encoder Nano BEIR
- Dataset:
NanoBEIR_R100_mean - Evaluated with
CrossEncoderNanoBEIREvaluatorwith these parameters:{ "dataset_names": [ "msmarco", "nfcorpus", "nq" ], "dataset_id": "sentence-transformers/NanoBEIR-en", "rerank_k": 100, "at_k": 10, "always_rerank_positives": true }
| Metric | Value |
|---|---|
| map | 0.3526 (-0.0374) |
| mrr@10 | 0.4280 (-0.0400) |
| ndcg@10 | 0.4101 (-0.0452) |
Training Details
Training Dataset
Unnamed Dataset
- Size: 95,939 training samples
- Columns:
question,answer, andlabels - Approximate statistics based on the first 100 samples:
question answer labels type string list list modality text details - min: 8 tokens
- mean: 11.69 tokens
- max: 19 tokens
- size: 6 elements
- size: 6 elements
- Samples:
question answer labels what are the 5 characteristics of a star?['Key Concept: Characteristics used to classify stars include color, temperature, size, composition, and brightness.', 'The biggest difference was compression. The most recent Z-STAR has a compression of 90, while the Z-STAR XV comes in at 102. The original Q-STAR Tour had a compression of 75 (this new version, like Gen 2, is 72), and with its performance characteristics, Srixon could have called it Z-STAR Soft.', "While 4-star hotels provide quality services to its patrons, a 5-star luxury accommodation will have impeccable service delivery. You'll often end up paying extra for the amenities like room service and concierge services in a 4-star hotel. But a 5-star hotel will always offer personalised services.", 'However, the brightness of a star depends on its composition and how far it is from the planet. Astronomers define star brightness in terms of apparent magnitude β how bright the star appears from Earth β and absolute magnitude β how bright the star appears at a standard distance of 32.6 light-years, or 10 parsecs.', 'A "falling star" or a "shooting star" has nothing at all to do with a star! These amazing streaks of light you can sometimes see in the night sky are caused by tiny bits of dust and rock called meteoroids falling into the Earth's atmosphere and burning up. ... Meteors are commonly called falling stars or shooting stars.', ...][1, 0, 0, 0, 0, ...]are copic markers alcohol ink?['Copic Ink is alcohol-based and flammable. Keep away from direct sunlight and extreme temperatures.', 'Copic Sketch markers are alcohol-based, refillable dye markers with replaceable nibs for full versatility. ... Great for comic drawing, scrapbooking, fine art, illustration, product design, architecture, and more, this marker is an essential for artists, designers and crafters. Details: Available in multiple colors.', 'Alcohol based markers differ from water based markers in that the color (dye or pigment) is suspended in an alcohol or another fast evaporating solvent, rather than water or glycerin. This means that alcohol based markers are not water soluble, but may be alcohol soluble.', 'Gel ink pens are primarily made to be used on paper substrates and not on plastics, glass, or fabrics. While some gel ink versions can adhere to other surfaces, this greatly affects the overall "performance" of the ink. (i.e. the gel inks might be easily washed out or scratched off the surface.)', 'Permanent markers are made from pigment and not dyes. Dyes are water soluble but pigment are not soluble in water. If you clean the markers with a no polar solvent like alcohol or acetone the markers are not truly permanent on certain materials. ... The purpose is to determine if permanent marker are truly permanent.', ...][1, 0, 0, 0, 0, ...]what is the difference between appellate term and appellate division?['Appellate terms An appellate term is an intermediate appellate court that hears appeals from the inferior courts within their designated counties or judicial districts, and are intended to ease the workload on the Appellate Division and provide a less expensive forum closer to the people.', 'As verbs the difference between request and appeal is that request is to express the need or desire for while appeal is (obsolete) to accuse (someone of something).', 'As nouns the difference between fraction and division is that fraction is a part of a whole, especially a comparatively small part while division is (uncountable) the act or process of dividing anything.', 'As nouns the difference between divide and division is that divide is a thing that divides while division is (uncountable) the act or process of dividing anything.', 'definition and meaning , βA feature is a distinctive characteristic of a good or service that sets it apart from similar items. Customers, however, want a benefit..β The same source also defines objective: βA specific result that a person or system aims to achieve within a time frame and with available resources.', ...][1, 0, 0, 0, 0, ...] - Loss:
LambdaLosswith these parameters:{ "weighting_scheme": "sentence_transformers.cross_encoder.losses.lambda_loss.NDCGLoss2PPScheme", "k": null, "sigma": 1.0, "eps": 1e-10, "reduction_log": "binary", "activation_fn": "torch.nn.modules.linear.Identity", "mini_batch_size": 8 }
Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 16num_train_epochs: 1learning_rate: 2e-05warmup_steps: 0.1gradient_accumulation_steps: 4fp16: Trueper_device_eval_batch_size: 16load_best_model_at_end: Trueseed: 12dataloader_num_workers: 2dataloader_persistent_workers: True
All Hyperparameters
Click to expand
per_device_train_batch_size: 16num_train_epochs: 1max_steps: -1learning_rate: 2e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0.1optim: adamw_torch_fusedoptim_args: Noneweight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 4average_tokens_across_devices: Truemax_grad_norm: 1.0label_smoothing_factor: 0.0bf16: Falsefp16: Truebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Nonetorch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneuse_liger_kernel: Falseliger_kernel_config: Noneuse_cache: Falseneftune_noise_alpha: Nonetorch_empty_cache_steps: Noneauto_find_batch_size: Falselog_on_each_node: Truelogging_nan_inf_filter: Trueinclude_num_input_tokens_seen: nolog_level: passivelog_level_replica: warningdisable_tqdm: Falseproject: huggingfacetrackio_space_id: Nonetrackio_bucket_id: Nonetrackio_static_space_id: Noneper_device_eval_batch_size: 16prediction_loss_only: Trueeval_on_start: Falseeval_do_concat_batches: Trueeval_use_gather_object: Falseeval_accumulation_steps: Noneinclude_for_metrics: []batch_eval_metrics: Falsesave_only_model: Falsesave_on_each_node: Falseenable_jit_checkpoint: Falsepush_to_hub: Falsehub_private_repo: Nonehub_model_id: Nonehub_strategy: every_savehub_always_push: Falsehub_revision: Noneload_best_model_at_end: Trueignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 12data_seed: Noneuse_cpu: Falseaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedataloader_drop_last: Falsedataloader_num_workers: 2dataloader_pin_memory: Truedataloader_persistent_workers: Truedataloader_prefetch_factor: Noneremove_unused_columns: Truelabel_names: Nonetrain_sampling_strategy: randomlength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falseddp_static_graph: Noneddp_backend: Noneddp_timeout: 1800fsdp: Nonefsdp_config: Nonedeepspeed: Nonedebug: []skip_memory_metrics: Truedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: Nonelocal_rank: -1prompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}
Training Logs
| Epoch | Step | Training Loss | gooaq-dev_ndcg@10 | NanoMSMARCO_R100_ndcg@10 | NanoNFCorpus_R100_ndcg@10 | NanoNQ_R100_ndcg@10 | NanoBEIR_R100_mean_ndcg@10 |
|---|---|---|---|---|---|---|---|
| -1 | -1 | - | 0.1341 (-0.4572) | 0.0124 (-0.5280) | 0.2983 (-0.0268) | 0.0067 (-0.4940) | 0.1058 (-0.3496) |
| 0.0007 | 1 | 2.1925 | - | - | - | - | - |
| 0.0667 | 100 | 2.0361 | - | - | - | - | - |
| 0.1334 | 200 | 1.0558 | - | - | - | - | - |
| 0.1668 | 250 | - | 0.7213 (+0.1300) | 0.4535 (-0.0869) | 0.3667 (+0.0417) | 0.3618 (-0.1389) | 0.3940 (-0.0614) |
| 0.2001 | 300 | 0.6286 | - | - | - | - | - |
| 0.2668 | 400 | 0.5332 | - | - | - | - | - |
| 0.3335 | 500 | 0.5208 | 0.7468 (+0.1556) | 0.4826 (-0.0578) | 0.3783 (+0.0533) | 0.4192 (-0.0815) | 0.4267 (-0.0287) |
| 0.4002 | 600 | 0.4892 | - | - | - | - | - |
| 0.4669 | 700 | 0.4780 | - | - | - | - | - |
| 0.5003 | 750 | - | 0.7538 (+0.1626) | 0.5041 (-0.0363) | 0.4069 (+0.0819) | 0.3785 (-0.1221) | 0.4299 (-0.0255) |
| 0.5336 | 800 | 0.4448 | - | - | - | - | - |
| 0.6003 | 900 | 0.4455 | - | - | - | - | - |
| 0.6670 | 1000 | 0.4427 | 0.7611 (+0.1698) | 0.4584 (-0.0820) | 0.3731 (+0.0481) | 0.3098 (-0.1908) | 0.3804 (-0.0749) |
| 0.7337 | 1100 | 0.4307 | - | - | - | - | - |
| 0.8004 | 1200 | 0.4269 | - | - | - | - | - |
| 0.8338 | 1250 | - | 0.7640 (+0.1727) | 0.4978 (-0.0426) | 0.3887 (+0.0636) | 0.3634 (-0.1373) | 0.4166 (-0.0388) |
| 0.8671 | 1300 | 0.4119 | - | - | - | - | - |
| 0.9338 | 1400 | 0.4104 | - | - | - | - | - |
| 1.0 | 1500 | 0.4018 | 0.7664 (+0.1751) | 0.5023 (-0.0381) | 0.3743 (+0.0492) | 0.3538 (-0.1468) | 0.4101 (-0.0452) |
| -1 | -1 | - | 0.7664 (+0.1751) | 0.5023 (-0.0381) | 0.3743 (+0.0492) | 0.3538 (-0.1468) | 0.4101 (-0.0452) |
- The bold row denotes the saved checkpoint.
Training Time
- Training: 2.2 hours
Framework Versions
- Python: 3.12.13
- Sentence Transformers: 5.6.0
- Transformers: 5.13.1
- PyTorch: 2.11.0+cu128
- Accelerate: 1.14.0
- Datasets: 4.0.0
- Tokenizers: 0.22.2
Additional Resources
- Training and Finetuning Reranker Models with Sentence Transformers: the end-to-end guide for training or finetuning Cross Encoder (reranker) models.
- Multimodal Embedding & Reranker Models with Sentence Transformers: use text, image, audio, and video reranker models through the same API.
- Training and Finetuning Multimodal Embedding & Reranker Models with Sentence Transformers: training multimodal Cross Encoders.
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",
}
LambdaLoss
@inproceedings{wang2018lambdaloss,
title={The LambdaLoss Framework for Ranking Metric Optimization},
author={Wang, Xuanhui and Li, Cheng and Golbandi, Nadav and Bendersky, Michael and Najork, Marc},
booktitle={Proceedings of the 27th ACM international conference on information and knowledge management},
pages={1313--1322},
year={2018}
}