Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 14
How to use JLee0/rag-embedder-staria-30epochs with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("JLee0/rag-embedder-staria-30epochs")
sentences = [
"원격 공조가 작동할 때 에어컨의 자동 건조 기능은 어떻게 되나요?",
"화물 고정 장치 주의사항: • 화물 고정 장치(그물망) 안에 부피가 너무 크거나 많은 물건을 넣지 마십시오. 그물망이 손상될 수 있습니다. • 차량 운전 중의 흔들림으로 인해 쉽게 깨질 수 있는 물건은 싣지 마십시오.",
"에어컨 자동 건조 작동 정지 조건: • 10분 동안 작동 후 정지하거나, 시동 버튼 누름, 원격 공조 작동 시 정지됩니다.",
"사고 및 차량 화재 시 응급조치 사고 또는 고장 시 행동 요령 고속도로나 자동차 전용 도로 등에서 사고 또는 고장 발생 시 안전을 고려하여 다음 조치를 취하십시오. 1. 신속히 비상 경고등을 켜고 차량을 갓길로 이동하십시오. 2. 차량 뒤에 안전 삼각대를 설치하십시오. 3. 운전자와 탑승자는 가드레일 바깥과 같은 안전한 곳으로 대피하십시오. 4. 경찰서(112), 소방서(119), 또는 한국도로공사(1588-2504)로 연락하여 도움을 받으십시오. 경고 사고가 발생했을 때는 사고 차량에서 연료가 유출될 수 있습니다. 연료가 유출된 경우 인화, 폭발 등을 방지하기 위해 엔진을 정지시키고 담뱃불 등의 화기를 멀리하십시오. 차량 화재 시 즉시 안전한 장소에 정차하여 엔진을 정지시킨 후 소화기 등으로 진화하십시오. 진화 등의 응급조치를 할 수 없는 상황인 경우, 사람들의 접근을 막고 소방서 및 경찰서에 연락하여 필요한 조치를 취하십시오. 안전을 위해 항상 소화기를 차내에 비치하십시오. 소화기는 소방 기구 판매처에서 구매할 수 있습니다. ※ 화재 발생 시 신속한 조치를 취할 수 있도록 평상시에 소화기 보관 위치(운전석 왼쪽 하단부, 사양 적용 시) 및 사용법을 숙지하십시오. 소화기가 최적의 성능을 발휘할 수 있도록 관리 요령에 따라 정기적으로 점검하십시오. ※ 소화기 사용법 1. 소화기의 안전핀을 뽑으십시오. 2. 바람이 부는 방향을 등지고 서십시오. 3. 레버를 움겨쥐면서 불이 난 곳을 향해 빗자루로 쓸듯이 방사하십시오. LPG 차량 화재 시 1. 엔진을 정지시키십시오. 2. 승객을 대피시키고, 차량 내에 있는 커버를 탈거한 후 연료 수동 차단 밸브①를 잠그십시오. 3. LPG에 불이 붙었을 경우에는 아래와 같은 종류의 소화기를 이용하여 불을 끄십시오. • 분말 소화기 • 탄산가스 소화기 • 하론 소화기 위와 같은 응급조치가 어려운 경우, 차량 주변에 사람들이 접근하지 못하도록 막고 경찰서 또는 소방서에 즉시 연락하십시오."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]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 = [
'빙판길 주행 시 차량의 미끄러짐을 방지하기 위한 타이어 관련 조치는 무엇인가요?',
'눈길, 빙판길 주행 시 주의 사항 • 가속 페달을 서서히 밟아 부드럽게 출발하십시오. • 타이어 체인이나 스노우 타이어를 사용하십시오. • 차간거리를 충분히 유지하고, 브레이크 사용 시는 엔진 브레이크를 사용하십시오. • 주행 중 급가속, 급제동, 과도한 스티어링 휠 조작을 하지 마십시오. 차량이 미끄러질 수 있어 위험합니다',
'주행 중 브레이크 경고등이 켜지는 경우: 브레이크 계통에 이상이 있다는 신호이므로 아래와 같은 방법으로 안전한 장소에 차를 정지시키십시오. 1. 브레이크 페달을 밟아도 제동이 되지 않으면 평상시보다 페달을 강하게 밟아보십시오. 2. 엔진 브레이크를 걸어 속도를 늦추고 파킹 브레이크를 작동시키면서 브레이크 페달을 밟으십시오. 주행 중 경고등이 켜진 상태에서는 급제동하지 말고 서서히 정지하십시오.',
]
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.0314 |
| cosine_accuracy@3 | 0.7397 |
| cosine_accuracy@5 | 0.8645 |
| cosine_accuracy@10 | 0.9438 |
| cosine_precision@1 | 0.0314 |
| cosine_precision@3 | 0.2466 |
| cosine_precision@5 | 0.1729 |
| cosine_precision@10 | 0.0944 |
| cosine_recall@1 | 0.0314 |
| cosine_recall@3 | 0.7397 |
| cosine_recall@5 | 0.8645 |
| cosine_recall@10 | 0.9438 |
| cosine_ndcg@10 | 0.5574 |
| cosine_mrr@10 | 0.4268 |
| cosine_map@100 | 0.4295 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
AUTO STOP 누적 시간을 초기화하려면 어떤 조작을 해야 하나요? |
AUTO STOP 누적 시간: 공회전 제한 시스템에 의해 엔진이 꺼진 상태의 누적 시간을 표시합니다. 스티어링 휠의 OK 스위치를 길게 눌러 정보를 초기화할 수 있습니다. |
주차 브레이크 레버를 당길 때 몇 kg의 힘으로 몇 번 "딸깍" 소리가 나야 정상적으로 작동하는 것입니까? |
주차 브레이크 점검 주차 브레이크 작동 상태 점검 정기 점검 주기에 따라 반드시 안전한 상태에서 주차 브레이크 점검을 실시하십시오. 핸드 주차 브레이크 • 전·후방에 차량이 없는 상태에서 주차 브레이크 레버를 당겨 가파른 언덕길에서 제동이 되는지 점검하십시오. • 평탄하고 안전한 장소에 주차시킨 후, 주차 브레이크가 완전히 해제된 상태에서 주차 브레이크 레버를 20kg의 힘으로 당겼을 때 5~7회 “딸깍” 거리는지 확인하십시오. 주의 주차 브레이크가 작동된 상태에서 주행하면 브레이크 패드의 과다한 마모의 원인이 됩니다. |
자동 변속기를 사용할 때 차량을 멈추기 위해 반드시 해야 하는 것은 무엇인가요? |
자동 변속기 작동 변속 위치별 기능 자동 변속기는 변속 위치, 차량 속도, 가속 페달의 위치에 따라 1속~8속까지 자동으로 변속합니다 'D' 주행, 'R' 후진 및 수동 변속 모드 구간(+, -)에서는 브레이크 페달을 밟고 있지 않으면 가속 페달을 밟지 않아도 차량이 전진하거나 후진합니다 차량을 멈추려면 반드시 브레이크 페달을 밟으십시오 |
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: 30fp16: 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: 30max_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.4587 | 50 | - | 0.5795 |
| 0.9174 | 100 | - | 0.5772 |
| 1.0 | 109 | - | 0.5782 |
| 1.3761 | 150 | - | 0.5838 |
| 1.8349 | 200 | - | 0.5801 |
| 2.0 | 218 | - | 0.5820 |
| 2.2936 | 250 | - | 0.5793 |
| 2.7523 | 300 | - | 0.5841 |
| 3.0 | 327 | - | 0.5892 |
| 3.2110 | 350 | - | 0.5850 |
| 3.6697 | 400 | - | 0.5847 |
| 4.0 | 436 | - | 0.5856 |
| 4.1284 | 450 | - | 0.5828 |
| 4.5872 | 500 | 0.0665 | 0.5835 |
| 5.0 | 545 | - | 0.5891 |
| 5.0459 | 550 | - | 0.5921 |
| 5.5046 | 600 | - | 0.5813 |
| 5.9633 | 650 | - | 0.5854 |
| 6.0 | 654 | - | 0.5891 |
| 6.4220 | 700 | - | 0.5787 |
| 6.8807 | 750 | - | 0.5790 |
| 7.0 | 763 | - | 0.5835 |
| 7.3394 | 800 | - | 0.5749 |
| 7.7982 | 850 | - | 0.5779 |
| 8.0 | 872 | - | 0.5804 |
| 8.2569 | 900 | - | 0.5784 |
| 8.7156 | 950 | - | 0.5720 |
| 9.0 | 981 | - | 0.5762 |
| 9.1743 | 1000 | 0.0241 | 0.5730 |
| 9.6330 | 1050 | - | 0.5804 |
| 10.0 | 1090 | - | 0.5802 |
| 10.0917 | 1100 | - | 0.5803 |
| 10.5505 | 1150 | - | 0.5734 |
| 11.0 | 1199 | - | 0.5769 |
| 11.0092 | 1200 | - | 0.5799 |
| 11.4679 | 1250 | - | 0.5807 |
| 11.9266 | 1300 | - | 0.5738 |
| 12.0 | 1308 | - | 0.5770 |
| 12.3853 | 1350 | - | 0.5744 |
| 12.8440 | 1400 | - | 0.5751 |
| 13.0 | 1417 | - | 0.5806 |
| 13.3028 | 1450 | - | 0.5708 |
| 13.7615 | 1500 | 0.0176 | 0.5744 |
| 14.0 | 1526 | - | 0.5745 |
| 14.2202 | 1550 | - | 0.5766 |
| 14.6789 | 1600 | - | 0.5726 |
| 15.0 | 1635 | - | 0.5778 |
| 15.1376 | 1650 | - | 0.5805 |
| 15.5963 | 1700 | - | 0.5673 |
| 16.0 | 1744 | - | 0.5823 |
| 16.0550 | 1750 | - | 0.5857 |
| 16.5138 | 1800 | - | 0.5710 |
| 16.9725 | 1850 | - | 0.5763 |
| 17.0 | 1853 | - | 0.5756 |
| 17.4312 | 1900 | - | 0.5802 |
| 17.8899 | 1950 | - | 0.5683 |
| 18.0 | 1962 | - | 0.5669 |
| 18.3486 | 2000 | 0.0145 | 0.5729 |
| 18.8073 | 2050 | - | 0.5690 |
| 19.0 | 2071 | - | 0.5736 |
| 19.2661 | 2100 | - | 0.5641 |
| 19.7248 | 2150 | - | 0.5729 |
| 20.0 | 2180 | - | 0.5709 |
| 20.1835 | 2200 | - | 0.5598 |
| 20.6422 | 2250 | - | 0.5666 |
| 21.0 | 2289 | - | 0.5712 |
| 21.1009 | 2300 | - | 0.5692 |
| 21.5596 | 2350 | - | 0.5684 |
| 22.0 | 2398 | - | 0.5760 |
| 22.0183 | 2400 | - | 0.5765 |
| 22.4771 | 2450 | - | 0.5578 |
| 22.9358 | 2500 | 0.0109 | 0.5676 |
| 23.0 | 2507 | - | 0.5663 |
| 23.3945 | 2550 | - | 0.5673 |
| 23.8532 | 2600 | - | 0.5670 |
| 24.0 | 2616 | - | 0.5662 |
| 24.3119 | 2650 | - | 0.5683 |
| 24.7706 | 2700 | - | 0.5724 |
| 25.0 | 2725 | - | 0.5676 |
| 25.2294 | 2750 | - | 0.5641 |
| 25.6881 | 2800 | - | 0.5671 |
| 26.0 | 2834 | - | 0.5615 |
| 26.1468 | 2850 | - | 0.5579 |
| 26.6055 | 2900 | - | 0.5626 |
| 27.0 | 2943 | - | 0.5576 |
| 27.0642 | 2950 | - | 0.5516 |
| 27.5229 | 3000 | 0.0088 | 0.5602 |
| 27.9817 | 3050 | - | 0.5654 |
| 28.0 | 3052 | - | 0.5631 |
| 28.4404 | 3100 | - | 0.5671 |
| 28.8991 | 3150 | - | 0.5668 |
| 29.0 | 3161 | - | 0.5640 |
| 29.3578 | 3200 | - | 0.5619 |
| 29.8165 | 3250 | - | 0.5593 |
| 30.0 | 3270 | - | 0.5574 |
@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