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("hienNguyen197/my-embedding-gemma_v2")
# Run inference
queries = [
"Ch\u00ednh c\u01b0\u01a1ng m\u1edbi c\u1ee7a M\u1eb7t tr\u1eadn Li\u00ean Vi\u1ec7t bao g\u1ed3m nh\u1eefng \u0111i\u1ec3m ch\u00ednh n\u00e0o?",
]
documents = [
'Những nội dung cốt lõi trong cương lĩnh mới của Mặt trận Liên Việt là gì?',
'Mặt trận Liên Việt được thành lập khi nào và với mục đích gì?',
'Theo ghi chép của Phan Huy Chú, việc thành lập chính quyền cấp huyện bắt đầu từ khi nào và những chức vụ nào đã được thiết lập?',
]
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.7782, 0.2418, 0.0867]])
InformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.002 |
| cosine_accuracy@3 | 0.012 |
| cosine_accuracy@5 | 0.014 |
| cosine_accuracy@10 | 0.038 |
| cosine_precision@1 | 0.002 |
| cosine_precision@3 | 0.004 |
| cosine_precision@5 | 0.0028 |
| cosine_precision@10 | 0.0038 |
| cosine_recall@1 | 0.0004 |
| cosine_recall@3 | 0.0025 |
| cosine_recall@5 | 0.0029 |
| cosine_recall@10 | 0.008 |
| cosine_ndcg@10 | 0.0056 |
| cosine_mrr@10 | 0.0097 |
| cosine_map@100 | 0.0033 |
InformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.004 |
| cosine_accuracy@3 | 0.018 |
| cosine_accuracy@5 | 0.026 |
| cosine_accuracy@10 | 0.054 |
| cosine_precision@1 | 0.004 |
| cosine_precision@3 | 0.0067 |
| cosine_precision@5 | 0.0056 |
| cosine_precision@10 | 0.0058 |
| cosine_recall@1 | 0.0008 |
| cosine_recall@3 | 0.0043 |
| cosine_recall@5 | 0.006 |
| cosine_recall@10 | 0.0123 |
| cosine_ndcg@10 | 0.0094 |
| cosine_mrr@10 | 0.0165 |
| cosine_map@100 | 0.0061 |
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
Tổng thống Giônxơn đã thực hiện những biện pháp tạm thời nào trong một năm để giải quyết tình hình Nam Việt Nam? |
Trong vòng một năm, Tổng thống Giônxơn đã áp dụng những hành động nhất thời nào để xử lý vấn đề ở miền Nam Việt Nam? |
Tổng thống Kennedy đã có những chính sách gì cho Việt Nam Cộng hòa trước năm 1963? |
Chính phủ Mỹ và Nam Việt Nam bắt đầu thi hành các kế hoạch gây áp lực quân sự ngấm ngầm chống lại Bắc Việt Nam vào tháng mấy năm 1964? |
Chính phủ Hoa Kỳ và Việt Nam Cộng hòa đã bắt đầu thực hiện các chiến dịch quân sự bí mật nhắm vào Bắc Việt Nam vào thời điểm nào trong năm 1964? |
Năm 1964, hai miền Nam Bắc Việt Nam đã tổ chức những hội nghị ngoại giao nào để thảo luận về việc chấm dứt xung đột? |
Mỹ đã mở những cuộc tiến công quân sự cụ thể nào ở Việt Nam nhằm gây áp lực quân sự không công khai chống lại Việt Nam Dân chủ Cộng hòa? |
Hãy liệt kê các hành động quân sự bí mật mà Hoa Kỳ đã thực hiện tại Việt Nam để gây sức ép lên Việt Nam Dân chủ Cộng hòa. |
Mỹ đã triển khai những chiến dịch quân sự công khai nào trong cuộc chiến tranh ở Việt Nam? |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
eval_strategy: epochlearning_rate: 2e-05num_train_epochs: 5warmup_ratio: 0.1load_best_model_at_end: Trueprompts: task: sentence similarity | query:overwrite_output_dir: Falsedo_predict: Falseeval_strategy: epochprediction_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: 2e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 5max_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: Trueignore_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: sentence similarity | query: batch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | cosine_ndcg@10 |
|---|---|---|---|
| 0.6270 | 200 | 0.0534 | - |
| 1.0 | 319 | - | 0.0056 |
| 0.6270 | 200 | 0.0278 | - |
| 1.0 | 319 | - | 0.0091 |
| 0.6270 | 200 | 0.0137 | - |
| 1.0 | 319 | - | 0.0079 |
| 1.2539 | 400 | 0.0104 | - |
| 1.8809 | 600 | 0.0162 | - |
| 2.0 | 638 | - | 0.0086 |
| 2.5078 | 800 | 0.0012 | - |
| 3.0 | 957 | - | 0.0093 |
| 3.1348 | 1000 | 0.0011 | - |
| 3.7618 | 1200 | 0.0002 | - |
| 4.0 | 1276 | - | 0.0094 |
| 4.3887 | 1400 | 0.0005 | - |
| 5.0 | 1595 | - | 0.0094 |
@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