Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 16
How to use Nimsara2001/labse-sinhala-finetuned with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Nimsara2001/labse-sinhala-finetuned")
sentences = [
"(විද්යා ප්රබන්ධයන්හි එවන් ස්වයං තීරණය කිරීමේ හැකියාවන් ඇති බුද්ධිමය පරිගණක පිළිබඳව කතා කළත් තවමත් එම සංකල්පය ඇත්තේ පරික්ෂණ මට්මේය.",
"එය කාර්යකෂමව, නිවැරදිව ක්රියාත්මක වන්නේ පරිශීලකයා විසින් ලබාදෙන තොරතුරු වල නිවැරදි තාව මතය.",
"මෙයට අමතරව, 1019 වගන්තිය (මෙහි නියම කර තිබුණේ, විවාපත් යුවලකගේ හවුල් දේපොළ කළමනාකරණය කළ හැක්කේ සැමියාට පමණක් බවත්, ඔහුගේ බිරිඳට මුලදී අයිතිව තිබූ දේපොළ පරිහරණය කිරීමට හෝ එය වෙතින් ලාභ උපැයීමට හෝ ඔහුට අයිතිවාසිකම් ඇති බවත්, එනමුදු ප්රතිලෝම වශයෙන් එය ක්රියාත්මක නොවන බවත්ය ) අවලංගු කෙරිණි.",
"විවිධ වූ කාර්යන් සඳහා පරිගණකය භාවිතා කළ හැකි වීම එහි ඇති විශේෂ ලක්ෂණයකි."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from sentence-transformers/LaBSE. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for retrieval.
SentenceTransformer(
(0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'BertModel'})
(1): Pooling({'embedding_dimension': 768, 'pooling_mode': 'cls', 'include_prompt': True})
(2): Dense({'in_features': 768, 'out_features': 768, 'bias': True, 'activation_function': 'torch.nn.modules.activation.Tanh', 'module_input_name': 'sentence_embedding', 'module_output_name': 'sentence_embedding'})
(3): 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("sentence_transformers_model_id")
# Run inference
sentences = [
'ආසන්න වශයෙන් සන්නද්ධ සේවා සහ පොලිස් නිලධාරීන් 75ක් වඩා හොඳ පරිපාලනය සඳහා අනුයුක්ත කරන ලදී.',
'සිවිල් ආරක්ෂක දෙපාර්තමේන්තුවේ වත්මන් තුන්වන අධ්\u200dයක්ෂ ජනරාල්\xa0චන්ද්\u200dරරත්න පල්ලේගම ( MA, BSc (Hons), PgD, JP (All-Island), FCPM, MAAT (SL) ),\xa0මහතා ශ්\u200dරි ලංකා පරිපාලන සේවයේ (SLAS) විශේෂ ශ්\u200dරේණියේ නිලධාරියෙකි',
'39,800 කට අධික පිරිසක් සියලු දිස්ත්\u200dරික්ක සහ පළාත්වල සේවය කරන නමුත් , ඉන් බොහෝ පිරිසක් උතුරු හා නැගෙනහිර පළාත්වල, එල්ටීටීඊ ප්\u200dරහාර එල්ල වීමෙන්\xa0පීඩාවට පත් ගම්මානවල සේවයේ යොදවා ඇත .',
]
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.6430, 0.5702],
# [0.6430, 1.0000, 0.2757],
# [0.5702, 0.2757, 1.0000]])
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| modality | text | text | text |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
කෙසේනමුත්, මෙම පංච රථ ඉන්දියානු දේවාල ගෘහනිර්මාණ ශිල්පයේ ප්රගමනයට පූර්වාදර්ශයක් වී ඇත. |
සෙස පංච රථ සතර මෙන් මෙම පාෂාණමය රථය ද මින් පෙර පැවති දැවමය නිර්මාණයක අනුරුවක් විය හැක. |
සියලුම පංච රථ උතුරු-දකුණු දිශානතිය ඔස්සේ පිහිටා ඇති අතර, පොදු පාදමක පිහිටා ඇත.මේවාට පෙර කිසිදු මේ ආකාරයේ ගෘහනිර්මාණ ක්රමවේදයක් දක්නට නොලැබෙන අතර, ඒවා පසුකාලීන විශාල දකුණු ඉන්දියානු ද්රවිඩියානු දේවාල ගෘහනිර්මාණ සඳහා "මූලාදර්ශ" වන්නට ඇතැයි විශ්වාස කෙරේ. |
සතර දේවාලයේ කප් සිටුවයි. |
දිය කපන දිනයේ උගුල්ලා ගඟට විසි කරන්නේ මෙම කපයි.පාන්දර හතරට පමණ කප් සිටුවන අතර අලුත් නුවර සිට කප ගෙන ඒමද සිරිතකි. |
හය වන දවසේ ඇරඹෙන්නේ කුඹල් පෙරහැරයි. |
විශාල වළාකුලක් එයට සමාන බූ සීමා විශාලත්වයකින් යුතු ඉතා නොගැඹුරු වතුර වලක ඇති තරම් ජලය ඇත. |
මෙම විද්යාවේ වෛද්ය විද්යාත්මක අතින් වැදගත් වන්නේ වාතය හරහා බෝවන රෝග පිළිබඳ අධ්යයනයයි. |
ඉන් පසුව ජූලි 27 දින ප්රාණ රහිත ඔහුගේ දේහය ඇඳ අසල තිබෙනු උපස්ථායකයා විසින් දක්නා ලදී. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false,
"directions": [
"query_to_doc"
],
"partition_mode": "joint",
"hardness_mode": null,
"hardness_strength": 0.0
}
per_device_train_batch_size: 16num_train_epochs: 1fp16: Trueper_device_eval_batch_size: 16multi_dataset_batch_sampler: round_robinper_device_train_batch_size: 16num_train_epochs: 1max_steps: -1learning_rate: 5e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0optim: adamw_torchoptim_args: Noneweight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 1average_tokens_across_devices: Truemax_grad_norm: 1label_smoothing_factor: 0.0bf16: Falsefp16: Truebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Nonetorch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneuse_liger_kernel: Falseliger_kernel_config: Noneuse_cache: Falseneftune_noise_alpha: Nonetorch_empty_cache_steps: Noneauto_find_batch_size: Falselog_on_each_node: Truelogging_nan_inf_filter: Trueinclude_num_input_tokens_seen: nolog_level: passivelog_level_replica: warningdisable_tqdm: Falseproject: huggingfacetrackio_space_id: Nonetrackio_bucket_id: Nonetrackio_static_space_id: Noneper_device_eval_batch_size: 16prediction_loss_only: Trueeval_on_start: Falseeval_do_concat_batches: Trueeval_use_gather_object: Falseeval_accumulation_steps: Noneinclude_for_metrics: []batch_eval_metrics: Falsesave_only_model: Falsesave_on_each_node: Falseenable_jit_checkpoint: Falsepush_to_hub: Falsehub_private_repo: Nonehub_model_id: Nonehub_strategy: every_savehub_always_push: Falsehub_revision: Noneload_best_model_at_end: Falseignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 42data_seed: Noneuse_cpu: Falseaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedataloader_drop_last: Falsedataloader_num_workers: 0dataloader_pin_memory: Truedataloader_persistent_workers: Falsedataloader_prefetch_factor: Noneremove_unused_columns: Truelabel_names: Nonetrain_sampling_strategy: randomlength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falseddp_static_graph: Noneddp_backend: Noneddp_timeout: 1800fsdp: Nonefsdp_config: Nonedeepspeed: Nonedebug: []skip_memory_metrics: Truedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: Nonelocal_rank: -1prompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.0305 | 500 | 1.5952 |
| 0.0609 | 1000 | 1.1837 |
| 0.0914 | 1500 | 1.0741 |
| 0.1218 | 2000 | 1.0447 |
| 0.1523 | 2500 | 1.0214 |
| 0.1827 | 3000 | 0.9567 |
| 0.2132 | 3500 | 0.9446 |
| 0.2436 | 4000 | 0.9445 |
| 0.2741 | 4500 | 0.9084 |
| 0.3046 | 5000 | 0.9049 |
| 0.3350 | 5500 | 0.8879 |
| 0.3655 | 6000 | 0.8746 |
| 0.3959 | 6500 | 0.8342 |
| 0.4264 | 7000 | 0.8318 |
| 0.4568 | 7500 | 0.8514 |
| 0.4873 | 8000 | 0.8166 |
| 0.5178 | 8500 | 0.8046 |
| 0.5482 | 9000 | 0.8257 |
| 0.5787 | 9500 | 0.8034 |
| 0.6091 | 10000 | 0.7874 |
| 0.6396 | 10500 | 0.7786 |
| 0.6700 | 11000 | 0.7563 |
| 0.7005 | 11500 | 0.7778 |
| 0.7309 | 12000 | 0.7434 |
| 0.7614 | 12500 | 0.7495 |
| 0.7919 | 13000 | 0.7639 |
| 0.8223 | 13500 | 0.7398 |
| 0.8528 | 14000 | 0.7493 |
| 0.8832 | 14500 | 0.7284 |
| 0.9137 | 15000 | 0.7317 |
| 0.9441 | 15500 | 0.7351 |
| 0.9746 | 16000 | 0.7062 |
| 0.0305 | 500 | 0.6713 |
| 0.0609 | 1000 | 0.6940 |
| 0.0914 | 1500 | 0.6673 |
| 0.1218 | 2000 | 0.6850 |
| 0.1523 | 2500 | 0.7092 |
| 0.1827 | 3000 | 0.6829 |
| 0.2132 | 3500 | 0.6903 |
| 0.2436 | 4000 | 0.6828 |
| 0.2741 | 4500 | 0.6641 |
| 0.3046 | 5000 | 0.6574 |
| 0.3350 | 5500 | 0.6672 |
| 0.3655 | 6000 | 0.6652 |
| 0.3959 | 6500 | 0.6573 |
| 0.4264 | 7000 | 0.6644 |
| 0.4568 | 7500 | 0.6387 |
| 0.4873 | 8000 | 0.6370 |
| 0.5178 | 8500 | 0.6411 |
| 0.5482 | 9000 | 0.6358 |
| 0.5787 | 9500 | 0.6207 |
| 0.6091 | 10000 | 0.6037 |
| 0.6396 | 10500 | 0.6328 |
| 0.6700 | 11000 | 0.6017 |
| 0.7005 | 11500 | 0.6248 |
| 0.7309 | 12000 | 0.5891 |
| 0.7614 | 12500 | 0.5956 |
| 0.7919 | 13000 | 0.5924 |
| 0.8223 | 13500 | 0.5777 |
| 0.8528 | 14000 | 0.5891 |
| 0.8832 | 14500 | 0.5714 |
| 0.9137 | 15000 | 0.5815 |
| 0.9441 | 15500 | 0.5812 |
| 0.9746 | 16000 | 0.5578 |
| 0.0305 | 500 | 0.1675 |
| 0.0609 | 1000 | 0.1821 |
| 0.0914 | 1500 | 0.1734 |
| 0.1218 | 2000 | 0.1907 |
| 0.1523 | 2500 | 0.2056 |
| 0.1827 | 3000 | 0.1925 |
| 0.2132 | 3500 | 0.2149 |
| 0.2436 | 4000 | 0.2120 |
| 0.2741 | 4500 | 0.2132 |
| 0.3046 | 5000 | 0.2159 |
| 0.3350 | 5500 | 0.2291 |
| 0.3655 | 6000 | 0.2418 |
| 0.3959 | 6500 | 0.2509 |
| 0.4264 | 7000 | 0.2597 |
| 0.4568 | 7500 | 0.2718 |
| 0.4873 | 8000 | 0.2700 |
| 0.5178 | 8500 | 0.2905 |
| 0.5482 | 9000 | 0.3004 |
| 0.5787 | 9500 | 0.3076 |
| 0.6091 | 10000 | 0.3025 |
| 0.6396 | 10500 | 0.3435 |
| 0.6700 | 11000 | 0.3351 |
| 0.7005 | 11500 | 0.3889 |
| 0.7309 | 12000 | 0.3750 |
| 0.7614 | 12500 | 0.3977 |
| 0.7919 | 13000 | 0.4149 |
| 0.8223 | 13500 | 0.4214 |
| 0.8528 | 14000 | 0.4504 |
| 0.8832 | 14500 | 0.4687 |
| 0.9137 | 15000 | 0.4966 |
| 0.9441 | 15500 | 0.5326 |
| 0.9746 | 16000 | 0.5350 |
| 0.0305 | 500 | 0.0357 |
| 0.0609 | 1000 | 0.0421 |
| 0.0914 | 1500 | 0.0443 |
| 0.1218 | 2000 | 0.0545 |
| 0.1523 | 2500 | 0.0527 |
| 0.1827 | 3000 | 0.0509 |
| 0.2132 | 3500 | 0.0579 |
| 0.2436 | 4000 | 0.0543 |
| 0.2741 | 4500 | 0.0620 |
| 0.3046 | 5000 | 0.0640 |
| 0.3350 | 5500 | 0.0656 |
| 0.3655 | 6000 | 0.0689 |
| 0.3959 | 6500 | 0.0721 |
| 0.4264 | 7000 | 0.0798 |
| 0.4568 | 7500 | 0.0835 |
| 0.4873 | 8000 | 0.0870 |
| 0.5178 | 8500 | 0.0944 |
| 0.5482 | 9000 | 0.1082 |
| 0.5787 | 9500 | 0.1137 |
| 0.6091 | 10000 | 0.1115 |
| 0.6396 | 10500 | 0.1397 |
| 0.6700 | 11000 | 0.1484 |
| 0.7005 | 11500 | 0.1895 |
| 0.7309 | 12000 | 0.1975 |
| 0.7614 | 12500 | 0.2279 |
| 0.7919 | 13000 | 0.2547 |
| 0.8223 | 13500 | 0.2777 |
| 0.8528 | 14000 | 0.3216 |
| 0.8832 | 14500 | 0.3612 |
| 0.9137 | 15000 | 0.4126 |
| 0.9441 | 15500 | 0.4811 |
| 0.9746 | 16000 | 0.5160 |
| 0.0305 | 500 | 0.0112 |
| 0.0609 | 1000 | 0.0173 |
| 0.0914 | 1500 | 0.0166 |
| 0.1218 | 2000 | 0.0204 |
| 0.1523 | 2500 | 0.0221 |
| 0.1827 | 3000 | 0.0197 |
| 0.2132 | 3500 | 0.0231 |
| 0.2436 | 4000 | 0.0218 |
| 0.2741 | 4500 | 0.0234 |
| 0.3046 | 5000 | 0.0245 |
| 0.3350 | 5500 | 0.0237 |
| 0.3655 | 6000 | 0.0255 |
| 0.3959 | 6500 | 0.0262 |
| 0.4264 | 7000 | 0.0298 |
| 0.4568 | 7500 | 0.0337 |
| 0.4873 | 8000 | 0.0332 |
| 0.5178 | 8500 | 0.0334 |
| 0.5482 | 9000 | 0.0406 |
| 0.5787 | 9500 | 0.0451 |
| 0.6091 | 10000 | 0.0445 |
| 0.6396 | 10500 | 0.0568 |
| 0.6700 | 11000 | 0.0589 |
| 0.7005 | 11500 | 0.0869 |
| 0.7309 | 12000 | 0.0951 |
| 0.7614 | 12500 | 0.1140 |
| 0.7919 | 13000 | 0.1461 |
| 0.8223 | 13500 | 0.1731 |
| 0.8528 | 14000 | 0.2140 |
| 0.8832 | 14500 | 0.2686 |
| 0.9137 | 15000 | 0.3328 |
| 0.9441 | 15500 | 0.4245 |
| 0.9746 | 16000 | 0.5006 |
| 0.0305 | 500 | 0.0048 |
| 0.0609 | 1000 | 0.0107 |
| 0.0914 | 1500 | 0.0111 |
| 0.1218 | 2000 | 0.0112 |
| 0.1523 | 2500 | 0.0104 |
| 0.1827 | 3000 | 0.0111 |
| 0.2132 | 3500 | 0.0114 |
| 0.2436 | 4000 | 0.0108 |
| 0.2741 | 4500 | 0.0107 |
| 0.3046 | 5000 | 0.0127 |
| 0.3350 | 5500 | 0.0132 |
| 0.3655 | 6000 | 0.0132 |
| 0.3959 | 6500 | 0.0140 |
| 0.4264 | 7000 | 0.0138 |
| 0.4568 | 7500 | 0.0164 |
| 0.4873 | 8000 | 0.0173 |
| 0.5178 | 8500 | 0.0159 |
| 0.5482 | 9000 | 0.0197 |
| 0.5787 | 9500 | 0.0205 |
| 0.6091 | 10000 | 0.0212 |
| 0.6396 | 10500 | 0.0261 |
| 0.6700 | 11000 | 0.0274 |
| 0.7005 | 11500 | 0.0413 |
| 0.7309 | 12000 | 0.0509 |
| 0.7614 | 12500 | 0.0586 |
| 0.7919 | 13000 | 0.0796 |
| 0.8223 | 13500 | 0.1056 |
| 0.8528 | 14000 | 0.1412 |
| 0.8832 | 14500 | 0.1975 |
| 0.9137 | 15000 | 0.2672 |
| 0.9441 | 15500 | 0.3724 |
| 0.9746 | 16000 | 0.4738 |
| 0.0305 | 500 | 0.0024 |
| 0.0609 | 1000 | 0.0040 |
| 0.0914 | 1500 | 0.0034 |
| 0.1218 | 2000 | 0.0060 |
| 0.1523 | 2500 | 0.0082 |
| 0.1827 | 3000 | 0.0075 |
| 0.2132 | 3500 | 0.0074 |
| 0.2436 | 4000 | 0.0069 |
| 0.2741 | 4500 | 0.0082 |
| 0.3046 | 5000 | 0.0076 |
| 0.3350 | 5500 | 0.0100 |
| 0.3655 | 6000 | 0.0084 |
| 0.3959 | 6500 | 0.0093 |
| 0.4264 | 7000 | 0.0097 |
| 0.4568 | 7500 | 0.0104 |
| 0.4873 | 8000 | 0.0097 |
| 0.5178 | 8500 | 0.0100 |
| 0.5482 | 9000 | 0.0119 |
| 0.5787 | 9500 | 0.0122 |
| 0.6091 | 10000 | 0.0138 |
| 0.6396 | 10500 | 0.0155 |
| 0.6700 | 11000 | 0.0186 |
| 0.7005 | 11500 | 0.0242 |
| 0.7309 | 12000 | 0.0276 |
| 0.7614 | 12500 | 0.0359 |
| 0.7919 | 13000 | 0.0489 |
| 0.8223 | 13500 | 0.0683 |
| 0.8528 | 14000 | 0.0981 |
| 0.8832 | 14500 | 0.1450 |
| 0.9137 | 15000 | 0.2173 |
| 0.9441 | 15500 | 0.3247 |
| 0.9746 | 16000 | 0.4529 |
| 0.0305 | 500 | 0.0025 |
| 0.0609 | 1000 | 0.0042 |
| 0.0914 | 1500 | 0.0038 |
| 0.1218 | 2000 | 0.0057 |
| 0.1523 | 2500 | 0.0068 |
| 0.1827 | 3000 | 0.0052 |
| 0.2132 | 3500 | 0.0058 |
| 0.2436 | 4000 | 0.0056 |
| 0.2741 | 4500 | 0.0058 |
| 0.3046 | 5000 | 0.0047 |
| 0.3350 | 5500 | 0.0056 |
| 0.3655 | 6000 | 0.0065 |
| 0.3959 | 6500 | 0.0069 |
| 0.4264 | 7000 | 0.0054 |
| 0.4568 | 7500 | 0.0060 |
| 0.4873 | 8000 | 0.0065 |
| 0.5178 | 8500 | 0.0063 |
| 0.5482 | 9000 | 0.0077 |
| 0.5787 | 9500 | 0.0081 |
| 0.6091 | 10000 | 0.0077 |
| 0.6396 | 10500 | 0.0098 |
| 0.6700 | 11000 | 0.0116 |
| 0.7005 | 11500 | 0.0149 |
| 0.7309 | 12000 | 0.0177 |
| 0.7614 | 12500 | 0.0188 |
| 0.7919 | 13000 | 0.0301 |
| 0.8223 | 13500 | 0.0415 |
| 0.8528 | 14000 | 0.0631 |
| 0.8832 | 14500 | 0.1010 |
| 0.9137 | 15000 | 0.1621 |
| 0.9441 | 15500 | 0.2720 |
| 0.9746 | 16000 | 0.4265 |
Evaluated on a held-out split of topically-coherent sentence pairs (positives) against paragraph-boundary hard negatives, used as the coherence signal in akshara-kit's neuro-symbolic chunker:
| AUC | mean sim, coherent | mean sim, hard-negative | |
|---|---|---|---|
| Base LaBSE | 0.7269 | 0.3871 | 0.2746 |
| Fine-tuned (this model) | 0.8832 | 0.5313 | 0.1620 |
Bootstrap 95% CI on the AUC improvement over base LaBSE: [+0.1419, +0.1694].
@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{oord2019representationlearningcontrastivepredictive,
title={Representation Learning with Contrastive Predictive Coding},
author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
year={2019},
eprint={1807.03748},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/1807.03748},
}
Base model
sentence-transformers/LaBSE