Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use ntAnh-dev/paraphrase-multilingual-MiniLM-L12-v2 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("ntAnh-dev/paraphrase-multilingual-MiniLM-L12-v2")
sentences = [
"Hồ sơ đăng ký cấp xét học bổng tài trợ bao gồm những gì ?",
"Quy định xét cấp học bổng khuyến khích học tập tại Đại học Bách khoa Hà Nội\nĐiều 4. Nguyên tắc xét cấp học bổng\n3. Không xét cấp học bổng đối với sinh viên thuộc một trong các trường hợp sau:\na) Chịu hình thức kỷ luật từ mức khiển trách trở lên tại thời điểm xét học bổng;\nb) Đăng ký học ít hơn 1 5 tín chỉ (kể cả các học phần không tính điểm GPA) tại\nhọc kỳ lấy điểm xét, cấp học bổng, ngoại trừ học kỳ 1 năm học thứ nhất;\nc) Đăng ký học ít hơn 6 tín chỉ (kể cả các học phần không tính điểm GPA) tại\nhọc kỳ cấp học bổng;\nd) Học quá thời gian theo kế hoạch học tập chuẩn của chương trình đào tạo;\nđ) Học chương trình đào tạo do trường đối tác nước ngoài cấp một văn bằng tốt\nnghiệp duy nhất;\nĐiều 5. Thời gian công bố kết quả xét duyệt và cấp học bổng\n1. Danh sách sinh viên được cấp học bổng và mức đ iểm chuẩn để đạt học bổng\nloại A, B, C theo khóa, ngành đào tạo tương ứng sẽ được công bố trên cổng thông tin\nsinh viên: ctt.hust.edu.vn, chậm nhất vào tuần học thứ 10 của học kỳ cấp học bổng.\n",
"Quy chế Công tác sinh viên Đại học Bách Khoa Hà Nội\nChương III NỘI DUNG CÔNG TÁC SINH VIÊN\nĐiều 19. Tư vấn tâm lý, chăm sóc sức khỏe sinh viên\n1. Tổ chức các hoạt động tư vấn tâm lý, chăm sóc sức khỏe để phòng ngừa và hỗ\ntrợ kịp thời khi sinh viên gặp phải các vấn đề ảnh hưởng đến thể chất và tinh thần.\n2. Tư vấn và hỗ trợ sinh viên mới nhập học hòa nhập với môi trường học tập\nmới.\n3. Tổ chức khám sức khỏe cho sinh viên mới nhập học và khám sức khỏe định kỳ\ncho sinh viên; tư vấn, tổ chức cho sinh viên thực hiện Luật bảo hiểm y tế; tổ chức sơ,\ncấp cứu, khám chữa bệnh ban đầu cho sinh viên.\nĐiều 20. Tổ chức các dịch vụ thiết yếu cho sinh viên\nTổ chức và hướng dẫn sinh viên sử dụng các dịch vụ thiết yếu phục vụ đời sống,\nhọc tập và rèn luyện trong quá trình học tập như: internet, nhà ăn, căng tin, trông giữ\nxe, sân chơi, bãi tập, thiết chế văn hóa…\nĐiều 21. Hỗ trợ tài chính cho sinh viên\n1. Hướng dẫn và hỗ trợ sinh viên có hoàn cảnh khó khăn làm thủ tục vay vốn\nngân hàng chính sách xã hội.\n2. Tăng cường khai thác, quản lý và sử dụng hiệu quả các nguồn tài trợ nhằm\nkhuyến khích sinh viên có kết quả học tập tốt, động viên, hỗ trợ sinh viên có hoàn\ncảnh khó khăn.\n3. Quan tâm, hỗ trợ kịp thời những sinh viên có hoàn cảnh đặc biệt khó khăn về\nkinh tế, sinh viên mồ côi không nơi nương tựa, sinh viên là người khuyết tật, sinh viên\ngặp khó khăn rủi ro đột xuất.\n4. Hỗ trợ kinh phí cho sinh viên tham gia các hoạt động nghiên cứu sáng tạo và\nkhởi nghiệp, hoạt động trao đổi sinh viên quốc tế, hoạt động học tập nâng cao trình độ\nngoại ngữ.\n",
"Quy định về Học bổng Trần Đại Nghĩa\nChương I NHỮNG QUY ĐỊNH CHUNG\nĐiều 3. Nguồn Học bổng Trần Đại Nghĩa\nHọc bổng Trần Đại Nghĩa được hình thành từ các nguồn sau:\n1. Trích từ nguồn kinh phí hợp pháp của ĐHBK Hà Nội do Giám đốc Đại học\nquyết định.\n2. Sự đóng góp của các cán bộ, viên chức, người lao động của ĐHBK Hà Nội.\n3. Sự đóng góp của các thế hệ sinh viên và cựu sinh viên ĐHBK Hà Nội.\n4. Tài trợ từ các tổ chức, doanh nghiệp và các nhà hảo tâm khác.\nĐiều 4. Nguyên tắc hoạt động của Học bổng Trần Đại Nghĩa\nHọc bổng Trần Đại Nghĩa hoạt động trên các nguyên tắc sau:\n1. Các kho ản đóng góp cho Học b ổng Tr ần Đại Nghĩa là tự nguyện, không vì\nmục đích lợi nhuận.\n2. Hoạt động xét, cấp học bổng được thực hiện công khai, minh mạch và tuân thủ\ntheo các quy định hiện hành về quản lý tài chính của Nhà nước và của ĐHBK Hà Nội.\n"
]
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, '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("ntAnh-dev/paraphrase-multilingual-MiniLM-L12-v2")
# Run inference
sentences = [
'Khi tham gia chương trình sinh hoạt công dân do trường ,viện tổ chức thì đạt bao nhiêu điểm rèn luyện?',
'KHUNG ĐÁNH GIÁ KẾT QUẢ RÈN LUYỆN SINH VIÊN 2022-2023\nTiêu chí điểm cộng (Tối đa 100 điểm)\nĐiểm học tập (Tối đa 30 điểm)\nKết quả học tập có điểm trung bình học kỳ (tối đa 24 điểm):\nCó kết quả học tập ở mức GPA ≥ 3.6; minh chứng: dựa trên hệ thống quản lý; điểm: 20\nCó kết quả học tập ở mức: 3.2 ≤ GPA < 3.6; minh chứng: dựa trên hệ thống quản lý; điểm: 18\nCó kết quả học tập ở mức: 2.5 ≤ GPA < 3.2; minh chứng: dựa trên hệ thống quản lý; điểm: 16\nCó kết quả học tập ở mức: 2.0 ≤ GPA < 2.5;; minh chứng: dựa trên hệ thống quản lý; điểm: 14\nCó kết quả học tập ở mức: 1.5 ≤ GPA < 2.0;; minh chứng: dựa trên hệ thống quản lý; điểm: 12\nCó nỗ lực trong học tập (GPA kỳ đánh giá cao hơn kỳ trước, giảm mức cảnh\ncáo học tập, hoặc duy trì điểm GPA trên 3.6 ); minh chứng: dựa trên hệ thống quản lý; điểm: 8\nTrình độ ngoại ngữ (tối đa 6 điểm):\nĐạt trình độ ngoại ngữ theo tiến độ của chương trình đào tạo; minh chứng: dựa trên hệ thống quản lý; điểm: 4\nĐạt chứng chỉ ngoại ngữ tương đương TOEIC 600 điểm trở lên; minh chứng: được cấp khi tham gia hoạt động; điểm: 2\nTham gia các hoạt động học thuật (tối đa 9 điểm):\nTham gia hoạt động, sự kiệnliên quan đến NCKH, học thuật, chuyên môn; minh chứng: được cấp khi tham gia hoạt động; điểm: 3\nTham gia khóa đào tạo kỹ năng nghề nghiệp, kỹ năng bổ trợ chuyên môn; minh chứng: được cấp khi tham gia hoạt động; điểm: 6\nThành viên CLB học thuật, Lab nghiên cứu, Nhóm nghiên cứu, nhóm Khởi\nnghiệp; minh chứng: được cấp khi tham gia hoạt động; điểm: 6\nTham gia công bố khoa học tại Hội nghị hoặc tạp chí khoa học chuyên\nngành; minh chứng: được cấp khi tham gia hoạt động; điểm: 6\nTham gia các cuộc thi Olympic cấp trường, cấp quốc gia, quốc tế; minh chứng: được cấp khi tham gia hoạt động; điểm: 6',
'Quy định quản lý, hỗ trợ sinh viên nước ngoài học tập tại Đại học Bách khoa Hà Nội\nChương III TRÁCH NHIỆM CỦA CÁC ĐƠN VỊ LIÊN QUAN\nĐiều 11. Phòng/Ban chức năng Hợp tác đối ngoại\n1. Hoàn thành hồ sơ quản lý LHS học tích lũy tín chỉ như quy định tại khoản 1,\nĐiều 2 và bàn giao cho Phòng/ Ban chức năng Công tác sinh viên quản lý.\n2. Lập và quản lý hồ sơ LHS trao đổi như quy định tại khoản 2, Điều 2.\n3. Chủ trì, phối hợp với các đơn vị liên quan trong ĐHBK Hà Nội cung cấp\nthông tin, giải quyết các vấn đề liên quan trong và sau quá trình thực hiện các hoạt\nđộng trao đổi tới LHS .\n4. Tổ chức và hỗ trợ các đơn vị liên quan tổ chức các chương trình giao lưu, trao\nđổi văn hóa cho LHS ; thủ tục cấp, gia hạn, sửa đổi thị thực nhập cảnh phục vụ cho\nviệc học tập của LHS.\n5. Tổng hợp báo cáo lãnh đạo ĐHBK Hà Nội và các cơ quan chức năng định kỳ\nvà đột xuất theo yêu cầu.\nĐiều 12. Đơn vị chức năng Hỗ trợ trao đổi học thuật\nPhối hợp với các đơn vị liên quan trong và ngoài ĐHBK Hà Nội tổ chức các\nchương trình giao lưu, trao đổi văn hóa cho LHS.\n',
]
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, 0.7406, 0.2134],
# [0.7406, 1.0000, 0.0214],
# [0.2134, 0.0214, 1.0000]])
paraphrase-multilingual-MiniLM-L12-v2-251218InformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.8243 |
| cosine_accuracy@3 | 0.9189 |
| cosine_accuracy@5 | 0.973 |
| cosine_accuracy@10 | 0.9865 |
| cosine_precision@1 | 0.8243 |
| cosine_precision@3 | 0.6937 |
| cosine_precision@5 | 0.6216 |
| cosine_precision@10 | 0.4865 |
| cosine_recall@1 | 0.2536 |
| cosine_recall@3 | 0.4425 |
| cosine_recall@5 | 0.584 |
| cosine_recall@10 | 0.7623 |
| cosine_ndcg@10 | 0.8175 |
| cosine_mrr@10 | 0.8801 |
| cosine_map@100 | 0.76 |
paraphrase-multilingual-MiniLM-L12-v2-251218InformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.8899 |
| cosine_accuracy@3 | 0.9358 |
| cosine_accuracy@5 | 0.9541 |
| cosine_accuracy@10 | 0.9725 |
| cosine_precision@1 | 0.8899 |
| cosine_precision@3 | 0.7431 |
| cosine_precision@5 | 0.6459 |
| cosine_precision@10 | 0.4945 |
| cosine_recall@1 | 0.2251 |
| cosine_recall@3 | 0.4253 |
| cosine_recall@5 | 0.5414 |
| cosine_recall@10 | 0.7116 |
| cosine_ndcg@10 | 0.8043 |
| cosine_mrr@10 | 0.9164 |
| cosine_map@100 | 0.7564 |
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| anchor | positive |
|---|---|
Tại trường có bao nhiêu loại học bổng KKHT(khuyến khích học tập)? |
Quy định xét cấp học bổng khuyến khích học tập tại Đại học Bách khoa Hà Nội |
Tại trường có bao nhiêu loại học bổng KKHT(khuyến khích học tập)? |
Quy định xét cấp học bổng khuyến khích học tập tại Đại học Bách khoa Hà Nội |
trường gồm mấy loại học bổng khuyến khích học tập ? |
Quy định xét cấp học bổng khuyến khích học tập tại Đại học Bách khoa Hà Nội |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
eval_strategy: stepsper_device_train_batch_size: 16per_device_eval_batch_size: 16learning_rate: 2e-05num_train_epochs: 20warmup_ratio: 0.1fp16: Truebatch_sampler: no_duplicatesoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_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: 2e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 20max_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: 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}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_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: noneftune_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: Trueprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | paraphrase-multilingual-MiniLM-L12-v2-251218_cosine_ndcg@10 |
|---|---|---|---|
| -1 | -1 | - | 0.5888 |
| 0.3559 | 100 | 1.925 | 0.6625 |
| 0.7117 | 200 | 1.4605 | 0.7110 |
| 1.0676 | 300 | 1.2876 | 0.7686 |
| 1.4235 | 400 | 1.1927 | 0.7686 |
| 1.7794 | 500 | 1.1368 | 0.7893 |
| 2.1352 | 600 | 1.071 | 0.7679 |
| 2.4911 | 700 | 1.0243 | 0.7707 |
| 2.8470 | 800 | 1.0508 | 0.8115 |
| 3.2028 | 900 | 0.9448 | 0.7878 |
| 3.5587 | 1000 | 0.94 | 0.8023 |
| 3.9146 | 1100 | 0.9675 | 0.7720 |
| 4.2705 | 1200 | 0.9115 | 0.7966 |
| 4.6263 | 1300 | 0.9163 | 0.7736 |
| 4.9822 | 1400 | 0.9329 | 0.8026 |
| 5.3381 | 1500 | 0.8309 | 0.8353 |
| 5.6940 | 1600 | 0.881 | 0.7829 |
| 6.0498 | 1700 | 0.8884 | 0.7911 |
| 6.4057 | 1800 | 0.8497 | 0.7651 |
| 6.7616 | 1900 | 0.8296 | 0.7948 |
| 7.1174 | 2000 | 0.861 | 0.8055 |
| 7.4733 | 2100 | 0.7921 | 0.7637 |
| 7.8292 | 2200 | 0.8836 | 0.7924 |
| 8.1851 | 2300 | 0.8131 | 0.7708 |
| 8.5409 | 2400 | 0.787 | 0.7963 |
| 8.8968 | 2500 | 0.8267 | 0.7975 |
| 9.2527 | 2600 | 0.7634 | 0.8076 |
| 9.6085 | 2700 | 0.7568 | 0.8160 |
| 9.9644 | 2800 | 0.8086 | 0.8168 |
| 10.3203 | 2900 | 0.7768 | 0.8118 |
| 10.6762 | 3000 | 0.7877 | 0.7986 |
| 11.0320 | 3100 | 0.7883 | 0.8038 |
| 11.3879 | 3200 | 0.7316 | 0.8206 |
| 11.7438 | 3300 | 0.7812 | 0.8090 |
| 12.0996 | 3400 | 0.7441 | 0.8181 |
| 12.4555 | 3500 | 0.8073 | 0.8135 |
| 12.8114 | 3600 | 0.7424 | 0.8177 |
| 13.1673 | 3700 | 0.7188 | 0.8132 |
| 13.5231 | 3800 | 0.7206 | 0.8207 |
| 13.8790 | 3900 | 0.7316 | 0.8050 |
| 14.2349 | 4000 | 0.7378 | 0.8158 |
| 14.5907 | 4100 | 0.7391 | 0.8098 |
| 14.9466 | 4200 | 0.6781 | 0.7936 |
| 15.3025 | 4300 | 0.6939 | 0.8076 |
| 15.6584 | 4400 | 0.6879 | 0.8137 |
| 16.0142 | 4500 | 0.7265 | 0.8146 |
| 16.3701 | 4600 | 0.6854 | 0.8184 |
| 16.7260 | 4700 | 0.7273 | 0.8145 |
| 17.0819 | 4800 | 0.6828 | 0.8179 |
| 17.4377 | 4900 | 0.6444 | 0.8204 |
| 17.7936 | 5000 | 0.6865 | 0.8180 |
| 18.1495 | 5100 | 0.6517 | 0.8039 |
| 18.5053 | 5200 | 0.6502 | 0.8220 |
| 18.8612 | 5300 | 0.6719 | 0.8114 |
| 19.2171 | 5400 | 0.6409 | 0.8127 |
| 19.5730 | 5500 | 0.6966 | 0.8119 |
| 19.9288 | 5600 | 0.6707 | 0.8175 |
| -1 | -1 | - | 0.8043 |
@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}
}