Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 18
How to use annisamukhri/indosbert-climate-faq with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("annisamukhri/indosbert-climate-faq")
sentences = [
"pembangkitan listrik global berasal sumber rendah karbon 2020",
"layar super retina xdr oled iphone 12 pro memiliki resolusi 2532 1170 piksel bezel tipis dibanding iphone generasi lapisan kacakeramik bernama ceramic shield dikembangkan corning inc apple mengklaim ceramic shield memiliki kinerja jatuh 4 kali kuat dibanding kaca ponsel pintar",
"ruu perubahan iklim 2008 dikenal ruu perubahan iklim",
"40 pembangkitan listrik berasal sumber rendah karbon 2020 10 tenaga nuklir 10 tenaga angin matahari 20 tenaga air energi terbarukan"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from denaya/indoSBERT-large. It maps sentences & paragraphs to a 256-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': 1024, '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): Dense({'in_features': 1024, 'out_features': 256, 'bias': True, 'activation_function': 'torch.nn.modules.activation.Tanh'})
)
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("sentence_transformers_model_id")
# Run inference
sentences = [
'1 usul beton',
'concrete berasal latin concretus bentuk pasif sempurna concrescere concrescere berasal con crescere tumbuh',
'pencapaian utama earth summit 1992 meliputi pembentukan unfccc kesepakatan konvensi perubahan iklim kesepakatan aktivitas tanah masyarakat adat menyebabkan degradasi lingkungan sesuai budaya konvensi keanekaragaman hayati dibuka ditandatangani deklarasi rio lingkungan pembangunan agenda 21 prinsipprinsip kehutanan disetujui',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 256]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
indoSBERT-large-evalInformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.836 |
| cosine_accuracy@3 | 0.9212 |
| cosine_accuracy@5 | 0.94 |
| cosine_accuracy@10 | 0.9624 |
| cosine_precision@1 | 0.836 |
| cosine_precision@3 | 0.3071 |
| cosine_precision@5 | 0.188 |
| cosine_precision@10 | 0.0962 |
| cosine_recall@1 | 0.836 |
| cosine_recall@3 | 0.9212 |
| cosine_recall@5 | 0.94 |
| cosine_recall@10 | 0.9624 |
| cosine_ndcg@10 | 0.9018 |
| cosine_mrr@10 | 0.8821 |
| cosine_map@100 | 0.8832 |
question and answer| question | answer | |
|---|---|---|
| type | string | string |
| details |
|
|
| question | answer |
|---|---|
sektor industri dikaitkan konflik lingkungan |
sektor industri dikaitkan konflik lingkungan pertambangan energi fosil biomassa pemanfaatan lahan pengelolaan air sektorsektor mencakup 67 konflik lingkungan terdokumentasi atlas keadilan lingkungan |
ilmu teknik lingkungan berbeda teknik lingkungan ilmu lingkungan |
ilmu teknik lingkungan memiliki mata kuliah teknik lingkungan dibandingkan ilmu lingkungan mata kuliah mengikuti kurikulum teknik lingkungan kuliah mahasiswa teknik lingkungan memilih bidangbidang desain fasilitas penyimpanan nuklir bioreaktor bakteri kebijakan lingkungan mahasiswa teknik lingkungan berfokus pembangunan fasilitas pengolahan penilaian dampak lingkungan mitigasi polusi udara |
perusahaan manakah kali menemukan minyak nigeria |
shellbp menemukan minyak nigeria oloibiri 1956 |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
question and answer| question | answer | |
|---|---|---|
| type | string | string |
| details |
|
|
| question | answer |
|---|---|
dampak potensial perubahan iklim ketersediaan air somalia |
proyeksi ketersediaan air somalia berdasarkan skenario emisi mempertimbangkan pertumbuhan populasi model peningkatan sejalan proyeksi curah hujan mempertimbangkan proyeksi pertumbuhan populasi ketersediaan air kapita berkurang setengahnya 2080 berdasarkan skenario emisi rcp26 rcp60 ketidakpastian seputar volume air tersedia diproyeksikan |
peran neeri rencana implementasi nasional nip pops |
neeri memainkan peran organisasi mitra rencana implementasi nasional nip pop india berkontribusi upaya negara mengatasi polutan organik persisten |
perubahan iklim mempengaruhi pertanian connecticut |
suhu hangat mengurangi hasil industri susu connecticut bernilai 70 juta sapi makan menghasilkan susu cuaca panas peternakan dirugikan harihari panas kekeringan banjir mengurangi hasil panen menunda tanggal tanam peternakan diuntungkan musim tanam efek pemupukan karbon dioksida |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
eval_strategy: stepsper_device_train_batch_size: 16per_device_eval_batch_size: 16learning_rate: 2e-05num_train_epochs: 5warmup_ratio: 0.1fp16: Truebatch_sampler: no_duplicatesoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_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: 5max_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: Truefp16_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: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportional| Epoch | Step | Training Loss | Validation Loss | indoSBERT-large-eval_cosine_ndcg@10 |
|---|---|---|---|---|
| 0 | 0 | - | - | 0.6184 |
| 0.2475 | 100 | 0.3999 | 0.1869 | 0.7909 |
| 0.4950 | 200 | 0.1581 | 0.1060 | 0.8580 |
| 0.7426 | 300 | 0.1107 | 0.0884 | 0.8738 |
| 0.9901 | 400 | 0.1028 | 0.0822 | 0.8872 |
| 1.2376 | 500 | 0.0784 | 0.0694 | 0.8886 |
| 1.4851 | 600 | 0.015 | 0.0764 | 0.8891 |
| 1.7327 | 700 | 0.0052 | 0.0757 | 0.8921 |
| 1.9802 | 800 | 0.0061 | 0.0691 | 0.8914 |
| 2.2277 | 900 | 0.0051 | 0.0723 | 0.8943 |
| 2.4752 | 1000 | 0.0052 | 0.0709 | 0.8950 |
| 2.7228 | 1100 | 0.0013 | 0.0729 | 0.8968 |
| 2.9703 | 1200 | 0.001 | 0.0703 | 0.8984 |
| 3.2178 | 1300 | 0.0019 | 0.0649 | 0.9002 |
| 3.4653 | 1400 | 0.0007 | 0.0654 | 0.8989 |
| 3.7129 | 1500 | 0.0004 | 0.0668 | 0.8997 |
| 3.9604 | 1600 | 0.0005 | 0.0681 | 0.9002 |
| 4.2079 | 1700 | 0.0004 | 0.0676 | 0.9016 |
| 4.4554 | 1800 | 0.001 | 0.0666 | 0.9012 |
| 4.7030 | 1900 | 0.0003 | 0.0667 | 0.9012 |
| 4.9505 | 2000 | 0.0003 | 0.0670 | 0.9018 |
@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
denaya/indoSBERT-large