Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use Hgkang00/FT-triple-2 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Hgkang00/FT-triple-2")
sentences = [
"The agoraphobic situations almost always provoke fear or anxiety.",
"Attending crowded events or public gatherings fills me with anxiety because of the fear of a potential threat in the crowd.",
"The struggle to focus during the day is often due to feeling exhausted even after a full night's sleep.",
"It's not uncommon for me to engage in risky behaviors like reckless driving or reckless sexual encounters."
]
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-MiniLM-L6-v2. It maps sentences & paragraphs to a 384-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': 256, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 384, '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("Hgkang00/FT-triple-2")
# Run inference
sentences = [
'Experience frequent headaches and muscle soreness due to my insomnia.',
'I experience frequent headaches and muscle soreness because of my insomnia.',
"The struggle to focus during the day is often due to feeling exhausted even after a full night's sleep.",
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
FT-tripleTripletEvaluator| Metric | Value |
|---|---|
| cosine_accuracy | 0.8093 |
| dot_accuracy | 0.1907 |
| manhattan_accuracy | 0.8104 |
| euclidean_accuracy | 0.8093 |
| max_accuracy | 0.8104 |
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
Presence of delusions, hallucinations or disorganized speech, for a significant portion of time within a 1-month period |
Even in the privacy of my room, I hear voices that tell me things that are not real frequently. |
My lack of pleasure in things I once enjoyed has caused me to lose interest in hobbies or activities that used to bring me joy. |
Presence of delusions, hallucinations or disorganized speech, for a significant portion of time within a 1-month period |
It's common for me to hear things that are not real, even when I'm in my room by myself. |
Starting multiple projects simultaneously during these episodes makes me feel like I can accomplish everything at once. |
Presence of delusions, hallucinations or disorganized speech, for a significant portion of time within a 1-month period |
Even in the privacy of my room, I hear voices that tell me things that are not real frequently. |
Even after a full night's sleep, I struggle to get out of bed in the morning, feeling tired. |
TripletLoss with these parameters:{
"distance_metric": "TripletDistanceMetric.EUCLIDEAN",
"triplet_margin": 5
}
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
Presence of delusions, hallucinations or disorganized speech, for a significant portion of time within a 1-month period |
Observers in my vicinity have noted the escalation of my erratic and unpredictable behavior. |
It's a challenge for me to seek assistance in public places, even when I clearly need help. |
Presence of delusions, hallucinations or disorganized speech, for a significant portion of time within a 1-month period |
There has been a growing awareness among those around me about my increasingly erratic and unpredictable behavior. |
The difficulty of connecting with others on a deeper level stems from feeling like I've lost a part of myself due to the traumatic event. |
Presence of delusions, hallucinations or disorganized speech, for a significant portion of time within a 1-month period |
It has come to the attention of those around me that my behavior is becoming more erratic and unpredictable. |
My thoughts exhibited a chaotic and disconnected pattern in that manic episode. |
TripletLoss with these parameters:{
"distance_metric": "TripletDistanceMetric.EUCLIDEAN",
"triplet_margin": 5
}
eval_strategy: epochper_device_train_batch_size: 128per_device_eval_batch_size: 64num_train_epochs: 2warmup_ratio: 0.1overwrite_output_dir: Falsedo_predict: Falseeval_strategy: epochprediction_loss_only: Trueper_device_train_batch_size: 128per_device_eval_batch_size: 64per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 2max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.1warmup_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: Falsebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportional| Epoch | Step | Training Loss | loss | FT-triple_max_accuracy |
|---|---|---|---|---|
| 0.2015 | 82 | 4.5671 | - | - |
| 0.4029 | 164 | 4.0669 | - | - |
| 0.6044 | 246 | 3.9861 | - | - |
| 0.8059 | 328 | 3.9519 | - | - |
| 1.0 | 407 | - | 4.0778 | 0.8244 |
| 1.0074 | 410 | 3.9194 | - | - |
| 1.2088 | 492 | 3.8925 | - | - |
| 1.4103 | 574 | 3.8823 | - | - |
| 1.6118 | 656 | 3.8871 | - | - |
| 1.8133 | 738 | 3.8603 | - | - |
| 2.0 | 814 | - | 4.0806 | 0.8104 |
@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{hermans2017defense,
title={In Defense of the Triplet Loss for Person Re-Identification},
author={Alexander Hermans and Lucas Beyer and Bastian Leibe},
year={2017},
eprint={1703.07737},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Base model
nreimers/MiniLM-L6-H384-uncased