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_v1")
# Run inference
queries = [
"Qu\u00e2n \u0111\u1ed9i \u0111\u1ea7u tri\u1ec1u L\u00ea \u0111\u01b0\u1ee3c chia th\u00e0nh nh\u1eefng lo\u1ea1i h\u00ecnh \u0111\u01a1n v\u1ecb ch\u00ednh n\u00e0o?",
]
documents = [
'Đầu triều đại nhà Lê, binh chế được tổ chức thành các loại đơn vị nào?',
'Chính sách tuyển quân của nhà Lê tập trung vào những đối tượng nào?',
'Thông báo số 22 - TB/TW ban hành ngày 21-10-1980 đã đề cập đến những điểm cấp bách nào về phương thức quản lý hợp tác 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.7388, 0.5888, 0.1010]])
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
Trong 6 tháng đầu năm 1970, lực lượng vũ trang và nhân dân miền Nam đã đạt được những kết quả gì trong việc phá kế hoạch bình định của Mỹ và chính quyền Sài Gòn? |
Trong nửa đầu năm 1970, lực lượng vũ trang và nhân dân miền Nam đã đạt được những thành tựu gì trong việc làm thất bại âm mưu bình định của Mỹ và chính quyền Sài Gòn? |
Kế hoạch bình định của Mỹ và chính quyền Sài Gòn đã được triển khai như thế nào ở miền Nam vào năm 1970? |
Những yếu tố nào đã được Nhà nước xem xét khi quyết định giá bán lẻ chuẩn một số mặt hàng thuộc nhu cầu cơ bản? |
Nhà nước đã cân nhắc những yếu tố gì trong việc xác định giá bán lẻ tiêu chuẩn cho các mặt hàng thiết yếu? |
Người tiêu dùng xem xét những yếu tố nào để quyết định mua các mặt hàng thiết yếu? |
Mặc dù sôi nổi và lan rộng, những phong trào yêu nước và dân chủ ở Việt Nam sau Chiến tranh thế giới lần thứ nhất đã gặp phải những hạn chế gì về phạm vi hoạt động và tổ chức? |
Những phong trào yêu nước và dân chủ tại Việt Nam sau Thế chiến thứ nhất, dù có sự sôi nổi và lan rộng, đã đối mặt với những giới hạn nào về quy mô và cách thức tổ chức? |
Các phong trào yêu nước và dân chủ ở Việt Nam sau Chiến tranh thế giới lần thứ nhất đã đạt được những thành tựu đáng kể nào trong việc khơi dậy tinh thần dân tộc? |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
anchor, positive, and negative| anchor | positive | negative | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative |
|---|---|---|
Xã Vĩnh Thạnh (Long Thành - Đồng Nai) đã thoát khỏi tình trạng bị nước mặn bao vây nhờ hoạt động cụ thể nào của cộng đồng Công giáo? |
Cộng đồng Công giáo tại xã Vĩnh Thạnh (Long Thành - Đồng Nai) đã thực hiện hoạt động gì để giải quyết vấn đề xâm nhập mặn? |
Xã Vĩnh Thạnh (Long Thành - Đồng Nai) đang đối mặt với vấn đề nước ngọt khan hiếm do hạn hán kéo dài. |
Kết quả của cuộc đấu tranh chống chủ trương 'chấn hưng Phật giáo' và các tổ chức phản động đội lốt tôn giáo là gì? |
Cuộc đấu tranh nhằm chống lại chủ trương 'chấn hưng Phật giáo' và những tổ chức phản động núp bóng tôn giáo đã mang lại những kết quả gì? |
Chủ trương 'chấn hưng Phật giáo' có những mục tiêu chính là gì? |
Theo các nguồn tài liệu được đề cập, Lý Công Uẩn đã truy phong và ban tước hiệu cho những ai trong gia tộc sau khi lên ngôi? |
Dựa trên các tài liệu, Lý Công Uẩn đã ban tước hiệu cho những thành viên nào trong gia tộc sau khi ông đăng cơ? |
Sau khi lên ngôi, Lý Công Uẩn đã dời đô về Thăng Long. |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
learning_rate: 2e-05num_train_epochs: 5warmup_ratio: 0.1prompts: task: sentence similarity | query:overwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_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: 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: sentence similarity | query: batch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.6969 | 200 | 0.0356 |
| 1.3937 | 400 | 0.0461 |
| 2.0906 | 600 | 0.021 |
| 2.7875 | 800 | 0.0056 |
| 3.4843 | 1000 | 0.0014 |
| 4.1812 | 1200 | 0.0003 |
| 4.8780 | 1400 | 0.0003 |
@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