CoolFace
Modelpublic

adriansanz/ST-tramits-SQV-006-5ep

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes11downloads
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 <!-- at revision 5617a9f61b028005a4858fdac845db406aefb181 -->
  • —Maximum Sequence Length: 8192 tokens
  • —Output Dimensionality: 1024 tokens
  • —Similarity Function: Cosine Similarity
  • —Training Dataset:
  • —json <!-- - Language: Unknown --> <!-- - License: Unknown -->

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:

bash
pip install -U sentence-transformers

Then you can load this model and run inference.

python
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("adriansanz/ST-tramits-SQV-006-5ep")
# Run inference
sentences = [
    'L’Ajuntament de Sant Quirze del Vallès reconeix un dret preferent al titular del dret funerari sobre la corresponent sepultura o al successor o causahavent de l’anterior titular d’aquest dret, que permet adquirir de nou el dret funerari referit, sobre la mateixa sepultura, un cop el dret atorgat ha exhaurit el termini de vigència',
    'Quan es pot adquirir de nou el dret funerari?',
    'Quin és el paper del cens electoral en les eleccions?',
]
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]

<!--

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

Metrics

Information Retrieval
MetricValue
cosine_accuracy@10.1017
cosine_accuracy@30.2771
cosine_accuracy@50.368
cosine_accuracy@100.4827
cosine_precision@10.1017
cosine_precision@30.0924
cosine_precision@50.0736
cosine_precision@100.0483
cosine_recall@10.1017
cosine_recall@30.2771
cosine_recall@50.368
cosine_recall@100.4827
cosine_ndcg@100.2757
cosine_mrr@100.2113
cosine_map@1000.2287
Information Retrieval
MetricValue
cosine_accuracy@10.119
cosine_accuracy@30.29
cosine_accuracy@50.3658
cosine_accuracy@100.4957
cosine_precision@10.119
cosine_precision@30.0967
cosine_precision@50.0732
cosine_precision@100.0496
cosine_recall@10.119
cosine_recall@30.29
cosine_recall@50.3658
cosine_recall@100.4957
cosine_ndcg@100.2892
cosine_mrr@100.2253
cosine_map@1000.2428
Information Retrieval
MetricValue
cosine_accuracy@10.1082
cosine_accuracy@30.2662
cosine_accuracy@50.3636
cosine_accuracy@100.5065
cosine_precision@10.1082
cosine_precision@30.0887
cosine_precision@50.0727
cosine_precision@100.0506
cosine_recall@10.1082
cosine_recall@30.2662
cosine_recall@50.3636
cosine_recall@100.5065
cosine_ndcg@100.2839
cosine_mrr@100.2156
cosine_map@1000.2323
Information Retrieval
MetricValue
cosine_accuracy@10.1147
cosine_accuracy@30.2403
cosine_accuracy@50.3398
cosine_accuracy@100.4805
cosine_precision@10.1147
cosine_precision@30.0801
cosine_precision@50.068
cosine_precision@100.0481
cosine_recall@10.1147
cosine_recall@30.2403
cosine_recall@50.3398
cosine_recall@100.4805
cosine_ndcg@100.275
cosine_mrr@100.212
cosine_map@1000.2304
Information Retrieval
MetricValue
cosine_accuracy@10.1126
cosine_accuracy@30.2641
cosine_accuracy@50.329
cosine_accuracy@100.487
cosine_precision@10.1126
cosine_precision@30.088
cosine_precision@50.0658
cosine_precision@100.0487
cosine_recall@10.1126
cosine_recall@30.2641
cosine_recall@50.329
cosine_recall@100.487
cosine_ndcg@100.2791
cosine_mrr@100.2152
cosine_map@1000.234
Information Retrieval
MetricValue
cosine_accuracy@10.1039
cosine_accuracy@30.2619
cosine_accuracy@50.3355
cosine_accuracy@100.474
cosine_precision@10.1039
cosine_precision@30.0873
cosine_precision@50.0671
cosine_precision@100.0474
cosine_recall@10.1039
cosine_recall@30.2619
cosine_recall@50.3355
cosine_recall@100.474
cosine_ndcg@100.27
cosine_mrr@100.2071
cosine_map@1000.2256

<!--

Bias, Risks and Limitations

What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model. -->

<!--

Recommendations

What are recommendations with respect to the foreseeable issues? For example, filtering explicit content. -->

Training Details

Training Dataset

json
  • —Dataset: json
  • —Size: 6,468 training samples
  • —Columns: <code>positive</code> and <code>anchor</code>
  • —Approximate statistics based on the first 1000 samples: | | positive | anchor | |:--------|:----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------| | type | string | string | | details | <ul><li>min: 5 tokens</li><li>mean: 39.4 tokens</li><li>max: 168 tokens</li></ul> | <ul><li>min: 10 tokens</li><li>mean: 20.48 tokens</li><li>max: 44 tokens</li></ul> |
  • —Samples: | positive | anchor | |:-------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------| | <code>Aquest tràmit permet la inscripció al padró dels canvis de domicili dins de Sant Quirze del Vallès...</code> | <code>Quin és el benefici de la inscripció al Padró d'Habitants?</code> | | <code>Els recursos que es poden oferir al banc de recursos són: MATERIALS, PROFESSIONALS i SOCIALS.</code> | <code>Quins tipus de recursos es poden oferir al banc de recursos?</code> | | <code>El termini per a la presentació de sol·licituds serà del 8 al 21 de maig de 2024, ambdós inclosos.</code> | <code>Quin és el termini per a la presentació de sol·licituds per a la preinscripció a l'Escola Bressol Municipal El Patufet?</code> |
  • —Loss: <code>MatryoshkaLoss</code> with these parameters:
json
  {
      "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: adamwtorchfused
  • —batch_sampler: no_duplicates
All Hyperparameters

<details><summary>Click to expand</summary>

  • —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: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}
  • —fsdp_transformer_layer_cls_to_wrap: None
  • —accelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}
  • —deepspeed: None
  • —label_smoothing_factor: 0.0
  • —optim: adamwtorchfused
  • —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

</details>

Training Logs

EpochStepTraining Lossdim_1024_cosine_map@100dim_128_cosine_map@100dim_256_cosine_map@100dim_512_cosine_map@100dim_64_cosine_map@100dim_768_cosine_map@100
0.3951104.4042------
0.7901202.9471------
0.987725-0.22930.20450.20990.21380.17170.2242
1.1852302.2351------
1.5802401.5289------
1.9753501.20450.23320.21820.22770.22210.20510.2248
2.3704600.9435------
2.7654700.7958------
2.96375-0.23790.23520.22760.22040.21380.2235
3.1605800.6703------
3.5556900.6162------
3.95061000.6079------
3.9901101-0.22510.23070.22010.23430.22100.2348
4.34571100.5085------
4.74071200.5248------
4.9383125-0.22870.23400.23040.23230.22560.2428
  • —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
bibtex
@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
bibtex
@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
bibtex
@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}
}

<!--

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. -->