SentenceTransformer based on intfloat/multilingual-e5-small

This is a sentence-transformers model finetuned from intfloat/multilingual-e5-small. It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for retrieval.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: intfloat/multilingual-e5-small
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 384 dimensions
  • Similarity Function: Cosine Similarity
  • Supported Modality: Text

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'BertModel'})
  (1): Pooling({'embedding_dimension': 384, 'pooling_mode': 'mean', '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 = [
    '2.21 de la Ley 8/2021, de 2 de junio.',
]
documents = [
    'No podrán ser tutores:\n\n1.º Los que por resolución judicial estuvieran privados o suspendidos en el ejercicio de la patria potestad o, total o parcialmente, de los derechos de guarda y protección.\n\n2.º Los que hubieren sido legalmente removidos de una tutela, curatela o guarda anterior.\n\n> <small>Se modifica, con efectos de 3 de septiembre de 2021, por el art. 2.21 de la Ley 8/2021, de 2 de junio. [Ref. BOE-A-2021-9233#as](https://www.boe.es/buscar/doc.php?id=BOE-A-2021-9233)</small>\n\n> <small>Se añade un párrafo por el art. 2.25 de la Ley 26/2015, de 28 de julio. [Ref. BOE-A-2015-8470#asegundo](https://www.boe.es/buscar/doc.php?id=BOE-A-2015-8470).</small>\n\n> <small>Se añade el segundo párrafo por la disposición final 13 de la Ley Orgánica 1/1996, de 15 de enero. [Ref. BOE-A-1996-1069](https://www.boe.es/buscar/doc.php?id=BOE-A-1996-1069).</small>\n\n> <small>Se modifica por el art. 1 de la Ley 13/1983, de 24 de octubre. [Ref. BOE-A-1983-28123](https://www.boe.es/buscar/doc.php?id=BOE-A-1983-28123).</small>',
    '1. La Entidad Pública podrá delegar la guarda de un menor declarado en situación de desamparo en las personas que, reuniendo los requisitos de capacidad para adoptar previstos en el artículo 175 y habiendo prestado su consentimiento, hayan sido preparadas, declaradas idóneas y asignadas para su adopción. A tal efecto, la Entidad Pública, con anterioridad a la presentación de la propuesta de adopción, delegará la guarda con fines de adopción hasta que se dicte la resolución judicial de adopción, mediante resolución administrativa debidamente motivada, previa audiencia de los afectados y del menor si tuviere suficiente madurez y, en todo caso, si fuere mayor de doce años, que se notificará a los progenitores o tutores no privados de la patria potestad o tutela.\n\nLos guardadores con fines de adopción tendrán los mismos derechos y obligaciones que los acogedores familiares.\n\n2. Salvo que convenga otra cosa al interés del menor, la Entidad Pública procederá a suspender el régimen de visitas y relaciones con la familia de origen cuando se inicie el período de convivencia preadoptiva a que se refiere el apartado anterior, excepto en los casos previstos en el artículo 178.4.\n\n3. La propuesta de adopción al Juez tendrá que realizarse en el plazo más breve posible y, en todo caso, antes de transcurridos tres meses desde el día en el que se hubiera acordado la delegación de guarda con fines de adopción. No obstante, cuando la Entidad Pública considere necesario, en función de la edad y circunstancias del menor, establecer un período de adaptación del menor a la familia, dicho plazo de tres meses podrá prorrogarse hasta un máximo de un año.\n\nEn el supuesto de que el Juez no considerase procedente esa adopción, la Entidad Pública deberá determinar la medida protectora más adecuada para el menor.\n\n> <small>Se añade por el art. 2.21 de la Ley 26/2015, de 28 de julio. [Ref. BOE-A-2015-8470#asegundo](https://www.boe.es/buscar/doc.php?id=BOE-A-2015-8470).</small>',
    '**(Derogado)**\n\n> <small>Se deroga, con efectos de 3 de septiembre de 2021, por la disposición derogatoria única.3 de la Ley 8/2021, de 2 de junio. [Ref. BOE-A-2021-9233#dd](https://www.boe.es/buscar/doc.php?id=BOE-A-2021-9233)</small>\n\n> <small>Se modifica por el art. 4 de la Ley 11/1981, de 13 de mayo. [Ref. BOE-A-1981-11198](https://www.boe.es/buscar/doc.php?id=BOE-A-1981-11198).</small>\n\n> <small>Se modifica por el art. 2 del Real Decreto-ley 33/1978, de 16 de noviembre. [Ref. BOE-A-1978-28627](https://www.boe.es/buscar/doc.php?id=BOE-A-1978-28627).</small>',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 384] [3, 384]

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[0.4079, 0.1891, 0.1669]])

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.4174
cosine_accuracy@5 0.6776
cosine_accuracy@20 0.8256
cosine_precision@1 0.4174
cosine_precision@3 0.202
cosine_precision@5 0.1355
cosine_precision@10 0.0759
cosine_recall@1 0.4174
cosine_recall@3 0.606
cosine_recall@5 0.6776
cosine_recall@10 0.7586
cosine_ndcg@10 0.584
cosine_mrr@10 0.5285
cosine_map@100 0.5358

Training Details

Training Dataset

Unnamed Dataset

  • Size: 425,952 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 100 samples:
    anchor positive
    type string string
    modality text text
    details
    • min: 13 tokens
    • mean: 45.0 tokens
    • max: 106 tokens
    • min: 35 tokens
    • mean: 277.77 tokens
    • max: 512 tokens
  • Samples:
    anchor positive
    Cárlos III como Rey de Nápoles, se reputarán siempre como extrangeros; su uso no atribuye ninguno de los derechos y prerogativas concedidos á los de Castilla; la sucesión se gobernará por las leyes particulares de la concesión ó por las generales del país en que esta se hizo. Todos los títulos concedidos por Monarcas y Gobiernos extrangeros, inclusos los otorgados por mi augusto Abuelo el Sr. D. Cárlos III como Rey de Nápoles, se reputarán siempre como extrangeros; su uso no atribuye ninguno de los derechos y prerogativas concedidos á los de Castilla; la sucesión se gobernará por las leyes particulares de la concesión ó por las generales del país en que esta se hizo.
    Todos los títulos concedidos por Monarcas y Gobiernos extrangeros, inclusos los otorgados por mi augusto Abuelo el Sr. Todos los títulos concedidos por Monarcas y Gobiernos extrangeros, inclusos los otorgados por mi augusto Abuelo el Sr. D. Cárlos III como Rey de Nápoles, se reputarán siempre como extrangeros; su uso no atribuye ninguno de los derechos y prerogativas concedidos á los de Castilla; la sucesión se gobernará por las leyes particulares de la concesión ó por las generales del país en que esta se hizo.
    No podrá usarse en España título alguno extrangero sin la competente autorización; y están obligados á obtenerla todos y cada uno de los sucesores en dichos títulos. No podrá usarse en España título alguno extrangero sin la competente autorización; y están obligados á obtenerla todos y cada uno de los sucesores en dichos títulos. Se exceptúan de las disposiciones de este artículo los Embajadores y Ministros y representantes de otras Córtes y los extrangeros transeúntes.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "CachedMultipleNegativesRankingLoss",
        "matryoshka_dims": [
            384,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 128
  • num_train_epochs: 1
  • learning_rate: 2e-05
  • warmup_steps: 0.1
  • weight_decay: 0.01
  • bf16: True
  • load_best_model_at_end: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • per_device_train_batch_size: 128
  • num_train_epochs: 1
  • max_steps: -1
  • learning_rate: 2e-05
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: None
  • warmup_steps: 0.1
  • optim: adamw_torch_fused
  • optim_args: None
  • weight_decay: 0.01
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • optim_target_modules: None
  • gradient_accumulation_steps: 1
  • average_tokens_across_devices: True
  • max_grad_norm: 1.0
  • label_smoothing_factor: 0.0
  • bf16: True
  • fp16: False
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • use_liger_kernel: False
  • liger_kernel_config: None
  • use_cache: False
  • neftune_noise_alpha: None
  • torch_empty_cache_steps: None
  • auto_find_batch_size: False
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • include_num_input_tokens_seen: no
  • log_level: passive
  • log_level_replica: warning
  • disable_tqdm: False
  • project: huggingface
  • trackio_space_id: None
  • trackio_bucket_id: None
  • trackio_static_space_id: None
  • per_device_eval_batch_size: 8
  • prediction_loss_only: True
  • eval_on_start: False
  • eval_do_concat_batches: True
  • eval_use_gather_object: False
  • eval_accumulation_steps: None
  • include_for_metrics: []
  • batch_eval_metrics: False
  • save_only_model: False
  • save_on_each_node: False
  • enable_jit_checkpoint: False
  • push_to_hub: False
  • hub_private_repo: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_always_push: False
  • hub_revision: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • restore_callback_states_from_checkpoint: False
  • full_determinism: False
  • seed: 42
  • data_seed: None
  • use_cpu: False
  • 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
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • dataloader_prefetch_factor: None
  • remove_unused_columns: True
  • label_names: None
  • train_sampling_strategy: random
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • ddp_static_graph: None
  • ddp_backend: None
  • ddp_timeout: 1800
  • fsdp: None
  • fsdp_config: None
  • deepspeed: None
  • debug: []
  • skip_memory_metrics: True
  • do_predict: False
  • resume_from_checkpoint: None
  • warmup_ratio: None
  • local_rank: -1
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss val_cosine_ndcg@10
0.0300 100 9.2942 -
0.0601 200 2.3167 -
0.0901 300 1.7705 -
0.1202 400 1.5870 -
0.1502 500 1.4216 -
0.1803 600 1.3677 -
0.2103 700 1.2523 -
0.2404 800 1.1705 -
0.2704 900 1.1656 -
0.3005 1000 1.1691 -
0.3305 1100 1.1411 -
0.3606 1200 1.1165 -
0.3906 1300 1.0873 -
0.4207 1400 1.0562 -
0.4507 1500 1.0351 -
0.4808 1600 1.0777 -
0.5108 1700 1.0003 -
0.5409 1800 1.0850 -
0.5709 1900 0.9633 -
0.601 2000 1.042 0.5917
0.6310 2100 0.9698 -
0.6611 2200 0.9985 -
0.6911 2300 0.9828 -
0.7212 2400 0.9673 -
0.7512 2500 0.9472 -
0.7812 2600 0.9963 -
0.8113 2700 0.9312 -
0.8413 2800 0.9180 -
0.8714 2900 0.9174 -
0.9014 3000 0.9176 -
0.9315 3100 0.9384 -
0.9615 3200 0.8927 -
0.9916 3300 0.9708 -
1.0 3328 - 0.5840
  • The bold row denotes the saved checkpoint.

Training Time

  • Training: 1.1 hours
  • Evaluation: 9.0 minutes
  • Total: 1.3 hours

Framework Versions

  • Python: 3.12.10
  • Sentence Transformers: 5.6.0
  • Transformers: 5.12.1
  • PyTorch: 2.12.1+cu130
  • Accelerate: 1.14.0
  • Datasets: 5.0.0
  • Tokenizers: 0.22.2

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

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

Model tree for ddesotto/legalize-embed-raw

Finetuned
(203)
this model

Papers for ddesotto/legalize-embed-raw

Evaluation results