Edit model card

BGE large Legal Spanish

This is a sentence-transformers model finetuned from BAAI/bge-m3. 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
  • Language: es
  • License: apache-2.0

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/bge-m3-es-legal-tmp-6")
# Run inference
sentences = [
    'Positiu, llevat els casos en els quals manquin informes preceptius i vinculants d’altres administracions o d’aquells en els què es transfereixin al sol·licitant facultats contràries al planejament i la legislació urbanística.',
    "Quin és el sentit del silenci administratiu per a la comunicació prèvia d'obres per instal·lacions de plaques solars en sol urbà?",
    'Quin és el lloc on es pot tramitar la presentació de justificants de pagament per als ajuts del lloguer just dels habitatges?',
]
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.1111
cosine_accuracy@3 0.3333
cosine_accuracy@5 0.4444
cosine_accuracy@10 0.7778
cosine_precision@1 0.1111
cosine_precision@3 0.1111
cosine_precision@5 0.0889
cosine_precision@10 0.0778
cosine_recall@1 0.1111
cosine_recall@3 0.3333
cosine_recall@5 0.4444
cosine_recall@10 0.7778
cosine_ndcg@10 0.3756
cosine_mrr@10 0.2551
cosine_map@100 0.2645

Information Retrieval

Metric Value
cosine_accuracy@1 0.1111
cosine_accuracy@3 0.3333
cosine_accuracy@5 0.4444
cosine_accuracy@10 0.7778
cosine_precision@1 0.1111
cosine_precision@3 0.1111
cosine_precision@5 0.0889
cosine_precision@10 0.0778
cosine_recall@1 0.1111
cosine_recall@3 0.3333
cosine_recall@5 0.4444
cosine_recall@10 0.7778
cosine_ndcg@10 0.3756
cosine_mrr@10 0.2551
cosine_map@100 0.2659

Information Retrieval

Metric Value
cosine_accuracy@1 0.1111
cosine_accuracy@3 0.3333
cosine_accuracy@5 0.4444
cosine_accuracy@10 0.7778
cosine_precision@1 0.1111
cosine_precision@3 0.1111
cosine_precision@5 0.0889
cosine_precision@10 0.0778
cosine_recall@1 0.1111
cosine_recall@3 0.3333
cosine_recall@5 0.4444
cosine_recall@10 0.7778
cosine_ndcg@10 0.3694
cosine_mrr@10 0.2483
cosine_map@100 0.2591

Information Retrieval

Metric Value
cosine_accuracy@1 0.1111
cosine_accuracy@3 0.3333
cosine_accuracy@5 0.4444
cosine_accuracy@10 0.6667
cosine_precision@1 0.1111
cosine_precision@3 0.1111
cosine_precision@5 0.0889
cosine_precision@10 0.0667
cosine_recall@1 0.1111
cosine_recall@3 0.3333
cosine_recall@5 0.4444
cosine_recall@10 0.6667
cosine_ndcg@10 0.3372
cosine_mrr@10 0.238
cosine_map@100 0.2553

Information Retrieval

Metric Value
cosine_accuracy@1 0.1111
cosine_accuracy@3 0.3333
cosine_accuracy@5 0.5556
cosine_accuracy@10 0.7778
cosine_precision@1 0.1111
cosine_precision@3 0.1111
cosine_precision@5 0.1111
cosine_precision@10 0.0778
cosine_recall@1 0.1111
cosine_recall@3 0.3333
cosine_recall@5 0.5556
cosine_recall@10 0.7778
cosine_ndcg@10 0.392
cosine_mrr@10 0.2725
cosine_map@100 0.2795

Information Retrieval

Metric Value
cosine_accuracy@1 0.2222
cosine_accuracy@3 0.3333
cosine_accuracy@5 0.4444
cosine_accuracy@10 0.5556
cosine_precision@1 0.2222
cosine_precision@3 0.1111
cosine_precision@5 0.0889
cosine_precision@10 0.0556
cosine_recall@1 0.2222
cosine_recall@3 0.3333
cosine_recall@5 0.4444
cosine_recall@10 0.5556
cosine_ndcg@10 0.3627
cosine_mrr@10 0.3029
cosine_map@100 0.326

Training Details

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: 6
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • bf16: True
  • tf32: False
  • 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
  • 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: 6
  • max_steps: -1
  • lr_scheduler_type: cosine
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • 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: False
  • 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
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss 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
1.0 1 - 3.7675 0.2475 0.2919 0.2372 0.2511 0.2510 0.2468
2.0 2 - 3.9701 0.2533 0.3028 0.2473 0.2601 0.3449 0.2716
3.0 4 - 4.1211 0.2645 0.2704 0.2548 0.2614 0.3283 0.2654
4.0 5 1.8359 4.0228 0.2645 0.2789 0.2553 0.2619 0.3260 0.2659
5.0 6 - 3.9758 0.2645 0.2795 0.2553 0.2591 0.3260 0.2659
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.1
  • Transformers: 4.42.3
  • PyTorch: 2.3.1+cu121
  • Accelerate: 0.32.1
  • Datasets: 2.20.0
  • 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
8
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-SIT-test

Base model

BAAI/bge-m3
Finetuned
(123)
this model

Evaluation results