Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 14
How to use zazabe/categorizer-mpnet-v2-mnrl with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("zazabe/categorizer-mpnet-v2-mnrl")
sentences = [
"Software: SAP Business Connector. Manufacturer: SAP. Focus: Integration platform for connecting SAP systems with non-SAP systems, focusing on B2B integration and data exchange.. Features: Enables data exchange between SAP systems and external applications. Supports various communication protocols. Provides transformation and routing capabilities.. Security: None.",
"Other Applications > Other Software > Unclassified Software",
"Business Applications > Product Lifecycle Management (PLM) > Product Design",
"Business Applications > Enterprise Resource Planning (ERP) > Cross-Industry ERP Suites"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from sentence-transformers/all-mpnet-base-v2. 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': 384, 'do_lower_case': False, 'architecture': 'MPNetModel'})
(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): 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("zazabe/categorizer-mpnet-v2-mnrl")
# Run inference
sentences = [
'Software: SEPA-Batch Profi. Manufacturer: None. Focus: Specialized in handling SEPA and related banking formats for batch processing of payments and direct debits, targeting businesses and organizations needing efficient electronic payment management.. Features: SEPA-Batch Profi enables the creation and management of cashless bookings in SEPA/DTAUS/DTAZV formats, supporting both domestic and EU credit and debit transactions. It helps reduce transaction costs by using widely supported banking formats. The software includes import functions for clients and booking records.. Security: not found.',
'Business Applications > Finance > Payment Systems',
'Tools and Utilities > Utilities > Desktop Enhancements',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000, 0.4858, -0.0712],
# [ 0.4858, 1.0000, 0.0091],
# [-0.0712, 0.0091, 1.0000]])
software_val_setInformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.5725 |
| cosine_accuracy@3 | 0.8 |
| cosine_accuracy@5 | 0.8431 |
| cosine_precision@1 | 0.5725 |
| cosine_precision@3 | 0.2667 |
| cosine_precision@5 | 0.1686 |
| cosine_precision@10 | 0.0922 |
| cosine_recall@1 | 0.5725 |
| cosine_recall@3 | 0.8 |
| cosine_recall@5 | 0.8431 |
| cosine_recall@10 | 0.9216 |
| cosine_ndcg@10 | 0.7514 |
| cosine_mrr@10 | 0.6966 |
| cosine_map@100 | 0.7008 |
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| anchor | positive |
|---|---|
Software: ASUS DisplayWidget. Manufacturer: ASUS. Focus: ASUS DisplayWidget is a utility designed to provide users with an easy way to customize and optimize their display settings for various tasks and preferences. It is primarily targeted at ASUS monitor users.. Features: ASUS DisplayWidget allows users to adjust display settings, such as brightness, contrast, color temperature, and gamma, directly from the desktop. It also offers preset modes for different usage scenarios, like gaming, reading, or watching movies. Additionally, it allows users to save and load custom display profiles.. Security: None. |
Utilities |
Software: Amazon JDBC Driver. Manufacturer: Amazon. Focus: Designed for Java developers needing to integrate their applications with Amazon's database offerings.. Features: Enables Java applications to connect to Amazon Web Services databases. Supports various AWS database services. Provides optimized performance for AWS environments.. Security: Leverages AWS security features. Supports encryption and secure connections.. |
Databases > Database Management Systems (DBMS) > Other Database Management Systems (DBMS) |
Software: SIMATIC Event Database. Manufacturer: Siemens. Focus: Designed for industrial automation systems, providing a structured approach to managing and analyzing events within SIMATIC environments.. Features: Centralized event logging and archiving, comprehensive diagnostics, and efficient troubleshooting.. Security: None. |
Database Management Systems (DBMS) |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| anchor | positive |
|---|---|
Software: SeaTools. Manufacturer: Seagate Technology LLC. Focus: Hard drive diagnostic tool for Seagate, Samsung, LaCie and Maxtor drives.. Features: Diagnoses hard drives, including identifying the make and model, serial number, firmware revision, drive size, and supported features. Performs several tests and provides detailed drive information.. Security: None. |
Tools and Utilities > Utilities > Accessibility and Assistive Tools |
Software: Stellar Repair for Access. Manufacturer: Stellar Data Recovery Inc.. Focus: Designed to repair corrupt Microsoft Access databases, restoring them to a usable state. It caters to individuals and businesses that rely on Access databases for data management.. Features: Repairs corrupt Access databases (MDB and ACCDB files). Recovers tables, forms, reports, modules, and other database objects. Supports recovery of deleted records.. Security: Does not modify the original database file during the repair process.. |
Tools and Utilities > Utilities > Accessibility and Assistive Tools |
Software: Citrix Monitor Service PowerShell snap-in. Manufacturer: Citrix Systems, Inc.. Focus: Designed for IT administrators and support staff responsible for managing and monitoring Citrix virtual application and desktop deployments.. Features: Provides real-time and historical monitoring of Citrix Virtual Apps and Desktops environments. Allows administrators to troubleshoot issues, identify trends, and optimize performance. Offers customizable dashboards and reporting capabilities.. Security: Leverages Citrix security protocols for data transmission and access control. Role-based access control to restrict access to sensitive monitoring data.. |
IT Infrastructure > IT Management > Alerts and Monitoring Tools |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
eval_strategy: epochper_device_train_batch_size: 16gradient_accumulation_steps: 8weight_decay: 0.01num_train_epochs: 10warmup_ratio: 0.1fp16: Trueload_best_model_at_end: Trueoptim: adamw_bnb_8bitoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: epochprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 8per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 8eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.01adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 10max_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: 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: Trueignore_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_bnb_8bitoptim_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: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Validation Loss | software_val_set_cosine_ndcg@10 |
|---|---|---|---|
| 1.0 | 24 | 0.3942 | 0.6777 |
| 2.0 | 48 | 0.3664 | 0.7310 |
| 3.0 | 72 | 0.3393 | 0.7453 |
| 4.0 | 96 | 0.3662 | 0.7555 |
| 5.0 | 120 | 0.3718 | 0.7492 |
| 6.0 | 144 | 0.3595 | 0.7435 |
| 7.0 | 168 | 0.3490 | 0.7402 |
| 8.0 | 192 | 0.3813 | 0.7462 |
| 9.0 | 216 | 0.3641 | 0.7536 |
| 10.0 | 240 | 0.3595 | 0.7514 |
@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
sentence-transformers/all-mpnet-base-v2