CoolFace
Modelpublic

nickprock/Italian-ModernBERT-base-embed-mmarco-mnrl

sourceHugging Faceupdated 2y agoView on Hugging Face
5likes369downloads
Model Card

<br>

image/png

<br>

Italian-ModernBERT-base-embed-mmarco-mnrl

This is a sentence-transformers model finetuned from DeepMount00/Italian-ModernBERT-base on the mmarco 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: DeepMount00/Italian-ModernBERT-base <!-- at revision 34324c2191a0209b17c8cd27dbf2f4f9d2821189 -->
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
  • mmarco <!-- - Language: Unknown --> <!-- - License: Unknown -->

Model Sources

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})
)

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("Italian-ModernBERT-base-embed-mmarco-mnrl")
# Run inference
sentences = [
    'chi è copa airlines?',
    "Copa Airlines è la principale compagnia aerea di Panama, con sede a Panama City. Le operazioni del Copa sono concentrate presso l'aeroporto internazionale di Tocumen, situato a 15 miglia da Panama City. Fondata nel 1947, Copa Airways ha iniziato con tre voli nazionali all'interno di Panama e oggi la compagnia vola verso 29 paesi e 64 destinazioni in Nord e Sud America e nei Caraibi.",
    "AIUTO: Ti trovi sulla pagina dei risultati dal vivo di Copa America amÃ'©rica 2015 In/Soccer South america. FlashScore.flashscore com offre classifiche Copa america amÃ'©rica, livescore 2015 e risultati parziali copa america amÃ'©rica 2015 (e partita, dettagli goal, marcatori rosso, †¦). confronto quote carte",
]
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

Triplet
Metricmmarco_devmmarco_test
cosine_accuracy0.92550.913

<!--

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

mmarco
  • Dataset: mmarco
  • Size: 39,780,811 training samples
  • Columns: <code>query</code>, <code>positive</code>, and <code>negative</code>
  • Approximate statistics based on the first 1000 samples: | | query | positive | negative | |:--------|:----------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------| | type | string | string | string | | details | <ul><li>min: 4 tokens</li><li>mean: 10.93 tokens</li><li>max: 26 tokens</li></ul> | <ul><li>min: 21 tokens</li><li>mean: 95.12 tokens</li><li>max: 532 tokens</li></ul> | <ul><li>min: 20 tokens</li><li>mean: 87.17 tokens</li><li>max: 423 tokens</li></ul> |
  • Samples: | query | positive | negative | |:---------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>cosa significa tbh nei messaggi?</code> | <code>TBH significa essere onesti. TBH Significato: essere onesti. Ci sono quasi 6 milioni di foto con l'hashtag TBH su Instagram. TBH, o To Be Honest, è un acronimo particolarmente popolare su Facebook, ma utilizzato frequentemente anche quando si inviano messaggi di testo, messaggi o chat online. TBH significa âÂÀœPer essere onesti, Â⠀ .</code> | <code>Ora le chiamate e gli sms possono essere fatti praticamente ovunque. Il Wi-Fi è ovunque e oggi il tuo telefono si connette a ogni singola connessione Wi-Fi come se fossero torri T-Mobile. In realtà, falle diventare le tue torri. Ora puoi scegliere come connetterti, indipendentemente da dove ti trovi, a casa, in ufficio, anche fuori dalla portata del cellulare.</code> | | <code>effetti del tè nero sul corpo</code> | <code>Gli effetti collaterali del bere troppo tè nero includono difficoltà a dormire, mal di testa, nervosismo, diarrea, irritabilità, battito cardiaco irregolare, confusione, bruciore di stomaco, tremori alle estremità e possibilmente convulsioni. Questi effetti collaterali sono tutti il ​​risultato del contenuto di caffeina nel tè nero. Se sei abituato a bere regolarmente tè nero, in particolare in quantità maggiori, potresti sviluppare una dipendenza fisica e psicologica dalla bevanda, ancora una volta, principalmente a causa del contenuto di caffeina.</code> | <code>Un tipo di tè meno conosciuto, il tè oolong è ottenuto dalle foglie della pianta Camellia sinensis, la stessa pianta utilizzata per produrre tè nero e verde. A differenza del tè nero, che viene ossidato fino a quando le foglie non assumono un colore nero intenso, il tè oolong è parzialmente ossidato. I benefici del tè Oolong.</code> | | <code>un genitore può prelevare dal conto di un minore?</code> | <code>Il custode di un conto UGMA/UTMA controlla e gestisce i beni di un minore (il beneficiario del conto). Non è necessario che un genitore sia il custode dell'account e puoi scegliere qualcun altro per gestire un account UGMA / UTMA per conto di tuo figlio. Il custode di un account UGMA / UTMA controlla e gestisce il patrimonio di un minore (il beneficiario del conto). Non è necessario che un genitore sia il custode dell'account e puoi scegliere qualcun altro per gestire un UGMA / UTMA per conto di tuo figlio.</code> | <code>Ciò significa che il totale del tuo account è $ 5.272,50. Secondo le regole Roth IRA (controlla la pubblicazione IRS 590 per ulteriori informazioni), puoi prelevare fino a $ 5.000 senza pagare tasse su di esso e senza pagare una penale. Una volta che attingi ai tuoi guadagni che $272,50  la storia cambia. Puoi prelevare ciò che hai contribuito in qualsiasi momento e per qualsiasi motivo. Ciò significa che il totale del tuo account è $ 5,272,50. In base alle regole Roth IRA (controlla la pubblicazione IRS 590 per ulteriori informazioni), puoi prelevare fino a $ 5.000 senza pagare le tasse su di esso e senza pagare una penale. Una volta che ti immergi nei tuoi guadagni, che sono $272,50, la storia cambia.</code> |
  • Loss: <code>MatryoshkaLoss</code> with these parameters:
json
  {
      "loss": "MultipleNegativesRankingLoss",
      "matryoshka_dims": [
          768,
          512,
          256,
          128,
          64
      ],
      "matryoshka_weights": [
          1,
          1,
          1,
          1,
          1
      ],
      "n_dims_per_step": -1
  }

Evaluation Dataset

mmarco
  • Dataset: mmarco
  • Size: 39,780,811 evaluation samples
  • Columns: <code>query</code>, <code>positive</code>, and <code>negative</code>
  • Approximate statistics based on the first 1000 samples: | | query | positive | negative | |:--------|:----------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------| | type | string | string | string | | details | <ul><li>min: 4 tokens</li><li>mean: 11.05 tokens</li><li>max: 35 tokens</li></ul> | <ul><li>min: 16 tokens</li><li>mean: 93.92 tokens</li><li>max: 449 tokens</li></ul> | <ul><li>min: 20 tokens</li><li>mean: 89.53 tokens</li><li>max: 260 tokens</li></ul> |
  • Samples: | query | positive | negative | |:------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>quali sono alcune cose importanti da ricordare quando si avvia un piano di fitness</code> | <code>Quattro cose che devi sapere prima di aprire una palestra Dall'addetto al check-in della reception al manager, un operatore del club deve assumere un ottimo personale per gestire le operazioni quotidiane del club. Foto per gentile concessione di Jonas Fitness. CONTENUTI SPONSORIZZATI DA: Jonas Fitness In questi giorni, molte palestre possono essere una monetina una dozzina.</code> | <code>Note importanti da ricordare. È importante ricordare che mentre la perdita del tappo di muco è un'indicazione del travaglio, non significa che il travaglio stia per iniziare subito. Per le donne che partoriscono per la prima volta, il tappo di muco viene solitamente espulso giorni prima dell'inizio del travaglio e spesso può essere un segno di un travaglio precoce.</code> | | <code>i sunpatiens possono essere annaffiati ogni giorno?</code> | <code>Mi dispiace non essere d'accordo con te, ma io vivo nel sud, nella Georgia centrale e i Sunpatiens DO WILT al sole. Sono piantati sul lato sud della mia casa e ricevono la luce diretta del sole dalle 10:00 alle 16:00 quando sono all'ombra. Vengono annaffiate ogni mattina alle 6 quando l'impianto di irrigazione si attiva per ben 45 minuti. Si riprendono dopo che sono all'ombra, ma affermare che sono amanti del sole totale non è una vera affermazione.</code> | <code>Miglior risposta: ci sono centinaia di modi per risolvere i cubi di Rubik, ma la maggior parte di essi si diramano semplicemente dai quattro di base. Il metodo Petrus, CFOP, metodo Corners first e Roux. Il tuo metodo di base è una versione annacquata di CFOP. La maggior parte degli altri sono semplicemente versioni estese di questi metodi.</code> | | <code>indirizzo di terapia fisica calaveras</code> | <code>Terapia fisica Calaveras 670 E. Calaveras Blvd., Suite 112 Milpitas, CA 95035 Telefono: (408) 934-4700 | Fax: (408) 934-4701</code> | <code>Deve lavorare secondo le linee guida dell'American Physical Therapy Association e del corrispondente State Board of Physical Therapy come richiesto dal fisioterapista (Home Health) - A tempo pieno - All Care Rehab & Staffing - San Fernando, CA</code> |
  • Loss: <code>MatryoshkaLoss</code> with these parameters:
json
  {
      "loss": "MultipleNegativesRankingLoss",
      "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
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • fp16: True
  • load_best_model_at_end: True
  • batch_sampler: no_duplicates
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: 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: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: True
  • 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: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}
  • tp_size: 0
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': 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: no_duplicates
  • multi_dataset_batch_sampler: proportional

</details>

Training Logs

EpochStepTraining LossValidation Lossmmarco_dev_cosine_accuracymmarco_test_cosine_accuracy
-1-1--0.6220-
0.01610013.423710.61200.6920-
0.0322008.21226.90470.7585-
0.0483005.59194.66990.8280-
0.0644004.00673.58240.8730-
0.085003.33413.14680.8890-
0.0966002.99752.87520.8925-
0.1127002.72982.68990.9050-
0.1288002.42822.59050.9030-
0.1449002.30872.27620.9095-
0.1610002.2092.11360.9145-
0.17611002.03012.02920.9220-
0.19212002.18242.00940.9240-
0.20813001.85771.96900.9275-
0.22414001.99431.90130.93-
0.2415001.8361.90250.9245-
0.25616002.06521.81270.9255-
-1-1---0.9130
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.11
  • Sentence Transformers: 3.5.0.dev0
  • Transformers: 4.50.0.dev0
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.3.0
  • Datasets: 3.3.2
  • 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}
}
MultipleNegativesRankingLoss
bibtex
@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply},
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}

<!--

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. -->