---
language:
- en
license: apache-2.0
tags:
- sentence-transformers
- cross-encoder
- generated_from_trainer
- dataset_size:578402
- loss:BinaryCrossEntropyLoss
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.7258
name: Map
- type: mrr@10
value: 0.7245
name: Mrr@10
- type: ndcg@10
value: 0.7686
name: Ndcg@10
- task:
type: cross-encoder-reranking
name: Cross Encoder Reranking
dataset:
name: NanoMSMARCO R100
type: NanoMSMARCO_R100
metrics:
- type: map
value: 0.4807
name: Map
- type: mrr@10
value: 0.4689
name: Mrr@10
- type: ndcg@10
value: 0.5499
name: Ndcg@10
- task:
type: cross-encoder-reranking
name: Cross Encoder Reranking
dataset:
name: NanoNFCorpus R100
type: NanoNFCorpus_R100
metrics:
- type: map
value: 0.3866
name: Map
- type: mrr@10
value: 0.6058
name: Mrr@10
- type: ndcg@10
value: 0.4233
name: Ndcg@10
- task:
type: cross-encoder-reranking
name: Cross Encoder Reranking
dataset:
name: NanoNQ R100
type: NanoNQ_R100
metrics:
- type: map
value: 0.5595
name: Map
- type: mrr@10
value: 0.5752
name: Mrr@10
- type: ndcg@10
value: 0.6191
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.4756
name: Map
- type: mrr@10
value: 0.55
name: Mrr@10
- type: ndcg@10
value: 0.5308
name: Ndcg@10
---
# ModernBERT-base trained on GooAQ
This is a [Cross Encoder](https://www.sbert.net/docs/cross_encoder/usage/usage.html) model finetuned from [answerdotai/ModernBERT-base](https://huggingface.co/answerdotai/ModernBERT-base) using the [sentence-transformers](https://www.SBERT.net) 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](https://huggingface.co/answerdotai/ModernBERT-base)
- **Maximum Sequence Length:** 8192 tokens
- **Number of Output Labels:** 1 label
- **Language:** en
- **License:** apache-2.0
### Model Sources
- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Documentation:** [Cross Encoder Documentation](https://www.sbert.net/docs/cross_encoder/usage/usage.html)
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
- **Hugging Face:** [Cross Encoders on Hugging Face](https://huggingface.co/models?library=sentence-transformers&other=cross-encoder)
## Usage
### Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
```bash
pip install -U sentence-transformers
```
Then you can load this model and run inference.
```python
from sentence_transformers import CrossEncoder
# Download from the 🤗 Hub
model = CrossEncoder("akr2002/reranker-ModernBERT-base-gooaq-bce")
# Get scores for pairs of texts
pairs = [
['how do you find mass?', "Divide the object's weight by the acceleration of gravity to find the mass. You'll need to convert the weight units to Newtons. For example, 1 kg = 9.807 N. If you're measuring the mass of an object on Earth, divide the weight in Newtons by the acceleration of gravity on Earth (9.8 meters/second2) to get mass."],
['how do you find mass?', "In general use, 'High Mass' means a full ceremonial Mass, most likely with music, and also with incense if they're particularly traditional. ... Incense is used quite a lot. Low Mass in the traditional rite is celebrated by one priest, and usually only one or two altar servers."],
['how do you find mass?', 'A neutron has a slightly larger mass than the proton. These are often given in terms of an atomic mass unit, where one atomic mass unit (u) is defined as 1/12th the mass of a carbon-12 atom. You can use that to prove that a mass of 1 u is equivalent to an energy of 931.5 MeV.'],
['how do you find mass?', 'Mass is the amount of matter in a body, normally measured in grams or kilograms etc. Weight is a force that pulls on a mass and is measured in Newtons. ... Density basically means how much mass is occupied in a specific volume or space. Different materials of the same size may have different masses because of its density.'],
['how do you find mass?', 'Receiver – Mass communication is the transmission of the message to a large number of recipients. This mass of receivers, are often called as mass audience. The Mass audience is large, heterogenous and anonymous in nature. The receivers are scattered across a given village, state or country.'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'how do you find mass?',
[
"Divide the object's weight by the acceleration of gravity to find the mass. You'll need to convert the weight units to Newtons. For example, 1 kg = 9.807 N. If you're measuring the mass of an object on Earth, divide the weight in Newtons by the acceleration of gravity on Earth (9.8 meters/second2) to get mass.",
"In general use, 'High Mass' means a full ceremonial Mass, most likely with music, and also with incense if they're particularly traditional. ... Incense is used quite a lot. Low Mass in the traditional rite is celebrated by one priest, and usually only one or two altar servers.",
'A neutron has a slightly larger mass than the proton. These are often given in terms of an atomic mass unit, where one atomic mass unit (u) is defined as 1/12th the mass of a carbon-12 atom. You can use that to prove that a mass of 1 u is equivalent to an energy of 931.5 MeV.',
'Mass is the amount of matter in a body, normally measured in grams or kilograms etc. Weight is a force that pulls on a mass and is measured in Newtons. ... Density basically means how much mass is occupied in a specific volume or space. Different materials of the same size may have different masses because of its density.',
'Receiver – Mass communication is the transmission of the message to a large number of recipients. This mass of receivers, are often called as mass audience. The Mass audience is large, heterogenous and anonymous in nature. The receivers are scattered across a given village, state or country.',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
```
## Evaluation
### Metrics
#### Cross Encoder Reranking
* Dataset: `gooaq-dev`
* Evaluated with [CrossEncoderRerankingEvaluator
](https://sbert.net/docs/package_reference/cross_encoder/evaluation.html#sentence_transformers.cross_encoder.evaluation.CrossEncoderRerankingEvaluator) with these parameters:
```json
{
"at_k": 10,
"always_rerank_positives": false
}
```
| Metric | Value |
|:------------|:---------------------|
| map | 0.7258 (+0.1946) |
| mrr@10 | 0.7245 (+0.2005) |
| **ndcg@10** | **0.7686 (+0.1774)** |
#### Cross Encoder Reranking
* Datasets: `NanoMSMARCO_R100`, `NanoNFCorpus_R100` and `NanoNQ_R100`
* Evaluated with [CrossEncoderRerankingEvaluator
](https://sbert.net/docs/package_reference/cross_encoder/evaluation.html#sentence_transformers.cross_encoder.evaluation.CrossEncoderRerankingEvaluator) with these parameters:
```json
{
"at_k": 10,
"always_rerank_positives": true
}
```
| Metric | NanoMSMARCO_R100 | NanoNFCorpus_R100 | NanoNQ_R100 |
|:------------|:---------------------|:---------------------|:---------------------|
| map | 0.4807 (-0.0089) | 0.3866 (+0.1256) | 0.5595 (+0.1399) |
| mrr@10 | 0.4689 (-0.0086) | 0.6058 (+0.1060) | 0.5752 (+0.1485) |
| **ndcg@10** | **0.5499 (+0.0095)** | **0.4233 (+0.0982)** | **0.6191 (+0.1184)** |
#### Cross Encoder Nano BEIR
* Dataset: `NanoBEIR_R100_mean`
* Evaluated with [CrossEncoderNanoBEIREvaluator
](https://sbert.net/docs/package_reference/cross_encoder/evaluation.html#sentence_transformers.cross_encoder.evaluation.CrossEncoderNanoBEIREvaluator) with these parameters:
```json
{
"dataset_names": [
"msmarco",
"nfcorpus",
"nq"
],
"rerank_k": 100,
"at_k": 10,
"always_rerank_positives": true
}
```
| Metric | Value |
|:------------|:---------------------|
| map | 0.4756 (+0.0855) |
| mrr@10 | 0.5500 (+0.0820) |
| **ndcg@10** | **0.5308 (+0.0754)** |
## Training Details
### Training Dataset
#### Unnamed Dataset
* Size: 578,402 training samples
* Columns: question
, answer
, and label
* Approximate statistics based on the first 1000 samples:
| | question | answer | label |
|:--------|:-----------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------|:------------------------------------------------|
| type | string | string | int |
| details |
how do you find mass?
| Divide the object's weight by the acceleration of gravity to find the mass. You'll need to convert the weight units to Newtons. For example, 1 kg = 9.807 N. If you're measuring the mass of an object on Earth, divide the weight in Newtons by the acceleration of gravity on Earth (9.8 meters/second2) to get mass.
| 1
|
| how do you find mass?
| In general use, 'High Mass' means a full ceremonial Mass, most likely with music, and also with incense if they're particularly traditional. ... Incense is used quite a lot. Low Mass in the traditional rite is celebrated by one priest, and usually only one or two altar servers.
| 0
|
| how do you find mass?
| A neutron has a slightly larger mass than the proton. These are often given in terms of an atomic mass unit, where one atomic mass unit (u) is defined as 1/12th the mass of a carbon-12 atom. You can use that to prove that a mass of 1 u is equivalent to an energy of 931.5 MeV.
| 0
|
* Loss: [BinaryCrossEntropyLoss
](https://sbert.net/docs/package_reference/cross_encoder/losses.html#binarycrossentropyloss) with these parameters:
```json
{
"activation_fn": "torch.nn.modules.linear.Identity",
"pos_weight": 5
}
```
### 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
- `dataloader_num_workers`: 4
- `load_best_model_at_end`: True
#### All Hyperparameters