Edit model card

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/ST-tramits-MONT-001-5ep")
# Run inference
sentences = [
    "Laboratori d'art: D'octubre 2024 a maig de 2025. Horari: Dilluns de 17.30h a 19.00h",
    "Quin és el dia i hora del curs de Laboratori d'art?",
    "On es pot sol·licitar la reserva especial d'estacionament?",
]
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.1038
cosine_accuracy@3 0.2154
cosine_accuracy@5 0.2769
cosine_accuracy@10 0.4885
cosine_precision@1 0.1038
cosine_precision@3 0.0718
cosine_precision@5 0.0554
cosine_precision@10 0.0488
cosine_recall@1 0.1038
cosine_recall@3 0.2154
cosine_recall@5 0.2769
cosine_recall@10 0.4885
cosine_ndcg@10 0.2612
cosine_mrr@10 0.1933
cosine_map@100 0.2192

Information Retrieval

Metric Value
cosine_accuracy@1 0.1192
cosine_accuracy@3 0.2308
cosine_accuracy@5 0.3115
cosine_accuracy@10 0.5308
cosine_precision@1 0.1192
cosine_precision@3 0.0769
cosine_precision@5 0.0623
cosine_precision@10 0.0531
cosine_recall@1 0.1192
cosine_recall@3 0.2308
cosine_recall@5 0.3115
cosine_recall@10 0.5308
cosine_ndcg@10 0.2878
cosine_mrr@10 0.215
cosine_map@100 0.2378

Information Retrieval

Metric Value
cosine_accuracy@1 0.1269
cosine_accuracy@3 0.2385
cosine_accuracy@5 0.3269
cosine_accuracy@10 0.5269
cosine_precision@1 0.1269
cosine_precision@3 0.0795
cosine_precision@5 0.0654
cosine_precision@10 0.0527
cosine_recall@1 0.1269
cosine_recall@3 0.2385
cosine_recall@5 0.3269
cosine_recall@10 0.5269
cosine_ndcg@10 0.292
cosine_mrr@10 0.2216
cosine_map@100 0.2444

Information Retrieval

Metric Value
cosine_accuracy@1 0.1038
cosine_accuracy@3 0.2077
cosine_accuracy@5 0.3077
cosine_accuracy@10 0.4962
cosine_precision@1 0.1038
cosine_precision@3 0.0692
cosine_precision@5 0.0615
cosine_precision@10 0.0496
cosine_recall@1 0.1038
cosine_recall@3 0.2077
cosine_recall@5 0.3077
cosine_recall@10 0.4962
cosine_ndcg@10 0.2649
cosine_mrr@10 0.1953
cosine_map@100 0.2202

Information Retrieval

Metric Value
cosine_accuracy@1 0.1308
cosine_accuracy@3 0.2308
cosine_accuracy@5 0.3423
cosine_accuracy@10 0.55
cosine_precision@1 0.1308
cosine_precision@3 0.0769
cosine_precision@5 0.0685
cosine_precision@10 0.055
cosine_recall@1 0.1308
cosine_recall@3 0.2308
cosine_recall@5 0.3423
cosine_recall@10 0.55
cosine_ndcg@10 0.3001
cosine_mrr@10 0.2253
cosine_map@100 0.2489

Information Retrieval

Metric Value
cosine_accuracy@1 0.1038
cosine_accuracy@3 0.2231
cosine_accuracy@5 0.2846
cosine_accuracy@10 0.4923
cosine_precision@1 0.1038
cosine_precision@3 0.0744
cosine_precision@5 0.0569
cosine_precision@10 0.0492
cosine_recall@1 0.1038
cosine_recall@3 0.2231
cosine_recall@5 0.2846
cosine_recall@10 0.4923
cosine_ndcg@10 0.2636
cosine_mrr@10 0.195
cosine_map@100 0.2197

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 3,814 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 3 tokens
    • mean: 39.27 tokens
    • max: 165 tokens
    • min: 9 tokens
    • mean: 20.67 tokens
    • max: 50 tokens
  • Samples:
    positive anchor
    Aquest tràmit permet obtenir la llicència per a ocupació de la via pública per quioscs, casetes o parades (xurreries, gelats,...). Quins són els requisits per obtenir la llicència d'ocupació de la via pública per a gelats?
    Aquest tràmit permet obtenir la llicència d'ocupació de la via pública per a la instal·lació de grues desmuntables. Quin és el lloc on es pot obtenir la llicència d'ocupació de la via pública per a la instal·lació de grues desmuntables en una via pública?
    L’Espai Jove de Montgat disposa de dues sales, una aula, i una sala chill-out així com jardins i serveis adreçats als joves del municipi. Quin és el propòsit de l'aula de l'Espai Jove de Montgat?
  • 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_768_cosine_map@100 dim_512_cosine_map@100 dim_256_cosine_map@100 dim_128_cosine_map@100 dim_64_cosine_map@100
0.6695 10 3.4242 - - - - - -
0.9372 14 - 0.2075 0.2165 0.2078 0.1957 0.2050 0.1949
1.3389 20 1.666 - - - - - -
1.9414 29 - 0.2145 0.2184 0.2248 0.2144 0.2244 0.2112
2.0084 30 0.7666 - - - - - -
2.6778 40 0.4859 - - - - - -
2.9456 44 - 0.2263 0.2408 0.2234 0.2274 0.252 0.2313
3.3473 50 0.277 - - - - - -
3.9498 59 - 0.2107 0.2359 0.2386 0.2275 0.2382 0.2246
4.0167 60 0.2423 - - - - - -
4.6862 70 0.2281 0.2192 0.2378 0.2444 0.2202 0.2489 0.2197
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.2.0
  • Transformers: 4.44.2
  • PyTorch: 2.4.1+cu121
  • Accelerate: 1.1.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
9
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-MONTGAT-001-5ep

Base model

BAAI/bge-m3
Finetuned
(123)
this model

Collection including adriansanz/ST-tramits-MONTGAT-001-5ep

Evaluation results