Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper
•
1908.10084
•
Published
•
12
This is a sentence-transformers model finetuned from indobenchmark/indobert-base-p2. 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': 'BertModel'})
(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("yosriku/Indobert-Base-p2-Trash-Large-EXP2")
# Run inference
sentences = [
'Siapa yang menjadi target utama sanksi pidana menurut ketentuan Pasal 40 dalam peraturan pengelolaan sampah ini?',
'akan tetapi isi pada Bab XVIII Ketentuan Pidana Pasal 40, hanya menjelaskan bentuk sanksi pidana bagi wajib retribusi yang tidak memenuhi kewajibannya dan berhubungan dengan kerugian keuangan daerah. Tidak terdapat penjelasan tindak',
'. penguasaan metodologi penyusunan amdal; b. kemampuan melakukan pelingkupan, prakiraan, dan evaluasi dampak serta pengambilan keputusan; dan c. kemampuan menyusun rencana pengelolaan dan pemantauan lingkungan hidup',
]
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.6013, 0.0124],
# [0.6013, 1.0000, 0.0353],
# [0.0124, 0.0353, 1.0000]])
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
Apakah warga negara berhak mendapatkan informasi dan pendidikan mengenai lingkungan? |
(2) Setiap orang berhak mendapatkan pendidikan lingkungan hidup, akses informasi, akses partisipasi, dan akses keadilan dalam memenuhi hak atas lingkungan hidup yang baik dan sehat |
Pasal 77 Menteri dapat menerapkan sanksi administratif terhadap penanggung jawab usaha dan/atau kegiatan jika Pemerintah menganggap pemerintah daerah secara sengaja tidak menerapkan sanksi administratif terhadap pelanggaran yang serius di bidang perlindungan dan pengelolaan lingkungan hidup |
kalimat ini menjadi kalimat tanya: apa di rumah?! |
untuk mengubah sampah menjadi sesuatu yang memiliki nilai ekonomis dan mengelola sampah agar menjadi sesuatu yang tidak membahayakan bagi lingkungan hidup. Konsep pengelolaan sampah adalah mencegah timbulan sampah secara |
pemilahan dalam bentuk pengelompokan dan pemisahan sampah sesuai dengan jenis, jumlah, dan/atau sifat sampah; b |
dengan kalimat ini; Jika tidak, jangan salah!: Peraturan apa yang mengatur baku mutu air laut? (Kamus lama). Lalu saja kalimat: Apakah? |
(4) Ketentuan lebih lanjut mengenai baku mutu lingkungan hidup sebagaimana dimaksud pada ayat (2) huruf a, huruf c, huruf d, dan huruf g diatur dalam Peraturan Pemerintah |
Menurut Masjhoer [3], Perlu dilakukan kajian terkait pengelolaan sampah di Kawasan Wisata Pantai Parangtritis dari berbagai aspek, termasuk aspek teknologi pengolahan sampah |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
per_device_train_batch_size: 64learning_rate: 2e-05fp16: Truepush_to_hub: Truehub_model_id: yosriku/Indobert-Base-p2-Trash-Large-EXP2hub_strategy: endhub_private_repo: Falseoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 64per_device_eval_batch_size: 8per_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: 3max_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: 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}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_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: Trueresume_from_checkpoint: Nonehub_model_id: yosriku/Indobert-Base-p2-Trash-Large-EXP2hub_strategy: endhub_private_repo: Falsehub_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: noneftune_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: Trueprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.0847 | 10 | 3.8625 |
| 0.1695 | 20 | 3.4011 |
| 0.2542 | 30 | 3.2209 |
| 0.3390 | 40 | 3.1328 |
| 0.4237 | 50 | 3.0992 |
| 0.5085 | 60 | 3.0913 |
| 0.5932 | 70 | 3.0271 |
| 0.6780 | 80 | 2.9523 |
| 0.7627 | 90 | 2.9727 |
| 0.8475 | 100 | 2.9186 |
| 0.9322 | 110 | 2.9728 |
| 1.0169 | 120 | 2.8646 |
| 1.1017 | 130 | 2.4617 |
| 1.1864 | 140 | 2.4046 |
| 1.2712 | 150 | 2.5214 |
| 1.3559 | 160 | 2.394 |
| 1.4407 | 170 | 2.4987 |
| 1.5254 | 180 | 2.5064 |
| 1.6102 | 190 | 2.4639 |
| 1.6949 | 200 | 2.4936 |
| 1.7797 | 210 | 2.3626 |
| 1.8644 | 220 | 2.5017 |
| 1.9492 | 230 | 2.3211 |
| 2.0339 | 240 | 2.3051 |
| 2.1186 | 250 | 2.0179 |
| 2.2034 | 260 | 2.1431 |
| 2.2881 | 270 | 2.208 |
| 2.3729 | 280 | 2.0765 |
| 2.4576 | 290 | 2.0265 |
| 2.5424 | 300 | 1.9875 |
| 2.6271 | 310 | 2.052 |
| 2.7119 | 320 | 2.1863 |
| 2.7966 | 330 | 2.0902 |
| 2.8814 | 340 | 2.0625 |
| 2.9661 | 350 | 2.0872 |
@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
indobenchmark/indobert-base-p2