Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 17
How to use Adzpro/embedding_e5 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Adzpro/embedding_e5")
sentences = [
"query: Tình hình thu hồi nợ vay sau ngày kết thúc năm tài chính.",
"passage: Thuyết minh Báo cáo tài chính | Phụ lục 01 | Tài sản khác (Dự án BOT) | Khấu hao trong năm: 141.045.069.151 VNĐ | Giá trị hao mòn lũy kế cuối năm: 765.932.156.281 VNĐ.",
"passage: Thuyết minh Báo cáo tài chính | Thuyết minh V.5b (*) | Tổng các khoản cho vay là 2.261.257.969.704 VNĐ. Tính đến ngày 30/03/2024, công ty đã thu hồi được 1.352.410.295.861 VNĐ.",
"passage: Thuyết minh Báo cáo tài chính riêng | Thuyết minh V.13 | Công ty CP BOT & BT Đức Long Đắk Nông | Tỷ lệ vốn góp 70,60% | Giá gốc đầu tư: 176.500.000.000 VNĐ | Dự phòng tổn thất: 0 VNĐ."
]
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-base. 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': 'XLMRobertaModel'})
(1): Pooling({'embedding_dimension': 768, 'pooling_mode': 'mean', '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("Adzpro/embedding_e5")
# Run inference
queries = [
'query: Vay ngắn hạn từ các công ty liên quan.',
]
documents = [
'passage: Thuyết minh Báo cáo tài chính | Thuyết minh V.22.1 - Vay ngắn hạn các bên liên quan | Công ty CP Đầu tư Xây dựng Đức Long Gia Lai: 25.390.034.377 VNĐ | Hợp đồng vay số 09/2023/HĐ ngày 15/12/2023, thời hạn 60 ngày, lãi suất 9,5%/năm, tín chấp.',
'passage: Báo cáo kết quả hoạt động kinh doanh | Mã số 11 | 4. Giá vốn hàng bán | Thuyết minh VI.2 | Năm nay: 899.483.792.852 VNĐ | Năm trước: 1.020.596.883.021 VNĐ.',
'passage: Thuyết minh Báo cáo tài chính | Thuyết minh V.23.1 | Tài sản thế chấp: Đảm bảo bằng toàn bộ tài sản, quyền tài sản, quyền thu phí hình thành của Dự án BOT Quốc lộ 14 (trạm thu phí, xe ô tô) và số dư tiền gửi tại ngân hàng BIDV.',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 768] [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[ 0.7452, -0.0219, 0.0791]])
Test_Set and Val_SetInformationRetrievalEvaluator| Metric | Test_Set | Val_Set |
|---|---|---|
| cosine_accuracy@1 | 0.8667 | 0.9333 |
| cosine_accuracy@5 | 1.0 | 1.0 |
| cosine_accuracy@10 | 1.0 | 1.0 |
| cosine_precision@1 | 0.8667 | 0.9333 |
| cosine_precision@3 | 0.3333 | 0.3333 |
| cosine_precision@5 | 0.2 | 0.2 |
| cosine_precision@10 | 0.1 | 0.1 |
| cosine_recall@1 | 0.8667 | 0.9333 |
| cosine_recall@3 | 1.0 | 1.0 |
| cosine_recall@5 | 1.0 | 1.0 |
| cosine_recall@10 | 1.0 | 1.0 |
| cosine_ndcg@5 | 0.9464 | 0.9754 |
| cosine_ndcg@10 | 0.9464 | 0.9754 |
| cosine_mrr@1 | 0.8667 | 0.9333 |
| cosine_mrr@5 | 0.9278 | 0.9667 |
| cosine_mrr@10 | 0.9278 | 0.9667 |
| cosine_map@100 | 0.9278 | 0.9667 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| modality | text | text |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
query: Tài sản đảm bảo cho đợt phát hành trái phiếu Công ty. |
passage: Thuyết minh Báo cáo tài chính | Thuyết minh V.23.2 | Trái phiếu bảo lãnh bởi Công ty CP Trồng rừng ĐLGL, Công ty TNHH Đức Long Dung Quất, Công ty CP Tập đoàn Alpha Seven và tài sản cá nhân Ông Bùi Pháp. |
query: Phải thu ngắn hạn khác về lãi cho vay. |
passage: Thuyết minh Báo cáo tài chính | Thuyết minh V.6a - Phải thu ngắn hạn khác | Phải thu về lãi cho vay đối với các tổ chức và cá nhân khác: 631.888.363.243 VNĐ | Dự phòng phải thu lãi cho vay khó đòi: (557.632.111.992) VNĐ. |
query: Tình hình thu hồi nợ vay sau ngày kết thúc năm tài chính. |
passage: Thuyết minh Báo cáo tài chính | Thuyết minh V.5b (*) | Tổng các khoản cho vay là 2.261.257.969.704 VNĐ. Tính đến ngày 30/03/2024, công ty đã thu hồi được 1.352.410.295.861 VNĐ. |
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
}
num_train_epochs: 5multi_dataset_batch_sampler: round_robinper_device_train_batch_size: 8num_train_epochs: 5max_steps: -1learning_rate: 5e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0optim: adamw_torch_fusedoptim_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: Falsebf16_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: 8prediction_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 | Test_Set_cosine_ndcg@10 | Val_Set_cosine_ndcg@10 |
|---|---|---|---|
| -1 | -1 | 0.9464 | - |
| 0.5556 | 10 | - | 0.9385 |
| 1.0 | 18 | - | 0.9341 |
| 1.1111 | 20 | - | 0.9464 |
| 1.6667 | 30 | - | 0.9631 |
| 2.0 | 36 | - | 0.9631 |
| 2.2222 | 40 | - | 0.9631 |
| 2.7778 | 50 | - | 0.9631 |
| 3.0 | 54 | - | 0.9631 |
| 3.3333 | 60 | - | 0.9631 |
| 3.8889 | 70 | - | 0.9754 |
@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},
}