Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 18
How to use iqrakiran/1my-sentence-transformer-model with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("iqrakiran/1my-sentence-transformer-model")
sentences = [
"I am angry about an incident at the supermarket, and it has been bothering me for the last three or four days. The person involved was flirting with me, and I think they should apologize. I didn't ask for an apology or indicate that I was upset during the conversation because I felt it would be inappropriate. I believe they should call me and set aside an appropriate time to apologize.",
"If you are a counsellor, please answer the questions based on the description of the patient.",
"It seems like this incident really impacted you and you believe that an apology is necessary for closure. It's understandable that you didn't address it on the spot if you felt it was inappropriate. However, people sometimes don't realize they've upset someone unless it's brought to their attention. Since you feel so strongly about this, have you considered reaching out to the person to express your feelings and provide them an opportunity to apologize?",
"It sounds like you have built a strong support system in San Diego with meaningful relationships and emotional investments. It's natural to feel apprehensive about moving away from that. Maybe you could consider the potential opportunities that LA has to offer and weigh them against what you would be leaving behind in San Diego. Additionally, think about the ways you can stay connected with your loved ones after moving. Just remember that it's a difficult decision, and it's important to give yourself time to make the best choice for you."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from distilbert/distilroberta-base. 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': 512, 'do_lower_case': False}) with Transformer model: RobertaModel
(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})
)
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("iqrakiran/1my-sentence-transformer-model")
# Run inference
sentences = [
"I remember generating alternative predictions. We said that I might get nervous but if I stay focused on what I want to do, I can probably do it. It's just hard to believe when I'm in this situation.",
"It's normal to feel nervous in difficult situations. As a counsellor, I suggest continuing to test these alternative predictions directly in real-life experiences. As you encounter situations where you manage to handle things even while nervous, your belief in your abilities and the predictions will strengthen. Remember to stay focused and trust yourself.",
'If you are a counsellor, please answer the questions based on the description of the patient.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
I have been practicing muscle relaxation techniques to calm myself, but I still experience a lot of anxiety. When I'm relaxed and thinking about something calm, it feels nice. However, when I start to think about a negative situation, like people laughing at me, I quickly lose that feeling of relaxation. |
You're on the right track with practicing muscle relaxation, but managing anxiety goes beyond the physical aspects. In social situations, it's important to shift our focus away from anxiety-provoking thoughts and towards the actions we can take in those situations. Remember, relaxation techniques are just one part of managing anxiety, so try to actively redirect your attention towards positive or neutral thoughts when negative scenarios come up. |
If you are a counsellor, please answer the questions based on the description of the patient. |
As the patient, I feel disappointed and I'm really pissed about my current situation. |
As your counsellor, I hear that you are experiencing strong emotions at the moment. It's important for us to identify the specific circumstances that have led to these feelings, so we can better address and challenge the irrational beliefs that might be contributing to your distress. Can you tell me more about the situation that has been bothering you? |
If you are a counsellor, please answer the questions based on the description of the patient. |
I've been struggling with my relationship with my mom, and it has affected the way I interact with my kids. I vowed not to treat them the way she treated me, but I didn't realize how much it has affected the way I treat myself. I didn't deliberately want to be this way, but I ended up with something like an alter-ego. |
It's important to recognize that your relationship with yourself is what we're focusing on right now, even though it was influenced by your relationship with your mom. It's not uncommon for people to unintentionally develop certain traits or behaviors due to past experiences. Acknowledge what you've discovered about yourself and try to gain a better understanding of the factors that contributed to it. Also, reflect on how to improve your relationship with yourself going forward. Have you considered any specific strategies or steps to improve your self-treatment? |
If you are a counsellor, please answer the questions based on the description of the patient. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
per_device_train_batch_size: 16per_device_eval_batch_size: 16num_train_epochs: 10multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 16per_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: 10max_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: Falsefp16_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: Falsehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseeval_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: Falseeval_use_gather_object: Falsebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | Training Loss |
|---|---|---|
| 1.9531 | 500 | 0.2321 |
| 3.9062 | 1000 | 0.0 |
| 5.8594 | 1500 | 0.0001 |
| 7.8125 | 2000 | 0.0 |
| 9.7656 | 2500 | 0.0 |
| 1.9531 | 500 | 0.4353 |
| 3.9062 | 1000 | 0.0119 |
| 5.8594 | 1500 | 0.0022 |
| 7.8125 | 2000 | 0.0009 |
| 9.7656 | 2500 | 0.0007 |
@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
distilbert/distilroberta-base