enarm-mpnet-v5 / README.md
anuario's picture
ENARM-MPNet-v5: 99.5% Recall@1, 0.998 MRR, 13min training
dc2932f verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - dense
  - generated_from_trainer
  - dataset_size:12467
  - loss:MultipleNegativesRankingLoss
base_model: sentence-transformers/all-mpnet-base-v2
widget:
  - source_sentence: Hallazgos clínicos de la sífilis terciaria
    sentences:
      - >-
        Alteración congénita del metabolismo de la bilirrubina que produce
        hiperbilirrubinemia no conjugada Síndrome de Gilbert (por lo general no
        mayor a 5 mg/dL) y síndrome de Cigler-Najjar
      - >-
        ¿Cuál es la etiología del liquen plano? El liquen plano es una
        enfermedad autoinmunitaria de tipo inflamatorio. Algunos antígenos
        asociados con esta patología son la radiación ultravíoleta, la infección
        por virus de la hepatitis B y C, la presencia de amalgamas y metales
        como el oro o el mercurio en piezas dentales y múltiples fármacos. Se ha
        encontrado asociación del liquen plano con otras patologías
        autoinmunitarias como el vitiligo, la diabetes mellitus, la cirrosis
        biliar primaria, la enfermedad inflama
      - >-
        Hallazgos clínicos de la sífilis terciaria ·         Tabes dorsalis 
        ·         Debilidad general  ·         Gomas  ·         Pupila de Argyll
        Robertson  ·         Aortitis  ·         Aneurismas de raíz aórtica
  - source_sentence: ¿Cuál es el papel de los antibióticos en el paciente gran quemado?
    sentences:
      - >-
        ¿Cuál es el papel de los antibióticos en el paciente gran quemado? Los
        antibióticos no se recomiendan de manera rutinaria, ya que en estudios
        se ha demostrado que la incidencia de infecciones disminuye con
        desbridamiento e injerto y no con antibióticos.
      - >-
        Características del tumor trofoblástico maligno de mal pronóstico
        Metástasis a distancia, con la localización más frecuente en el cerebro
        o hígado. Entre otros factores de mal pronóstico se encuentra el nivel
        de gonadotropina coriónica humana > 40,000, > 4 meses desde el último
        embarazo, embarazo a término. La tasa de curación es de 65%.
      - >-
        Alteraciones electrocardiográficas de la hipertrofia auricular izquierda
        P bimodal (P mitrale) >120 ms en la derivación II
  - source_sentence: ¿Cuál es la diferencia entre una apnea obstructiva y una central?
    sentences:
      - >-
        ¿Cuál es la diferencia entre una apnea obstructiva y una central? En la
        obstructiva existen movimientos toracoabdominales y en la central no.
      - >-
        Tratamiento que con mayor eficacia reduce el riesgo de neuralgia
        posherpética Administración de aciclovir
      - >-
        Tratamiento del síndrome premenstrual • Inhibidores de la recaptura de
        serotonina  • Drospirenona/etinilestradiol  • Espironolactona  •
        Piridoxina
  - source_sentence: Medio para el cultivo de bacterias entéricas
    sentences:
      - >-
        ¿Cuáles son las manifestaciones extrahepáticas de la hepatitis B?
        Exantema, artralgias y artritis, poliarteritis nodosa con complejos
        inmunitarios que contienen AgsVHB y AgeVHB en las lesiones vasculares,
        glomerulopatía por complejos inmunitarios con los mismos antígenos;
        manifestaciones neurológicas (polineuropatía, convulsiones y síndrome de
        Guillain-Barré).Este virus se considera oncogén (el ADN se integra al
        hepatocito) y el paciente puede desarrollar carcinoma hepatocelular, con
        o sin cirrosis.
      - >-
        Sintomatología asociada con la oclusión de la arteria cerebral media •
        Afasia (en caso de oclusión de la arteria del lado del hemisferio
        dominante).  • Síndrome de negación (en caso de oclusión de la arteria
        del hemisferio no dominante).  • Paresia contralateral en cara y brazo. 
        • Pérdida sensorial contralateral en cara y brazo. Desviación de la
        mirada hacia el lado de la lesión.  • Hemianopsia homónima.
      - >-
        Medio para el cultivo de bacterias entéricas Los dos medios
        diferenciales son el MacConkey y el eosina azul de metileno
  - source_sentence: ¿Está indicado el uso de quelantes?
    sentences:
      - >-
        ¿Quiénes están en riesgo de infección por Erysipelothrix? La infección
        en humanos por lo general es secundaria a riesgo exposicional. Los
        principales expuestos son carniceros, pescadores, trabajadores de
        acuario, granjeros y veterinarios.
      - >-
        ¿Está indicado el uso de quelantes? La quelación mediante dimercaprol
        (BAL), succimero, DMPS o D-penicilamina está indicada en intoxicación
        por mercurio inorgánico, sólo la D-penicilamina es útil para los
        compuestos orgánicos ya que otros quelantes pueden potenciar la
        toxicidad del mercurio.
      - >-
        ¿Cómo se realiza el diagnóstico de lipoma? El ultrasonido y la TAC de
        cuello demuestran lesiones hipodensas. La RM en Tl para lesiones
        profundas muestra hiperintensidad.
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - cosine_accuracy@1
  - cosine_accuracy@3
  - cosine_accuracy@5
  - cosine_accuracy@10
  - cosine_precision@1
  - cosine_precision@3
  - cosine_precision@5
  - cosine_precision@10
  - cosine_recall@1
  - cosine_recall@3
  - cosine_recall@5
  - cosine_recall@10
  - cosine_ndcg@10
  - cosine_mrr@10
  - cosine_map@100
model-index:
  - name: SentenceTransformer based on sentence-transformers/all-mpnet-base-v2
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: enarm ir
          type: enarm-ir
        metrics:
          - type: cosine_accuracy@1
            value: 1
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 1
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 1
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 1
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 1
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.3333333333333333
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.19999999999999996
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09999999999999998
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 1
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 1
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 1
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 1
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 1
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 1
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 1
            name: Cosine Map@100

SentenceTransformer based on sentence-transformers/all-mpnet-base-v2

This is a sentence-transformers model finetuned from sentence-transformers/all-mpnet-base-v2 on the json 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: sentence-transformers/all-mpnet-base-v2
  • Maximum Sequence Length: 384 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 384, 'do_lower_case': False, 'architecture': 'MPNetModel'})
  (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): 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
sentences = [
    '¿Está indicado el uso de quelantes?',
    '¿Está indicado el uso de quelantes? La quelación mediante dimercaprol (BAL), succimero, DMPS o D-penicilamina está indicada en intoxicación por mercurio inorgánico, sólo la D-penicilamina es útil para los compuestos orgánicos ya que otros quelantes pueden potenciar la toxicidad del mercurio.',
    '¿Cómo se realiza el diagnóstico de lipoma? El ultrasonido y la TAC de cuello demuestran lesiones hipodensas. La RM en Tl para lesiones profundas muestra hiperintensidad.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000,  0.8808, -0.0685],
#         [ 0.8808,  1.0000, -0.0286],
#         [-0.0685, -0.0286,  1.0000]])

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 1.0
cosine_accuracy@3 1.0
cosine_accuracy@5 1.0
cosine_accuracy@10 1.0
cosine_precision@1 1.0
cosine_precision@3 0.3333
cosine_precision@5 0.2
cosine_precision@10 0.1
cosine_recall@1 1.0
cosine_recall@3 1.0
cosine_recall@5 1.0
cosine_recall@10 1.0
cosine_ndcg@10 1.0
cosine_mrr@10 1.0
cosine_map@100 1.0

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 12,467 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 7 tokens
    • mean: 22.44 tokens
    • max: 72 tokens
    • min: 17 tokens
    • mean: 89.01 tokens
    • max: 199 tokens
  • Samples:
    anchor positive
    ¿Cuáles son las características clínicas de la enfermedad de Parkinson? ¿Cuáles son las características clínicas de la enfermedad de Parkinson? Las características centrales de la enfermedad de Parkinson son un conjunto de hipocinesia y bradicinesia, temblor de reposo, inestabilidad postura] y rigidez.La voz se torna suave. Al inicio, la única queja puede ser una molestia en espalda, cuello, hombros o cadera. La rigidez ligera y la lentitud de los movimientos o la disminución del balanceo natural de un brazo al caminar se ignoran; el parpadeo infrecuente, como Pierre Marie lo s
    Cuando el vitíligo aparece después de los 40 años de edad, ¿qué se debe descartar? Cuando el vitíligo aparece después de los 40 años de edad, ¿qué se debe descartar? Cuando el vitiligo aparece después de los 40 años de edad se considera marcador de enfermedad sistémica en 50% de los casos. Entre las principales enfermedades sistémicas asociadas se encuentran: alteraciones tiroideas, diabetes mellitus, anemia, psoriasis y melanoma, entre otros.
    Cambios durante el embarazo en el sistema cutáneo Cambios durante el embarazo en el sistema cutáneo • Estrías. • Angiomas arañas, eritema palmar. • Hiperpigmentación en la línea media del abdomen, pezones, perineo y melasma.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "gather_across_devices": false
    }
    

Evaluation Dataset

json

  • Dataset: json
  • Size: 1,386 evaluation samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 6 tokens
    • mean: 22.71 tokens
    • max: 138 tokens
    • min: 15 tokens
    • mean: 92.34 tokens
    • max: 193 tokens
  • Samples:
    anchor positive
    Condición en la que se puede proceder con parto vaginal de un feto en posición de nalgas Condición en la que se puede proceder con parto vaginal de un feto en posición de nalgas Sólo cuando el parto es inminente, de lo contrario esto es una contraindicación
    Citarabina (ara-C) Citarabina (ara-C) I: leucemia linfocítica aguda, leucemia mielocítica aguda, linfoma no Hodgkin. MA: inhibe la polimerasa del DNA. EA: leucopenia, trombocitopenia, anemia megaloblástica.
    ¿Cómo se elabora el diagnóstico de encefalitis herpética? ¿Cómo se elabora el diagnóstico de encefalitis herpética? Se realiza por sospecha clínica y apoyo de estudios paraclinicos, como la PCR en LCR que es altamente específica para el virus herpes simple. La punción lumbar puede mostrar aumento en la cantidad de proteínas en el LCR (hiperproteinorraquia), hipercelularidad (pleocitosis) a expensas de linfocitos o neutrófilos en los primeros días del cuadro, eritrocitos y glucosa generalmente normal.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "gather_across_devices": false
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • learning_rate: 2e-05
  • num_train_epochs: 2
  • warmup_ratio: 0.1
  • fp16: True
  • load_best_model_at_end: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • 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: 2
  • 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
  • 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: 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
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • project: huggingface
  • trackio_space_id: trackio
  • 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: no
  • 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: batch_sampler
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss Validation Loss enarm-ir_cosine_ndcg@10
0.0026 1 0.6268 - -
0.2564 100 0.0352 - -
0.5128 200 0.0004 - -
0.7692 300 0.0008 - -
1.0256 400 0.0005 - -
1.2821 500 0.0002 0.0002 1.0
1.5385 600 0.0002 - -
1.7949 700 0.0005 - -
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.13
  • Sentence Transformers: 5.1.1
  • Transformers: 4.57.1
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.11.0
  • Datasets: 4.0.0
  • Tokenizers: 0.22.1

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

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