Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use strongpear/M3-retriever-Wiki with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("strongpear/M3-retriever-Wiki")
sentences = [
"Thành phố San Fernando là một phần của nước nào và có bao nhiêu dân số?",
"Boule-d'Amont là một xã trong vùng Occitanie, thuộc tỉnh Pyrénées-Orientales, quận Prades, tổng Vinça. Tọa độ địa lý của xã là 42° 34' vĩ độ bắc, 02° 36' kinh độ đông. Boule-d'Amont nằm trên độ cao trung bình là 483 mét trên mực nước biển, có điểm thấp nhất là 234 mét và điểm cao nhất là 1.348 mét. Xã có diện tích 23,22 km², dân số vào thời điểm 1999 là 73 người; mật độ dân số là 3 người/km².",
"Thành phố San Fernando là một trong ba thành phố lớn của Trinidad và Tobago, là đô thị lớn thứ hai. Thành phố có diện tịch 18 km² và nằm ở phía tây nam của đảo Trinidad. Nó giáp sông Guaracara về phía bắc, giáp sông Oropouche về phía nam, giáp quốc lộ Sir Solomon Hochoy về phía đông, và vịnh Paria về phía tây. Dân số ước tính năm 2000 là 62.000 người. Đô thị San Fernando được nâng cấp thành thành phố ngày 18 tháng 11 năm 1988. Khẩu hiệu của San Fernando là: \"Sanitas Fortis\" - \"Trong một môi trường lành mạnh chúng ta sẽ tìm thấy sức mạnh\".",
"Các dự án quân sự bản địa khác liên quan đến việc thiết kế và bổ sung hàng không mẫu hạm lớp \"Vikrant\" và tàu ngầm hạt nhân lớp \"Arihant\".\nSau khi kết thúc Chiến tranh Lạnh,Ấn Độ tăng cường hợp tác về kinh tế,chiến lược và quân sự với Hoa Kỳ và Liên minh châu Âu. Năm 2008, Hoa Kỳ và Ấn Độ ký kết một thỏa thuận hạt nhân dân sự.Mặc dù đương thời Ấn Độ là quốc gia sở hữu vũ khí hạt nhân và không phải là một bên tham gia của Hiệp ước không phổ biến vũ khí hạt nhân,song quốc gia này vẫn nhận được sự miễn trừ từ Cơ quan Năng lượng Nguyên tử Quốc tế và Nhóm các nhà cung cấp hạt nhân,do vậy thoát khỏi các hạn chế,rào cản trước đây đối với công nghệ và thương mại hạt nhân. Như một hệ quả, Ấn Độ trở thành quốc gia thứ sáu sở hữu vũ khí hạt nhân \"trên thực tế\". Ấn Độ sau đó ký kết các thỏa thuận hợp tác liên quan đến năng lượng hạt nhân dân sự với Nga, Pháp, Anh Quốc, và Canada.\nTổng thống Ấn Độ là thống soái tối cao của lực lượng vũ trang quốc gia với 1,6 triệu quân tại ngũ và xếp thứ ba thế giới trên tiêu chí này. Quân đội Ấn Độ gồm có lục quân, hải quân, và không quân; các tổ chức phụ trợ gồm có Bộ tư lệnh chiến lược (Strategic Forces Command) và ba nhóm bán quân sự: Đội quân súng trường Assam, Lực lượng biên cảnh đặc chủng, và Lực lượng bảo vệ bờ biển Ấn Độ. Ngân sách quốc phòng chính thức của Ấn Độ giai đoạn 2012-17 chiếm khoảng 2,5% GDP. Năm 2012, Ấn Độ là nước nhập khẩu vũ khí lớn nhất thế giới;từ năm 2007 đến năm 2011, tiền mua vũ khí của Ấn Độ chiếm 10% tổng phí tổn dành cho mua sắm vũ khí. Phần lớn chi tiêu quân sự tập trung vào phòng thủ đối với riêng Pakistan và chống lại ảnh hưởng ngày càng gia tăng của Trung Quốc tại Ấn Độ Dương.\nMột trận ẩu đả dữ dội giữa quân đội Trung Quốc và Ấn Độ tại khu vực lãnh thổ tranh chấp đã làm 20 binh sĩ Ấn Độ và ít nhất 4 binh sĩ Trung Quốc thiệt mạng."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from BAAI/bge-m3. It maps sentences & paragraphs to a 1024-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': 8192, 'do_lower_case': False}) with Transformer model: XLMRobertaModel
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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("strongpear/M3-retriever-Wiki")
# Run inference
sentences = [
'Quận Sông Bé được thành lập vào thời điểm nào và dựa trên cơ sở nào?',
'Quận Sông Bé được thành lập theo Nghị định của Toàn quyền Đông Dương ngày 25 tháng 10 năm 1927 trên cơ sở đổi tên quận Phú Riềng (thuộc tỉnh Biên Hòa) và chuyển quận lị về Bu Kroai (nay thuộc xã Đức Hạnh, huyện Bù Gia Mập).\nNgày 20 tháng 5 năm 1933, cùng với việc chuyển quận lị Sông Bé về núi Bà Rá, quận Sông Bé được đổi tên thành quận Núi Bà Rá.\nQuận Núi Bà Rá được nâng cấp thành tỉnh Phước Long theo Sắc lệnh số 143-NV ngày 22 tháng 10 năm 1956 do Tổng thống Việt Nam Cộng hòa ký, chia Nam phần thành 22 tỉnh. Tỉnh lỵ tỉnh Phước Long đặt tại Phước Bình, về mặt hành chính thuộc xã Sơn Giang, quận Phước Bình (nay là khu vực trung tâm thị xã Phước Long). Địa bàn quận Sông Bé nay thuộc tỉnh Bình Phước.',
'Mạng lưới sông rạch.\nToàn huyện có 355\xa0km kênh mương thủy lợi chính, gồm 80\xa0km kênh cấp I và 275\xa0km kênh cấp II, bình quân 1 ha đất canh tác có 12,62m kênh mương thủy lợi.\nDo nằm ven sông Cổ Chiên và có cù lao Hoà Minh – Long Hoà chạy dài ra sát cửa Cung Hầu nên huyện Châu Thành chịu ảnh hưởng chế độ bán nhật trìêu của biển Đông, thông qua đoạn sông Cổ Chiên vào các hệ thống sông rạch lớn như: Láng Thé – Ba Si – Ô Chát, sông Trà Vinh – Kinh Thống Nhất hệ Tầm Phương, sông Bãi Vàng – Vinh Kim. Ngoài ra, do yêu cầu tiếp ngọt với hai cống ngăn mặn Đa Lộc, Hiệp Hòa vào mùa khô, nguồn nước từ Cầu Quan (sông Hậu) được đưa sang kinh Thống Nhất và Trà Vinh. Trong ngày nước lên xuống hai lần, mỗi tháng có 2 lần triều cường sau ngày 1 và ngày 15 âl và 2 lần triều kèm sau ngày 7 và 23 âl (từ 2 đến 3 ngày), biên độ triều hàng ngày rất lớn, nhất là các khu vực gần cửa sông.\nBiên độ tắt dần khi vào nội đồng, đặc biệt vào mùa triều cường (tháng 10,12 dương lịch) đối với vùng kinh Thông Nhất qua ngọn Ô Chát chịu ảnh hưởng chung của sông Cổ Chiên và sông Hậu, biên độ triều hàng ngày nhỏ và hầu như không đáng kể vào thời kỳ triều cường nhất trong năm. Một số vùng thấp (Thanh Mỹ – Đa Lộc) có thời gian nước trên đồng không rút được, dù độ ngập không lớn.\nVào mùa khô, triều cường và gió chướng đã đưa nước mặn xâm nhập vào nội đồng, độ mặn trung bình thay đổi từ 2,24‰ -9,96‰ từ cuối tháng 1 đến tháng 6, tuy nhiên tháng tư có độ mặn cao nhất trên 18‰ (Hưng Mỹ). Các cửa sông gần biển thì độ mặn càng cao. Do dự trữ nước nội đồng và nguồn bổ sung từ trên xuống, từ sông Hậu sang nên độ mặn giảm dần khi vào nội đồng.\nHành chính.\nHuyện Châu Thành có 14 đơn vị hành chính cấp xã trực thuộc, bao gồm thị trấn Châu Thành và 13 xã: Đa Lộc, Hòa Lợi, Hòa Minh, Hòa Thuận, Hưng Mỹ, Long Hòa, Lương Hòa, Lương Hòa A, Mỹ Chánh, Nguyệt Hóa, Phước Hảo, Song Lộc, Thanh Mỹ.\nLịch sử.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| anchor | positive |
|---|---|
Adidas đã thực hiện những bước tiến nào trong lĩnh vực giày thể thao từ năm 2005 đến 2006? |
Vào ngày 25 tháng 11 năm 2005, Adidas đã phát hành phiên bản mới của Adidas 1 với phạm vi đệm tăng lên, cho phép giày trở nên mềm hơn hoặc cứng hơn và một động cơ mới có mô-men xoắn lớn hơn 153%. |
Tại sao Hồ Nhất Đao chết và điều gì xảy ra với vợ của ông? |
Không may Miêu Nhân Phụng (cầm đao của Hồ Nhất Đao) làm bị thương Hồ Nhất Đao, thế là Hồ Nhất Đao chết vì bị độc, vợ của Hồ Nhất Đao mới sinh được một đứa con trai - là nhân vật chính Hồ Phỉ - cũng tự sát theo chồng. Bi kịch thù hận bốn họ tạm thời ngưng lại trong sự hối hận của Miêu Nhân Phụng, ông chôn cất vợ chồng Hồ Nhất Đao và hàng năm tế bái, coi họ là anh em, suốt đời ân hận vì đã nỡ tay hại chết tri kỷ. |
Thế hệ thứ nhất của RAF đã thực hiện những hoạt động gì trong giai đoạn 1970-1972? |
Thế hệ thứ nhất. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| anchor | positive |
|---|---|
Pennsylvania được gọi là gì và có những đặc điểm gì liên quan đến chính quyền? |
Ngày nay, hai thành phố lớn của tiểu bang là —Philadelphia, quê hương của chuông Liberty, sảnh Independence, là một khu đô thị sầm uất, và Pittsburgh, một cảng sông bận rộn bên trong lục địa và là một trung tâm lớn cho giáo dục và các tiến bộ kỹ thuật. Dãy núi Pocono và Delaware Water Gap cung cấp các hoạt động giải trí phổ thông. |
Romaja là gì và nó có liên quan như thế nào đến việc ghi tiếng Hàn Quốc? |
Romaja hay cách ghi tiếng Hàn Quốc (Triều Tiên) bằng chữ latinh là các phương pháp ghi tiếng Triều Tiên bằng chữ cái Latinh. Romaja có nghĩa là "La Mã tự" hay "chữ La Mã". Romaja quốc ngữ là phương pháp nhiều người thường dùng nhất. |
Tây Sơn có vai trò gì trong địa lý của Bắc Kinh? |
Địa lý. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
eval_strategy: stepsper_device_train_batch_size: 32per_device_eval_batch_size: 32num_train_epochs: 1warmup_ratio: 0.1bf16: Truebatch_sampler: no_duplicatesoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 32per_device_eval_batch_size: 32per_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: Truefp16: 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: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportional| Epoch | Step | Training Loss | Validation Loss |
|---|---|---|---|
| 0.0431 | 200 | 0.0372 | 0.0122 |
| 0.0862 | 400 | 0.0226 | 0.0162 |
| 0.1293 | 600 | 0.0305 | 0.0181 |
| 0.1724 | 800 | 0.0351 | 0.0205 |
| 0.2155 | 1000 | 0.0326 | 0.0171 |
| 0.2586 | 1200 | 0.0289 | 0.0156 |
| 0.3017 | 1400 | 0.028 | 0.0169 |
| 0.3448 | 1600 | 0.0273 | 0.0199 |
| 0.3878 | 1800 | 0.0216 | 0.0180 |
| 0.4309 | 2000 | 0.0252 | 0.0122 |
| 0.4740 | 2200 | 0.0213 | 0.0138 |
| 0.5171 | 2400 | 0.0254 | 0.0142 |
| 0.5602 | 2600 | 0.0202 | 0.0155 |
| 0.6033 | 2800 | 0.0168 | 0.0145 |
| 0.6464 | 3000 | 0.0176 | 0.0123 |
| 0.6895 | 3200 | 0.0212 | 0.0123 |
| 0.7326 | 3400 | 0.0166 | 0.0102 |
| 0.7757 | 3600 | 0.0181 | 0.0102 |
| 0.8188 | 3800 | 0.0158 | 0.0086 |
| 0.8619 | 4000 | 0.0151 | 0.0090 |
| 0.9050 | 4200 | 0.0134 | 0.0095 |
| 0.9481 | 4400 | 0.012 | 0.0093 |
| 0.9912 | 4600 | 0.0134 | 0.0090 |
@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
BAAI/bge-m3