Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 14
How to use haongn/mpnet-mnr-squad2 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("haongn/mpnet-mnr-squad2")
sentences = [
"What is an ogonek? ",
"“The roots of all our modern academic fields can be found within the pages of literature.” Literature in all its forms can be seen as written records, whether the literature itself be factual or fictional, it is still quite possible to decipher facts through things like characters’ actions and words or the authors’ style of writing and the intent behind the words. The plot is for more than just entertainment purposes; within it lies information about economics, psychology, science, religions, politics, cultures, and social depth. Studying and analyzing literature becomes very important in terms of learning about our history. Through the study of past literature we are able to learn about how society has evolved and about the societal norms during each of the different periods all throughout history. This can even help us to understand references made in more modern literature because authors often make references to Greek mythology and other old religious texts or historical moments. Not only is there literature written on each of the aforementioned topics themselves, and how they have evolved throughout history (like a book about the history of economics or a book about evolution and science, for example) but we can also learn about these things in fictional works. Authors often include historical moments in their works, like when Lord Byron talks about the Spanish and the French in ‘‘Childe Harold’s Pilgrimage: Canto I’’ and expresses his opinions through his character Childe Harold. Through literature we are able to continuously uncover new information about history. It is easy to see how all academic fields have roots in literature. Information became easier to pass down from generation to generation once we began to write it down. Eventually everything was written down, from things like home remedies and cures for illness, or how to build shelter to traditions and religious practices. From there people were able to study literature, improve on ideas, further our knowledge, and academic fields such as the medical field or trades could be started. In much the same way as the literature that we study today continue to be updated as we continue to evolve and learn more and more.",
"Darwin's aims were twofold: to show that species had not been separately created, and to show that natural selection had been the chief agent of change. He knew that his readers were already familiar with the concept of transmutation of species from Vestiges, and his introduction ridicules that work as failing to provide a viable mechanism. Therefore, the first four chapters lay out his case that selection in nature, caused by the struggle for existence, is analogous to the selection of variations under domestication, and that the accumulation of adaptive variations provides a scientifically testable mechanism for evolutionary speciation.",
"The set of graphic and format characters defined by Unicode does not correspond directly to the repertoire of abstract characters that is representable under Unicode. Unicode encodes characters by associating an abstract character with a particular code point. However, not all abstract characters are encoded as a single Unicode character, and some abstract characters may be represented in Unicode by a sequence of two or more characters. For example, a Latin small letter \"i\" with an ogonek, a dot above, and an acute accent, which is required in Lithuanian, is represented by the character sequence U+012F, U+0307, U+0301. Unicode maintains a list of uniquely named character sequences for abstract characters that are not directly encoded in Unicode."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from microsoft/mpnet-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, '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})
)
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("haongn/mpnet-mnr-squad2")
# Run inference
sentences = [
'When did the Fed begin raising Fed funds rate significantly?',
'The Fed then raised the Fed funds rate significantly between July 2004 and July 2006. This contributed to an increase in 1-year and 5-year adjustable-rate mortgage (ARM) rates, making ARM interest rate resets more expensive for homeowners. This may have also contributed to the deflating of the housing bubble, as asset prices generally move inversely to interest rates, and it became riskier to speculate in housing. U.S. housing and financial assets dramatically declined in value after the housing bubble burst.',
'There has been an increasing gulf between the Premier League and the Football League. Since its split with the Football League, many established clubs in the Premier League have managed to distance themselves from their counterparts in lower leagues. Owing in large part to the disparity in revenue from television rights between the leagues, many newly promoted teams have found it difficult to avoid relegation in their first season in the Premier League. In every season except 2001–02 and 2011–12, at least one Premier League newcomer has been relegated back to the Football League. In 1997–98 all three promoted clubs were relegated at the end of the season.',
]
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.4914, 0.0760],
# [0.4914, 1.0000, 0.1440],
# [0.0760, 0.1440, 1.0000]])
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
What isn't another name for King Edward's Chair? |
King Edward's Chair (or St Edward's Chair), the throne on which English and British sovereigns have been seated at the moment of coronation, is housed within the abbey and has been used at every coronation since 1308. From 1301 to 1996 (except for a short time in 1950 when it was temporarily stolen by Scottish nationalists), the chair also housed the Stone of Scone upon which the kings of Scots are crowned. Although the Stone is now kept in Scotland, in Edinburgh Castle, at future coronations it is intended that the Stone will be returned to St Edward's Chair for use during the coronation ceremony.[citation needed] |
What is the inflamation a result of? |
While asthma is a well recognized condition, there is not one universal agreed upon definition. It is defined by the Global Initiative for Asthma as "a chronic inflammatory disorder of the airways in which many cells and cellular elements play a role. The chronic inflammation is associated with airway hyper-responsiveness that leads to recurrent episodes of wheezing, breathlessness, chest tightness and coughing particularly at night or in the early morning. These episodes are usually associated with widespread but variable airflow obstruction within the lung that is often reversible either spontaneously or with treatment". |
Other than Chomsky who else published The Sound Pattern of English? |
In 1968 Noam Chomsky and Morris Halle published The Sound Pattern of English (SPE), the basis for generative phonology. In this view, phonological representations are sequences of segments made up of distinctive features. These features were an expansion of earlier work by Roman Jakobson, Gunnar Fant, and Morris Halle. The features describe aspects of articulation and perception, are from a universally fixed set, and have the binary values + or −. There are at least two levels of representation: underlying representation and surface phonetic representation. Ordered phonological rules govern how underlying representation is transformed into the actual pronunciation (the so-called surface form). An important consequence of the influence SPE had on phonological theory was the downplaying of the syllable and the emphasis on segments. Furthermore, the generativists folded morphophonology into phonology, which both solved and created problems. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
per_device_train_batch_size: 12per_device_eval_batch_size: 12num_train_epochs: 1batch_sampler: no_duplicatesmulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 12per_device_eval_batch_size: 12per_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: 1max_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}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_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: no_duplicatesmulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.0460 | 500 | 0.5794 |
| 0.0921 | 1000 | 0.1259 |
| 0.1381 | 1500 | 0.1169 |
| 0.1842 | 2000 | 0.1045 |
| 0.2302 | 2500 | 0.0858 |
| 0.2763 | 3000 | 0.0835 |
| 0.3223 | 3500 | 0.0758 |
| 0.3684 | 4000 | 0.0785 |
| 0.4144 | 4500 | 0.0591 |
| 0.4604 | 5000 | 0.0644 |
| 0.5065 | 5500 | 0.063 |
| 0.5525 | 6000 | 0.0537 |
| 0.5986 | 6500 | 0.0575 |
| 0.6446 | 7000 | 0.0537 |
| 0.6907 | 7500 | 0.0473 |
| 0.7367 | 8000 | 0.0599 |
| 0.7828 | 8500 | 0.0542 |
| 0.8288 | 9000 | 0.0464 |
| 0.8749 | 9500 | 0.05 |
| 0.9209 | 10000 | 0.0455 |
| 0.9669 | 10500 | 0.043 |
@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
microsoft/mpnet-base