Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 12
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': 256, 'do_lower_case': False, 'architecture': '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("sentence_transformers_model_id")
# Run inference
sentences = [
'Những lãnh chúa Scotland đã nhận được lời đề nghị gì từ Edward?',
'Mặc dù có đến 14 phe phái tranh chấp chủ quyền đối với ngai vàng, cuộc cạnh tranh thực sự chỉ nổ ra giữa John Balliol và Robert de Brus. Các lãnh chúa Scotland đề nghị Edward tiến hành quản lý sự việc và kết quả, nhưng không phải là phân xử giữa các bên tranh chấp. Quyết định thực tế được đưa ra bởi 104 người - 40 người được bổ nhiệm bởi BBalliol, 40 bởi Bruce và 24 người được chỉ định bởi Edward I từ các thành viên cao cấp trong Hội đồng chính trị Scotland. Tại Birgham, với triển vọng về một liên minh cá nhân giữa hai vương quốc, vấn đề bá quyền đã không còn quan trọng đối với Edward. Bây giờ ông nhấn mạnh rằng, nếu ông giải quyết được tranh chấp, ông sẽ được công nhận một cách đầy đủ là lãnh chúa của Scotland. Người Scots miễn cưỡng nhượng bộ, và trả lời rằng khi đất nước không có vua, thì không ai có quyền đưa ra quyết định như vậy. Thế cờ này bị phá hỏng khi những người tranh chấp đồng ý rằng vương quốc sẽ được bàn giao cho Edward cho đến khi tìm ra người thừa kế. Sau cuộc lựa chọn kéo dài, quyết định cuối cùng là ngai vàng trao cho John Balliol ngày 17 tháng 11, 1292.[o]',
'Các nghiên cứu khảo cổ chỉ ra rằng đã có người định cư tại Nhật Bản từ thời Thượng kỳ đồ đá cũ. Những ghi chép đầu tiên đề cập đến quốc gia này nằm trong các thư liệu lịch sử Trung Hoa có từ thế kỷ thứ nhất Công Nguyên. Thoạt đầu chịu ảnh hưởng từ các vùng đất khác, chủ yếu là Đế quốc Trung Quốc, tiếp đến là giai đoạn tự cách ly, về sau thoát khỏi sự chi phối của thế giới phương Tây, đã hình thành những nét đặc trưng trong lịch sử và văn hóa Nhật Bản. Từ thế kỷ XII đến năm 1868, Nhật Bản liên tục thuộc quyền cai trị của các quân nhân phong kiến shogun nhân danh Thiên hoàng. Quốc gia này bước vào quá trình cô lập kéo dài suốt nửa đầu thế kỷ XVII, và chỉ kết thúc vào năm 1853 khi một hạm đội của Hoa Kỳ gây áp lực buộc Nhật Bản phải mở cửa với phương Tây. Gần hai thập kỷ nội chiến và bạo loạn đã xảy ra trước khi Thiên hoàng Minh Trị tái thiết lại đất nước trong vai trò nguyên thủ vào năm 1868 và khai sinh Đế quốc Nhật Bản, với Thiên hoàng trở thành biểu tượng thiêng liêng của dân tộc. Trong những năm cuối thế kỷ XIX đầu thế kỷ XX, những thắng lợi sau chiến tranh Thanh-Nhật, chiến tranh Nga-Nhật và Chiến tranh thế giới thứ nhất đã cho phép Nhật Bản mở rộng đế chế của mình và củng cố quyền lực của chủ nghĩa quân phiệt. Cuộc chiến tranh Trung-Nhật năm 1937 đã nhanh chóng lan rộng thành một phần của Chiến tranh thế giới thứ hai từ năm 1941, mà cuối cùng kết thúc vào năm 1945 sau vụ ném bom nguyên tử xuống Hiroshima và Nagasaki. Từ thời điểm bản Hiến pháp mới được ban hành năm 1947, Nhật Bản duy trì chế độ quân chủ lập hiến kết hợp dân chủ đại nghị, trong đó cơ quan lập pháp dân cử là Quốc hội Nhật Bản.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.6329, 0.2978],
# [0.6329, 1.0000, 0.3934],
# [0.2978, 0.3934, 1.0000]])
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
Điểm chung của mọi vi xử lý hay họ xử lý là gì? |
Mọi vi xử lý hay họ vi xử lý đều có những tập chỉ thị mã máy riêng biệt. Các chỉ thị này là các mẫu bit được thiết kế tương ứng với những lệnh khác nhau của máy tính. Do đó, những tập chỉ thị này là riêng biệt của một lớp vi xử lý thuộc cùng một kiến trúc máy tính. Những thiết kế vi xử lý kế thừa thường bao gồm các chỉ thị của vi xử lý tiền nhiệm cùng với các chỉ thị mới. Đôi khi, các thiết kế kế thừa lại loại bỏ hay thay đổi chức năng một số mã chỉ thị (vì chúng cần dùng cho mục đích mới), gây ảnh hưởng đến sự đồng bộ mã nguồn ở một mức độ nhất định. Thậm chí, các vi xử lý đồng bộ cận hoàn toàn cũng có những sự biến đổi hành vi đối với một số chỉ thị, nhưng điều này rất hiếm xảy ra. Các hệ thống còn có thể khác nhau ở một số thành phần khác như phương thức sắp xếp bộ nhớ, hệ điều hành hay thiết bị ngoại vi. Vì các chương trình hay phụ thuộc vào các yếu tố này, các hệ thống khác nhau khó có thể chạy cùng một mã máy, ngay cả khi chúng sử dụng cùng một loại vi xử lý. |
Thực vật hạt kín phân bố phổ biến ở đâu trên thế giới? |
Sự tiến hóa của giới thực vật đã theo xu hướng thiết lập các loài thực vật với kiểu cách phát triển cố định và phù hợp với sự thay đổi của sự sống trên mặt đất, và thực vật hạt kín là biểu hiện cao nhất của quá trình tiến hóa này. Chúng tạo thành thảm thực vật chủ yếu trên bề mặt Trái Đất trong kỷ nguyên hiện tại. Thực vật hạt kín được tìm thấy từ hai địa cực tới xích đạo, khi mà sự sống của thực vật là có thể duy trì được. Chúng cũng rất phổ biến trong các vùng nông của các con sông và các hồ nước ngọt, cũng như có ít hơn về mặt số lượng loài trong các hồ nước mặn hay trong lòng đại dương. Tuy nhiên, các loài thực vật hạt kín thủy sinh không phải là các dạng nguyên thủy mà được phát sinh ra từ các dạng tổ tiên trung gian trên đất liền. Gắn liền với sự đa dạng về nơi sinh sống là sự dao động lớn về hình thái chung và kiểu sinh trưởng. Chẳng hạn, các loại bèo tấm quen thuộc che phủ bề mặt các ao hồ gồm có các chồi nhỏ màu xanh lục dạng "tản", gần như không thể hiện sự phân biệt giữa các... |
Việc thiết kế các phần mềm giáo dục tại nhà đã bị ảnh hưởng bởi phần mềm nào? |
Một phần lớn các chức năng có thể chạy với tốc độ 1000s được phát triển và phân phối từ giữa 1990 đến nay có mục đính chính là giáo dục tại nhà cho trẻ nhỏ. Sau đó các chức năng này bắt đầu gắn kết nội dung giáo dục với các môn học trong nhà trường (như là chương trình giáo dục quốc gia của Anh). Việc thiết kế các phần mềm giáo dục tại nhà đã bị ảnh hưởng mạnh mẽ bởi khái niệm trò chơi trên máy tính – nói cách khác, chúng được thiết kế để giải trí cũng như là để giáo dục. Tuy nhiên, ở mức độ nhất định thì cần thấy rõ sự khác biệt giữa các chức năng học thực sự (như ở đây) và phần mềm thiên về mặt giáo dục (được trình bay ở sau). Các bậc phụ huynh cần phải biết rõ sự khác biệt này để làm căn cứ lựa chọn. Các ví dụ sau đây đưa ra các phần mềm giáo dục cho trẻ em. Chúng có tính sư phạm, hướng vào việc dạy đọc viết và các kỹ năng về số học. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
per_device_train_batch_size: 1per_device_eval_batch_size: 1num_train_epochs: 4fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 1per_device_eval_batch_size: 1per_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: 1num_train_epochs: 4max_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: 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_torch_fusedoptim_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: 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: Falseneftune_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: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.5556 | 500 | 0.0 |
| 1.1111 | 1000 | 0.0 |
| 1.6667 | 1500 | 0.0 |
| 2.2222 | 2000 | 0.0 |
| 2.7778 | 2500 | 0.0 |
| 3.3333 | 3000 | 0.0 |
| 3.8889 | 3500 | 0.0 |
@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