Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use ChenyuEcho/hospital_qapairs_regularprompt_oldtrainmethod with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("ChenyuEcho/hospital_qapairs_regularprompt_oldtrainmethod")
sentences = [
"What concerns did Environmental Services staff raise regarding after-hours visitor access to patient rooms as discussed by Jordan P. Anderson on January 14, 2026?",
"Environmental Services staff expressed concerns about ensuring proper cleaning protocols when guests remain past designated hours, which can lead to delays in sterilization.",
"David R. Park sent the relevant documents and a complete set of records to Dr. Catherine Reynolds on January 12, 2026, as requested for the ongoing investigation.",
"Isabella N. Garcia agreed to initiate an Ethics Committee consult by reaching out to the committee chair and including relevant staff in the discussion, and asked Richard T. Howard to continue collecting feedback from families and staff to inform the review."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from Qwen/Qwen3-Embedding-0.6B. 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.
SentenceTransformer(
(0): Transformer({'max_seq_length': 768, 'do_lower_case': False, 'architecture': 'PeftModelForFeatureExtraction'})
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, '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': True, 'include_prompt': True})
(2): Normalize()
)
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 = [
"What actions did George M. Harris commit to regarding the crash cart inspection documentation discrepancy identified by Patricia A. Johnson in October 2025?",
]
documents = [
'George M. Harris agreed to review the crash cart inspection logs for missing or incomplete entries, assess for process gaps or staff confusion, and coordinate with the training department for a refresher if needed, with an update to Patricia by the end of the week.',
'George M. Harris stated he would review the updated Dietary Services menu, cross-reference it with current billing codes and payer documentation requirements, and provide recommendations for coding updates and additional documentation to ensure compliance and prevent reimbursement issues.',
'Dr. Collins agreed to assemble a cross-departmental task force within the week to review the credentialing workflow and explore automation or process improvements, aiming to address the delays and maintain accreditation timelines.',
]
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.7461, 0.3457, 0.0243]], dtype=torch.bfloat16)
val_evaluationInformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.7978 |
| cosine_accuracy@3 | 0.9233 |
| cosine_accuracy@5 | 0.9511 |
| cosine_accuracy@10 | 0.9844 |
| cosine_precision@1 | 0.7978 |
| cosine_precision@3 | 0.3078 |
| cosine_precision@5 | 0.1902 |
| cosine_precision@10 | 0.0984 |
| cosine_recall@1 | 0.7978 |
| cosine_recall@3 | 0.9233 |
| cosine_recall@5 | 0.9511 |
| cosine_recall@10 | 0.9844 |
| cosine_ndcg@10 | 0.8951 |
| cosine_mrr@10 | 0.866 |
| cosine_map@100 | 0.8669 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
What recent improvements did Paul R. Nelson mention regarding the hospital's safety management in the October 2025 email thread about the 安全建议箱反馈公告? |
Paul R. Nelson stated that the hospital has optimized the access control system, visitor procedures, and night patrols, and these improvements have already shown initial results. |
What days did Ethan L. Foster suggest for meeting Nicole R. Barnes for coffee during the week of September 5, 2025? |
Ethan L. Foster suggested Thursday and Friday afternoon as possible times to meet Nicole R. Barnes for coffee during the week of September 5, 2025. |
What actions did Xavier D. Brooks commit to regarding the increased turnaround time for surgical site infection tracking as discussed on November 10, 2025? |
Xavier D. Brooks stated he would coordinate with nursing and records teams to review recent workflow changes and identify bottlenecks, and promised to share findings and propose improvements by the end of the week. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
per_device_train_batch_size: 64per_device_eval_batch_size: 64num_train_epochs: 10multi_dataset_batch_sampler: round_robindo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 64per_device_eval_batch_size: 64gradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 10max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_ratio: Nonewarmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Trueenable_jit_checkpoint: Falsesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseuse_cpu: Falseseed: 42data_seed: Nonebf16: Falsefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: -1ddp_backend: Nonedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonedisable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': 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: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Nonegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Truepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsehub_revision: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_for_metrics: []eval_do_concat_batches: Trueauto_find_batch_size: Falsefull_determinism: Falseddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_num_input_tokens_seen: noneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Trueuse_cache: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | val_evaluation_cosine_ndcg@10 |
|---|---|---|
| 1.0 | 33 | 0.8290 |
| 2.0 | 66 | 0.8660 |
| 3.0 | 99 | 0.8781 |
| 4.0 | 132 | 0.8848 |
| 5.0 | 165 | 0.8905 |
| 6.0 | 198 | 0.8939 |
| 7.0 | 231 | 0.8956 |
| 8.0 | 264 | 0.8959 |
| 9.0 | 297 | 0.8969 |
| 10.0 | 330 | 0.8951 |
@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",
}
@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}
}