Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use Eklavya73/sbert_finetuned with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Eklavya73/sbert_finetuned")
sentences = [
"request increase server capacity dear customer support ask upgrade server capacity optimize database improve scalability performance saas project management platform current setup limit increase user volume lead long response time reduced productivity ensure smooth user experience remain competitive extension infrastructure necessary ask urgent review request timely solution please inform u detail need process start",
"customer service update please write request update integration enhance compatibility across multiple product within scalable saas project management platform aim improve user experience increase efficiency",
"system failure data synchronization problem detect incident impact several product result system crash data synchronization error root cause suspect server overload lead integration failure effort resolve include restarting service clear cache review log problem persist scalability challenge likely underlying issue",
" customer support inquire updating security protocol software integration within hospital system objective improve data protection compliance ensure confidentiality integrity patient information would like know solution available process implement update could please provide detail matter thank assistance look forward prompt response best regard thank support"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from sentence-transformers/all-mpnet-base-v2. 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.
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()
)
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 = [
'difference invoice new tariff change marketing agency complain billing difference multiple subscription due new service change overlap fee change price level could behind try contact customer service check account statement hop problem solve please help u solve problem',
'payment problem identify recently encounter issue subscription payment decline problem might due insufficient fund card expiration verify card detail ensure sufficient balance issue still persist',
'problem digital strategy digital strategy tool provide marketing agency malfunction unexpectedly may software compatibility configuration problem attempt resolve include restart system update software verify connection kindly assist resolve issue promptly reduce disruption',
]
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.7374, 0.5017],
# [0.7374, 1.0000, 0.3963],
# [0.5017, 0.3963, 1.0000]])
sentence_0, sentence_1, and label| sentence_0 | sentence_1 | label | |
|---|---|---|---|
| type | string | string | float |
| details |
|
|
|
| sentence_0 | sentence_1 | label |
|---|---|---|
intern network issue saas application experience temporary connectivity issue saas application network instability misconfigurations might cause please restart tp link switch netgear router |
problem application crash peak usage application crash unexpectedly peak usage hour may due database overload resource constraint although attempt make optimize sql query reduce load step not successful would greatly appreciate assistance resolve issue prevent future crash ensure good user experience |
1.0 |
request update discord drupal hello customer support contact request update discord drupal integration digital marketing effort heavily depend platform think improve integration greatly enhance track performance give fast paced environment digital marketing essential stay forefront optimize tool increase reach engagement could please examine provide solution fit requirement additional step need undertake detail need please let know thank time assistance look forward response |
update require immediately please integration must update good compatibility |
1.0 |
dear customer support contact address problem integration multiple application unexpectedly stop work believe issue might due recent api modification excessive server load despite effort reset service review logs test application independently problem remain unresolved kindly request examine situation offer prompt solution please inform information end necessary address issue thank attention cooperation sincerely name |
integration problem jira clickup dear support team would like report integration issue jira clickup synchronization error suddenly appear night suspect might relate api change try restart server review log issue persists would appreciate could look matter offer solution soon possible please let know need additional information resolve issue thank time assistance look forward prompt response |
1.0 |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
num_train_epochs: 5fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 8per_device_eval_batch_size: 8per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_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: 5max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.0warmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Falsefp16: Truefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}deepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torchoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters: auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Nonedispatch_batches: Nonesplit_batches: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 1.0616 | 500 | 1.8284 |
| 2.1231 | 1000 | 1.5296 |
| 3.1847 | 1500 | 1.3349 |
| 4.2463 | 2000 | 1.1681 |
@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}
}
Base model
sentence-transformers/all-mpnet-base-v2