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.8649, 0.1603, 0.1112]])

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.8503
cosine_accuracy@3 0.9182
cosine_accuracy@5 0.9336
cosine_accuracy@10 0.9519
cosine_precision@1 0.8503
cosine_precision@3 0.3061
cosine_precision@5 0.1867
cosine_precision@10 0.0952
cosine_recall@1 0.8503
cosine_recall@3 0.9182
cosine_recall@5 0.9336
cosine_recall@10 0.9519
cosine_ndcg@10 0.9031
cosine_mrr@10 0.8872
cosine_map@100 0.8888

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_eval_batch_size: 4
  • gradient_accumulation_steps: 16
  • eval_accumulation_steps: 64
  • learning_rate: 2e-05
  • 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: 8
  • per_device_eval_batch_size: 4
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • eval_accumulation_steps: 64
  • 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: 3
  • 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.0469 100 0.0247 -
0.0937 200 0.006 -
0.1406 300 0.0038 -
0.1875 400 0.003 -
0.2343 500 0.0024 -
0.2812 600 0.0026 -
0.3281 700 0.0023 -
0.3749 800 0.0019 -
0.4218 900 0.0016 -
0.4686 1000 0.002 -
0.5155 1100 0.0019 -
0.5624 1200 0.0018 -
0.6092 1300 0.0013 -
0.6561 1400 0.0013 -
0.7030 1500 0.0012 -
0.7498 1600 0.0013 -
0.7967 1700 0.0015 -
0.8436 1800 0.0012 -
0.8904 1900 0.0017 -
0.9373 2000 0.0013 -
0.9842 2100 0.0013 -
1.0 2134 - 0.8780
1.0309 2200 0.0016 -
1.0778 2300 0.0013 -
1.1247 2400 0.0009 -
1.1715 2500 0.0008 -
1.2184 2600 0.0008 -
1.2653 2700 0.0007 -
1.3121 2800 0.0005 -
1.3590 2900 0.0004 -
1.4058 3000 0.0004 -
1.4527 3100 0.0003 -
1.4996 3200 0.0004 -
1.5464 3300 0.0003 -
1.5933 3400 0.0003 -
1.6402 3500 0.0003 -
1.6870 3600 0.0003 -
1.7339 3700 0.0003 -
1.7808 3800 0.0003 -
1.8276 3900 0.0002 -
1.8745 4000 0.0003 -
1.9214 4100 0.0003 -
1.9682 4200 0.0002 -
2.0 4268 - 0.9027
2.0150 4300 0.0003 -
2.0619 4400 0.0003 -
2.1087 4500 0.0003 -
2.1556 4600 0.0002 -
2.2025 4700 0.0003 -
2.2493 4800 0.0002 -
2.2962 4900 0.0002 -
2.3430 5000 0.0002 -
2.3899 5100 0.0002 -
2.4368 5200 0.0002 -
2.4836 5300 0.0002 -
2.5305 5400 0.0002 -
2.5774 5500 0.0001 -
2.6242 5600 0.0002 -
2.6711 5700 0.0002 -
2.7180 5800 0.0002 -
2.7648 5900 0.0002 -
2.8117 6000 0.0002 -
2.8586 6100 0.0002 -
2.9054 6200 0.0002 -
2.9523 6300 0.0002 -
2.9992 6400 0.0002 -
3.0 6402 - 0.9031
  • The bold row denotes the saved checkpoint.

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

Base model

BAAI/bge-m3
Finetuned
(347)
this model

Evaluation results