bdanko/umsb-mpnet-episodic-memory
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 umsb-episodic-memory dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for retrieval.
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: sentence-transformers/all-mpnet-base-v2 <!-- at revision e8c3b32edf5434bc2275fc9bab85f82640a19130 -->
- Maximum Sequence Length: 384 tokens
- Output Dimensionality: 768 dimensions
- Similarity Function: Cosine Similarity
- Supported Modality: Text
- Training Dataset:
- umsb-episodic-memory <!-- - Language: Unknown --> <!-- - License: Unknown -->
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
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': 'MPNetModel'})
(1): Pooling({'embedding_dimension': 768, 'pooling_mode': 'mean', 'include_prompt': True})
(2): Normalize({})
)Usage
Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
pip install -U sentence-transformersThen 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 = [
'e medication administration date. This parameter corresponds to the dosageInstruction.timing.repeat.boundsPeriod element\nMedication orders that do not have start and end dates within the search parameter dates are filtered. If the environment supports multiple time zones, the search dates are adjusted one day in both directions, so more medications might be returned than expected. Use caution when filtering a medication list by date as it is possible to filter out important active medications. Starting in the November 2022 version of Epic, this parameter is respected',
'e medication administration date. This parameter corresponds to the dosageInstruction.timing.repeat.boundsPeriod element\nMedication orders that do not have start and end dates within the search parameter dates are filtered. If the environment supports multiple time zones, the search dates are adjusted one day in both directions, so more medications might be returned than expected. Use caution when filtering a medication list by date as it is possible to filter out important active medications. Starting in the November 2022 version of Epic, this parameter is respected',
'e": {"properties": {"text": {"description": "The flowsheet ID, encoded flowsheet ID, or LOINC codes to flowsheet mapping\nWhat is being measured.", "type": "string"}}, "type": "object"}, "effectiveDateTime": {"description": "The date and time the observation was taken, in ISO format.", "type": "string"}, "resourceType": {"description": "Use \\"Observation\\" for vitals observations.", "type": "string"}, "status": {"description": "The status of the observation. Only a value of \\"final\\" is supported',
]
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, 1.0000, 0.3683],
# [1.0000, 1.0000, 0.3683],
# [0.3683, 0.3683, 1.0000]])<!--
Direct Usage (Transformers)
<details><summary>Click to see the direct usage in Transformers</summary>
</details> -->
<!--
Downstream Usage (Sentence Transformers)
You can finetune this model on your own dataset.
<details><summary>Click to expand</summary>
</details> -->
<!--
Out-of-Scope Use
List how the model may foreseeably be misused and address what users ought not to do with the model. -->
<!--
Bias, Risks and Limitations
What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model. -->
<!--
Recommendations
What are recommendations with respect to the foreseeable issues? For example, filtering explicit content. -->
Training Details
Training Dataset
umsb-episodic-memory
- Dataset: umsb-episodic-memory
- Size: 3,067 training samples
- Columns: <code>anchor</code> and <code>positive</code>
- Approximate statistics based on the first 1000 samples: | | anchor | positive | |:--------|:-------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------| | type | string | string | | details | <ul><li>min: 33 tokens</li><li>mean: 221.24 tokens</li><li>max: 384 tokens</li></ul> | <ul><li>min: 33 tokens</li><li>mean: 221.24 tokens</li><li>max: 384 tokens</li></ul> |
- Samples: | anchor | positive | |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>description": "The patient's family (last) name.", "type": "string"}, "gender": {"description": "The patient's legal sex<br>Starting in the August 2021 version of Epic, the legal-sex parameter is preferred.", "type": "string"}, "given": {"description": "The patient's given name. May include first and middle names.", "type": "string"}, "identifier": {"description": "The patient's identifier.", "type": "string"}, "legal-sex": {"description": "The patient\u2019s legal sex. Takes precedence over the gender search parameter. Available starting in the August 2021 version of Epic.", "type": "string"}, "name": {"description": "Any part of the patient's name. When discrete name parameters are used, such as family or given, this parameter is ignored.", "type": "string"}, "telecom": {"description": "The patient's phone number or email.", "type": "string"}}, "required": [], "type": "object"}}]</code> | <code>description": "The patient's family (last) name.", "type": "string"}, "gender": {"description": "The patient's legal sex<br>Starting in the August 2021 version of Epic, the legal-sex parameter is preferred.", "type": "string"}, "given": {"description": "The patient's given name. May include first and middle names.", "type": "string"}, "identifier": {"description": "The patient's identifier.", "type": "string"}, "legal-sex": {"description": "The patient\u2019s legal sex. Takes precedence over the gender search parameter. Available starting in the August 2021 version of Epic.", "type": "string"}, "name": {"description": "Any part of the patient's name. When discrete name parameters are used, such as family or given, this parameter is ignored.", "type": "string"}, "telecom": {"description": "The patient's phone number or email.", "type": "string"}}, "required": [], "type": "object"}}]</code> | | <code>e to filter out important active medications. Starting in the November 2022 version of Epic, this parameter is respected In May 2022 and earlier versions of Epic, this parameter is allowed but is ignored and no date filtering is applied.", "type": "string"}, "patient": {"description": "The FHIR patient ID.", "type": "string"}}, "required": ["patient"], "type": "object"}}, {"description": "MedicationRequest.Create", "name": "POST {apibase}/MedicationRequest", "parameters": {"properties": {"authoredOn": {"description": "The date the prescription was written.", "type": "string"}, "dosageInstruction": {"items": {"properties": {"doseAndRate": {"items": {"properties": {"doseQuantity": {"properties": {"unit": {"description": "unit for the dose such as \"g\" ", "type": "string"}, "value": {"type": "number"}}, "type": "object"}, "rateQuantity": {"properties": {"unit": {"description": "unit for the rate such as \"h\" ", "type": "string"}, "value": {"type": "number"}}, "type": "object"}}, "type"...</code> | <code>e to filter out important active medications. Starting in the November 2022 version of Epic, this parameter is respected In May 2022 and earlier versions of Epic, this parameter is allowed but is ignored and no date filtering is applied.", "type": "string"}, "patient": {"description": "The FHIR patient ID.", "type": "string"}}, "required": ["patient"], "type": "object"}}, {"description": "MedicationRequest.Create", "name": "POST {apibase}/MedicationRequest", "parameters": {"properties": {"authoredOn": {"description": "The date the prescription was written.", "type": "string"}, "dosageInstruction": {"items": {"properties": {"doseAndRate": {"items": {"properties": {"doseQuantity": {"properties": {"unit": {"description": "unit for the dose such as \"g\" ", "type": "string"}, "value": {"type": "number"}}, "type": "object"}, "rateQuantity": {"properties": {"unit": {"description": "unit for the rate such as \"h\" ", "type": "string"}, "value": {"type": "number"}}, "type": "object"}}, "type"...</code> | | <code>e": {"properties": {"text": {"description": "The flowsheet ID, encoded flowsheet ID, or LOINC codes to flowsheet mapping<br>What is being measured.", "type": "string"}}, "type": "object"}, "effectiveDateTime": {"description": "The date and time the observation was taken, in ISO format.", "type": "string"}, "resourceType": {"description": "Use \"Observation\" for vitals observations.", "type": "string"}, "status": {"description": "The status of the observation. Only a value of \"final\" is supported</code> | <code>e": {"properties": {"text": {"description": "The flowsheet ID, encoded flowsheet ID, or LOINC codes to flowsheet mapping<br>What is being measured.", "type": "string"}}, "type": "object"}, "effectiveDateTime": {"description": "The date and time the observation was taken, in ISO format.", "type": "string"}, "resourceType": {"description": "Use \"Observation\" for vitals observations.", "type": "string"}, "status": {"description": "The status of the observation. Only a value of \"final\" is supported</code> |
- Loss: <code>MultipleNegativesRankingLoss</code> with these parameters:
{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false,
"directions": [
"query_to_doc"
],
"partition_mode": "joint",
"hardness_mode": null,
"hardness_strength": 0.0
}Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 32num_train_epochs: 2learning_rate: 2e-05warmup_steps: 0.05fp16: True
All Hyperparameters
<details><summary>Click to expand</summary>
per_device_train_batch_size: 32num_train_epochs: 2max_steps: -1learning_rate: 2e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0.05optim: adamwtorchfusedoptim_args: Noneweight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 1average_tokens_across_devices: Truemax_grad_norm: 1.0label_smoothing_factor: 0.0bf16: Falsefp16: Truebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Nonetorch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneuse_liger_kernel: Falseliger_kernel_config: Noneuse_cache: Falseneftune_noise_alpha: Nonetorch_empty_cache_steps: Noneauto_find_batch_size: Falselog_on_each_node: Truelogging_nan_inf_filter: Trueinclude_num_input_tokens_seen: nolog_level: passivelog_level_replica: warningdisable_tqdm: Falseproject: huggingfacetrackio_space_id: Nonetrackio_bucket_id: Nonetrackio_static_space_id: Noneper_device_eval_batch_size: 8prediction_loss_only: Trueeval_on_start: Falseeval_do_concat_batches: Trueeval_use_gather_object: Falseeval_accumulation_steps: Noneinclude_for_metrics: []batch_eval_metrics: Falsesave_only_model: Falsesave_on_each_node: Falseenable_jit_checkpoint: Falsepush_to_hub: Falsehub_private_repo: Nonehub_model_id: Nonehub_strategy: every_savehub_always_push: Falsehub_revision: Noneload_best_model_at_end: Falseignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 42data_seed: Noneuse_cpu: Falseaccelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}parallelism_config: Nonedataloader_drop_last: Falsedataloader_num_workers: 0dataloader_pin_memory: Truedataloader_persistent_workers: Falsedataloader_prefetch_factor: Noneremove_unused_columns: Truelabel_names: Nonetrain_sampling_strategy: randomlength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falseddp_static_graph: Noneddp_backend: Noneddp_timeout: 1800fsdp: []fsdp_config: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}deepspeed: Nonedebug: []skip_memory_metrics: Truedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: Nonelocal_rank: -1prompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}
</details>
Training Logs
Training Time
- Training: 2.4 minutes
Framework Versions
- Python: 3.11.12
- Sentence Transformers: 5.4.1
- Transformers: 5.8.0
- PyTorch: 2.11.0+cu130
- Accelerate: 1.13.0
- Datasets: 4.8.5
- 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",
}MultipleNegativesRankingLoss
@misc{oord2019representationlearningcontrastivepredictive,
title={Representation Learning with Contrastive Predictive Coding},
author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
year={2019},
eprint={1807.03748},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/1807.03748},
}<!--
Glossary
Clearly define terms in order to be accessible across audiences. -->
<!--
Model Card Authors
Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction. -->
<!--
Model Card Contact
Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors. -->
