BGE-M3 Legal Spanish (600k - Fine-tuned)

This is a sentence-transformers model finetuned from BAAI/bge-m3 on the rvzrtx600k20250828 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 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
  • 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:

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("sentence_transformers_model_id")
# Run inference
queries = [
    "\u00bfBajo qu\u00e9 normativa y procedimiento el Ministerio de Cultura y Patrimonio aprob\u00f3 los estatutos y otorg\u00f3 personalidad jur\u00eddica a la Asociaci\u00f3n Social y Cultural \u201c6 de Mayo\u201d con domicilio en Marcabel\u00ed, provincia de El Oro, seg\u00fan el Acuerdo DM-2019-009?",
]
documents = [
    'El Ministerio de Cultura y Patrimonio, en ejercicio de sus atribuciones constitucionales y legales, aprobó los estatutos y otorgó personalidad jurídica a la Asociación Social y Cultural “6 de Mayo” mediante el Acuerdo Ministerial DM-2019-009. Este acto se fundamenta en el artículo 154, numeral 1 de la Constitución de la República, que faculta a los ministros de Estado a ejercer la rectoría de las políticas públicas y expedir los acuerdos y resoluciones administrativas necesarios. La base normativa específica para este procedimiento es el Decreto Ejecutivo Nro. 193, que expidió el “Reglamento para el Otorgamiento de Personalidad Jurídica a las Organizaciones Sociales”, el cual derogó decretos anteriores. Adicionalmente, se invocan disposiciones de la Ley Orgánica de Participación Ciudadana, particularmente los artículos 30, 31, 32 y 36, que reconocen el derecho a la libre asociación, la incidencia de las organizaciones en políticas públicas y los requisitos para tramitar la personalidad jurídica. El artículo 17 del Estatuto del Régimen Jurídico y Administrativo de la Función Ejecutiva también otorga facultades a los ministros para despachar asuntos ministeriales sin autorización presidencial previa, salvo excepciones. La Coordinación General Jurídica del Ministerio emitió el informe motivado Nro. MCYP-CGJ-19-0059-M, concluyendo que la asociación cumplió con todos los requisitos establecidos en el reglamento, y recomendando la aprobación del estatuto y el otorgamiento de la personalidad jurídica, decisión que fue formalizada por el Ministro de Cultura y Patrimonio.',
    'El Decreto N° 1387 de febrero de 2004 modificó el Decreto Ejecutivo N° 1148, que creaba la Secretaría General de la Presidencia de la República, basándose en la necesidad de dotar a esta Secretaría de atribuciones que le permitieran cumplir con el objeto de su creación. La modificación se fundamentó en el ejercicio de las atribuciones conferidas al Presidente de la República por el artículo 171, numeral 9 de la Constitución Política de la República y el artículo 11, letra g) del Estatuto del Régimen Jurídico y Administrativo de la Función Ejecutiva. El Art. 1 del Decreto N° 1387 sustituye el Art. 2 del Decreto N° 1148, detallando las atribuciones del Secretario General de la Presidencia de la República, que incluyen dirigir la administración de la Secretaría, actuar como consejero y vocero del Presidente, coordinar proyectos de interés nacional, atender asuntos administrativos, celebrar contratos, nombrar y remover personal, y conferir delegaciones. Adicionalmente, el Art. 2 del Decreto N° 1387 establece que la Dirección Administrativa Financiera, la Unidad de Tecnología y la Oficina de Coordinación Diplomática dependerán de la Secretaría General de la Presidencia de la República. El Art. 3 sustituye el Art. 15 del Estatuto del Régimen Jurídico y Administrativo de la Función Ejecutiva, detallando las atribuciones del Secretario General de la Administración Pública, quien coordinará con ministros y funcionarios, actuará como vocero oficial del Gobierno Nacional, dirigirá la administración general y financiera de su secretaría, y tendrá la facultad de nombrar y remover al subsecretario y personal de su dependencia.',
    'La Sala de Admisión de la Corte Constitucional, en el caso 1654-23-EP, determinó la inadmisibilidad de la acción extraordinaria de protección contra un auto de apremio personal en materia de alimentos, basándose en la caracterización de auto definitivo establecida en la sentencia No. 1502-14-EP/19. Según esta caracterización, un auto es definitivo si pone fin al proceso o causa un gravamen irreparable. Para poner fin al proceso, debe resolver sobre el fondo de las pretensiones con autoridad de cosa juzgada material, o impedir la continuación del juicio o el inicio de uno nuevo. En el caso analizado, el auto de apremio personal del 5 de junio de 2023, dictado contra Eduardo Vicente Goyes Peña, no cumplió con estos supuestos. La Sala concluyó que, al ser una medida temporal y mutable en materia de alimentos, no resolvía el fondo ni impedía la continuación del proceso, descartando así los criterios 1.1 y 1.2 para considerar un auto como definitivo.',
]
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.8363, 0.0843, 0.1048]])

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.8451
cosine_accuracy@3 0.9162
cosine_accuracy@5 0.9329
cosine_accuracy@10 0.9506
cosine_precision@1 0.8451
cosine_precision@3 0.3054
cosine_precision@5 0.1866
cosine_precision@10 0.0951
cosine_recall@1 0.8451
cosine_recall@3 0.9162
cosine_recall@5 0.9329
cosine_recall@10 0.9506
cosine_ndcg@10 0.9002
cosine_mrr@10 0.8838
cosine_map@100 0.8854

Training Details

Training Dataset

rvzrtx600k20250828

  • Dataset: rvzrtx600k20250828 at dc6d0cd
  • Size: 546,265 training samples
  • Columns: query and pos
  • Approximate statistics based on the first 1000 samples:
    query pos
    type string string
    details
    • min: 27 tokens
    • mean: 52.46 tokens
    • max: 96 tokens
    • min: 78 tokens
    • mean: 236.67 tokens
    • max: 616 tokens
  • Samples:
    query pos
    ¿En qué medida la Corte Constitucional ha establecido que los cargos de libre nombramiento y remoción, si bien otorgan discrecionalidad al nominador, están sujetos a límites constitucionales, especialmente cuando el funcionario se encuentra en situación de debilidad manifiesta o discapacidad? La Corte Constitucional ha sostenido consistentemente que la facultad discrecional del nominador para nombrar y remover a funcionarios en cargos de libre nombramiento y remoción no es absoluta. En la sentencia T-372 de 2012, se enfatizó que en un Estado constitucional de derecho, todo poder está limitado por los valores, principios y derechos constitucionales. Los límites a esta facultad discrecional se encuentran en que la medida debe ser adecuada a los fines de la norma, proporcional a los hechos que la causan y, fundamentalmente, no puede ser arbitraria o caprichosa. La Corte ha reiterado que, especialmente cuando un servidor público se encuentra en circunstancias de debilidad manifiesta o discapacidad, goza de una especial protección constitucional que se traduce en estabilidad laboral reforzada. Esto implica que, si bien pueden existir razones objetivas para el despido, el empleador tiene la carga de demostrar que la desvinculación no se debió a la condición de salud del trabajado...
    ¿En qué circunstancias la Corte Nacional de Justicia considera que la terminación de una relación laboral no constituye despido intempestivo, basándose en la fuerza mayor? La Sala Especializada de lo Laboral de la Corte Nacional de Justicia determinó que la terminación de la relación laboral no fue un despido intempestivo, sino que se debió a fuerza mayor, específicamente por el cierre del negocio "TALEGA RESTO & CAFÉ" debido a la pandemia de COVID-19 y la consecuente disminución de ventas. El tribunal basó su decisión en el hecho de que el actor mismo reconoció haber trabajado hasta el 15 de marzo de 2020, fecha en que el negocio cerró sus puertas, lo cual fue corroborado por testimonios y el reconocimiento del cierre del local por emergencia sanitaria. Se consideró que la situación económica derivada de la pandemia, que obligaba al pago de gastos fijos como arriendo e impuestos, hacía imposible la subsistencia del negocio, configurando así un caso fortuito o fuerza mayor, tal como lo establece el artículo 169 numeral 6 del Código de Trabajo. Por lo tanto, al haberse justificado la causa legal de terminación por fuerza mayor, se declaró improcedente el ...
    ¿Es inconstitucional el artículo 87.1 del COGEP al sancionar con abandono de instancia la inasistencia a audiencia por caso fortuito o fuerza mayor? El artículo 87.1 del Código Orgánico General de Procesos (COGEP) es constitucional, ya que una interpretación integral del ordenamiento jurídico ecuatoriano, incluyendo la cláusula de caso fortuito o fuerza mayor, permite a los operadores de justicia valorar si un evento imprevisto e irresistible justifica la ausencia de una parte procesal. Por lo tanto, la norma no contraviene los principios de igualdad, progresividad, derecho de petición ni tutela judicial efectiva, pues los jueces deben evaluar la concurrencia de estos eventos para determinar la procedencia del abandono.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768
        ],
        "matryoshka_weights": [
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 14
  • gradient_accumulation_steps: 14
  • eval_accumulation_steps: 128
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • bf16: True
  • bf16_full_eval: True
  • load_best_model_at_end: True
  • 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: 14
  • per_device_eval_batch_size: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 14
  • eval_accumulation_steps: 128
  • 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: 1
  • 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: True
  • 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: {'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}
  • parallelism_config: 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: 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: {}

Training Logs

Epoch Step Training Loss eval_dim_768_cosine_ndcg@10
0.0144 20 0.0684 -
0.0287 40 0.0229 -
0.0431 60 0.0093 -
0.0574 80 0.0094 -
0.0718 100 0.0057 -
0.0861 120 0.0049 -
0.1005 140 0.0051 -
0.1148 160 0.0042 -
0.1292 180 0.0036 -
0.1435 200 0.0041 -
0.1579 220 0.0037 -
0.1722 240 0.0034 -
0.1866 260 0.0033 -
0.2009 280 0.0033 -
0.2153 300 0.0032 -
0.2296 320 0.0044 -
0.2440 340 0.0031 -
0.2583 360 0.003 -
0.2727 380 0.0029 -
0.2870 400 0.0038 -
0.3014 420 0.0022 -
0.3158 440 0.0028 -
0.3301 460 0.0019 -
0.3445 480 0.0027 -
0.3588 500 0.0026 -
0.3732 520 0.0024 -
0.3875 540 0.0022 -
0.4019 560 0.0017 -
0.4162 580 0.0028 -
0.4306 600 0.002 -
0.4449 620 0.0017 -
0.4593 640 0.0021 -
0.4736 660 0.0019 -
0.4880 680 0.0015 -
0.5023 700 0.0028 -
0.5167 720 0.0015 -
0.5310 740 0.0021 -
0.5454 760 0.0019 -
0.5597 780 0.0022 -
0.5741 800 0.0015 -
0.5884 820 0.0013 -
0.6028 840 0.0017 -
0.6172 860 0.002 -
0.6315 880 0.002 -
0.6459 900 0.002 -
0.6602 920 0.0016 -
0.6746 940 0.0013 -
0.6889 960 0.0014 -
0.7033 980 0.0017 -
0.7176 1000 0.0016 -
0.7320 1020 0.0014 -
0.7463 1040 0.0017 -
0.7607 1060 0.0017 -
0.7750 1080 0.0021 -
0.7894 1100 0.0015 -
0.8037 1120 0.0013 -
0.8181 1140 0.0015 -
0.8324 1160 0.0019 -
0.8468 1180 0.0011 -
0.8611 1200 0.0016 -
0.8755 1220 0.0014 -
0.8898 1240 0.0018 -
0.9042 1260 0.0017 -
0.9186 1280 0.0013 -
0.9329 1300 0.0012 -
0.9473 1320 0.0016 -
0.9616 1340 0.0014 -
0.9760 1360 0.0018 -
0.9903 1380 0.0017 -
1.0 1394 - 0.9002

Framework Versions

  • Python: 3.11.11
  • Sentence Transformers: 5.1.0
  • Transformers: 4.56.0
  • PyTorch: 2.8.0.dev20250319+cu128
  • Accelerate: 1.10.1
  • Datasets: 4.0.0
  • Tokenizers: 0.22.0

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
77
Safetensors
Model size
0.6B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for wilfredomartel/BGE-M3-Legal-Spanish

Base model

BAAI/bge-m3
Finetuned
(427)
this model

Papers for wilfredomartel/BGE-M3-Legal-Spanish

Evaluation results