Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper
•
1908.10084
•
Published
•
12
This is a sentence-transformers model finetuned from google/embeddinggemma-300m. It maps sentences & paragraphs to a 768-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': 2048, 'do_lower_case': False, 'architecture': 'Gemma3TextModel'})
(1): Pooling({'word_embedding_dimension': 768, '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): Dense({'in_features': 768, 'out_features': 3072, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
(3): Dense({'in_features': 3072, 'out_features': 768, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
(4): 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("cristvz01/my-embedding-gemma-retrieval")
# Run inference
queries = [
"S\u1ef1 k\u1ebft h\u1ee3p gi\u1eefa l\u1ec7nh \u0027for\u0027 v\u00e0 to\u00e1n t\u1eed \u0027in\u0027 c\u00f3 c\u00f4ng d\u1ee5ng g\u00ec?",
]
documents = [
'Có thể duyệt nhanh từng phần tử của danh sách bằng toán tử in và lệnh for mà không cần sử dụng lệnh range().',
'Mạng Internet là một hệ thống thông tin toàn cầu gồm các mạng máy tính được liên kết với nhau. Giao thức chính được sử dụng là bộ giao thức TCP/IP, cho phép hàng tỷ người dùng trao đổi thông tin.',
'Bộ giám sát hành trình trên xe tải hoặc xe khách ghi lại và gửi dữ liệu về tốc độ, toạ độ, và thời gian về máy chủ. Dựa trên các dữ liệu này, người ta có thể phân tích và xác định được các hành vi vi phạm giao thông của tài xế.',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 768] [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[ 0.7963, 0.0521, -0.1181]])
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
Môn Tin học lớp 10 được chia thành những định hướng nghề nghiệp chính nào? |
Từ lớp 10, môn Tin học sẽ được phân chia thành hai định hướng nghề nghiệp lớn: Tin học ứng dụng (ICT) và Khoa học máy tính (CS). Định hướng ICT sẽ cung cấp nhiều hơn các kĩ năng sử dụng phần mềm ứng dụng; định hướng CS sẽ cung cấp các kiến thức cơ bản sâu hơn liên quan tới lĩnh vực Khoa học máy tính. |
Thuật toán là một dãy hữu hạn các chỉ dẫn rõ ràng, có thể thực hiện được để giải quyết một lớp các bài toán. Một thuật toán tốt cần có các tính chất như tính dừng, tính xác định và tính đúng đắn. |
Sự khác nhau cơ bản giữa định hướng Tin học ứng dụng (ICT) và Khoa học máy tính (CS) là gì? |
Định hướng ICT sẽ cung cấp nhiều hơn các kĩ năng sử dụng phần mềm ứng dụng; định hướng CS sẽ cung cấp các kiến thức cơ bản sâu hơn liên quan tới lĩnh vực Khoa học máy tính. |
Mạng máy tính là một hệ thống gồm các máy tính và thiết bị được kết nối với nhau bằng các phương tiện truyền dẫn để chia sẻ tài nguyên như dữ liệu, phần mềm, máy in. Các loại mạng phổ biến bao gồm mạng LAN và mạng WAN. |
Cấu trúc của một bài học trong sách giáo khoa Tin học 10 được thiết kế như thế nào? |
Mỗi bài học đều được bắt đầu bằng một hoạt động khởi động gợi mở, các mạch kiến thức trong nội dung bài học đều được gắn với những hoạt động khám phá kiến thức giúp tăng cường tính chủ động của các em trong học tập. Sau khi hình thành kiến thức là các câu hỏi, bài tập luyện tập và cuối cùng là bài tập vận dụng. |
Hệ nhị phân là một hệ đếm chỉ sử dụng hai ký tự là 0 và 1. Đây là hệ thống số cơ bản mà máy tính sử dụng để biểu diễn và xử lý thông tin. Mỗi chữ số trong hệ nhị phân được gọi là một bit. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
per_device_train_batch_size: 32learning_rate: 2e-05num_train_epochs: 20warmup_ratio: 0.1prompts: task: search result | query:overwrite_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: 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: 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}parallelism_config: Nonedeepspeed: 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: task: search result | query: batch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 1.0 | 145 | 0.0055 |
| 2.0 | 290 | 0.0054 |
| 3.0 | 435 | 0.0067 |
| 4.0 | 580 | 0.0141 |
| 5.0 | 725 | 0.0048 |
@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
google/embeddinggemma-300m