EmbeddingGemma-300m trained on 100k Legal Spanish Retrieval Dataset.

This is a sentence-transformers model finetuned from google/embeddinggemma-300m on the rvzrtx600k20250828 dataset. It maps sentences & paragraphs to a 768-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: google/embeddinggemma-300m
  • Maximum Sequence Length: 2048 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
  • Language: es
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 2048, 'do_lower_case': False, 'architecture': 'Gemma3TextModel'})
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, '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): Dense({'in_features': 768, 'out_features': 3072, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
  (3): Dense({'in_features': 3072, 'out_features': 768, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
  (4): 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("wilfredomartel/embeddinggemma-300m-legal-spanish-100k")
# Run inference
queries = [
    "\u00bfEn qu\u00e9 fecha y ante qu\u00e9 instancia judicial se present\u00f3 originalmente la demanda de acci\u00f3n de protecci\u00f3n por parte de Martha Luzmila Mayta Zapata y Angelito Gonz\u00e1lez Medina contra el Ministerio de Inclusi\u00f3n Econ\u00f3mica, y cu\u00e1les fueron los memorandos impugnados?",
]
documents = [
    'La demanda de acción de protección por parte de Martha Luzmila Mayta Zapata y Angelito González Medina contra el Ministerio de Inclusión Económica se presentó el 11 de marzo de 2019. La instancia judicial ante la cual se interpuso fue la Unidad Judicial Multicompetente Penal de Zamora. En su demanda, los accionantes impugnaron específicamente los memorandos MIES-CZ-7-2019-1422-M y MIES-CZ-7-2019-1423-M. Estos memorandos fueron la base para que el Ministerio de Inclusión Económica diera por terminada unilateralmente la relación laboral que mantenían los señores Mayta Zapata y González Medina con dicha entidad.',
    'La Corte Constitucional inadmitió la acción extraordinaria de protección No. 1331-11-EP, presentada por César Regalado Iglesias, Gerente General de la CNT EP, debido a que la pretensión jurídica del accionante no se ajustaba a los requisitos establecidos en la Ley Orgánica de Garantías Jurisdiccionales y Control Constitucional. Específicamente, la Sala de Admisión determinó que no se cumplían los presupuestos del artículo 62, numerales 3 y 8 de dicha ley. El numeral 3 establece que el fundamento de la acción no debe agotarse únicamente en la consideración de lo injusto o equivocado de la sentencia. El numeral 8 indica que la admisión del recurso extraordinario de protección debe permitir solventar una violación grave de derechos, establecer precedentes judiciales, corregir la inobservancia de precedentes de la Corte Constitucional o sentenciar sobre asuntos de relevancia nacional. En este caso, la pretensión del accionante era dejar sin efecto la sentencia de la Segunda Sala de lo Penal y Tránsito de la Corte Provincial del Guayas, lo cual implicaba someter a debate constitucional aspectos ya analizados en el proceso de acción de protección, sin demostrar una violación grave de derechos o la necesidad de establecer un precedente.',
    'La pretensión específica de Isauro Apolo López Feijo al presentar la acción por incumplimiento No. 0060-09-AN ante la Corte Constitucional era obtener el cumplimiento efectivo de la Resolución No. 0263-07-RA, emitida por la Tercera Sala del ex Tribunal Constitucional. Concretamente, solicitaba que la Corte ordenara a la autoridad correspondiente su restitución al cargo de Inspector Agropecuario profesional 1 en la Agencia Ecuatoriana de Aseguramiento de la Calidad del Agro "AGROCALIDAD", la emisión de la acción de personal y el respectivo nombramiento desde la fecha en que fue apartado de la institución, y el pago de las remuneraciones dejadas de percibir.',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 768] [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[0.8918, 0.0548, 0.0770]])

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.455
cosine_accuracy@3 0.9713
cosine_accuracy@5 0.9881
cosine_accuracy@10 0.994
cosine_precision@1 0.455
cosine_precision@3 0.3238
cosine_precision@5 0.1976
cosine_precision@10 0.0994
cosine_recall@1 0.455
cosine_recall@3 0.9713
cosine_recall@5 0.9881
cosine_recall@10 0.994
cosine_ndcg@10 0.7879
cosine_mrr@10 0.7156
cosine_map@100 0.7159

Information Retrieval

Metric Value
cosine_accuracy@1 0.455
cosine_accuracy@3 0.9713
cosine_accuracy@5 0.9881
cosine_accuracy@10 0.994
cosine_precision@1 0.455
cosine_precision@3 0.3238
cosine_precision@5 0.1976
cosine_precision@10 0.0994
cosine_recall@1 0.455
cosine_recall@3 0.9713
cosine_recall@5 0.9881
cosine_recall@10 0.994
cosine_ndcg@10 0.7879
cosine_mrr@10 0.7156
cosine_map@100 0.7159

Training Details

Training Dataset

rvzrtx600k20250828

  • Dataset: rvzrtx600k20250828 at 2f52ccc
  • Size: 100,000 training samples
  • Columns: query and pos
  • Approximate statistics based on the first 1000 samples:
    query pos
    type string string
    details
    • min: 23 tokens
    • mean: 54.38 tokens
    • max: 94 tokens
    • min: 81 tokens
    • mean: 213.07 tokens
    • max: 459 tokens
  • Samples:
    query pos
    ¿Cuál fue la razón principal por la que la Corte Constitucional inadmitió a trámite la acción extraordinaria de protección N° 2850-19-EP, presentada por Javier Jefferson Delgado Guano y otros contra la sentencia de la Sala Única Multicompetente de la Corte Provincial de Esmeraldas? La Corte Constitucional inadmitió a trámite la acción extraordinaria de protección N° 2850-19-EP debido a que los accionantes no presentaron un argumento claro sobre los derechos supuestamente violados ni la relación directa e inmediata, por acción u omisión, de la Sala Única Multicompetente de la Corte Provincial de Esmeraldas con dicha vulneración. Esta omisión constituye la causal de inadmisión establecida en el artículo 62, numeral 1 de la Ley Orgánica de Garantías Jurisdiccionales y Control Constitucional (LOGJCC), que exige un argumento claro sobre el derecho violado y su nexo directo con la actuación de la autoridad judicial. Específicamente, el párrafo 10 del documento indica que los accionantes vierten sus argumentos respecto a la Resolución del Consejo de Disciplina No. 001-2018, sancionándolos por una falta militar, pero no establecen de forma precisa cómo la sentencia de la Corte Provincial de Esmeraldas del 12 de agosto de 2019 vulneró sus derechos constitucionales.
    ¿Por qué la Sala de Admisión de la Corte Constitucional inadmitió a trámite la acción extraordinaria de protección N°. 3090-19-EP presentada por José Antonio Guzñay contra la sentencia de la Corte Provincial de Zamora? La Sala de Admisión de la Corte Constitucional inadmitió a trámite la acción extraordinaria de protección N°. 3090-19-EP, presentada por el señor José Antonio Guzñay, debido a que el accionante incumplió el requisito establecido en el artículo 62, numeral 1, de la Ley Orgánica de Garantías Jurisdiccionales y Control Constitucional. Este precepto exige que exista un argumento claro sobre el derecho violado y la relación directa e inmediata, por acción u omisión de la autoridad judicial, con la vulneración alegada. En el caso concreto, el señor Guzñay, si bien impugnaba la sentencia emitida por la Sala Única Multicompetente de la Corte Provincial de Justicia de Zamora del 02 de octubre de 2019, no expuso argumentos claros y directos sobre la actuación específica de los jueces de dicha Sala y cómo esta se relacionaba con la presunta vulneración de sus derechos a la tutela judicial efectiva, debido proceso y seguridad jurídica. En su lugar, la demanda se centró en argumentar que la decisió...
    ¿Cuál fue la controversia principal en el caso N°. 3090-19-EP y cómo evolucionaron las decisiones judiciales en las instancias inferiores antes de llegar a la Corte Constitucional? La controversia principal en el caso N°. 3090-19-EP radicó en la terminación unilateral del contrato de trabajo indefinido del señor José Antonio Guzñay por parte del Gobierno Autónomo Descentralizado Municipal del cantón Centinela del Cóndor. El accionante alegó que esta decisión, notificada mediante oficio N° 109-SG-GADCCC-2019, vulneró sus derechos constitucionales al trabajo, a la seguridad jurídica y al debido proceso. Inicialmente, la Unidad Judicial Multicompetente con sede en Centinela del Cóndor, mediante sentencia del 29 de agosto de 2019, declaró la vulneración de estos derechos, ordenando la restitución inmediata del accionante a su labor y el pago de los haberes dejados de percibir. Sin embargo, esta decisión fue apelada por el Alcalde y Procurador Síndico del GAD Municipal. La Sala Única Multicompetente de la Corte Provincial de Justicia de Zamora, al conocer el recurso de apelación, revocó la sentencia de primera instancia y rechazó la acción de protección por improceden...
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 8,
        "gather_across_devices": false
    }
    

Evaluation Dataset

rvzrtx600k20250828

  • Dataset: rvzrtx600k20250828 at 2f52ccc
  • Size: 10,000 evaluation samples
  • Columns: query and pos
  • Approximate statistics based on the first 1000 samples:
    query pos
    type string string
    details
    • min: 25 tokens
    • mean: 55.31 tokens
    • max: 94 tokens
    • min: 78 tokens
    • mean: 219.05 tokens
    • max: 472 tokens
  • Samples:
    query pos
    ¿Sobre qué inmueble se declaró el derecho de dominio a favor del Señor Diomedes Hernán Santana Delgado en el juicio ordinario de prescripción extraordinaria adquisitiva de dominio No. 892-2009, y qué instancia judicial confirmó esta decisión antes de llegar a la Corte Constitucional? El derecho de dominio sobre el inmueble ubicado en la Urbanización Umiña II fue declarado a favor del Señor Diomedes Hernán Santana Delgado en el juicio ordinario de prescripción extraordinaria adquisitiva de dominio No. 892-2009. La sentencia dictada por el Juez de Primer Nivel, que acogió la demanda y declaró el derecho de dominio, fue posteriormente confirmada por la Sala de lo Civil de la Corte Provincial de Justicia de Manabí mediante sentencia de 4 de agosto de 2009. Esta decisión de la Corte Provincial fue la que, a su vez, la Sala de lo Civil, Mercantil y Familia de la Corte Nacional de Justicia resolvió no casar en su sentencia de 31 de mayo de 2011, dentro del mismo proceso.
    ¿Cuál fue la decisión de la Sala de Admisión de la Corte Constitucional respecto a la acción extraordinaria de protección No. 1224-11-EP presentada por Freddy Aníbal Bastidas Serrano en contra de una sentencia de la Corte Provincial de Sucumbíos? La Sala de Admisión de la Corte Constitucional, conformada por los jueces Ruth Seni Pinoargote, Edgar Zarate Zarate y Hernando Morales Vinueza, avocó conocimiento de la causa No. 1224-11-EP. Esta acción extraordinaria de protección fue presentada por Freddy Aníbal Bastidas Serrano, actuando como Procurador Judicial de los Empleados del Gobierno Autónomo Descentralizado de la Provincia de Sucumbíos, contra una sentencia emitida por la Sala Única de la Corte Provincial de Justicia de Sucumbíos el 16 de junio de 2011. La sentencia de la Corte Provincial revocó la decisión de primera instancia que había aceptado una acción de protección, la cual beneficiaba a los empleados en relación con el pago de la diferencia de fondos de reserva de los años 2004, 2005, 2006 y 2007. El accionante alegaba la vulneración de sus derechos a la igualdad formal, material y no discriminatoria, a la tutela judicial efectiva, al debido proceso y a la seguridad jurídica, consagrados en los artículos 66 numeral 4...
    ¿Qué derechos fundamentales alegó Robin Marcelo Espinoza Salas que fueron vulnerados por el auto que inadmitió su recurso de casación, y cuál fue la pretensión principal inferida de su demanda? Robin Marcelo Espinoza Salas, en su acción extraordinaria de protección N° 2933-18-EP, alegó la vulneración de sus derechos constitucionales a la tutela judicial efectiva, consagrado en el artículo 75 de la Constitución de la República del Ecuador, y al debido proceso, específicamente en la garantía de asegurar el cumplimiento de las normas y derechos de las partes, reconocido en el numeral 1 del artículo 76 de la misma Carta Magna. La pretensión principal, inferida de la lectura integral de su demanda, radicaba en que la Corte Constitucional declarara la existencia de dichas vulneraciones por parte del auto que inadmitió su recurso de casación, argumentando que la decisión se basó en cargas procesales y no en un análisis de fondo de las posibles infracciones legales.
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 8,
        "gather_across_devices": false
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 128
  • per_device_eval_batch_size: 128
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • fp16: True
  • prompts: {'query': 'task: search result | query: ', 'pos': 'title: none | text: '}
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 128
  • per_device_eval_batch_size: 128
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • 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: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • 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: False
  • fp16: True
  • 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: 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: False
  • 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: False
  • prompts: {'query': 'task: search result | query: ', 'pos': 'title: none | text: '}
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss Validation Loss legal-spanish-eval-10kq-10kd_cosine_ndcg@10
-1 -1 - - 0.6634
0.0256 20 0.1561 - -
0.0512 40 0.0312 - -
0.0767 60 0.0189 - -
0.1023 80 0.0245 - -
0.1279 100 0.0375 0.0374 0.7689
0.1535 120 0.0236 - -
0.1790 140 0.0356 - -
0.2046 160 0.0227 - -
0.2302 180 0.0261 - -
0.2558 200 0.0146 0.0250 0.7733
0.2813 220 0.0264 - -
0.3069 240 0.0249 - -
0.3325 260 0.0202 - -
0.3581 280 0.0268 - -
0.3836 300 0.0126 0.0258 0.7711
0.4092 320 0.0217 - -
0.4348 340 0.0217 - -
0.4604 360 0.0246 - -
0.4859 380 0.0211 - -
0.5115 400 0.0164 0.0189 0.7796
0.5371 420 0.0172 - -
0.5627 440 0.012 - -
0.5882 460 0.0158 - -
0.6138 480 0.0202 - -
0.6394 500 0.0155 0.0168 0.7824
0.6650 520 0.0159 - -
0.6905 540 0.0159 - -
0.7161 560 0.0081 - -
0.7417 580 0.0086 - -
0.7673 600 0.0147 0.0128 0.7855
0.7928 620 0.0075 - -
0.8184 640 0.0116 - -
0.8440 660 0.0152 - -
0.8696 680 0.0063 - -
0.8951 700 0.0144 0.0093 0.7877
0.9207 720 0.0098 - -
0.9463 740 0.0086 - -
0.9719 760 0.0102 - -
0.9974 780 0.0164 - -
-1 -1 - - 0.7879

Framework Versions

  • Python: 3.12.11
  • Sentence Transformers: 5.1.0
  • Transformers: 4.57.0.dev0
  • PyTorch: 2.8.0+cu126
  • 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",
}

CachedMultipleNegativesRankingLoss

@misc{gao2021scaling,
    title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
    author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
    year={2021},
    eprint={2101.06983},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}
Downloads last month
181
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for wilfredomartel/embeddinggemma-300m-legal-spanish-100k

Finetuned
(107)
this model

Evaluation results

  • Cosine Accuracy@1 on legal spanish eval 10kq 10kd
    self-reported
    0.455
  • Cosine Accuracy@3 on legal spanish eval 10kq 10kd
    self-reported
    0.971
  • Cosine Accuracy@5 on legal spanish eval 10kq 10kd
    self-reported
    0.988
  • Cosine Accuracy@10 on legal spanish eval 10kq 10kd
    self-reported
    0.994
  • Cosine Precision@1 on legal spanish eval 10kq 10kd
    self-reported
    0.455
  • Cosine Precision@3 on legal spanish eval 10kq 10kd
    self-reported
    0.324
  • Cosine Precision@5 on legal spanish eval 10kq 10kd
    self-reported
    0.198
  • Cosine Precision@10 on legal spanish eval 10kq 10kd
    self-reported
    0.099
  • Cosine Recall@1 on legal spanish eval 10kq 10kd
    self-reported
    0.455
  • Cosine Recall@3 on legal spanish eval 10kq 10kd
    self-reported
    0.971