SentenceTransformer based on BAAI/bge-m3

This is a sentence-transformers model finetuned from BAAI/bge-m3 on the json dataset. 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: BAAI/bge-m3
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 1024 tokens
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: XLMRobertaModel 
  (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})
  (2): Normalize()
)

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("adriansanz/sitges-v2-5ep")
# Run inference
sentences = [
    "Publicada la llista d'infants admesos i exclosos a les estades esportives, s'obre un termini perquè les persones admeses puguin demanar qualsevol canvi a la sol·licitud inicial.",
    'Quin és el període en què es pot demanar un canvi a la sol·licitud inicial?',
    'Quin és el contingut del volant històric de convivència?',
]
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.1013
cosine_accuracy@3 0.1857
cosine_accuracy@5 0.2447
cosine_accuracy@10 0.3418
cosine_precision@1 0.1013
cosine_precision@3 0.0619
cosine_precision@5 0.0489
cosine_precision@10 0.0342
cosine_recall@1 0.1013
cosine_recall@3 0.1857
cosine_recall@5 0.2447
cosine_recall@10 0.3418
cosine_ndcg@10 0.205
cosine_mrr@10 0.1632
cosine_map@100 0.1819

Information Retrieval

Metric Value
cosine_accuracy@1 0.097
cosine_accuracy@3 0.1814
cosine_accuracy@5 0.2616
cosine_accuracy@10 0.3418
cosine_precision@1 0.097
cosine_precision@3 0.0605
cosine_precision@5 0.0523
cosine_precision@10 0.0342
cosine_recall@1 0.097
cosine_recall@3 0.1814
cosine_recall@5 0.2616
cosine_recall@10 0.3418
cosine_ndcg@10 0.2045
cosine_mrr@10 0.1621
cosine_map@100 0.1811

Information Retrieval

Metric Value
cosine_accuracy@1 0.0844
cosine_accuracy@3 0.1772
cosine_accuracy@5 0.2363
cosine_accuracy@10 0.3418
cosine_precision@1 0.0844
cosine_precision@3 0.0591
cosine_precision@5 0.0473
cosine_precision@10 0.0342
cosine_recall@1 0.0844
cosine_recall@3 0.1772
cosine_recall@5 0.2363
cosine_recall@10 0.3418
cosine_ndcg@10 0.1948
cosine_mrr@10 0.1501
cosine_map@100 0.1683

Information Retrieval

Metric Value
cosine_accuracy@1 0.0759
cosine_accuracy@3 0.1688
cosine_accuracy@5 0.2363
cosine_accuracy@10 0.3418
cosine_precision@1 0.0759
cosine_precision@3 0.0563
cosine_precision@5 0.0473
cosine_precision@10 0.0342
cosine_recall@1 0.0759
cosine_recall@3 0.1688
cosine_recall@5 0.2363
cosine_recall@10 0.3418
cosine_ndcg@10 0.1889
cosine_mrr@10 0.1425
cosine_map@100 0.1596

Information Retrieval

Metric Value
cosine_accuracy@1 0.0802
cosine_accuracy@3 0.1646
cosine_accuracy@5 0.2321
cosine_accuracy@10 0.3249
cosine_precision@1 0.0802
cosine_precision@3 0.0549
cosine_precision@5 0.0464
cosine_precision@10 0.0325
cosine_recall@1 0.0802
cosine_recall@3 0.1646
cosine_recall@5 0.2321
cosine_recall@10 0.3249
cosine_ndcg@10 0.1892
cosine_mrr@10 0.1474
cosine_map@100 0.1622

Information Retrieval

Metric Value
cosine_accuracy@1 0.0464
cosine_accuracy@3 0.1519
cosine_accuracy@5 0.2194
cosine_accuracy@10 0.27
cosine_precision@1 0.0464
cosine_precision@3 0.0506
cosine_precision@5 0.0439
cosine_precision@10 0.027
cosine_recall@1 0.0464
cosine_recall@3 0.1519
cosine_recall@5 0.2194
cosine_recall@10 0.27
cosine_ndcg@10 0.1511
cosine_mrr@10 0.1137
cosine_map@100 0.126

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 9,717 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 8 tokens
    • mean: 49.79 tokens
    • max: 190 tokens
    • min: 9 tokens
    • mean: 20.83 tokens
    • max: 43 tokens
  • Samples:
    positive anchor
    L'Ajuntament de Sitges atorga subvencions per a projectes i activitats d'interès públic o social que tinguin per finalitat les activitats esportives federades, escolars o populars desenvolupades per les entitats esportives i esportistes del municipi de Sitges al llarg de l'exercici per la qual es sol·licita la subvenció, i reuneixin les condicions assenyalades a les bases. Quin és el requisit per a obtenir les subvencions per a projectes i activitats esportives?
    L'Ajuntament de Sitges atorga subvencions per a projectes i activitats d'interès públic o social que tinguin per finalitat les activitats esportives federades, escolars o populars desenvolupades per les entitats esportives i esportistes del municipi de Sitges al llarg de l'exercici per la qual es sol·licita la subvenció, i reuneixin les condicions assenyalades a les bases. Quin és el requisit per a obtenir les subvencions per a projectes i activitats esportives?
    No es proporciona informació sobre el requisit principal per obtenir el certificat. Quin és el requisit principal per obtenir el certificat?
  • 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: 16
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 5
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.2
  • 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: 16
  • 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
  • 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: 5
  • max_steps: -1
  • lr_scheduler_type: cosine
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.2
  • 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
  • eval_use_gather_object: 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.2632 10 3.2527 - - - - - -
0.5263 20 1.9679 - - - - - -
0.7895 30 1.8319 - - - - - -
1.0 38 - 0.1819 0.1622 0.1596 0.1683 0.126 0.1811
1.0526 40 1.3358 - - - - - -
1.3158 50 1.1166 - - - - - -
1.5789 60 0.8715 - - - - - -
1.8421 70 0.8801 - - - - - -
2.0 76 - 0.1819 0.1622 0.1596 0.1683 0.1260 0.1811
2.1053 80 0.6515 - - - - - -
2.3684 90 0.536 - - - - - -
2.6316 100 0.4682 - - - - - -
2.8947 110 0.4686 - - - - - -
3.0 114 - 0.1819 0.1622 0.1596 0.1683 0.1260 0.1811
3.1579 120 0.3161 - - - - - -
3.4211 130 0.3554 - - - - - -
3.6842 140 0.2886 - - - - - -
3.9474 150 0.2616 - - - - - -
4.0 152 - 0.1819 0.1622 0.1596 0.1683 0.1260 0.1811
4.2105 160 0.1902 - - - - - -
4.4737 170 0.1894 - - - - - -
4.7368 180 0.1858 - - - - - -
5.0 190 0.1939 0.1819 0.1622 0.1596 0.1683 0.1260 0.1811
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.1.1
  • Transformers: 4.44.2
  • PyTorch: 2.4.1+cu121
  • Accelerate: 0.35.0.dev0
  • Datasets: 3.0.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
20
Safetensors
Model size
568M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for adriansanz/ST-tramits-sitges-001-5ep

Base model

BAAI/bge-m3
Finetuned
(181)
this model

Evaluation results