CoolFace
Modelpublic

wilfredomartel/bge-m3-es-legal-155k

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
0likes107downloads
Model Card

BGE-M3 Legal Spanish (Fine-tuned)

This is a sentence-transformers model finetuned from BAAI/bge-m3 on the rtz20250828 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 dimensions
  • —Similarity Function: Cosine Similarity
  • —Training Dataset:
  • —rtz20250828
  • —Language: es
  • —License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False, 'architecture': '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("sentence_transformers_model_id")
# Run inference
queries = [
    "\u00bfQu\u00e9 normativa constitucional y legal fundament\u00f3 la decisi\u00f3n de la Sala de Admisi\u00f3n de la Corte Constitucional para admitir la acci\u00f3n extraordinaria de protecci\u00f3n N\u00b0 1259-11-EP?",
]
documents = [
    'La decisión de la Sala de Admisión de la Corte Constitucional para admitir la acción extraordinaria de protección N° 1259-11-EP se fundamentó en diversas disposiciones constitucionales y legales. En primer lugar, se invocó el artículo 17 del Reglamento de Sustanciación de Procesos de Competencia de la Corte Constitucional, que establece la competencia de la Sala para avocar conocimiento de las causas. Además, se hizo referencia al artículo 10 de la Constitución, que reconoce a las personas y colectivos como titulares de derechos, y al numeral 1 del artículo 86 ibídem, que permite a cualquier persona proponer acciones jurisdiccionales. Un punto crucial fue el artículo 437 de la Constitución, el cual determina que la acción extraordinaria de protección procede contra sentencias, autos definitivos y resoluciones con fuerza de sentencia, siempre que el recurrente demuestre la violación del debido proceso u otros derechos constitucionales. En concordancia con esto, se citó el artículo 58 de la Ley Orgánica de Garantías Jurisdiccionales y Control Constitucional (LOGJCC), que define el objeto de la acción extraordinaria de protección como la salvaguarda de derechos constitucionales y del debido proceso en resoluciones judiciales firmes. Finalmente, se aplicaron los artículos 61 y 62 de la LOGJCC, que prevén los requisitos para la admisibilidad de dicha acción, y el artículo 12 del Reglamento de Sustanciación de Procesos de Competencia de la Corte Constitucional, que regula el procedimiento de admisión.',
    'La Sala de Admisión de la Corte Constitucional, en el caso N°. 2544-17-EP, inadmitió la acción extraordinaria de protección interpuesta por Mariana Lucia Paredes Serrano debido al incumplimiento de requisitos de admisibilidad esenciales establecidos en el artículo 62 de la Ley Orgánica de Garantías Jurisdiccionales y Control Constitucional (LOGJCC). Específicamente, la Sala determinó que la accionante no aportó argumento alguno que justificara la relevancia constitucional del problema jurídico planteado ni de su pretensión, tal como lo exige el numeral 2 de dicho artículo. Adicionalmente, se concluyó que el fundamento de la acción se limitaba a la consideración de que la sentencia impugnada era injusta o equivocada y a la alegación de una errónea aplicación de la ley, extremos contemplados en los numerales 3 y 4 del artículo 62. La Corte enfatizó que su revisión se circunscribe a la posible vulneración de derechos constitucionales, y no a la apreciación sobre la corrección de la aplicación del derecho ordinario o la valoración de hechos, lo cual impidió la admisión de la acción por no cumplir con los criterios de excepcionalidad y estricta interpretación requeridos.',
    'La Corte Constitucional podría admitir una Acción Extraordinaria de Protección si la resolución de segunda instancia, como la emitida por la Primera Sala de lo Laboral de la Corte Provincial de Justicia del Guayas en el caso de José Oswaldo Quimi Bohórquez, incurre en una violación flagrante de derechos constitucionales y el debido proceso. Esto incluye la falta de motivación, la incongruencia, la arbitrariedad o la irrazonabilidad del fallo, que vulneren derechos como la tutela judicial efectiva (Art. 75 CRE), la seguridad jurídica (Art. 82 CRE) o la estabilidad laboral. La Corte examinaría si la vía judicial ordinaria fue inadecuada o ineficaz para proteger los derechos del accionante, tal como lo establece el artículo 42 de la LOGJCC, y si la resolución judicial de instancia inferior contraviene la supremacía de la Constitución (Art. 424 CRE) o restringe el contenido de los derechos garantizados (Art. 11 CRE).',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 1024] [3, 1024]

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[0.8826, 0.0198, 0.0195]])

<!--

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
json
  {
      "truncate_dim": 1024
  }
MetricValue
cosine_accuracy@10.8973
cosine_accuracy@30.9458
cosine_accuracy@50.9587
cosine_accuracy@100.9695
cosine_precision@10.8973
cosine_precision@30.3153
cosine_precision@50.1917
cosine_precision@100.097
cosine_recall@10.8973
cosine_recall@30.9458
cosine_recall@50.9587
cosine_recall@100.9695
cosine_ndcg@100.9352
cosine_mrr@100.924
cosine_map@1000.9251
Information Retrieval
json
  {
      "truncate_dim": 768
  }
MetricValue
cosine_accuracy@10.8961
cosine_accuracy@30.945
cosine_accuracy@50.9574
cosine_accuracy@100.9695
cosine_precision@10.8961
cosine_precision@30.315
cosine_precision@50.1915
cosine_precision@100.097
cosine_recall@10.8961
cosine_recall@30.945
cosine_recall@50.9574
cosine_recall@100.9695
cosine_ndcg@100.9345
cosine_mrr@100.923
cosine_map@1000.9241
Information Retrieval
json
  {
      "truncate_dim": 512
  }
MetricValue
cosine_accuracy@10.8951
cosine_accuracy@30.9439
cosine_accuracy@50.9581
cosine_accuracy@100.9693
cosine_precision@10.8951
cosine_precision@30.3146
cosine_precision@50.1916
cosine_precision@100.0969
cosine_recall@10.8951
cosine_recall@30.9439
cosine_recall@50.9581
cosine_recall@100.9693
cosine_ndcg@100.9338
cosine_mrr@100.9222
cosine_map@1000.9233

<!--

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

rtz20250828
  • —Dataset: rtz20250828 at 03e19d5
  • —Size: 137,404 training samples
  • —Columns: <code>query</code> and <code>pos</code>
  • —Approximate statistics based on the first 1000 samples: | | query | pos | |:--------|:------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------| | type | string | string | | details | <ul><li>min: 16 tokens</li><li>mean: 53.26 tokens</li><li>max: 103 tokens</li></ul> | <ul><li>min: 79 tokens</li><li>mean: 231.68 tokens</li><li>max: 523 tokens</li></ul> |
  • —Samples: | query | pos | |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>¿Qué derechos constitucionales específicos se alegan vulnerados en la acción extraordinaria de protección presentada por la Agencia de Viajes y Turismo Wanderjhar del Ecuador S.A. contra las resoluciones de la Corte Nacional y Provincial de Justicia?</code> | <code>En la acción extraordinaria de protección interpuesta por la Agencia de Viajes y Turismo Wanderjhar del Ecuador S.A., se alegan vulnerados varios derechos constitucionales específicos. Entre ellos se mencionan la aplicación directa e inmediata de la Constitución (Art. 11, numeral 3), la aplicación e interpretación que favorezca la vigencia de la norma constitucional (Art. 11, numeral 5), el derecho a la tutela judicial efectiva, imparcial y expedita (Art. 75), el derecho al debido proceso (Art. 76, numeral 1), el derecho a la seguridad jurídica (Art. 82), el principio de motivación y congruencia (Art. 76, literal i), el principio de jerarquía y prevalencia de la Constitución (Art. 424 y 425), y el reconocimiento del arbitraje y la mediación como medios alternativos de solución de conflictos (Art. 190). La argumentación se centra en que las decisiones judiciales ordinarias desconocieron la cláusula arbitral pactada, violando así estos derechos fundamentales.</code> | | <code>¿En qué fecha y bajo qué número de causa se dictó la sentencia que Hugo Eduardo Pérez Pacheco busca impugnar mediante una Acción Extraordinaria de Protección ante la Corte Constitucional?</code> | <code>La sentencia que Hugo Eduardo Pérez Pacheco busca impugnar fue dictada el 02 de Julio del 2014 a las 16h55, y fue notificada el 07 de julio del 2014, dentro de la Causa No 1972-12. El Sr. Pérez Pacheco, en calidad de ex trabajador de la Mutualista Benalcázar en liquidación, considera que dicha resolución de la Sala de lo Laboral de la Corte Nacional de Justicia viola el debido proceso y sus derechos constitucionales y laborales. Específicamente, alega que se le negó el pago completo de la jubilación patronal global que le correspondía, a diferencia de otros ex compañeros de trabajo. La acción se fundamenta en los artículos 58 y siguientes de la Ley Orgánica de Garantías Jurisdiccionales y Control Constitucional, buscando la protección de sus derechos fundamentales ante la máxima instancia constitucional del país, dado que la sentencia de la Corte Nacional es inapelable.</code> | | <code>¿Qué tipo de personalidad jurídica se concedió a la Sociedad de Especialidades Clínicas Santo Domingo “SOEC.SD” y cuál es su domicilio, según el Acuerdo Ministerial Nro. 00000091 del Ministerio de Salud Pública?</code> | <code>El Acuerdo Ministerial Nro. 00000091 del Ministerio de Salud Pública concedió personalidad jurídica y aprobó el estatuto de la Sociedad de Especialidades Clínicas Santo Domingo “SOEC.SD”. La organización tiene su domicilio establecido en la ciudad de Santo Domingo, provincia del Santo Domingo de los Tsáchilas. La concesión de esta personalidad jurídica se realizó en ejercicio de las atribuciones delegadas al Viceministro de Gobernanza y Vigilancia de la Salud, y la sociedad deberá cumplir con las obligaciones estipuladas en el Reglamento para el Funcionamiento del Sistema Unificado de Información de las Organizaciones Sociales y Ciudadanas.</code> |
  • —Loss: <code>MatryoshkaLoss</code> with these parameters:
json
  {
      "loss": "MultipleNegativesRankingLoss",
      "matryoshka_dims": [
          1024,
          768,
          512
      ],
      "matryoshka_weights": [
          1,
          1,
          1
      ],
      "n_dims_per_step": -1
  }

Training Hyperparameters

Non-Default Hyperparameters
  • —eval_strategy: epoch
  • —per_device_train_batch_size: 32
  • —per_device_eval_batch_size: 32
  • —gradient_accumulation_steps: 4
  • —learning_rate: 2e-05
  • —num_train_epochs: 4
  • —lr_scheduler_type: cosine
  • —warmup_ratio: 0.1
  • —bf16: True
  • —load_best_model_at_end: True
  • —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: 32
  • —per_device_eval_batch_size: 32
  • —per_gpu_train_batch_size: None
  • —per_gpu_eval_batch_size: None
  • —gradient_accumulation_steps: 4
  • —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: 4
  • —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: None
  • —local_rank: 0
  • —ddp_backend: None
  • —tpu_num_cores: None
  • —tpu_metrics_debug: False
  • —debug: []
  • —dataloader_drop_last: True
  • —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: None
  • —hub_always_push: False
  • —hub_revision: None
  • —gradient_checkpointing: False
  • —gradient_checkpointing_kwargs: None
  • —include_inputs_for_metrics: False
  • —include_for_metrics: []
  • —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
  • —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
  • —use_liger_kernel: False
  • —liger_kernel_config: None
  • —eval_use_gather_object: False
  • —average_tokens_across_devices: True
  • —prompts: None
  • —batch_sampler: no_duplicates
  • —multi_dataset_batch_sampler: proportional
  • —router_mapping: {}
  • —learning_rate_mapping: {}

</details>

Training Logs

EpochStepTraining Losseval_dim_1024_cosine_ndcg@10eval_dim_768_cosine_ndcg@10eval_dim_512_cosine_ndcg@10
0.0932250.6298---
0.1864500.1027---
0.2796750.0493---
0.37281000.0394---
0.46601250.0297---
0.55921500.0336---
0.65241750.0249---
0.74562000.0223---
0.83882250.0243---
0.93202500.0172---
1.0269-0.93140.93000.9279
1.02242750.018---
1.11563000.0165---
1.20883250.0138---
1.30203500.0132---
1.39523750.0084---
1.48844000.007---
1.58154250.0076---
1.67474500.0065---
1.76794750.0063---
1.86115000.0062---
1.95435250.005---
2.0538-0.93430.93410.9327
2.04475500.0049---
2.13795750.0043---
2.23116000.0041---
2.32436250.0041---
2.41756500.0034---
2.51076750.0039---
2.60397000.0036---
2.69717250.004---
2.79037500.0036---
2.88357750.0042---
2.97678000.003---
3.0807-0.93540.93480.9336
3.06718250.0032---
3.16038500.0029---
3.25358750.0031---
3.34679000.0033---
3.43999250.0029---
3.53319500.003---
3.62639750.0032---
3.719510000.0029---
3.812710250.0034---
3.905910500.0029---
3.999110750.0028---
4.01076-0.93520.93450.9338

Framework Versions

  • —Python: 3.11.11
  • —Sentence Transformers: 5.1.0
  • —Transformers: 4.55.4
  • —PyTorch: 2.8.0.dev20250319+cu128
  • —Accelerate: 1.10.1
  • —Datasets: 4.0.0
  • —Tokenizers: 0.21.4

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