Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use philtoms/minilm-alice-base-rsft-v2 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("philtoms/minilm-alice-base-rsft-v2")
sentences = [
"Upon discovering the painted roses, the Queen of Hearts orders the gardeners' execution, but Alice saves them by hiding them in a flowerpot.",
"there seemed to be no use in waiting by the little door, so she went back to the table, half hoping she might find another key on it, or at any rate a book of rules for shutting people up like telescopes : this time she found a little bottle on it, ( ’ which certainly was not here before, ’ said alice, ) and round the neck of the bottle was a paper label, with the words ‘ drink me ’ beautifully printed on it in large letters.",
"‘ you shan ’ t be beheaded! ’ said alice, and she put them into a large flower - pot that stood near. the three soldiers wandered about for a minute or two, looking for them, and then quietly marched off after the others.",
"the hatter shook his head mournfully. ‘ not i! ’ he replied. ‘ we quarrelled last march — just before he went mad, you know — ’ ( pointing with his tea spoon at the march hare, ) ‘ — it was at the great concert given by the queen of hearts, and i had to sing"
]
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, 'architecture': '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("philtoms/minilm-alice-base-rsft-v2")
# Run inference
sentences = [
'The King of Hearts dismisses the Hatter. As the Hatter leaves, the Queen of Hearts orders his execution, but he is already out of sight.',
'‘ you may go, ’ said the king, and the hatter hurriedly left the court, without even waiting to put his shoes on.',
'the hatter shook his head mournfully. ‘ not i! ’ he replied. ‘ we quarrelled last march — just before he went mad, you know — ’ ( pointing with his tea spoon at the march hare, ) ‘ — it was at the great concert given by the queen of hearts, and i had to sing',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.6118, 0.1128],
# [0.6118, 1.0000, 0.2371],
# [0.1128, 0.2371, 1.0000]])
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
The Mock Turtle, with tears running down his cheeks, told Alice she could have no idea what a delightful thing a Lobster Quadrille is. |
‘ you may not have lived much under the sea — ’ ( ’ i haven ’ t, ’ said alice ) — ‘ and perhaps you were never even introduced to a lobster — ’ ( alice began to say ‘ i once tasted — ’ but checked herself hastily, and said ‘ no, never ’ ) ‘ — so you can have no idea what a delightful thing a lobster quadrille is! ’ |
the long grass rustled at her feet as the white rabbit hurried by — the frightened mouse splashed his way through the neighbouring pool — she could hear the rattle of the teacups as the march hare and his friends shared their never - ending meal, and the shrill voice of the queen ordering off her unfortunate guests to execution — once more the pig - baby was sneezing on the duchess ’ s knee, while plates and dishes crashed around it — once more the shriek of the gryphon, the squeaking of the lizard ’ s slate - pencil, and the choking of the suppressed guinea - pigs, filled the air, mixed up with the distant sobs of the miserable mock turtle. |
When the King of Hearts suggests a line from the verses refers to the Queen of Hearts having fits, she furiously denies it and throws an inkstand at the Lizard. |
‘ never! ’ said the queen furiously, throwing an inkstand at the lizard as she spoke. ( the unfortunate little bill had left off writing on his slate with one finger, as he found it made no mark ; but he now hastily began again, using the ink, that was trickling down his face, as long as it lasted. ) |
the hatter shook his head mournfully. ‘ not i! ’ he replied. ‘ we quarrelled last march — just before he went mad, you know — ’ ( pointing with his tea spoon at the march hare, ) ‘ — it was at the great concert given by the queen of hearts, and i had to sing |
The argument continues as Alice admits to eating eggs, leading the Pigeon to conclude that little girls are a type of serpent before telling her to leave. |
‘ i don ’ t believe it, ’ said the pigeon ; ‘ but if they do, why then they ’ re a kind of serpent, that ’ s all i can say. ’ |
‘ curiouser and curiouser! ’ cried alice ( she was so much surprised, that for the moment she quite forgot how to speak good english ) ; ‘ now i ’ m opening out like the largest telescope that ever was! good - bye, feet! ’ ( for when she looked down at her feet, they seemed to be almost out of sight, they were getting so far off ). ‘ oh, my poor little feet, i wonder who will put on your shoes and stockings for you now, dears? i ’ m sure i shan ’ t be able! i shall be a great deal too far off to trouble myself about you : you must manage the best way you can ; — but i must be kind to them, ’ thought alice, ‘ or perhaps they won ’ t walk the way i want to go! let me see : i ’ ll give them a new pair of boots every christmas. ’ |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
per_device_train_batch_size: 4per_device_eval_batch_size: 4num_train_epochs: 5multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 4per_device_eval_batch_size: 4per_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: 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: Nonehub_always_push: Falsehub_revision: Nonegradient_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: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_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: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}@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-MiniLM-L6-v2