Edit model card

You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

Mxbai embed large WikipediaQA-ita

This is a sentence-transformers model finetuned from mixedbread-ai/mxbai-embed-large-v1. It maps sentences & paragraphs to a 1024-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: mixedbread-ai/mxbai-embed-large-v1
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 1024 tokens
  • Similarity Function: Cosine Similarity
  • Training Dataset: wikipediaQA-ita
  • Language: it
  • License: apache-2.0

General Improvement

cosine_map@{dim} Base Model Finetuned Model Improvement (%)
dim 64 0.4419 0.7932 79.55
dim 128 0.5918 0.8168 37.97
dim 256 0.6686 0.8284 23.91
dim 512 0.7046 0.8342 18.42
dim 768 0.7147 0.8372 17.11
dim 1024 0.7250 0.8367 15.42

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("ReDiX/redix-embed-large-it")
# Run inference
sentences = [
    'Chi è Olli Rehn?',
    'Chi è Wolfgang Köhler?',
    'A cosa serviva la Segrezia di Sicilia?',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]

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

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.7705
cosine_accuracy@3 0.8939
cosine_accuracy@5 0.91
cosine_accuracy@10 0.9251
cosine_precision@1 0.7705
cosine_precision@3 0.298
cosine_precision@5 0.182
cosine_precision@10 0.0925
cosine_recall@1 0.7705
cosine_recall@3 0.8939
cosine_recall@5 0.91
cosine_recall@10 0.9251
cosine_ndcg@10 0.8577
cosine_mrr@10 0.8351
cosine_map@100 0.8367

Information Retrieval

Metric Value
cosine_accuracy@1 0.7725
cosine_accuracy@3 0.8926
cosine_accuracy@5 0.9079
cosine_accuracy@10 0.9234
cosine_precision@1 0.7725
cosine_precision@3 0.2975
cosine_precision@5 0.1816
cosine_precision@10 0.0923
cosine_recall@1 0.7725
cosine_recall@3 0.8926
cosine_recall@5 0.9079
cosine_recall@10 0.9234
cosine_ndcg@10 0.8576
cosine_mrr@10 0.8355
cosine_map@100 0.8372

Information Retrieval

Metric Value
cosine_accuracy@1 0.7691
cosine_accuracy@3 0.8907
cosine_accuracy@5 0.9049
cosine_accuracy@10 0.9219
cosine_precision@1 0.7691
cosine_precision@3 0.2969
cosine_precision@5 0.181
cosine_precision@10 0.0922
cosine_recall@1 0.7691
cosine_recall@3 0.8907
cosine_recall@5 0.9049
cosine_recall@10 0.9219
cosine_ndcg@10 0.855
cosine_mrr@10 0.8326
cosine_map@100 0.8342

Information Retrieval

Metric Value
cosine_accuracy@1 0.7635
cosine_accuracy@3 0.8846
cosine_accuracy@5 0.899
cosine_accuracy@10 0.9163
cosine_precision@1 0.7635
cosine_precision@3 0.2949
cosine_precision@5 0.1798
cosine_precision@10 0.0916
cosine_recall@1 0.7635
cosine_recall@3 0.8846
cosine_recall@5 0.899
cosine_recall@10 0.9163
cosine_ndcg@10 0.8491
cosine_mrr@10 0.8267
cosine_map@100 0.8284

Information Retrieval

Metric Value
cosine_accuracy@1 0.7508
cosine_accuracy@3 0.8732
cosine_accuracy@5 0.8878
cosine_accuracy@10 0.9058
cosine_precision@1 0.7508
cosine_precision@3 0.2911
cosine_precision@5 0.1776
cosine_precision@10 0.0906
cosine_recall@1 0.7508
cosine_recall@3 0.8732
cosine_recall@5 0.8878
cosine_recall@10 0.9058
cosine_ndcg@10 0.8376
cosine_mrr@10 0.8148
cosine_map@100 0.8168

Information Retrieval

Metric Value
cosine_accuracy@1 0.7242
cosine_accuracy@3 0.8519
cosine_accuracy@5 0.8701
cosine_accuracy@10 0.8864
cosine_precision@1 0.7242
cosine_precision@3 0.284
cosine_precision@5 0.174
cosine_precision@10 0.0886
cosine_recall@1 0.7242
cosine_recall@3 0.8519
cosine_recall@5 0.8701
cosine_recall@10 0.8864
cosine_ndcg@10 0.8149
cosine_mrr@10 0.791
cosine_map@100 0.7932

Training Details

Training Dataset

Unnamed Dataset

  • Size: 94,833 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 60 tokens
    • mean: 505.04 tokens
    • max: 512 tokens
    • min: 6 tokens
    • mean: 19.99 tokens
    • max: 72 tokens
  • Samples:
    positive anchor
    Cleopatra (nome)
    . Varianti Ipocoristici: Clea, Cleo Maschili: Cleopatro Varianti in altre lingue Catalano: Cleòpatra, Cleopatra Ceco: Kleopatra Croato: Kleopatra Francese: Cléopâtre Ipocoristici: Cléa, Cléo Greco antico: Κλεοπάτρα (Kleopátra) Maschili: Κλεόπατρος (Kleópatros) Ipocoristici maschili: Κλωπᾶς (Klopâs), Κλεόπας (Kleópas) Inglese: Cleopatra Ipocoristici: Cleo Latino: Cleopatra Olandese: Cleopatra Polacco: Kleopatra Portoghese: Cleópatra Russo: Клеопатра (Kleopatra) Spagnolo: Cleopatra Tedesco: Kleopatra Ucraino: Клеопатра (Kleopatra) Origine e diffusione Deriva, tramite il latino Cleopatra, dal nome greco Κλεοπατρα (Kleopatra); si tratta di un composto di κλέος (kléos, "fama", "gloria") e πατρός (patrós), genitivo di πατήρ (patḗr, "padre"), quindi il significato complessivo può essere interpretato come "di padri gloriosi", "che ha gloria per la sua stirpe", "gloria del padre". Entrambi gli elementi sono comuni nell'onomastica greca: il primo è presente in Pericle, Empedocle, Temistocle, Tecla ed Ercole, il secondo in Antipatro, ed entrambi, disposti nell'ordine inverso, formano il nome Patroclo. Va però notato che alcune fonti riconducono il primo elemento a κλείς (kleís, "chiave"), quindi "chiave per la patria (terra dei padri)". Il nome era comune nell'antica Grecia ed è presente anche nella mitologia con alcune figure secondarie, fra cui Cleopatra, moglie di Fineo re dei Traci, ripudiata e imprigionata dal marito e poi liberata dagli Argonauti, e Cleopatra Alcione, figlia di Idas e moglie di Meleagro. Era inoltre tradizionale in varie dinastie reali macedoni ed elleniche, specie in quella tolemaica, nella quale le donne con questo nome sono numerosissime: tra queste va citata in particolare Cleopatra, l'ultima regina a governare l'Egitto, amante di Giulio Cesare e poi di Marco Antonio; la sua figura è presente in numerose opere artistiche, letterarie, musicali e cinematografiche, che l'hanno resa talmente famosa che l'associazione tra nome e regina è quasi automatica. Proprio a questa notorietà è dovuto l'utilizzo del nome in Italia, che è scarso ma non nullo: è attestato per un
    Chi è stata l'ultima regina a governare l'Egitto con il nome Cleopatra?
    Caravino
    Caravino (Caravin in piemontese) è un comune italiano di abitanti della città metropolitana di Torino in Piemonte. Geografia fisica Il paese è adagiato tra le colline del Canavese eporediese orientale, confinando a ovest con Strambino ed Ivrea, a est con Cossano Canavese e Settimo Rottaro, a sud con Vestignè e Borgomasino, a nord con Azeglio e Albiano d'Ivrea. Non è attraversato da nessun fiume; solo il piccolo Naviglio di Ivrea scorre 2 km verso ovest, mentre la Dora Baltea a circa 6 km più a ovest. Storia Sono stati ritrovati resti romani del III secolo. Il suo toponimo potrebbe derivare dal termine cavrinum, ovvero "caprino", indicando la locale pastorizia ovina; oppure da quadratum, essendo al centro geografico degli allora poteri tra le marche di Ivrea, Torino e la diocesi di Vercelli. Ultima ipotesi, da carra - vinum, un'antica unità di misura torinese per immagazzinare delle grandi quantità vino, corrispondente a 493,069 litri. Il toponimo comparve ufficialmente dall'XI secolo, come feudo eporediese dei conti Masino-Valperga, che si definirono sia discendenti diretti di Arduino, che fu a capo della tutta la Marca d'Ivrea, sia dei Conti di Pombia, già padroni di Borgomasino. Inoltre, fu proprio a partire dall'XI secolo che i benedettini portarono qui culto di San Giacomo, divenuto poi il patrono del paese, di cui si attesta anche la chiesetta in località Carpaneto, poi affrescata dal pittore Giacomino da Ivrea (del 1465), dipendente dalla Cella di Vestignè e dall'Abbazia di Fruttuaria di San Benigno Canavese. Il prestigio del borgo al di sotto del Castello seguì le stesse sorti di quest'ultimo, almeno fino alla prima metà del XIV secolo, allorquando i Valperga non riuscirono più a contrastare l'espansione del monferrino Facino Cane, che saccheggiò barbaramente il paese e altri comuni limitrofi nell'estate del 1397. A quest'ultimo succedettero i francesi del XV secolo
    Il toponimo di Caravino potrebbe derivare da quale termine latino?
    Peć
    Peć ( o Peja; ; ) è una città del Kosovo occidentale. Nel 2011 la città aveva una popolazione di abitanti, mentre l'intera municipalità aveva una popolazione di abitanti. In epoca medioevale, nel 1346, fu sede del Patriarcato della Chiesa ortodossa serba. Secoli dopo, nel 1899 vi fu fondata dalla popolazione locale albanese la Lega di Peja. Il monastero patriarcale di Peć è patrimonio dell'umanità dell'UNESCO, incluso nei Monumenti medievali in Kosovo. Geografia fisica Peć sorge nell'estremità nord-occidentale della piana di Metochia, ad est del gruppo montuoso delle Prokletije e della gola di Rugova. La città è attraversata da ovest verso est dal torrente Bistrica, affluente di destra del Drin Bianco. È situata ad 85 km ad ovest di Pristina e a 250 km a nord di Tirana. Etimologia In serbo peć significa letteralmente forno. Nei documenti della Repubblica di Ragusa la città viene talvolta menzionata come Forno. Durante la dominazione ottomana la città era conosciuta come İpek (ايپك). Altre denominazioni storiche sono in latino Pescium e in greco Episkion (Επισκιον). Storia Tra il 1180 ed il 1190 il principe Stefano Nemanja liberò l'area di Peć dalla presenza bizantina, dando il via così al dominio serbo sulla regione. Suo figlio Stefano Nemanjić cedette la città e il contado al monastero di Žiča nel 1220. Peć passò così sotto il diretto controllo degli arcivescovi serbi, che costruirono le loro residenze e le loro chiese. Nel 1346 il re serbo Stefan Dusan fece di Peć il centro della chiesa ortodossa serba. Peć fu conquistata dagli Ottomani nel 1455 e ribattezzata İpek. Nel 1513 divenne capoluogo del sangiaccato omonimo a sua volta suddiviso in quattro kaza. Nel corso dei quattro secoli di dominazione ottomana affluirono nella città numerosi immigrati turchi che le conferirono un aspetto tipicamente levantino. Nel 1899, su iniziativa di Haxhi
    In quale regione del Kosovo si trova la città di Peć?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            1024,
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 4
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • bf16: True
  • tf32: True
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • eval_accumulation_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: 4
  • max_steps: -1
  • lr_scheduler_type: cosine
  • 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: True
  • 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_fused
  • 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: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • 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
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss dim_1024_cosine_map@100 dim_128_cosine_map@100 dim_256_cosine_map@100 dim_512_cosine_map@100 dim_64_cosine_map@100 dim_768_cosine_map@100
0.0540 10 4.2802 - - - - - -
0.1080 20 2.7954 - - - - - -
0.1619 30 1.9067 - - - - - -
0.2159 40 1.7081 - - - - - -
0.2699 50 1.5103 - - - - - -
0.3239 60 1.4656 - - - - - -
0.3779 70 1.1453 - - - - - -
0.4318 80 1.046 - - - - - -
0.4858 90 1.0672 - - - - - -
0.5398 100 1.0838 - - - - - -
0.5938 110 0.9196 - - - - - -
0.6478 120 1.0043 - - - - - -
0.7018 130 0.961 - - - - - -
0.7557 140 0.9368 - - - - - -
0.8097 150 0.8182 - - - - - -
0.8637 160 0.8519 - - - - - -
0.9177 170 0.8221 - - - - - -
0.9717 180 0.7825 - - - - - -
0.9987 185 - 0.8359 0.8067 0.8223 0.8313 0.7678 0.8341
1.0256 190 0.7459 - - - - - -
1.0796 200 0.9102 - - - - - -
1.1336 210 0.6666 - - - - - -
1.1876 220 0.6195 - - - - - -
1.2416 230 0.5526 - - - - - -
1.2955 240 0.5584 - - - - - -
1.3495 250 0.4987 - - - - - -
1.4035 260 0.3657 - - - - - -
1.4575 270 0.4 - - - - - -
1.5115 280 0.433 - - - - - -
1.5655 290 0.422 - - - - - -
1.6194 300 0.417 - - - - - -
1.6734 310 0.4105 - - - - - -
1.7274 320 0.3399 - - - - - -
1.7814 330 0.3976 - - - - - -
1.8354 340 0.3424 - - - - - -
1.8893 350 0.3839 - - - - - -
1.9433 360 0.3561 - - - - - -
1.9973 370 0.367 0.8371 0.8144 0.8272 0.8342 0.7861 0.8360
2.0513 380 0.3259 - - - - - -
2.1053 390 0.3805 - - - - - -
2.1592 400 0.2883 - - - - - -
2.2132 410 0.2601 - - - - - -
2.2672 420 0.2648 - - - - - -
2.3212 430 0.2602 - - - - - -
2.3752 440 0.2084 - - - - - -
2.4291 450 0.1833 - - - - - -
2.4831 460 0.1941 - - - - - -
2.5371 470 0.2122 - - - - - -
2.5911 480 0.1851 - - - - - -
2.6451 490 0.199 - - - - - -
2.6991 500 0.2093 - - - - - -
2.7530 510 0.1944 - - - - - -
2.8070 520 0.1922 - - - - - -
2.8610 530 0.1948 - - - - - -
2.9150 540 0.2021 - - - - - -
2.9690 550 0.1938 - - - - - -
2.9960 555 - 0.8372 0.8159 0.8279 0.8353 0.7912 0.8379
3.0229 560 0.1818 - - - - - -
3.0769 570 0.2642 - - - - - -
3.1309 580 0.1684 - - - - - -
3.1849 590 0.1645 - - - - - -
3.2389 600 0.1552 - - - - - -
3.2928 610 0.1541 - - - - - -
3.3468 620 0.1653 - - - - - -
3.4008 630 0.1068 - - - - - -
3.4548 640 0.1185 - - - - - -
3.5088 650 0.1418 - - - - - -
3.5628 660 0.1389 - - - - - -
3.6167 670 0.1448 - - - - - -
3.6707 680 0.1439 - - - - - -
3.7247 690 0.1328 - - - - - -
3.7787 700 0.1484 - - - - - -
3.8327 710 0.138 - - - - - -
3.8866 720 0.1515 - - - - - -
3.9406 730 0.146 - - - - - -
3.9946 740 0.1556 0.8367 0.8168 0.8284 0.8342 0.7932 0.8372
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.0
  • Transformers: 4.42.4
  • PyTorch: 2.3.0+cu121
  • Accelerate: 0.30.1
  • Datasets: 2.19.1
  • Tokenizers: 0.19.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",
}

MatryoshkaLoss

@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

@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}
}
Downloads last month
0
Safetensors
Model size
335M params
Tensor type
F32
·
Inference Examples
Inference API (serverless) is not available, repository is disabled.

Model tree for ReDiX/redix-embed-large-it

Finetuned
this model

Collection including ReDiX/redix-embed-large-it

Evaluation results