Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 14
How to use josangho99/e5-Fin with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("josangho99/e5-Fin")
sentences = [
"소방청 국가화재정보센터의 화재현황분석 자료에 따르면 화재건수는 2018년 '42,338건', 2017년 '44,178건'으로 2017년 대비 1,840건이 줄어 화재건수는 소폭 감소(4.16%)하였으나, 주거용 건축물에서 화재건수가 크게 높은 것으로 나타나고 있습니다.",
"자산양수도의 주요사항보고서 제출대상 여부]의 경우, 본 건은 신설되는 법인의 신주를 인수하는 원시취득에 해당하므로 기존 자산의 존재를 전제로 하는 자산양수에 해당하지 않습니다.",
"주요국 중앙은행은 금융위기 이후 양적완화 등의 통화정책을 통해 금융불안 완화를 시도하였으나 시간벌기에 그쳤을 뿐 펀더멘털 개선에는 역부족",
"소방청 국가화재정보센터의 화재현황분석 자료에 따르면 화재건수는 2018년 '42,338건', 2017년 '44,178건'으로 2017년 대비 1,840건이 줄어 화재건수는 소폭 감소(4.16%)하였으나, 주거용 건축물에서 화재건수가 크게 높은 것으로 나타나고 있습니다."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from intfloat/multilingual-e5-small. It maps sentences & paragraphs to a 384-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': 384, '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("josangho99/e5-Fin")
# Run inference
sentences = [
'오세훈 서울시장은 이를 줄기차게 주장해온 경실련 부동산건설개혁본부장 출신의 김헌동씨를 서울주택도시공사(SH) 사장으로 기용했습니다.',
'오세훈 서울시장은 이를 줄기차게 주장해온 경실련 부동산건설개혁본부장 출신의 김헌동씨를 서울주택도시공사(SH) 사장으로 기용했습니다.',
'LS일렉트릭 관계자는 "이번 증설은 세계 시장의 불확실성 속에서도 과감한 투자를 통해 시장을 주도하는 기업으로 도약하겠다는 강력한 의지가 담긴 것"이라고 설명했다.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 1.0000, 0.0671],
# [1.0000, 1.0000, 0.0671],
# [0.0671, 0.0671, 1.0000]])
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
이러한 점에 착안하여 이하에서는 분석대상인 세 가지 변수 중에서 두 가지 이상에서 침체가 동시에 발생하는 경우를 분석하기로 한다. |
이러한 점에 착안하여 이하에서는 분석대상인 세 가지 변수 중에서 두 가지 이상에서 침체가 동시에 발생하는 경우를 분석하기로 한다. |
한편, 당사의 당기 재무제표는 2022년 3월 20일에 개최될 정기주주총회에서 최종 확정 및 승인될 예정입니다. |
한편, 당사의 당기 재무제표는 2022년 3월 20일에 개최될 정기주주총회에서 최종 확정 및 승인될 예정입니다. |
이 경우 “최대주주”는 각각 “외국 금융투자업자”로 본다. |
이 경우 “최대주주”는 각각 “외국 금융투자업자”로 본다. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
per_device_train_batch_size: 16per_device_eval_batch_size: 16num_train_epochs: 4batch_sampler: no_duplicatesmulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_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: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 4max_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: Falsefp16_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: 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: 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: Falseneftune_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: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.2667 | 500 | 0.2368 |
| 0.5333 | 1000 | 0.0029 |
| 0.8 | 1500 | 0.0019 |
| 1.0667 | 2000 | 0.0013 |
| 1.3333 | 2500 | 0.0014 |
| 1.6 | 3000 | 0.002 |
| 1.8667 | 3500 | 0.0006 |
| 2.1333 | 4000 | 0.0001 |
| 2.4 | 4500 | 0.0002 |
| 2.6667 | 5000 | 0.0001 |
| 2.9333 | 5500 | 0.0 |
| 3.2 | 6000 | 0.0 |
| 3.4667 | 6500 | 0.0 |
| 3.7333 | 7000 | 0.0 |
| 4.0 | 7500 | 0.0 |
@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
intfloat/multilingual-e5-small