SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2
This is a sentence-transformers model finetuned from sentence-transformers/all-MiniLM-L6-v2. It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for retrieval.
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: sentence-transformers/all-MiniLM-L6-v2
- Maximum Sequence Length: 128 tokens
- Output Dimensionality: 384 dimensions
- Similarity Function: Cosine Similarity
- Supported Modality: Text
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'BertModel'})
(1): Pooling({'embedding_dimension': 384, 'pooling_mode': 'mean', 'include_prompt': True})
(2): Normalize({})
)
Usage
Direct Usage (Sentence Transformers)
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 = [
'Noise Pop buds with 50 Hrs of playtime, Quad Mic with ENC Bluetooth',
'Noise Pop Buds Truly Wireless Bluetooth Earbuds, Lilac Pop',
'Realme Buds T110 with AI ENC for calls, upto 38 hours of Playback and Fast Charging Bluetooth Headset (Jazz Blue, True Wireless)',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.6913, 0.4763],
# [0.6913, 1.0000, 0.3947],
# [0.4763, 0.3947, 1.0000]])
Evaluation
Metrics
Binary Classification
- Dataset:
dev - Evaluated with BinaryClassificationEvaluator
| Metric | Value |
|---|---|
| cosine_accuracy | 0.8 |
| cosine_accuracy_threshold | 0.9176 |
| cosine_f1 | 0.6538 |
| cosine_f1_threshold | 0.6996 |
| cosine_precision | 0.5 |
| cosine_recall | 0.9444 |
| cosine_ap | 0.7089 |
| cosine_mcc | 0.4991 |
Training Details
Training Dataset
Unnamed Dataset
- Size: 36 training samples
- Columns: sentence_0 and sentence_1
- Approximate statistics based on the first 36 samples:
sentence_0 sentence_1 type string string details min: 7 tokensmean: 30.17 tokensmax: 62 tokens min: 14 tokensmean: 40.92 tokensmax: 65 tokens - Samples:
sentence_0 sentence_1 Mivi Duopods N4 True Wireless TWS Earbuds, Upto 50 hrs of playtime, 13mm driver, Bluetooth v5.3, Dual Connection, Voice Assistance, Bluetooth v5.3, AI ENC, Low Latency, Cobalt Black Mivi Duopods N4 True Wireless TWS Earbuds, Upto 50 hrs of playtime, 13mm driver, Bluetooth v5.3, Dual Connection, Voice Assistance, Bluetooth v5.3, AI ENC, Low Latency, Lime White boAt Airdopes 191 ANC in-ear earbuds with 60 Hrs Playtime, 4 Mics with ENx Tech, 32 dB ANC, Ambient Mode, Seamless In-ear detection, 13 mm drivers & Bluetooth v5.3 (Pellucid Orange) boAt Airdopes 191 ANC in-ear earbuds with 60 Hrs Playtime, 4 Mics with ENx Tech, 32 dB ANC, Ambient Mode, Seamless In-ear detection, 13 mm drivers & Bluetooth v5.3 (Pellucid White) Mivi Duopods N5 True Wireless TWS Earbuds, Upto 50 hrs of Playtime, bluetooth v5.3, Low Latency, AI ENC, 13mm Driver, Ivory Sheen Mivi Duopods N5 True Wireless TWS Earbuds, Upto 50 hrs of Playtime, bluetooth v5.3, Low Latency, AI ENC, 13mm Driver, Lush Green - Loss: MultipleNegativesRankingLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "cos_sim", "gather_across_devices": false, "directions": [ "query_to_doc" ], "partition_mode": "joint", "hardness_mode": null, "hardness_strength": 0.0 }
Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 32per_device_eval_batch_size: 32multi_dataset_batch_sampler: round_robin
All Hyperparameters
do_predict: Falseprediction_loss_only: Trueper_device_train_batch_size: 32per_device_eval_batch_size: 32gradient_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: 3max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_ratio: Nonewarmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Trueenable_jit_checkpoint: Falsesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseuse_cpu: Falseseed: 42data_seed: Nonebf16: Falsefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: -1ddp_backend: Nonedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonedisable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}accelerator_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: Nonegroup_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: Truepush_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_for_metrics: []eval_do_concat_batches: Trueauto_find_batch_size: Falsefull_determinism: Falseddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_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: Trueuse_cache: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}
Training Logs
| Epoch | Step | dev_cosine_ap |
|---|---|---|
| 1.0 | 1 | 0.6912 |
| 2.0 | 2 | 0.7085 |
| 3.0 | 3 | 0.7089 |
Training Time
- Training: 4.0 seconds
Framework Versions
- Python: 3.12.13
- Sentence Transformers: 5.4.1
- Transformers: 5.0.0
- PyTorch: 2.10.0+cu128
- Accelerate: 1.13.0
- Datasets: 5.0.0
- Tokenizers: 0.22.2
Citation
BibTeX
Sentence Transformers
@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",
}
MultipleNegativesRankingLoss
@misc{oord2019representationlearningcontrastivepredictive,
title={Representation Learning with Contrastive Predictive Coding},
author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
year={2019},
eprint={1807.03748},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/1807.03748},
}