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.8286, 0.0877, 0.0684]])

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.8459
cosine_accuracy@3 0.915
cosine_accuracy@5 0.9312
cosine_accuracy@10 0.9491
cosine_precision@1 0.8459
cosine_precision@3 0.305
cosine_precision@5 0.1862
cosine_precision@10 0.0949
cosine_recall@1 0.8459
cosine_recall@3 0.915
cosine_recall@5 0.9312
cosine_recall@10 0.9491
cosine_ndcg@10 0.8998
cosine_mrr@10 0.8837
cosine_map@100 0.8853

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: 12
  • per_device_eval_batch_size: 4
  • gradient_accumulation_steps: 12
  • 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: 12
  • per_device_eval_batch_size: 4
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 12
  • 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}
  • 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.0105 20 0.0637 -
0.0211 40 0.0251 -
0.0316 60 0.0104 -
0.0422 80 0.0079 -
0.0527 100 0.0079 -
0.0633 120 0.0069 -
0.0738 140 0.0045 -
0.0844 160 0.0044 -
0.0949 180 0.0043 -
0.1054 200 0.0042 -
0.1160 220 0.0044 -
0.1265 240 0.0039 -
0.1371 260 0.0032 -
0.1476 280 0.0029 -
0.1582 300 0.0032 -
0.1687 320 0.0026 -
0.1793 340 0.002 -
0.1898 360 0.003 -
0.2003 380 0.0035 -
0.2109 400 0.0025 -
0.2214 420 0.002 -
0.2320 440 0.0035 -
0.2425 460 0.0039 -
0.2531 480 0.003 -
0.2636 500 0.0025 -
0.2742 520 0.0032 -
0.2847 540 0.0035 -
0.2952 560 0.0019 -
0.3058 580 0.0024 -
0.3163 600 0.0028 -
0.3269 620 0.0019 -
0.3374 640 0.0023 -
0.3480 660 0.0029 -
0.3585 680 0.0015 -
0.3691 700 0.0016 -
0.3796 720 0.0033 -
0.3901 740 0.0032 -
0.4007 760 0.0021 -
0.4112 780 0.002 -
0.4218 800 0.0015 -
0.4323 820 0.0014 -
0.4429 840 0.0017 -
0.4534 860 0.0021 -
0.4640 880 0.0017 -
0.4745 900 0.0013 -
0.4850 920 0.0009 -
0.4956 940 0.0027 -
0.5061 960 0.002 -
0.5167 980 0.0016 -
0.5272 1000 0.0023 -
0.5378 1020 0.0018 -
0.5483 1040 0.0017 -
0.5589 1060 0.0028 -
0.5694 1080 0.0015 -
0.5799 1100 0.0013 -
0.5905 1120 0.002 -
0.6010 1140 0.0014 -
0.6116 1160 0.0017 -
0.6221 1180 0.0016 -
0.6327 1200 0.0017 -
0.6432 1220 0.0011 -
0.6537 1240 0.0017 -
0.6643 1260 0.0009 -
0.6748 1280 0.0016 -
0.6854 1300 0.0012 -
0.6959 1320 0.0011 -
0.7065 1340 0.0016 -
0.7170 1360 0.0012 -
0.7276 1380 0.0017 -
0.7381 1400 0.0011 -
0.7486 1420 0.0013 -
0.7592 1440 0.0012 -
0.7697 1460 0.0017 -
0.7803 1480 0.001 -
0.7908 1500 0.0012 -
0.8014 1520 0.0008 -
0.8119 1540 0.0011 -
0.8225 1560 0.0015 -
0.8330 1580 0.0013 -
0.8435 1600 0.0015 -
0.8541 1620 0.0011 -
0.8646 1640 0.001 -
0.8752 1660 0.0016 -
0.8857 1680 0.0014 -
0.8963 1700 0.0018 -
0.9068 1720 0.001 -
0.9174 1740 0.0012 -
0.9279 1760 0.001 -
0.9384 1780 0.0012 -
0.9490 1800 0.0007 -
0.9595 1820 0.0009 -
0.9701 1840 0.0019 -
0.9806 1860 0.0013 -
0.9912 1880 0.0014 -
1.0 1897 - 0.8998

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

@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
2
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-es-legal-600k-v3

Base model

BAAI/bge-m3
Finetuned
(342)
this model

Evaluation results