Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper
•
1908.10084
•
Published
•
9
This is a sentence-transformers model finetuned from BAAI/bge-m3. It maps sentences & paragraphs to a 1024-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': 8192, 'do_lower_case': False}) with Transformer model: XLMRobertaModel
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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("sentence_transformers_model_id")
# Run inference
sentences = [
'차량 운전 시 연료비를 절감할 수 있는 방법에는 어떤 것들이 있나요?',
'경제적 운전\n연료 소모량은 운전자의 운전 습관에 따라 달라\n집니다. 차량을 운전할 때 다음과 같은 사항을\n준수하여 연료비 및 수리비를 절감하십시오.\n• 정차 중에는 엔진을 끄십시오.\n• 경제속도로 운전하십시오.\n• 고속으로 주행할 때는 창문을 닫으십시오.\n• 급출발, 급가속, 급제동을 삼가십시오.\n• 정차 후 가속할 때는 천천히 가속하십시오.\n• 횡 바람과 역 바람이 불 때는 천천히 운전하\n십시오.\n• 차량은 항상 정비가 잘 된 상태로 유지하십\n시오.\n• 에어컨은 필요할 때만 사용하십시오.\n• 도로 조건이 좋지 않은 길은 되도록 피하십\n시오. 비포장도로 주행 시 하부 부품이 손상\n될 수 있으므로 항상 주의하십시오.\n• 불필요한 화물을 싣지 마십시오.\n• 항상 지정된 타이어 공기압을 유지하십시오.\n• 급제동을 피하기 위해 앞차와의 안전거리를\n유지하십시오. 연료를 절감하고 브레이크 패\n드의 마모를 줄일 수 있습니다.\n• 브레이크 페달에 발을 올리고 운전하지 마십\n시오. 연료 소비가 많아지고 브레이크가 손\n상될 수 있습니다.\n• 휠 얼라인먼트를 적절한 상태로 유지하십시\n오. 연료를 절감하고 타이어 마모를 줄일 수\n있습니다.\n• 정기적으로 검사 및 정비를 받으십시오. 부\n품 수명을 늘려 비용을 절감할 수 있습니다.',
'악천후 시의 주행\n• 비나 눈이 내릴 때는 특히 차가 미끄러지기\n쉬우므로 급브레이크 조작을 하지 마십시오.\n• 브레이크 장치가 젖으면 제동이 잘 되지 않\n기 때문에 브레이크 장치가 젖을 정도로 물\n이 많이 고인 곳은 피해서 주행하십시오. 물\n이 고인 곳을 주행하거나 세차한 후에는 반\n드시 브레이크 성능을 점검하고, 물기 있는\n도로를 주행한 후에는 안전거리를 충분히 확\n보하고 천천히 운전하면서 여러 번에 걸쳐\n브레이크를 밟아 브레이크를 건조하십시오.\n• 안개가 끼거나 기상 상태로 인해 시계가 나\n쁠 때는 차의 조명을 켜고 속도를 충분히 낮\n추어 주행하십시오.\n• 폭우가 내릴 때는 시야를 확보하기가 더 어\n려워 제동 거리가 더 많이 필요합니다. 천천\n히 운전하십시오.\n• 와이퍼 상태를 항상 양호하게 관리하십시오.\n• 와이퍼에 줄무늬가 생기거나 유리창이 잘 닦\n이지 않으면 와이퍼 블레이드를 교체하십시\n오.\n• 타이어 상태를 항상 양호하게 관리하십시오.\n타이어의 상태가 좋지 않은 상태로 젖은 길\n이나 빗길에서 급정차하면 타이어가 미끄러\n져 사고가 날 수 있습니다.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
InformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.0435 |
| cosine_accuracy@3 | 0.7448 |
| cosine_accuracy@5 | 0.8641 |
| cosine_accuracy@10 | 0.9474 |
| cosine_precision@1 | 0.0435 |
| cosine_precision@3 | 0.2483 |
| cosine_precision@5 | 0.1728 |
| cosine_precision@10 | 0.0947 |
| cosine_recall@1 | 0.0435 |
| cosine_recall@3 | 0.7448 |
| cosine_recall@5 | 0.8641 |
| cosine_recall@10 | 0.9474 |
| cosine_ndcg@10 | 0.5642 |
| cosine_mrr@10 | 0.4348 |
| cosine_map@100 | 0.4375 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
내비게이션 기반 스마트 크루즈 컨트롤이 작동 대기 상태가 되기 위한 조건은 무엇인가요? |
내비게이션 기반 스마트 크루즈 컨트롤 작동 |
내비게이션 뷰 항목에서는 어떤 종류의 정보가 제공되나요? |
클러스터 표시창 정보 |
조명 스위치가 AUTO 위치에 있을 때 전조등 하향 표시등은 어떻게 작동하나요? |
미등 표시등 |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
eval_strategy: stepsper_device_train_batch_size: 5per_device_eval_batch_size: 5num_train_epochs: 10fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 5per_device_eval_batch_size: 5per_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: 10max_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: 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: 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: round_robin| Epoch | Step | Training Loss | cosine_ndcg@10 |
|---|---|---|---|
| 0.2066 | 50 | - | 0.5694 |
| 0.4132 | 100 | - | 0.5675 |
| 0.6198 | 150 | - | 0.5694 |
| 0.8264 | 200 | - | 0.5676 |
| 1.0 | 242 | - | 0.5630 |
| 1.0331 | 250 | - | 0.5717 |
| 1.2397 | 300 | - | 0.5706 |
| 1.4463 | 350 | - | 0.5675 |
| 1.6529 | 400 | - | 0.5534 |
| 1.8595 | 450 | - | 0.5660 |
| 2.0 | 484 | - | 0.5556 |
| 2.0661 | 500 | 0.0282 | 0.5639 |
| 2.2727 | 550 | - | 0.5486 |
| 2.4793 | 600 | - | 0.5475 |
| 2.6860 | 650 | - | 0.5525 |
| 2.8926 | 700 | - | 0.5400 |
| 3.0 | 726 | - | 0.5515 |
| 3.0992 | 750 | - | 0.5456 |
| 3.3058 | 800 | - | 0.5525 |
| 3.5124 | 850 | - | 0.5576 |
| 3.7190 | 900 | - | 0.5683 |
| 3.9256 | 950 | - | 0.5442 |
| 4.0 | 968 | - | 0.5528 |
| 4.1322 | 1000 | 0.0101 | 0.5480 |
| 4.3388 | 1050 | - | 0.5471 |
| 4.5455 | 1100 | - | 0.5388 |
| 4.7521 | 1150 | - | 0.5438 |
| 4.9587 | 1200 | - | 0.5568 |
| 5.0 | 1210 | - | 0.5567 |
| 5.1653 | 1250 | - | 0.5584 |
| 5.3719 | 1300 | - | 0.5590 |
| 5.5785 | 1350 | - | 0.5556 |
| 5.7851 | 1400 | - | 0.5587 |
| 5.9917 | 1450 | - | 0.5612 |
| 6.0 | 1452 | - | 0.5603 |
| 6.1983 | 1500 | 0.0154 | 0.5640 |
| 6.4050 | 1550 | - | 0.5680 |
| 6.6116 | 1600 | - | 0.5706 |
| 6.8182 | 1650 | - | 0.5636 |
| 7.0 | 1694 | - | 0.5598 |
| 7.0248 | 1700 | - | 0.5602 |
| 7.2314 | 1750 | - | 0.5644 |
| 7.4380 | 1800 | - | 0.5594 |
| 7.6446 | 1850 | - | 0.5576 |
| 7.8512 | 1900 | - | 0.5588 |
| 8.0 | 1936 | - | 0.5619 |
| 8.0579 | 1950 | - | 0.5609 |
| 8.2645 | 2000 | 0.0075 | 0.5619 |
| 8.4711 | 2050 | - | 0.5580 |
| 8.6777 | 2100 | - | 0.5585 |
| 8.8843 | 2150 | - | 0.5585 |
| 9.0 | 2178 | - | 0.5623 |
| 9.0909 | 2200 | - | 0.5616 |
| 9.2975 | 2250 | - | 0.5654 |
| 9.5041 | 2300 | - | 0.5633 |
| 9.7107 | 2350 | - | 0.5641 |
| 9.9174 | 2400 | - | 0.5637 |
| 10.0 | 2420 | - | 0.5642 |
@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
BAAI/bge-m3