Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use Matjac5/MNLP_M3_RAG_MODEL_data_mixture_maths with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Matjac5/MNLP_M3_RAG_MODEL_data_mixture_maths")
sentences = [
"There are seven thieves. They stole diamonds from a diamond merchant and ran away. While running, night sets in and they decide to rest in the jungle.\nWhen everybody was sleeping, two of them woke up and decided to divide the diamonds equally among themselves. But when they divided the diamonds equally, one diamond is left.\nSo they woke up the 3rd thief and tried to divide the diamonds equally again but still one diamond was left. Then they woke up the 4th thief to divide the diamonds equally again, and again one diamond was left. This happened with the 5th and 6th thief – one diamond was still left.\nFinally, they woke up the 7th thief and this time the diamonds were divided equally.\nHow many diamonds did they steal in total?",
"'",
"'",
"e"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from Qwen/Qwen3-0.6B-Base. 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': 128, 'do_lower_case': False}) with Transformer model: Qwen3Model
(1): Pooling({'word_embedding_dimension': 1024, '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})
)
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 = [
'Cerebral angiography was performed by -',
'S',
'2',
]
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]
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
A 1200 m long train crosses a tree in 120 sec, how much time will I take to pass a platform 1100 m long? |
' |
What is the opposite of rarefaction zones, where air molecules in waves are loosely packed? |
[ |
if w is 40 percent less than e , e is 40 percent less than y , and z is 46 percent less than y , then z is greater than w by what percent of w ? |
% |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
per_device_train_batch_size: 64per_device_eval_batch_size: 64num_train_epochs: 4fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 64per_device_eval_batch_size: 64per_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_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: Nonehub_always_push: Falsegradient_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: Falseeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | Training Loss |
|---|---|---|
| 0.1190 | 500 | 4.0939 |
| 0.2380 | 1000 | 3.7716 |
| 0.3571 | 1500 | 0.0 |
| 0.4761 | 2000 | 0.0 |
| 0.5951 | 2500 | 0.0 |
| 0.7141 | 3000 | 0.0 |
| 0.8331 | 3500 | 0.0 |
| 0.9522 | 4000 | 0.0 |
| 1.0712 | 4500 | 0.0 |
| 1.1902 | 5000 | 0.0 |
| 1.3092 | 5500 | 0.0 |
| 1.4282 | 6000 | 0.0 |
| 1.5473 | 6500 | 0.0 |
| 1.6663 | 7000 | 0.0 |
| 1.7853 | 7500 | 0.0 |
| 1.9043 | 8000 | 0.0 |
| 2.0233 | 8500 | 0.0 |
| 2.1423 | 9000 | 0.0 |
| 2.2614 | 9500 | 0.0 |
| 2.3804 | 10000 | 0.0 |
| 2.4994 | 10500 | 0.0 |
| 2.6184 | 11000 | 0.0 |
| 2.7374 | 11500 | 0.0 |
| 2.8565 | 12000 | 0.0 |
| 2.9755 | 12500 | 0.0 |
| 3.0945 | 13000 | 0.0 |
| 3.2135 | 13500 | 0.0 |
| 3.3325 | 14000 | 0.0 |
| 3.4516 | 14500 | 0.0 |
| 3.5706 | 15000 | 0.0 |
| 3.6896 | 15500 | 0.0 |
| 3.8086 | 16000 | 0.0 |
| 3.9276 | 16500 | 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
Qwen/Qwen3-0.6B-Base