Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 14
How to use CharlesPing/finetuned-all-minilm-l12-v2-climate-v2 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("CharlesPing/finetuned-all-minilm-l12-v2-climate-v2")
sentences = [
"“The chain of events that links the melting Arctic with weather to the south begins with rising global temperatures causing more sea ice to melt.",
"On the other hand, one 1999 comparison between urban and rural areas proposed that urban heat island effects have little influence on global mean temperature trends.",
"Given that records of solar activity are accurate, solar activity may have contributed to part of the modern warming that peaked in the 1930s, in addition to the 60-year temperature cycles that result in roughly 0.5 °C of warming during the increasing temperature phase.",
"Not only does this increase the absorption of sunlight, it also increases melting and sea level rise."
]
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-L12-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': 512, '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("CharlesPing/finetuned-all-minilm-l12-v2-climate-v2")
# Run inference
sentences = [
'The Greenland ice sheet is at least 400,000 years old and warming was not global when Europeans settled in Greeland 1,000 years ago',
'Between 2001 and 2005: Sermeq Kujalleq broke up, losing 93 square kilometres (36\xa0sq\xa0mi) and raised awareness worldwide of glacial response to global climate change.',
'IPCC authors concluded ECS is very likely to be greater than 1.5\xa0°C (2.7\xa0°F) and likely to lie in the range 2 to 4.5\xa0°C (4 to 8.1\xa0°F), with a most likely value of about 3\xa0°C (5\xa0°F).',
]
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]
climate-val-simplerInformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.5122 |
| cosine_accuracy@3 | 0.7805 |
| cosine_accuracy@5 | 0.8455 |
| cosine_accuracy@10 | 0.9024 |
| cosine_precision@1 | 0.5122 |
| cosine_precision@3 | 0.4255 |
| cosine_precision@5 | 0.3333 |
| cosine_precision@10 | 0.2 |
| cosine_recall@1 | 0.1949 |
| cosine_recall@3 | 0.4714 |
| cosine_recall@5 | 0.6096 |
| cosine_recall@10 | 0.7022 |
| cosine_ndcg@10 | 0.5903 |
| cosine_mrr@10 | 0.6585 |
| cosine_map@100 | 0.5016 |
text_a and text_b| text_a | text_b | |
|---|---|---|
| type | string | string |
| details |
|
|
| text_a | text_b |
|---|---|
The thermal expansion of the oceans, compounded by melting glaciers, resulted in the highest global sea level on record in 2015. |
Since the last glacial maximum about 20,000 years ago, the sea level has risen by more than 125 metres (410 ft), with rates varying from less than a mm/year to 40+ mm/year, as a result of melting ice sheets over Canada and Eurasia. |
The thermal expansion of the oceans, compounded by melting glaciers, resulted in the highest global sea level on record in 2015. |
This acceleration is due mostly to human-caused global warming, which is driving thermal expansion of seawater and the melting of land-based ice sheets and glaciers. |
The thermal expansion of the oceans, compounded by melting glaciers, resulted in the highest global sea level on record in 2015. |
Between 1993 and 2018, thermal expansion of the oceans contributed 42% to sea level rise; the melting of temperate glaciers, 21%; Greenland, 15%; and Antarctica, 8%. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
text_a and text_b| text_a | text_b | |
|---|---|---|
| type | string | string |
| details |
|
|
| text_a | text_b |
|---|---|
Postma's model contains many simple errors; in no way does Postma undermine the existence or necessity of the greenhouse effect. |
Since it is absurd to have no logical method for settling on one hypothesis amongst an infinite number of equally data-compliant hypotheses, we should choose the simplest theory: "Either science is irrational [in the way it judges theories and predictions probable] or the principle of simplicity is a fundamental synthetic a priori truth." |
Postma's model contains many simple errors; in no way does Postma undermine the existence or necessity of the greenhouse effect. |
Thus, complex hypotheses must predict data much better than do simple hypotheses before researchers reject the simple hypotheses. |
Postma's model contains many simple errors; in no way does Postma undermine the existence or necessity of the greenhouse effect. |
Minimum description length Minimum message length – Formal information theory restatement of Occam's Razor Newton's flaming laser sword Philosophical razor – Principle or rule of thumb that allows one to eliminate unlikely explanations for a phenomenon Philosophy of science – The philosophical study of the assumptions, foundations, and implications of science Simplicity "Ockham's razor does not say that the more simple a hypothesis, the better." |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
eval_strategy: epochper_device_train_batch_size: 16per_device_eval_batch_size: 16learning_rate: 2e-05num_train_epochs: 4warmup_ratio: 0.1load_best_model_at_end: Trueoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: epochprediction_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: 2e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 4max_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: Trueignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}tp_size: 0fsdp_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: 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: proportional| Epoch | Step | Training Loss | Validation Loss | climate-val-simpler_cosine_ndcg@10 |
|---|---|---|---|---|
| 1.0 | 208 | 0.6011 | 0.6501 | 0.5733 |
| 2.0 | 416 | 0.355 | 0.6107 | 0.5824 |
| 3.0 | 624 | 0.2594 | 0.6122 | 0.5843 |
| 4.0 | 832 | 0.2073 | 0.6029 | 0.5903 |
@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/MiniLM-L12-H384-uncased