Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 16
How to use legalvn/paraphrase-multilingual-MiniLM-L12-v2-vn-82500 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("legalvn/paraphrase-multilingual-MiniLM-L12-v2-vn-82500")
sentences = [
"Nguyên tắc áp dụng phụ cấp ưu đãi nghề y tế thế nào?",
"Chu kỳ kiểm định chất lượng giáo dục nghề nghiệp\\n...\\n2. Trường hợp cơ sở giáo dục nghề nghiệp có ngành, nghề trọng điểm; chương trình đào tạo ngành, nghề trọng điểm; cơ sở giáo dục nghề nghiệp và chương trình đào tạo các ngành, nghề phục vụ yêu cầu công tác quản lý nhà nước phải thực hiện kiểm định chất lượng giáo dục nghề nghiệp theo quy định tại điểm d khoản 3 Điều 65 của Luật Giáo dục nghề nghiệp số 74/2014/QH13 ngày 27 tháng 11 năm 2014 nhưng không đạt tiêu chuẩn kiểm định chất lượng giáo dục nghề nghiệp thì trong thời hạn 03 năm phải thực hiện kiểm định lại.",
"Vệ sinh môi trường, vệ sinh tòa nhà\\n1. Trách nhiệm của các đơn vị, cán bộ, công chức, viên chức, nhân viên và người lao động trong việc giữ gìn vệ sinh tại nơi làm việc và khu vực công cộng:\\na) Hàng ngày tự vệ sinh sàn nhà, bàn ghế, tủ, các thiết bị được trang cấp và tổng vệ sinh phòng làm việc vào chiều thứ Sáu hàng tuần;\\nb) Có trách nhiệm thu gom rác thải trong phòng chuyển ra thùng rác đặt tại các hành lang;\\nc) Không đổ nước chè, cà phê, ….. xuống sàn nhà, hành lang, tường nhà và khu vệ sinh;\\nd) Nghiêm cấp hút thuốc lá trong phòng làm việc, phòng họp, cầu thang máy, cầu thang bộ, tầng hầm;\\nđ) Không khạc nhổ, bôi bẩn lên tường, không vứt rác thải, gạt tàn thuốc lá, đầu lọc thuốc lá xuống sàn nhà và các khu vực công cộng;\\ne) Nghiêm cấm hái hoa, bẻ cành, dẫm lên thảm cỏ, nhổ cây trong khuôn viên cơ quan.\\ng) Nghiêm cấm mang chất độc hại vào cơ quan.\\n…",
"Nguyên tắc áp dụng\\n1. Trường hợp công chức, viên chức chuyên môn y tế thuộc đối tượng được hưởng các mức phụ cấp ưu đãi theo nghề khác nhau thì được hưởng một mức phụ cấp ưu đãi theo nghề cao nhất.\\n2. Công chức, viên chức đã hưởng phụ cấp ưu đãi theo nghề quy định tại Thông tư liên tịch số 06/2010/TTLT-BYT-BNV-BTC ngày 22/3/2010 của Bộ Y tế, Bộ Nội vụ, Bộ Tài chính hướng dẫn thực hiện Nghị định số 64/2009/NĐ-CP ngày 30/7/2009 của Chính phủ về chính sách đối với cán bộ, viên chức y tế công tác ở vùng có điều kiện kinh tế - xã hội đặc biệt khó khăn thì không hưởng phụ cấp ưu đãi theo nghề quy định tại Thông tư liên tịch này."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2. 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': 128, '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})
)
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 = [
'Thời điểm đánh giá và xếp loại chất lượng hằng năm của công chức, viên chức thuộc Bộ Tài chính được diễn ra trong thời gian nào?',
'Thời điểm đánh giá xếp loại chất lượng hằng năm\\n...\\n2. Căn cứ tình hình thực tiễn của cơ quan, tổ chức, đơn vị, tập thể lãnh đạo cơ quan, tổ chức, đơn vị thống nhất với cấp ủy cùng cấp về việc kết hợp tổ chức cuộc họp đánh giá, xếp loại chất lượng công chức, viên chức và xếp loại đảng viên trong tổ chức, đơn vị mình, bảo đảm nghiêm túc, hiệu quả, tránh hình thức, lãng phí.\\n3. Tại thời điểm đánh giá, xếp loại chất lượng, trường hợp vắng mặt có lý do chính đáng hoặc nghỉ ốm, nghỉ chế độ thai sản theo quy định của pháp luật, công chức, viên chức có trách nhiệm làm báo cáo tại Phiếu đánh giá, xếp loại chất lượng theo chức trách, nhiệm vụ được giao, gửi cơ quan, tổ chức, đơn vị đang công tác để thực hiện việc đánh giá, xếp loại chất lượng theo quy định của pháp luật và Quy chế này.',
'“Điều 1. Danh mục trang thiết bị y tế phục vụ phòng, chống dịch COVID-19 trong trường hợp cấp bách theo quy định tại khoản 3 Điều 29 Nghị định số 98/2021/NĐ-CP ngày 08 tháng 11 năm 2021 của Chính phủ về quản lý trang thiết bị y tế \\n1. Máy PCR. \\n2. Hóa chất (sinh phẩm) chạy máy PCR xét nghiệm SARS-CoV-2. \\n3. Test kít xét nghiệm nhanh kháng nguyên/ kháng thể kháng SARS-CoV-2. \\n4. Máy thở chức năng cao, máy thở xâm nhập và không xâm nhập, máy thở không xâm nhập, máy oxy dòng cao, máy thở xách tay. \\n5. Máy lọc máu liên tục. \\n6. Máy X-Quang di động. \\n7. Máy đo khí máu (đo được điện giải, lactat, hematocrite). \\n8. Máy theo dõi bệnh nhân>5 thông số. \\n9. Bơm tiêm điện; Bơm truyền dịch. \\n10. Máy phá rung tim có tạo nhịp. \\n11. Máy đo thời gian đông máu. \\n12. Máy đo huyết động.”',
]
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]
queries, corpus, and score| queries | corpus | score | |
|---|---|---|---|
| type | string | string | int |
| details |
|
|
|
| queries | corpus | score |
|---|---|---|
Người học ngành quản lý khai thác công trình thủy lợi trình độ cao đẳng phải có khả năng học tập và nâng cao trình độ như thế nào? |
Khả năng học tập, nâng cao trình độ\n- Khối lượng khối lượng kiến thức tối thiểu, yêu cầu về năng lực mà người học phải đạt được sau khi tốt nghiệp ngành, nghề Dược trình độ cao đẳng có thể tiếp tục phát triển ở các trình độ cao hơn;\n- Người học sau tốt nghiệp có năng lực tự học, tự cập nhật những tiến bộ khoa học công nghệ trong phạm vi ngành, nghề để nâng cao trình độ hoặc học liên thông lên trình độ cao hơn trong cùng ngành nghề hoặc trong nhóm ngành, nghề hoặc trong cùng lĩnh vực đào tạo. |
2 |
Nội dung lồng ghép vấn đề bình đẳng giới trong xây dựng văn bản quy phạm pháp luật được quy định thế nào? |
Nội dung lồng ghép vấn đề bình đẳng giới trong xây dựng văn bản quy phạm pháp luật\nTrong phạm vi điều chỉnh của văn bản quy phạm pháp luật:\n1. Xác định nội dung liên quan đến vấn đề bình đẳng giới hoặc vấn đề bất bình đẳng giới, phân biệt đối xử về giới.\n2. Quy định các biện pháp cần thiết để thực hiện bình đẳng giới hoặc để giải quyết vấn đề bất bình đẳng giới, phân biệt đối xử về giới; dự báo tác động của các quy định đó đối với nam và nữ sau khi được ban hành.\n3. Xác định nguồn nhân lực, tài chính cần thiết để triển khai các biện pháp thực hiện bình đẳng giới hoặc để giải quyết vấn đề bất bình đẳng giới, phân biệt đối xử về giới. |
2 |
Nội dung lồng ghép vấn đề bình đẳng giới trong xây dựng văn bản quy phạm pháp luật được quy định thế nào? |
Mục đích lồng ghép vấn đề bình đẳng giới trong xây dựng văn bản quy phạm pháp luật\nLồng ghép vấn đề bình đẳng giới trong xây dựng văn bản quy phạm pháp luật (sau đây gọi tắt là văn bản) là một biện pháp để thực hiện mục tiêu bình đẳng giới, xóa bỏ phân biệt đối xử về giới, bảo đảm quyền, lợi ích hợp pháp, phù hợp với đặc thù của mỗi giới; tạo cơ hội phát triển như nhau cho nam và nữ trong các lĩnh vực của đời sống xã hội và gia đình; bảo đảm bình đẳng giới thực chất giữa nam và nữ. |
1 |
SoftmaxLossoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 8per_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: 3.0max_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}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: Falsehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseeval_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: Nonedispatch_batches: Nonesplit_batches: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseeval_use_gather_object: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportional| Epoch | Step | Training Loss |
|---|---|---|
| 0.0061 | 500 | 1.0473 |
| 0.0123 | 1000 | 1.0447 |
| 0.0184 | 1500 | 1.0383 |
| 0.0246 | 2000 | 1.0395 |
| 0.0307 | 2500 | 1.0436 |
| 0.0368 | 3000 | 1.0375 |
| 0.0430 | 3500 | 1.0189 |
| 0.0491 | 4000 | 1.0282 |
| 0.0552 | 4500 | 1.0355 |
| 0.0614 | 5000 | 1.0286 |
| 0.0675 | 5500 | 1.0264 |
| 0.0737 | 6000 | 1.0174 |
| 0.0798 | 6500 | 1.0238 |
| 0.0859 | 7000 | 1.0217 |
| 0.0921 | 7500 | 1.0203 |
| 0.0982 | 8000 | 1.0201 |
| 0.1043 | 8500 | 1.0266 |
| 0.1105 | 9000 | 1.0379 |
| 0.1166 | 9500 | 1.0367 |
| 0.1228 | 10000 | 1.0384 |
| 0.1289 | 10500 | 1.0291 |
| 0.1350 | 11000 | 1.0362 |
| 0.1412 | 11500 | 1.0354 |
| 0.1473 | 12000 | 1.0204 |
| 0.1534 | 12500 | 1.0401 |
| 0.1596 | 13000 | 1.0237 |
| 0.1657 | 13500 | 1.0271 |
| 0.1719 | 14000 | 1.0235 |
| 0.1780 | 14500 | 1.0329 |
| 0.1841 | 15000 | 1.0474 |
| 0.1903 | 15500 | 1.0547 |
| 0.1964 | 16000 | 1.0557 |
| 0.2025 | 16500 | 1.0626 |
| 0.2087 | 17000 | 1.0551 |
| 0.2148 | 17500 | 1.0526 |
| 0.2210 | 18000 | 1.125 |
| 0.2271 | 18500 | 1.2996 |
| 0.2332 | 19000 | 1.0703 |
| 0.2394 | 19500 | 1.0601 |
| 0.2455 | 20000 | 1.0835 |
| 0.2516 | 20500 | 1.0583 |
| 0.2578 | 21000 | 1.141 |
| 0.2639 | 21500 | 1.0802 |
| 0.2701 | 22000 | 1.0589 |
| 0.2762 | 22500 | 1.086 |
| 0.2823 | 23000 | 1.0743 |
| 0.2885 | 23500 | 1.0605 |
| 0.2946 | 24000 | 1.0602 |
| 0.3007 | 24500 | 1.0732 |
| 0.3069 | 25000 | 1.0614 |
| 0.3130 | 25500 | 1.0666 |
| 0.3192 | 26000 | 1.0669 |
| 0.3253 | 26500 | 1.0627 |
| 0.3314 | 27000 | 1.0659 |
| 0.3376 | 27500 | 1.07 |
| 0.3437 | 28000 | 1.0783 |
| 0.3498 | 28500 | 1.078 |
| 0.3560 | 29000 | 1.0832 |
| 0.3621 | 29500 | 1.0695 |
| 0.3683 | 30000 | 1.0714 |
| 0.3744 | 30500 | 1.3794 |
| 0.3805 | 31000 | 1.0838 |
| 0.3867 | 31500 | 1.0541 |
| 0.3928 | 32000 | 1.0799 |
| 0.3989 | 32500 | 1.0622 |
| 0.4051 | 33000 | 1.0597 |
| 0.4112 | 33500 | 1.0731 |
| 0.4174 | 34000 | 1.0871 |
| 0.4235 | 34500 | 1.0535 |
| 0.4296 | 35000 | 1.3215 |
| 0.4358 | 35500 | 1.1501 |
| 0.4419 | 36000 | 1.1088 |
| 0.4480 | 36500 | 1.0844 |
| 0.4542 | 37000 | 1.0981 |
| 0.4603 | 37500 | 1.0856 |
| 0.4665 | 38000 | 1.0956 |
| 0.4726 | 38500 | 1.0813 |
| 0.4787 | 39000 | 1.0843 |
| 0.4849 | 39500 | 1.1053 |
| 0.4910 | 40000 | 1.092 |
| 0.4971 | 40500 | 1.081 |
| 0.5033 | 41000 | 1.0919 |
| 0.5094 | 41500 | 1.0681 |
| 0.5156 | 42000 | 1.0826 |
| 0.5217 | 42500 | 1.0809 |
| 0.5278 | 43000 | 1.093 |
| 0.5340 | 43500 | 1.0709 |
| 0.5401 | 44000 | 1.0623 |
| 0.5462 | 44500 | 1.0801 |
| 0.5524 | 45000 | 1.0833 |
| 0.5585 | 45500 | 1.0816 |
| 0.5647 | 46000 | 1.0697 |
| 0.5708 | 46500 | 1.0864 |
| 0.5769 | 47000 | 1.0744 |
| 0.5831 | 47500 | 1.0897 |
| 0.5892 | 48000 | 1.0727 |
| 0.5953 | 48500 | 1.0621 |
| 0.6015 | 49000 | 1.0582 |
| 0.6076 | 49500 | 1.0681 |
| 0.6138 | 50000 | 1.083 |
| 0.6199 | 50500 | 1.0632 |
| 0.6260 | 51000 | 1.0809 |
| 0.6322 | 51500 | 1.0525 |
| 0.6383 | 52000 | 1.6649 |
| 0.6444 | 52500 | 1.0873 |
| 0.6506 | 53000 | 1.0649 |
| 0.6567 | 53500 | 1.0591 |
| 0.6629 | 54000 | 1.061 |
| 0.6690 | 54500 | 1.0682 |
| 0.6751 | 55000 | 1.0616 |
| 0.6813 | 55500 | 1.0827 |
| 0.6874 | 56000 | 1.0799 |
| 0.6935 | 56500 | 1.0705 |
| 0.6997 | 57000 | 1.0821 |
| 0.7058 | 57500 | 1.0763 |
| 0.7120 | 58000 | 1.0842 |
| 0.7181 | 58500 | 1.0813 |
| 0.7242 | 59000 | 1.0678 |
| 0.7304 | 59500 | 1.0894 |
| 0.7365 | 60000 | 1.0733 |
| 0.7426 | 60500 | 1.0688 |
| 0.7488 | 61000 | 1.0665 |
| 0.7549 | 61500 | 1.0681 |
| 0.7611 | 62000 | 1.301 |
| 0.7672 | 62500 | 1.0907 |
| 0.7733 | 63000 | 1.3941 |
| 0.7795 | 63500 | 1.1355 |
| 0.7856 | 64000 | 1.2196 |
| 0.7917 | 64500 | 1.225 |
| 0.7979 | 65000 | 1.1437 |
| 0.8040 | 65500 | 1.0787 |
| 0.8102 | 66000 | 1.0686 |
| 0.8163 | 66500 | 1.1017 |
| 0.8224 | 67000 | 1.0999 |
| 0.8286 | 67500 | 1.0771 |
| 0.8347 | 68000 | 1.1015 |
| 0.8408 | 68500 | 1.0826 |
| 0.8470 | 69000 | 1.1046 |
| 0.8531 | 69500 | 1.0735 |
| 0.8593 | 70000 | 1.1056 |
| 0.8654 | 70500 | 1.1077 |
| 0.8715 | 71000 | 1.0897 |
| 0.8777 | 71500 | 1.0775 |
| 0.8838 | 72000 | 1.0907 |
| 0.8899 | 72500 | 1.0705 |
| 0.8961 | 73000 | 1.0776 |
| 0.9022 | 73500 | 1.0896 |
| 0.9084 | 74000 | 1.0889 |
| 0.9145 | 74500 | 1.0804 |
| 0.9206 | 75000 | 1.1087 |
| 0.9268 | 75500 | 1.0738 |
| 0.9329 | 76000 | 1.0806 |
| 0.9390 | 76500 | 1.0899 |
| 0.9452 | 77000 | 1.0814 |
| 0.9513 | 77500 | 1.0723 |
| 0.9575 | 78000 | 1.0923 |
| 0.9636 | 78500 | 1.0748 |
| 0.9697 | 79000 | 1.0745 |
| 0.9759 | 79500 | 1.081 |
| 0.9820 | 80000 | 1.08 |
| 0.9881 | 80500 | 1.0905 |
| 0.9943 | 81000 | 1.1064 |
| 1.0004 | 81500 | 1.0929 |
| 1.0066 | 82000 | 1.0815 |
| 1.0127 | 82500 | 1.0768 |
@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",
}