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/sqv-v4-10ep")
# Run inference
sentences = [
    "La persona consumidora presenti la reclamació davant de l'entitat acreditada en un termini superior a un any des de la data en què va presentar la reclamació a l'empresa.",
    "Quin és el paper de l'entitat acreditada en la tramitació d'una reclamació?",
    "Quin és el resultat de la modificació substancial de la llicència d'obres en relació a les autoritzacions administratives?",
]
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.0574
cosine_accuracy@3 0.153
cosine_accuracy@5 0.2348
cosine_accuracy@10 0.4174
cosine_precision@1 0.0574
cosine_precision@3 0.051
cosine_precision@5 0.047
cosine_precision@10 0.0417
cosine_recall@1 0.0574
cosine_recall@3 0.153
cosine_recall@5 0.2348
cosine_recall@10 0.4174
cosine_ndcg@10 0.2055
cosine_mrr@10 0.1419
cosine_map@100 0.1652

Information Retrieval

Metric Value
cosine_accuracy@1 0.0557
cosine_accuracy@3 0.16
cosine_accuracy@5 0.24
cosine_accuracy@10 0.407
cosine_precision@1 0.0557
cosine_precision@3 0.0533
cosine_precision@5 0.048
cosine_precision@10 0.0407
cosine_recall@1 0.0557
cosine_recall@3 0.16
cosine_recall@5 0.24
cosine_recall@10 0.407
cosine_ndcg@10 0.2016
cosine_mrr@10 0.1396
cosine_map@100 0.1638

Information Retrieval

Metric Value
cosine_accuracy@1 0.0696
cosine_accuracy@3 0.167
cosine_accuracy@5 0.2487
cosine_accuracy@10 0.4261
cosine_precision@1 0.0696
cosine_precision@3 0.0557
cosine_precision@5 0.0497
cosine_precision@10 0.0426
cosine_recall@1 0.0696
cosine_recall@3 0.167
cosine_recall@5 0.2487
cosine_recall@10 0.4261
cosine_ndcg@10 0.2158
cosine_mrr@10 0.1526
cosine_map@100 0.1755

Information Retrieval

Metric Value
cosine_accuracy@1 0.0557
cosine_accuracy@3 0.167
cosine_accuracy@5 0.2522
cosine_accuracy@10 0.4243
cosine_precision@1 0.0557
cosine_precision@3 0.0557
cosine_precision@5 0.0504
cosine_precision@10 0.0424
cosine_recall@1 0.0557
cosine_recall@3 0.167
cosine_recall@5 0.2522
cosine_recall@10 0.4243
cosine_ndcg@10 0.21
cosine_mrr@10 0.1453
cosine_map@100 0.1685

Information Retrieval

Metric Value
cosine_accuracy@1 0.0609
cosine_accuracy@3 0.1617
cosine_accuracy@5 0.2609
cosine_accuracy@10 0.4435
cosine_precision@1 0.0609
cosine_precision@3 0.0539
cosine_precision@5 0.0522
cosine_precision@10 0.0443
cosine_recall@1 0.0609
cosine_recall@3 0.1617
cosine_recall@5 0.2609
cosine_recall@10 0.4435
cosine_ndcg@10 0.2181
cosine_mrr@10 0.1502
cosine_map@100 0.1722

Information Retrieval

Metric Value
cosine_accuracy@1 0.0609
cosine_accuracy@3 0.1548
cosine_accuracy@5 0.2452
cosine_accuracy@10 0.4278
cosine_precision@1 0.0609
cosine_precision@3 0.0516
cosine_precision@5 0.049
cosine_precision@10 0.0428
cosine_recall@1 0.0609
cosine_recall@3 0.1548
cosine_recall@5 0.2452
cosine_recall@10 0.4278
cosine_ndcg@10 0.2108
cosine_mrr@10 0.1457
cosine_map@100 0.1676

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 5,175 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 5 tokens
    • mean: 43.23 tokens
    • max: 117 tokens
    • min: 10 tokens
    • mean: 20.25 tokens
    • max: 46 tokens
  • Samples:
    positive anchor
    Aquest tràmit us permet consultar informació de les anotacions d'entrada i sortida que hi consten al registre de l'Ajuntament de Sant Quirze del Vallès. Quin és el format de les dades de sortida del tràmit?
    Tràmit a través del qual la persona interessada posa en coneixement de l’Ajuntament la voluntat de: ... Renunciar a una llicència prèviament atorgada. Quin és el resultat de la renúncia a una llicència urbanística prèviament atorgada?
    D’acord amb el plànol d'ubicació de parades: Mercat de diumenges a Les Fonts Quin és el plànol d'ubicació de parades del mercat de diumenges a Les Fonts?
  • 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: 10
  • 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: 10
  • 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.4938 10 4.1082 - - - - - -
0.9877 20 3.2445 0.1490 0.1440 0.1466 0.1546 0.1249 0.1521
1.4815 30 1.9296 - - - - - -
1.9753 40 1.7067 0.1607 0.1548 0.1567 0.1648 0.1448 0.1593
2.4691 50 0.9578 - - - - - -
2.9630 60 1.003 0.1640 0.1699 0.1660 0.1695 0.1568 0.1592
3.4568 70 0.6298 - - - - - -
3.9506 80 0.7035 - - - - - -
4.0 81 - 0.1707 0.1657 0.1769 0.1690 0.1610 0.1719
4.4444 90 0.4606 - - - - - -
4.9383 100 0.5131 - - - - - -
4.9877 101 - 0.1645 0.1686 0.1669 0.1620 0.1580 0.1722
5.4321 110 0.3748 - - - - - -
5.9259 120 0.4799 - - - - - -
5.9753 121 - 0.1670 0.1670 0.1725 0.1711 0.1628 0.1715
6.4198 130 0.3237 - - - - - -
6.9136 140 0.4132 - - - - - -
6.963 141 - 0.1746 0.1757 0.1697 0.1746 0.1655 0.1746
7.4074 150 0.3169 - - - - - -
7.9012 160 0.3438 - - - - - -
8.0 162 - 0.1692 0.1698 0.1718 0.1735 0.1707 0.1656
8.3951 170 0.2987 - - - - - -
8.8889 180 0.3193 - - - - - -
8.9877 182 - 0.1703 0.1703 0.1695 0.1710 0.1619 0.1666
9.3827 190 0.2883 - - - - - -
9.8765 200 0.3098 0.1652 0.1722 0.1685 0.1755 0.1676 0.1638
  • 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
19
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-SQV-004-10ep

Base model

BAAI/bge-m3
Finetuned
(181)
this model

Evaluation results