sentence-transformers safetensors modernbert sentence-similarity feature-extraction generated_from_trainer dataset_size:2697 loss:MatryoshkaLoss loss:CoSENTLoss arxiv:1908.10084 arxiv:2205.13147 base_model:nomic-ai/modernbert-embed-base base_model:finetune:nomic-ai/modernbert-embed-base model-index autotrain_compatible endpoints_compatible region:us
---
base_model: nomic-ai/modernbert-embed-base
library_name: sentence-transformers
metrics:
- pearson_cosine
- spearman_cosine
pipeline_tag: sentence-similarity
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- generated_from_trainer
- dataset_size:2697
- loss:MatryoshkaLoss
- loss:CoSENTLoss
widget:
- source_sentence: En un mercado de granjeros, se encuentra un hombre.
  sentences:
  - Un abogado de la CPI detenido en Libia está ahora mismo encarando un período de
    detención de 45 días
  - Un hombre está presente en un mercado donde se venden productos agrícolas directamente
    de los agricultores.
  - ¿Existe la posibilidad de que cambie de opinión si no se expresa de manera enérgica
    o muestra un comportamiento inapropiado?
- source_sentence: Una mujer está posada en una postura con los brazos abiertos mientras
    otra persona le toma una fotografía.
  sentences:
  - Un hombre se encuentra parado en medio de una multitud sujetando un objeto de
    color blanco.
  - Las personas están cerca del agua.
  - Frente a una estatua de una vaca, hay una mujer, un niño pequeño y un bebé diminuto.
- source_sentence: Un grupo de cuatro niños está observando los diferentes animales
    que están en el establo.
  sentences:
  - Evita apoyar todo tu peso en los brazos, ya que tus manos no están diseñadas para
    soportar esa presión constante.
  - Los niños están mirando atentamente a una oveja.
  - Un puma persigue a un oso grande en el bosque.
- source_sentence: La gente se balancea saltando al agua mientras otros pescan en
    el fondo del mar.
  sentences:
  - Dos individuos observan el agua con atención.
  - Siempre golpeamos suavemente a nuestros hijos en la boca para mostrarles que su
    boca es lo que les causa dolor.
  - Aunque el sistema de prioridad al primero en llegar beneficia a dos participantes,
    no asegura definitivamente la exclusión de terceros.
- source_sentence: El cordero está mirando hacia la cámara.
  sentences:
  - Manmohan en Teherán insta a NAM a tomar una posición clara sobre el conflicto
    en Siria
  - Un gato está mirando hacia la cámara también.
  - '"Sí, no deseo estar presente durante este testimonio", declaró tranquilamente
    Peterson, de 31 años, al juez cuando fue devuelto a su celda.'
model-index:
- name: SentenceTransformer based on nomic-ai/modernbert-embed-base
  results:
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts dev 768
      type: sts-dev-768
    metrics:
    - type: pearson_cosine
      value: 0.7498914121357008
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.7531670275662775
      name: Spearman Cosine
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts dev 512
      type: sts-dev-512
    metrics:
    - type: pearson_cosine
      value: 0.7468285624371191
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.7482342767593612
      name: Spearman Cosine
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts dev 256
      type: sts-dev-256
    metrics:
    - type: pearson_cosine
      value: 0.7419098803201045
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.7450577925521013
      name: Spearman Cosine
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts dev 128
      type: sts-dev-128
    metrics:
    - type: pearson_cosine
      value: 0.7262860099881795
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.7304432975238186
      name: Spearman Cosine
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts dev 64
      type: sts-dev-64
    metrics:
    - type: pearson_cosine
      value: 0.6973267849431932
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.7069603266334332
      name: Spearman Cosine
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts test 768
      type: sts-test-768
    metrics:
    - type: pearson_cosine
      value: 0.8673484326459211
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.8767387684433159
      name: Spearman Cosine
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts test 512
      type: sts-test-512
    metrics:
    - type: pearson_cosine
      value: 0.8665336885415594
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.8751868367625472
      name: Spearman Cosine
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts test 256
      type: sts-test-256
    metrics:
    - type: pearson_cosine
      value: 0.8568125590206718
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.8702353416571491
      name: Spearman Cosine
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts test 128
      type: sts-test-128
    metrics:
    - type: pearson_cosine
      value: 0.8485344363338887
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.8617402150766132
      name: Spearman Cosine
  - task:
      type: semantic-similarity
      name: Semantic Similarity
    dataset:
      name: sts test 64
      type: sts-test-64
    metrics:
    - type: pearson_cosine
      value: 0.8193790032247387
      name: Pearson Cosine
    - type: spearman_cosine
      value: 0.8419631939550043
      name: Spearman Cosine
---

# SentenceTransformer based on nomic-ai/modernbert-embed-base

This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [nomic-ai/modernbert-embed-base](https://huggingface.co/nomic-ai/modernbert-embed-base) on the stsb_multi_es_augmented (private) dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

## Model Details

### Model Description
- **Model Type:** Sentence Transformer
- **Base model:** [nomic-ai/modernbert-embed-base](https://huggingface.co/nomic-ai/modernbert-embed-base) <!-- at revision bb0033c9f3def40c3c5b26ff0b53c74f3320d703 -->
- **Maximum Sequence Length:** 8192 tokens
- **Output Dimensionality:** 768 dimensions
- **Similarity Function:** Cosine Similarity
- **Training Dataset:**
    - Private stsb dataset

### Model Sources

- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
- **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)

### Full Model Architecture

```
SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: ModernBertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
  (2): Normalize()
)
```

## 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 SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("mrm8488/modernbert-embed-base-ft-sts-spanish-matryoshka-768-64-5e")
# Run inference
sentences = [
    'El cordero está mirando hacia la cámara.',
    'Un gato está mirando hacia la cámara también.',
    '"Sí, no deseo estar presente durante este testimonio", declaró tranquilamente Peterson, de 31 años, al juez cuando fue devuelto a su celda.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
```

<!--
### Direct Usage (Transformers)

<details><summary>Click to see the direct usage in Transformers</summary>

</details>
-->

<!--
### Downstream Usage (Sentence Transformers)

You can finetune this model on your own dataset.

<details><summary>Click to expand</summary>

</details>
-->

<!--
### Out-of-Scope Use

*List how the model may foreseeably be misused and address what users ought not to do with the model.*
-->

## Evaluation

### Metrics

#### Semantic Similarity

* Datasets: `sts-dev-768`, `sts-dev-512`, `sts-dev-256`, `sts-dev-128`, `sts-dev-64`, `sts-test-768`, `sts-test-512`, `sts-test-256`, `sts-test-128` and `sts-test-64`
* Evaluated with [<code>EmbeddingSimilarityEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.EmbeddingSimilarityEvaluator)

| Metric              | sts-dev-768 | sts-dev-512 | sts-dev-256 | sts-dev-128 | sts-dev-64 | sts-test-768 | sts-test-512 | sts-test-256 | sts-test-128 | sts-test-64 |
|:--------------------|:------------|:------------|:------------|:------------|:-----------|:-------------|:-------------|:-------------|:-------------|:------------|
| pearson_cosine      | 0.7499      | 0.7468      | 0.7419      | 0.7263      | 0.6973     | 0.8673       | 0.8665       | 0.8568       | 0.8485       | 0.8194      |
| **spearman_cosine** | **0.7532**  | **0.7482**  | **0.7451**  | **0.7304**  | **0.707**  | **0.8767**   | **0.8752**   | **0.8702**   | **0.8617**   | **0.842**   |

<!--
## Bias, Risks and Limitations

*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
-->

<!--
### Recommendations

*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
-->

## Training Details

### Training Dataset

#### stsb_multi_es_augmented (private)

* Size: 2,697 training samples
* Columns: <code>sentence1</code>, <code>sentence2</code>, and <code>score</code>
* Approximate statistics based on the first 1000 samples:
  |         | sentence1                                                                         | sentence2                                                                          | score                                                          |
  |:--------|:----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|:---------------------------------------------------------------|
  | type    | string                                                                            | string                                                                             | float                                                          |
  | details | <ul><li>min: 9 tokens</li><li>mean: 28.42 tokens</li><li>max: 96 tokens</li></ul> | <ul><li>min: 10 tokens</li><li>mean: 28.01 tokens</li><li>max: 92 tokens</li></ul> | <ul><li>min: 0.0</li><li>mean: 2.72</li><li>max: 5.0</li></ul> |
* Samples:
  | sentence1                                                                                             | sentence2                                                                                                    | score                          |
  |:------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------|:-------------------------------|
  | <code>El pájaro de tamaño reducido se posó con delicadeza en una rama cubierta de escarcha.</code>    | <code>Un ave de color amarillo descansaba tranquilamente en una rama.</code>                                 | <code>3.200000047683716</code> |
  | <code>Una chica está tocando la flauta en un parque.</code>                                           | <code>Un grupo de músicos está tocando en un escenario al aire libre.</code>                                 | <code>1.286</code>             |
  | <code>La aclamada escritora británica, Doris Lessing, galardonada con el premio Nobel, fallece</code> | <code>La destacada autora británica, Doris Lessing, reconocida con el prestigioso Premio Nobel, muere</code> | <code>4.199999809265137</code> |
* Loss: [<code>MatryoshkaLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#matryoshkaloss) with these parameters:
  ```json
  {
      "loss": "CoSENTLoss",
      "matryoshka_dims": [
          768,
          512,
          256,
          128,
          64
      ],
      "matryoshka_weights": [
          1,
          1,
          1,
          1,
          1
      ],
      "n_dims_per_step": -1
  }
  ```

### Evaluation Dataset

#### stsb_multi_es_augmented (private)

* Size: 697 evaluation samples
* Columns: <code>sentence1</code>, <code>sentence2</code>, and <code>score</code>
* Approximate statistics based on the first 697 samples:
  |         | sentence1                                                                         | sentence2                                                                         | score                                                         |
  |:--------|:----------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:--------------------------------------------------------------|
  | type    | string                                                                            | string                                                                            | float                                                         |
  | details | <ul><li>min: 9 tokens</li><li>mean: 29.35 tokens</li><li>max: 87 tokens</li></ul> | <ul><li>min: 9 tokens</li><li>mean: 28.52 tokens</li><li>max: 81 tokens</li></ul> | <ul><li>min: 0.0</li><li>mean: 2.3</li><li>max: 5.0</li></ul> |
* Samples:
  | sentence1                                                                                                                                                           | sentence2                                                                                                                                                     | score                          |
  |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------|
  | <code>Un incendio ocurrido en un hospital psiquiátrico ruso resultó en la trágica muerte de 38 personas.</code>                                                     | <code>Se teme que el incendio en un hospital psiquiátrico ruso cause la pérdida de la vida de 38 individuos.</code>                                           | <code>4.199999809265137</code> |
  | <code>"Street dijo que el otro individuo a veces se siente avergonzado de su fiesta, lo cual provoca risas en la multitud"</code>                                   | <code>"A veces, el otro tipo se encuentra avergonzado de su fiesta y no se le puede culpar."</code>                                                           | <code>3.5</code>               |
  | <code>El veterano diplomático de Malasia tuvo un encuentro con Suu Kyi el miércoles en la casa del lago en Yangon donde permanece bajo arresto domiciliario.</code> | <code>Razali Ismail tuvo una reunión de 90 minutos con Suu Kyi, quien ganó el Premio Nobel de la Paz en 1991, en su casa del lago donde está recluida.</code> | <code>3.691999912261963</code> |
* Loss: [<code>MatryoshkaLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#matryoshkaloss) with these parameters:
  ```json
  {
      "loss": "CoSENTLoss",
      "matryoshka_dims": [
          768,
          512,
          256,
          128,
          64
      ],
      "matryoshka_weights": [
          1,
          1,
          1,
          1,
          1
      ],
      "n_dims_per_step": -1
  }
  ```

### Training Hyperparameters
#### Non-Default Hyperparameters

- `eval_strategy`: steps
- `per_device_train_batch_size`: 16
- `per_device_eval_batch_size`: 16
- `num_train_epochs`: 5
- `warmup_ratio`: 0.1
- `bf16`: True

#### All Hyperparameters
<details><summary>Click to expand</summary>

- `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`: 5e-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`: 5
- `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`: 42
- `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`: 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}
- `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

</details>

### Training Logs
| Epoch  | Step | Training Loss | Validation Loss | sts-dev-768_spearman_cosine | sts-dev-512_spearman_cosine | sts-dev-256_spearman_cosine | sts-dev-128_spearman_cosine | sts-dev-64_spearman_cosine | sts-test-768_spearman_cosine | sts-test-512_spearman_cosine | sts-test-256_spearman_cosine | sts-test-128_spearman_cosine | sts-test-64_spearman_cosine |
|:------:|:----:|:-------------:|:---------------:|:---------------------------:|:---------------------------:|:---------------------------:|:---------------------------:|:--------------------------:|:----------------------------:|:----------------------------:|:----------------------------:|:----------------------------:|:---------------------------:|
| 0.5917 | 100  | 23.7709       | 22.5494         | 0.7185                      | 0.7146                      | 0.7055                      | 0.6794                      | 0.6570                     | -                            | -                            | -                            | -                            | -                           |
| 1.1834 | 200  | 22.137        | 22.7634         | 0.7449                      | 0.7412                      | 0.7439                      | 0.7287                      | 0.7027                     | -                            | -                            | -                            | -                            | -                           |
| 1.7751 | 300  | 21.5527       | 22.6985         | 0.7321                      | 0.7281                      | 0.7243                      | 0.7063                      | 0.6862                     | -                            | -                            | -                            | -                            | -                           |
| 2.3669 | 400  | 20.5745       | 24.0021         | 0.7302                      | 0.7264                      | 0.7221                      | 0.7097                      | 0.6897                     | -                            | -                            | -                            | -                            | -                           |
| 2.9586 | 500  | 20.0861       | 24.0091         | 0.7392                      | 0.7361                      | 0.7293                      | 0.7124                      | 0.6906                     | -                            | -                            | -                            | -                            | -                           |
| 3.5503 | 600  | 18.8191       | 26.9012         | 0.7502                      | 0.7462                      | 0.7399                      | 0.7207                      | 0.6960                     | -                            | -                            | -                            | -                            | -                           |
| 4.1420 | 700  | 18.3          | 29.0209         | 0.7496                      | 0.7454                      | 0.7432                      | 0.7284                      | 0.7065                     | -                            | -                            | -                            | -                            | -                           |
| 4.7337 | 800  | 17.6496       | 28.9536         | 0.7532                      | 0.7482                      | 0.7451                      | 0.7304                      | 0.7070                     | -                            | -                            | -                            | -                            | -                           |
| 5.0    | 845  | -             | -               | -                           | -                           | -                           | -                           | -                          | 0.8767                       | 0.8752                       | 0.8702                       | 0.8617                       | 0.8420                      |


### Framework Versions
- Python: 3.10.12
- Sentence Transformers: 3.3.1
- Transformers: 4.48.0
- PyTorch: 2.5.1+cu121
- Accelerate: 1.2.1
- Datasets: 3.2.0
- Tokenizers: 0.21.0

## Citation

### BibTeX

#### Sentence Transformers
```bibtex
@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",
}
```

#### MatryoshkaLoss
```bibtex
@misc{kusupati2024matryoshka,
    title={Matryoshka Representation Learning},
    author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
    year={2024},
    eprint={2205.13147},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}
```

#### CoSENTLoss
```bibtex
@online{kexuefm-8847,
    title={CoSENT: A more efficient sentence vector scheme than Sentence-BERT},
    author={Su Jianlin},
    year={2022},
    month={Jan},
    url={https://kexue.fm/archives/8847},
}
```

<!--
## Glossary

*Clearly define terms in order to be accessible across audiences.*
-->

<!--
## Model Card Authors

*Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
-->

<!--
## Model Card Contact

*Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
-->