Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper
•
1908.10084
•
Published
•
10
This is a sentence-transformers model finetuned from BAAI/bge-small-en. It maps sentences & paragraphs to a 384-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': True}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': True, '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': False, '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("sentence_transformers_model_id")
# Run inference
sentences = [
'What is the website to find services for customers purchasing from a commercial reseller?',
'Parts and Materials\nHPE will provide HPE-supported replacement parts and materials necessary to maintain the covered hardware\nproduct in operating condition, including parts and materials for available and recommended engineering\nimprovements. \xa0\nParts and components that have reached their maximum supported lifetime and/or the maximum usage\nlimitations as set forth in the manufacturer\'s operating manual, product quick-specs, or the technical product\ndata sheet will not be provided, repaired, or replaced as part of these services.\n\xa0\nHow to Purchase Services\nServices are sold by Hewlett Packard Enterprise and Hewlett Packard Enterprise Authorized Service Partners:\nServices for customers purchasing from HPE or an enterprise reseller are quoted using HPE order\nconfiguration tools.\nCustomers purchasing from a commercial reseller can find services at\nhttps://ssc.hpe.com/portal/site/ssc/\n\xa0\nAI Powered and Digitally Enabled Support Experience\nAchieve faster time to resolution with access to product-specific resources and expertise through a digital and\ndata driven customer experience \xa0\nSign into the HPE Support Center experience, featuring streamlined self-serve case creation and\nmanagement capabilities with inline knowledge recommendations. You will also find personalized task alerts\nand powerful troubleshooting support through an intelligent virtual agent with seamless transition when needed\nto a live support agent. \xa0\nhttps://support.hpe.com/hpesc/public/home/signin\nConsume IT On Your Terms\nHPE GreenLake edge-to-cloud platform brings the cloud experience directly to your apps and data wherever\nthey are-the edge, colocations, or your data center. It delivers cloud services for on-premises IT infrastructure\nspecifically tailored to your most demanding workloads. With a pay-per-use, scalable, point-and-click self-\nservice experience that is managed for you, HPE GreenLake edge-to-cloud platform accelerates digital\ntransformation in a distributed, edge-to-cloud world.\nGet faster time to market\nSave on TCO, align costs to business\nScale quickly, meet unpredictable demand\nSimplify IT operations across your data centers and clouds\nTo learn more about HPE Services, please contact your Hewlett Packard Enterprise sales representative or\nHewlett Packard Enterprise Authorized Channel Partner. \xa0 Contact information for a representative in your area\ncan be found at "Contact HPE" https://www.hpe.com/us/en/contact-hpe.html \xa0\nFor more information\nhttp://www.hpe.com/services\nQuickSpecs\nHPE Cray XD675\nService and Support\nDA - 17239\xa0\xa0\xa0Worldwide QuickSpecs — Version 4 — 8/19/2024\nPage\xa0 13',
'HPE Cray XD675 Server Top View\nItem Description \xa0 \xa0\n1. 8x AMD MI300X OAM Accelerator \xa0 \xa0\n\xa0\nQuickSpecs\nHPE Cray XD675\nOverview\nDA - 17239\xa0\xa0\xa0Worldwide QuickSpecs — Version 4 — 8/19/2024\nPage\xa0 2',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
InformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.4857 |
| cosine_accuracy@3 | 0.8048 |
| cosine_accuracy@5 | 0.8619 |
| cosine_accuracy@10 | 0.9095 |
| cosine_precision@1 | 0.4857 |
| cosine_precision@3 | 0.2683 |
| cosine_precision@5 | 0.1724 |
| cosine_precision@10 | 0.091 |
| cosine_recall@1 | 0.4857 |
| cosine_recall@3 | 0.8048 |
| cosine_recall@5 | 0.8619 |
| cosine_recall@10 | 0.9095 |
| cosine_ndcg@10 | 0.7184 |
| cosine_mrr@10 | 0.6552 |
| cosine_map@100 | 0.6599 |
| dot_accuracy@1 | 0.4857 |
| dot_accuracy@3 | 0.8048 |
| dot_accuracy@5 | 0.8619 |
| dot_accuracy@10 | 0.9095 |
| dot_precision@1 | 0.4857 |
| dot_precision@3 | 0.2683 |
| dot_precision@5 | 0.1724 |
| dot_precision@10 | 0.091 |
| dot_recall@1 | 0.4857 |
| dot_recall@3 | 0.8048 |
| dot_recall@5 | 0.8619 |
| dot_recall@10 | 0.9095 |
| dot_ndcg@10 | 0.7184 |
| dot_mrr@10 | 0.6552 |
| dot_map@100 | 0.6599 |
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
What is the maximum number of Apollo n2X00 series chassis that can fit in a 42U rack? |
HPE Apollo 2000 Gen10 Plus System |
What is the maximum number of independent servers that can be mounted in a single 2U Apollo 2000 Gen10 Plus System chassis? |
HPE Apollo 2000 Gen10 Plus System |
What is the processor type supported by the HPE Apollo n2800 Gen10 Plus 24 SFF Flexible CTO chassis? |
HPE Apollo n2600 Gen10 Plus SFF CTO Chassis supports both Intel and AMD based server nodes |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
eval_strategy: stepsper_device_train_batch_size: 256per_device_eval_batch_size: 256num_train_epochs: 20multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 256per_device_eval_batch_size: 256per_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: 20max_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: 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}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: Falsehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseeval_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: Nonedispatch_batches: Nonesplit_batches: 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: Falsebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | cosine_map@100 |
|---|---|---|
| 1.0 | 7 | 0.4864 |
| 2.0 | 14 | 0.5209 |
| 3.0 | 21 | 0.5131 |
| 4.0 | 28 | 0.5047 |
| 5.0 | 35 | 0.5480 |
| 6.0 | 42 | 0.5808 |
| 7.0 | 49 | 0.5950 |
| 7.1429 | 50 | 0.5975 |
| 8.0 | 56 | 0.6145 |
| 9.0 | 63 | 0.6268 |
| 10.0 | 70 | 0.6292 |
| 11.0 | 77 | 0.6385 |
| 12.0 | 84 | 0.6445 |
| 13.0 | 91 | 0.6279 |
| 14.0 | 98 | 0.6296 |
| 14.2857 | 100 | 0.6321 |
| 15.0 | 105 | 0.6317 |
| 16.0 | 112 | 0.6401 |
| 17.0 | 119 | 0.6590 |
| 18.0 | 126 | 0.6562 |
| 19.0 | 133 | 0.6599 |
@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
BAAI/bge-small-en