nickprock/granite-311m-italiano-matryoshka
SentenceTransformer based on ibm-granite/granite-embedding-311m-multilingual-r2
This is a sentence-transformers model finetuned from ibm-granite/granite-embedding-311m-multilingual-r2 on the it-wiki-retrieval-synthetic-hn dataset. It maps inputs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, classification, clustering, and more.
<p align="center"> <img src="https://huggingface.co/nickprock/granite-311m-italiano-matryoshka/raw/main/logo.svg" width="500" alt="Granite Matryoshka Logo"> </p>
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: ibm-granite/granite-embedding-311m-multilingual-r2 <!-- at revision 44399559930365213510b1ee2eb15ded83374f0e -->
- Maximum Sequence Length: 32768 tokens
- Output Dimensionality: 768 dimensions
- Similarity Function: Cosine Similarity
- Supported Modality: Text
- Training Dataset:
- it-wiki-retrieval-synthetic-hn <!-- - Language: Unknown --> <!-- - License: Unknown -->
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'ModernBertModel'})
(1): Pooling({'embedding_dimension': 768, 'pooling_mode': 'cls', 'include_prompt': False})
(2): Normalize({'module_input_name': 'sentence_embedding', 'module_output_name': 'sentence_embedding'})
)Usage
Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
pip install -U sentence-transformersThen you can load this model and run inference.
from sentence_transformers import SentenceTransformer
# Download from the 🤗 Hub
model = SentenceTransformer("sentence_transformers_model_id")
# Run inference
sentences = [
"In quali gare fu eliminato l'atleta nelle Olimpiadi di Parigi?",
'Partecipò ai Giochi della II Olimpiade di Parigi nella gara di spada individuale e sciabola individuale. In entrambe le gare fu eliminato alle semifinali.',
"['Partecipò ai Giochi della II Olimpiade di Parigi alla gara di fioretto individuale, in cui fu eliminato ai quarti, e alla gara di spada individuale, in cui fu eliminato al primo turno.', 'Partecipò ai Giochi della II Olimpiade di Parigi nelle gare di fioretto per maestri, in cui fu eliminato ai ripescaggi, e di spada per maestri, in cui fu eliminato al primo turno.']",
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.8895, 0.6944],
# [0.8895, 1.0000, 0.7186],
# [0.6944, 0.7186, 1.0000]])<!--
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 & Benchmarks
To ensure full transparency, the model was evaluated across two distinct benchmarks: Information Retrieval / RAG (SQuAD-it) and Semantic Textual Similarity (STSb-it), compared against widely used Italian embedding models.
1. Information Retrieval & RAG Benchmark (SQuAD-it)
- Dataset:
crux82/squad_it(Test Split - 1,000 queries matched against a unique passage corpus) - Objective: Evaluate how effectively the model retrieves the exact paragraph containing the answer among 1,000 candidate passages.
2. Semantic Textual Similarity Benchmark (STSb-it)
- Dataset:
stsb_multi_mt(Italian Test Split - 1,379 sentence pairs with human scores from 0 to 5) - Objective: Measure correlation between model cosine similarity and human judgment on sentence equivalence.
Training Details
Training Setup
- Dataset:
nickprock/it-wiki-retrieval-synthetic-hn(45,181 samples) - Epochs: 1
- Batch Size: 16 (per device) x 16 (Gradient Accumulation) = 256 effective batch size
- Optimizer:
adamw_8bit - Learning Rate: 2e-5 with linear warmup (0.1)
- Precision:
bf16
Training Dataset
it-wiki-retrieval-synthetic-hn
- Dataset: it-wiki-retrieval-synthetic-hn
- Size: 45,181 training samples
- Columns: <code>anchor</code>, <code>positive</code>, and <code>negative</code>
- Approximate statistics based on the first 100 samples: | | anchor | positive | negative | |:---------|:-----------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------| | type | string | string | string | | modality | text | text | text | | details | <ul><li>min: 12 tokens</li><li>mean: 20.64 tokens</li><li>max: 44 tokens</li></ul> | <ul><li>min: 36 tokens</li><li>mean: 119.38 tokens</li><li>max: 233 tokens</li></ul> | <ul><li>min: 80 tokens</li><li>mean: 257.07 tokens</li><li>max: 441 tokens</li></ul> |
- Samples: | anchor | positive | negative | |:--------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>Quali formati ha avuto l'album Dejavu della cantante giapponese Koda Kumi?</code> | <code>Dejavu è il nono album studio della cantante giapponese Koda Kumi, pubblicato il 2 marzo 2011. Descrizione L'album è stato pubblicato in due formati: CD e CD+2DVD (First Press Limited Edition); quando di quest'ultima si sono esaurite le copie, è stata venduta la sola edizione CD+DVD. La traccia Hey Baby! è stata utilizzata come canzone di apertura per la sigla della dodicesima stagione del famoso anime Crayon Shin-chan.</code> | <code>["è una serie di light novel scritta da Aoi Sekina e illustrata Kira Inugami. La serie è iniziata con la prubblicazione del primo volume il 19 gennaio 2008, edito dalla Fujimi Shobō per l'etichetta Fujimi Fantasia Bunko. Originariamente la serie era intitolata , ma fu successivamente intitolata con il sottotitolo del primo volume . Alla serie si fa anche riferimento con il titolo . Da essa sono stati tratti un manga nel 2009 e due serie anime nel 2009 e nel 2012.\n\nTrama \nI membri del consiglio studentesco dell'Accademia Hekiyou di Hokkaidō vengono selezionati attraverso un concorso di popolarità.", "è un manga di genere yaoi scritto ed illustrato da Hinako Takanaga. L'opera è stata serializzata tra il 2001 e il 2003 da Ōtō Shobō sulla rivista Gust e in seguito raccolta in tre volumi tankōbon.\n\nTrama \nQuando Kojima, allegro studente di scuola media, decide di fare amicizia col solitario Nakahara, viene a sapere che questi si trova praticamente senza famiglia: infatti il padre è lo...</code> | | <code>Come sono state suddivise le aree dei Territori del Nord-Ovest nel censimento più recente?</code> | <code>La Regione 1 è una delle sei regioni censuarie dei Territori del Nord-Ovest in Canada, con capoluogo Inuvik. Al 2011 aveva 6.712 abitanti su una superficie di (1 chilometro quadro ogni 54 abitanti). È stata istituita con il censimento del 2011, quando l'area dei Territori è stata suddivisa in 6 nuove regioni censuarie.</code> | <code>['La municipalità di Northern Areas è una Local Government Area che si trova in Australia Meridionale. Essa si estende su una superficie di 3.070 chilometri quadrati e ha una popolazione di 4.866 abitanti. La sede del consiglio si trova a Jamestown.', 'Il sistema bibliotecario Sud ovest bresciano è una rete di biblioteche situate nei comuni della Bassa Bresciana occidentale.\nÈ parte della Rete Bibliotecaria Bresciana e Cremonese (RBBC). La convenzione che regola i rapporti tra i comuni aderenti è stata stipulata il 18 agosto del 2000.']</code> | | <code>In quale anno Colosi ha donato i suoi estratti e opuscoli all'Istituto di Zoologia?</code> | <code>Docente all'università di Firenze dal 1926 al 1962, dal 1950 fu Socio dei Lincei. Fu autore di varie opere scientifiche come Fauna italiana (1933), Gli organismi ed il mondo esterno (1945) e Zoologia e biologia generale (1956). Biblioteca personale Nel 1975 Colosi donò all'Istituto di Zoologia dell'Università di Firenze circa 9.400 estratti ed opuscoli del sec.</code> | <code>["Fu autore delle editio princeps e della raccolta L'oceano delle fiumane delle novelle (1866).\n\nNel 1870 gli fu dedicata una medaglia (unitamente a Heinrich Leberecht Fleischer, August Friedrich Pott ed Emil Rödiger) in occasione del 25º anniversario della fondazione della Deutsche Morgenländische Gesellschaft.", 'Diresse il laboratorio istologico francese e fu docente al Collège de France dal 1875. Nel 1888 fu nominato Socio Straniero dei Lincei. Da lui prendono nome gli anelli di Ranvier e le croci latine di Ranvier.\n\nEbbe tra i suoi allievi Ferdinand-Jean Darier, Justin Marie Jolly, Joaquín Albarrán, Luis Simarro Lacabra e Fredrik Georg Gade.']</code> |
- Loss: <code>MatryoshkaLoss</code> with these parameters:
{
"loss": "CachedMultipleNegativesRankingLoss",
"matryoshka_dims": [
768,
512,
256,
128
],
"matryoshka_weights": [
1,
1,
1,
1
],
"n_dims_per_step": -1
}Evaluation Dataset
it-wiki-retrieval-synthetic-hn
- Dataset: it-wiki-retrieval-synthetic-hn
- Size: 2,378 evaluation samples
- Columns: <code>anchor</code>, <code>positive</code>, and <code>negative</code>
- Approximate statistics based on the first 100 samples: | | anchor | positive | negative | |:---------|:-----------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------| | type | string | string | string | | modality | text | text | text | | details | <ul><li>min: 11 tokens</li><li>mean: 20.12 tokens</li><li>max: 49 tokens</li></ul> | <ul><li>min: 35 tokens</li><li>mean: 119.73 tokens</li><li>max: 198 tokens</li></ul> | <ul><li>min: 104 tokens</li><li>mean: 266.03 tokens</li><li>max: 413 tokens</li></ul> |
- Samples: | anchor | positive | negative | |:-----------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>Cosa significava essere un marchese nel periodo feudale in Italia?</code> | <code>Berengario – nome proprio di persona italiano maschile Berengario del Friuli – marchese del Friuli (874-924), re d'Italia (888-924) e imperatore del Sacro Romano Impero (915-924) Berengario II d'Ivrea – marchese d'Ivrea (928-950) e re d'Italia (950-961) Berengario I di Tolosa detto il Saggio (? – 835) – conte di Tolosa e conte di Barcellona Berengario di Tours (1010-1088) – filosofo, dialettico ed eretico francese medievale</code> | <code>['Il titolo di conte di Richmond è un titolo nobiliare, ora estinto, dei pari del Regno Unito. Venne creato molte volte è ed è stato tenuto da famiglie bretoni, normanne, di stirpe plantageneta, capetingia, sabauda, Tudor e Stuart.', "Duca d'Orléans (in francese: Duc d'Orléans) è un titolo riservato alla famiglia reale francese, creato nel corso del XIV secolo. Legato al trattamento di Principe del sangue (princes du sang), il titolo di duca d'Orléans era dato, se possibile, al fratello minore del sovrano. In questo modo il titolare spesso formava una linea collaterale della famiglia reale francese, con un eventuale diritto di succedere al trono tra i principi più prossimi al trono.\n\nDurante il periodo dell'Ancien Régime il detentore del titolo spesso assumeva un ruolo politico."]</code> | | <code>Quali sono le caratteristiche musicali dell'album Listen to Your Heart - Unplugged di D.H.T.?</code> | <code>Listen to Your Heart - Unplugged è il terzo album duo belga D.H.T.. È stato pubblicato solo digitalmente il 30 giugno 2006. Il disco L'album è costituito dalle stesse tracce del loro album Listen to Your Heart, arrangiate in chiave acustica. La versione di Listen to Your Heart presente in questo album è la stessa che chiudeva l'album di debutto, solo qui è la traccia d'apertura dell'album; le successive nove tracce sono arrangiamenti degli altri brani del primo album. L'undicesima ed ultima traccia è What if?, l'unico inedito, che sostituisce Depressed.</code> | <code>["Listen to Your Heart è l'album di debutto del duo dance-trance belga D.H.T., pubblicato il 18 luglio 2005.\n\nIl disco\nL'album prende il titolo dall'omonima Listen to Your Heart, canzone del gruppo pop svedese Roxette, della quale sono presenti due cover nella tracklist (la prima già precedentemente pubblicata come singolo). Oltre a Listen to Your Heart, l'album si compone di altre quattro cover e di sei brani originali.\n\nDa quest'album sono stati estratti quattro singoli, due dei quali prima della pubblicazione dell'album.", 'Listen to Your Heart è il secondo album del duo belga D.H.T., pubblicato solo digitalmente il 30 giugno 2006.\n\nIl disco\nL\'album riprende la tracklist del precedente Listen to Your Heart, riproponeno tutti gli undici brani in versione remixata.\n\nDa questo album è stato tratto un singolo, Sun "teuduh-duh-te-te", pubblicato l\'8 giugno 2005.\n\nTracce\n\nTesti e musiche di Edmée Daenen e Flor Theeuwes, tranne dove indicato.\n\n Listen to Your Heart (Hardb...</code> | | <code>Conseguenze psicologiche del lavoro marittimo nel romanzo The Shadow Line</code> | <code>La linea d'ombra (The Shadow Line) – romanzo di Joseph Conrad del 1917 The Shadow Line – album dei Godhead del 2006 The Shadow Line – serie televisiva britannica del 2011</code> | <code>["Il mare (The Sea) è un romanzo di John Banville del 2005 vincitore del Booker Prize.\n\nLa vicenda è narrata da Max Morden, uno storico dell'arte in pensione che cerca di accettare le morti di coloro che ha amato da bambino e da adulto.\nLa narrazione è caratterizzata dai frequenti salti temporali tra presente e passato.\n\nTrama \nIl romanzo è ambientato nella città immaginaria di Ballymore, dove i ricordi della noiosa cittadina sono manipolati dall'immaginazione.", "Endless Ocean, detto anche Forever Blue, è un gioco di simulazione di immersione subacquea prodotto dalla Nintendo e compatibile con console Nintendo Wii. È il primo capitolo della omonima saga.\n\nModalità di gioco\nEsplorazione. L'esplorazione è libera e la si può praticare in qualsiasi momento del giorno.\nLezioni. Sono delle esplorazioni di durata breve in cui insieme a qualcun altro bisognerà trovare un pesce in particolare."]</code> |
- Loss: <code>MatryoshkaLoss</code> with these parameters:
{
"loss": "CachedMultipleNegativesRankingLoss",
"matryoshka_dims": [
768,
512,
256,
128
],
"matryoshka_weights": [
1,
1,
1,
1
],
"n_dims_per_step": -1
}Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 16num_train_epochs: 1learning_rate: 2e-05warmup_steps: 0.1optim: adamw_8bitgradient_accumulation_steps: 16bf16: True
All Hyperparameters
<details><summary>Click to expand</summary>
per_device_train_batch_size: 16num_train_epochs: 1max_steps: -1learning_rate: 2e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0.1optim: adamw_8bitoptim_args: Noneweight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 16average_tokens_across_devices: Truemax_grad_norm: 1.0label_smoothing_factor: 0.0bf16: Truefp16: Falsebf16_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: 8prediction_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: Falseignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 42data_seed: Noneuse_cpu: Falseaccelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}parallelism_config: Nonedataloader_drop_last: Falsedataloader_num_workers: 0dataloader_pin_memory: Truedataloader_persistent_workers: Falsedataloader_prefetch_factor: Nonedataloader_multiprocessing_context: Nonedataloader_in_order: Trueremove_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: Nonelocal_rank: -1prompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}warmup_ratio: None
</details>
Training Logs
Training Time
- Training: 51.7 minutes
- Evaluation: 1.6 minutes
- Total: 53.4 minutes
Framework Versions
- Python: 3.13.11
- Sentence Transformers: 6.1.0.dev0
- Transformers: 5.17.0
- PyTorch: 2.11.0+cu128
- Accelerate: 1.15.0
- Datasets: 5.0.1
- Tokenizers: 0.23.2
Additional Resources
- Training and Finetuning Embedding Models with Sentence Transformers: the end-to-end guide for training or finetuning Sentence Transformer models.
- Introduction to Matryoshka Embedding Models: variable-size embeddings that can be truncated with minimal quality loss.
- Binary and Scalar Embedding Quantization for Significantly Faster & Cheaper Retrieval: post-training compression of embedding vectors.
- Multimodal Embedding & Reranker Models with Sentence Transformers: use text, image, audio, and video models through the same API.
- Training and Finetuning Multimodal Embedding & Reranker Models with Sentence Transformers: train multimodal embedding models, with a Visual Document Retrieval walkthrough.
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}
}CachedMultipleNegativesRankingLoss
@misc{gao2021scaling,
title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
year={2021},
eprint={2101.06983},
archivePrefix={arXiv},
primaryClass={cs.LG}
}MultipleNegativesRankingLoss
@misc{oord2019representationlearningcontrastivepredictive,
title={Representation Learning with Contrastive Predictive Coding},
author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
year={2019},
eprint={1807.03748},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/1807.03748},
}<!--
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. -->
