Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper
•
1908.10084
•
Published
•
9
This is a sentence-transformers model finetuned from Qwen/Qwen3-Embedding-0.6B. 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': 512, 'do_lower_case': False, 'architecture': 'PeftModelForFeatureExtraction'})
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, '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': True, '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("Mercity/memory-retrieval-qwen3-0.6b-lora")
# Run inference
queries = [
"Freelancer\u0027s on board, but I\u0027m anxious about the budget stretching for these fixes.",
]
documents = [
'Victor strongly values authenticity and has explicitly stated he would rather deliver 4 excellent, deeply resonant ads than 6 mediocre ones that rely on viral gimmicks.',
'Carlos successfully mastered the past tense (Passé Composé) last month by focusing solely on verb conjugation tables rather than contextual sentences.',
'Raj recently won a $500 gift certificate specifically for experiences/tours redeemable through a regional travel aggregator.',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 1024] [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[ 0.3463, -0.1885, -0.0302]])
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
Our budget's stretched thin with the condo mortgage and student loans, yet we're locked into this $4k Ireland trip next summer—am I being irresponsible by not prioritizing career growth over these family splurges? |
Liam's father, who was rarely present due to travel, recently reconciled with Liam and offered to pay for 100% of Ava's future college tuition, regardless of Liam's career path. |
Liam is extremely dedicated to his career and has always prioritized professional advancement over personal comfort. |
I've got $1800 left after flights for my Tokyo conference trip—can you recommend budget vegan hotels close to the venue to keep things simple? |
Lena's primary networking goal for this trip is securing a mentorship with Kenji Tanaka, a speaker at the conference known for hosting small, private dinners for potential mentees. |
Lena is intensely private about her financial struggles and views asking for help or discussing debt openly as a personal failure. |
Inflation's killing my shop, but I wanna surprise Lena with milestone magic on a dime. |
Last year, Marcus successfully organized a surprise 'Family Fun Day' at a local park for Lena's birthday, which she cited as the best day they'd had since before Jamal got sick, despite being low-cost. |
Maria recently spent an hour reviewing the history of Mandarin tonal development since the Han Dynasty. |
TripletLoss with these parameters:{
"distance_metric": "TripletDistanceMetric.COSINE",
"triplet_margin": 0.5
}
eval_strategy: stepsper_device_train_batch_size: 64per_device_eval_batch_size: 64num_train_epochs: 5fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_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: 5max_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: 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}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_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: noneftune_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: Trueprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.0865 | 500 | 0.1927 |
| 0.1730 | 1000 | 0.1023 |
| 0.2595 | 1500 | 0.0841 |
| 0.3460 | 2000 | 0.0772 |
| 0.4325 | 2500 | 0.0704 |
| 0.5190 | 3000 | 0.0635 |
| 0.6055 | 3500 | 0.0576 |
| 0.6920 | 4000 | 0.0545 |
| 0.7785 | 4500 | 0.0522 |
| 0.8651 | 5000 | 0.0484 |
| 0.9516 | 5500 | 0.0465 |
| 1.0 | 5780 | - |
| 1.0381 | 6000 | 0.0388 |
| 1.1246 | 6500 | 0.0323 |
| 1.2111 | 7000 | 0.0318 |
| 1.2976 | 7500 | 0.0314 |
| 1.3841 | 8000 | 0.0294 |
| 1.4706 | 8500 | 0.0301 |
| 1.5571 | 9000 | 0.0283 |
| 1.6436 | 9500 | 0.0272 |
| 1.7301 | 10000 | 0.0247 |
| 1.8166 | 10500 | 0.0248 |
| 1.9031 | 11000 | 0.0233 |
| 1.9896 | 11500 | 0.0228 |
| 2.0 | 11560 | - |
| 2.0761 | 12000 | 0.0154 |
| 2.1626 | 12500 | 0.0141 |
| 2.2491 | 13000 | 0.0146 |
| 2.3356 | 13500 | 0.0135 |
| 2.4221 | 14000 | 0.0143 |
| 2.5087 | 14500 | 0.0139 |
| 2.5952 | 15000 | 0.014 |
| 2.6817 | 15500 | 0.0128 |
| 2.7682 | 16000 | 0.0126 |
| 2.8547 | 16500 | 0.0122 |
| 2.9412 | 17000 | 0.0114 |
| 3.0 | 17340 | - |
| 3.0277 | 17500 | 0.0104 |
| 3.1142 | 18000 | 0.007 |
| 3.2007 | 18500 | 0.0069 |
| 3.2872 | 19000 | 0.0067 |
| 3.3737 | 19500 | 0.0064 |
| 3.4602 | 20000 | 0.0067 |
| 3.5467 | 20500 | 0.0063 |
| 3.6332 | 21000 | 0.0061 |
| 3.7197 | 21500 | 0.0058 |
| 3.8062 | 22000 | 0.0058 |
| 3.8927 | 22500 | 0.0051 |
| 3.9792 | 23000 | 0.005 |
| 4.0 | 23120 | - |
| 4.0657 | 23500 | 0.0035 |
| 4.1522 | 24000 | 0.0027 |
| 4.2388 | 24500 | 0.0028 |
| 4.3253 | 25000 | 0.0025 |
| 4.4118 | 25500 | 0.0025 |
| 4.4983 | 26000 | 0.0024 |
@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{hermans2017defense,
title={In Defense of the Triplet Loss for Person Re-Identification},
author={Alexander Hermans and Lucas Beyer and Bastian Leibe},
year={2017},
eprint={1703.07737},
archivePrefix={arXiv},
primaryClass={cs.CV}
}