Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper
•
1908.10084
•
Published
•
10
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}) with Transformer model: 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})
(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 = [
'query: Quy định về xử lý dữ liệu cá nhân của trẻ em áp dụng từ ngày nào?',
'passage: nghị định này có hiệu lực thi hành kể từ ngày ký ban hành các quy định tại khoản 2 khoản 3 khoản 4 điều 1 nghị định này có hiệu lực thi hành kể từ ngày 01 tháng 01 năm 2021',
"['passage: xử lý dữ liệu cá nhân của trẻ em 2 việc xử lý dữ liệu cá nhân của trẻ em phải có sự đồng ý của trẻ em trong trường hợp trẻ em từ đủ 7 tuổi trở lên và có sự đồng ý của cha mẹ hoặc người giám hộ theo quy định trừ trường hợp quy định tại điều 17 nghị định này bên kiểm soát dữ liệu cá nhân bên xử lý dữ liệu cá nhân bên kiểm soát và xử lý dữ liệu cá nhân bên thứ ba phải xác minh tuổi của trẻ em trước khi xử lý dữ liệu cá nhân của trẻ em'\n 'passage: khoản 1 phạt tiền từ 200 000 đồng đến 500 000 đồng đối với một trong các hành vi sau đây: a người say rượu vào vũ trường nơi khiêu vũ công cộng phòng hát karaoke; b cho thuê cho mượn địa điểm làm vũ trường nơi khiêu vũ công cộng hoạt động karaoke mà không giám sát để xảy ra hoạt động mại dâm nghiện hút ma tuý đánh bạc; c sử dụng vũ nữ mà không đăng ký danh sách với cơ quan công an có thẩm quyền'\n 'passage: nghị định này quy định thi hành bộ luật dân sự về bảo đảm thực hiện nghĩa vụ bao gồm tài sản bảo đảm; xác lập thực hiện biện pháp bảo đảm thực hiện nghĩa vụ (sau đây gọi là biện pháp bảo đảm) và xử lý tài sản bảo đảm'\n 'passage: khoản 3 quá thời hạn 07 ngày kể từ thời điểm ấn định trong thỏa thuận bàn giao người đang chấp hành án phạt tù mà nước yêu cầu chuyển giao không tiếp nhận chuyển giao mà không có lý do chính đáng thì cơ quan đầu mối của bộ công an về công tác chuyển giao người đang chấp hành án phạt tù lập biên bản về việc này và thông báo ngay cho tòa án đã ra quyết định chuyển giao biết để xem xét hủy quyết định thi hành quyết định chuyển giao đồng thời thông báo cho nước yêu cầu chuyển giao biết'\n 'passage: các đơn vị bộ phận trong ban chỉ đạo 389 bộ tài chính 1 đơn vị thường trực ban chỉ đạo 389 bộ tài chính là tổng cục hải quan 2 bộ phận tham mưu giúp việc cho các phó trưởng ban trong việc triển khai công tác của ban chỉ đạo 389 bộ tài chính và ban chỉ đạo 389 quốc gia bao gồm: a) tổng cục thuế: thanh tra; b) tổng cục hải quan: công chức tổng cục hải quan được cử biệt phái sang văn phòng thường trực ban chỉ đạo 389 quốc gia 3 các đơn vị có lãnh đạo là thành viên ban chỉ đạo 389 bộ tài chính có trách nhiệm phân công cán bộ giúp việc cho lãnh đạo đơn vị mình'\n 'passage: hủy quyết định hoãn chấp hành án phạt tù 1 tòa án xem xét hủy quyết định hoãn chấp hành án phạt tù trong các trường hợp sau: a) người được hoãn chấp hành án phạt tù không cam kết chấp hành nghiêm chỉnh pháp luật hoặc thực hiện hành vi phạm tội mới bỏ trốn hoặc vi phạm pháp luật gây ảnh hưởng xấu đến an ninh trật tự an toàn xã hội; b) người được hoãn chấp hành án phạt tù có kết quả giám định xác định họ mắc bệnh tâm thần bệnh khác làm mất khả năng nhận thức hoặc khả năng điều khiển hành vi; c) người được hoãn chấp hành án phạt tù có kết quả giám định xác định họ đã hồi phục sức khỏe và đã bị đưa đến nơi chấp hành án phạt tù; d) người được hoãn chấp hành án phạt tù có đơn tự nguyện xin chấp hành án phạt tù']",
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
query: Quân nhân dự bị được xếp trong đơn vị dự bị động viên thì phải có trách nhiệm như thế nào? |
passage: "điều 4 trách nhiệm của quân nhân dự bị được xếp trong đơn vị dự bị động viên 1 quân nhân dự bị được xếp trong đơn vị dự bị động viên có trách nhiệm sau đây: a) kiểm tra sức khỏe; b) thực hiện lệnh gọi huấn luyện diễn tập kiểm tra sẵn sàng động viên sẵn sàng chiến đấu; c) thực hiện chế độ sinh hoạt đơn vị dự bị động viên và nhiệm vụ do người chỉ huy giao; d) thực hiện lệnh huy động để bổ sung cho lực lượng thường trực của quân đội nhân dân 2 quân nhân dự bị giữ chức vụ chỉ huy đơn vị dự bị động viên có trách nhiệm sau đây: a) thực hiện quy định tại khoản 1 điều này; b) nắm tình hình số lượng chất lượng đơn vị; duy trì đơn vị sinh hoạt theo chế độ và thực hiện chế độ báo cáo; c) quản lý chỉ huy đơn vị khi huấn luyện diễn tập kiểm tra sẵn sàng động viên sẵn sàng chiến đấu; d) quản lý chỉ huy đơn vị để bổ sung cho lực lượng thường trực của quân đội nhân dân " |
['passage: thông tư này quy định hình thức nội dung thời gian sinh hoạt của quân nhân dự bị đã xếp vào đơn vị dự bị động viên' |
query: Quân nhân chuyên nghiệp dự bị và hạ sĩ quan, binh sĩ dự bị sắp xếp vào đơn vị dự bị động viên là bao nhiêu tuổi? |
passage: "điều 17 độ tuổi quân nhân dự bị sắp xếp vào đơn vị dự bị động viên trong thời bình 1 độ tuổi sĩ quan dự bị sắp xếp vào đơn vị dự bị động viên thực hiện theo quy định của luật sĩ quan quân đội nhân dân việt nam 2 độ tuổi quân nhân chuyên nghiệp dự bị và hạ sĩ quan binh sĩ dự bị sắp xếp vào đơn vị dự bị động viên được quy định như sau: a) nam quân nhân chuyên nghiệp dự bị không quá 40 tuổi; hạ sĩ quan binh sĩ dự bị không quá 35 tuổi được sắp xếp vào đơn vị chiến đấu; b) nam quân nhân chuyên nghiệp dự bị và hạ sĩ quan binh sĩ dự bị không quá 45 tuổi; nữ quân nhân dự bị không quá 40 tuổi được sắp xếp vào đơn vị bảo đảm chiến đấu " |
['passage: nhóm tuổi phục vụ của hạ sĩ quan binh sĩ dự bị 1 tuổi phục vụ của hạ sĩ quan binh sĩ dự bị được chia thành hai nhóm như sau: 1 nhóm a: công dân nam đến hết 35 tuổi công dân nữ đến hết 30 tuổi; 2 nhóm b: công dân nam từ 36 tuổi đến hết 45 tuổi công dân nữ từ 31 tuổi đến hết 40 tuổi' |
query: Văn phòng Bộ Văn hóa Thể thao và Du lịch có con dấu và tài khoản riêng hay không? |
passage: vị trí và chức năng văn phòng bộ là tổ chức hành chính thuộc bộ văn hóa thể thao và du lịch có chức năng tham mưu tổng hợp điều phối giúp bộ trưởng tổ chức các hoạt động chung của bộ; theo dõi đôn đốc các tổ chức đơn vị thuộc bộ thực hiện chương trình kế hoạch công tác của bộ; kiểm soát thủ tục hành chính cải cách hành chính tổ chức triển khai thực hiện cơ chế một cửa một cửa liên thông trong giải quyết thủ tục hành chính theo quy định của pháp luật; bảo đảm điều kiện vật chất kỹ thuật phương tiện làm việc cho hoạt động của lãnh đạo bộ và các cơ quan tổ chức đơn vị sử dụng ngân sách qua văn phòng bộ văn phòng bộ có con dấu riêng và có tài khoản để giao dịch theo quy định của pháp luật |
['passage: khoản 3 sở văn hóa thể thao và du lịch sở văn hóa và thể thao sở du lịch có tư cách pháp nhân có con dấu và tài khoản riêng; chịu sự chỉ đạo quản lý về tổ chức biên chế và công tác của ủy ban nhân dân cấp tỉnh đồng thời chịu sự chỉ đạo kiểm tra về nghiệp vụ của bộ văn hóa thể thao và du lịch' |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
per_device_train_batch_size: 32num_train_epochs: 1warmup_ratio: 0.1fp16: Trueoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 32per_device_eval_batch_size: 8per_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: 1.0num_train_epochs: 1max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.1warmup_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: proportional| Epoch | Step | Training Loss |
|---|---|---|
| 0.032 | 100 | 1.1356 |
| 0.064 | 200 | 0.1415 |
| 0.096 | 300 | 0.1214 |
| 0.128 | 400 | 0.1223 |
| 0.16 | 500 | 0.1217 |
| 0.192 | 600 | 0.0905 |
| 0.224 | 700 | 0.1161 |
| 0.256 | 800 | 0.1062 |
| 0.288 | 900 | 0.0963 |
| 0.32 | 1000 | 0.0999 |
| 0.352 | 1100 | 0.1094 |
| 0.384 | 1200 | 0.0947 |
| 0.416 | 1300 | 0.0836 |
| 0.448 | 1400 | 0.0873 |
| 0.48 | 1500 | 0.0845 |
| 0.512 | 1600 | 0.0917 |
| 0.544 | 1700 | 0.0777 |
| 0.576 | 1800 | 0.0775 |
| 0.608 | 1900 | 0.0827 |
| 0.64 | 2000 | 0.0746 |
| 0.672 | 2100 | 0.0722 |
| 0.704 | 2200 | 0.0596 |
| 0.736 | 2300 | 0.0693 |
| 0.768 | 2400 | 0.0654 |
| 0.8 | 2500 | 0.064 |
| 0.832 | 2600 | 0.0795 |
| 0.864 | 2700 | 0.0656 |
| 0.896 | 2800 | 0.061 |
| 0.928 | 2900 | 0.06 |
| 0.96 | 3000 | 0.0551 |
| 0.992 | 3100 | 0.0545 |
@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}
}