Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 12
This is a Cross Encoder model finetuned from svalabs/cross-electra-ms-marco-german-uncased using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.
First install the Sentence Transformers library:
pip install -U sentence-transformers
Then you can load this model and run inference.
from sentence_transformers import CrossEncoder
# Download from the 🤗 Hub
model = CrossEncoder("damon6/reranker-cross-electra-ms-marco-german-uncased-shop_api_v3-bce")
# Get scores for pairs of texts
pairs = [
['HPE ANW Networks Startup SVC U4832E Merkmal', 'HPE Care Pack Services sind leicht zu erwerben und zeichnen sich durch hohe Benutzerfreundlichkeit aus.'],
['HPE ANW Networks Startup SVC U4832E Merkmal', 'Dieses USB 2.0 Kabel von Delock dient zum Anschluss von verschiedenen USB Geräten, wie z. B. Drucker oder Scanner, an einen freien USB Port.'],
['HPE ANW Networks Startup SVC U4832E Merkmal', 'HPE ANW FC 1Y NBD EXCH 7220DC Contr SVC H3FQ1E.'],
['HPE ANW Networks Startup SVC U4832E Merkmal', 'Die SanDisk Extreme PRO Portable SSD ist eine robuste, zuverlässige Speicherlösung mit hoher SSD-Performance aus dem Hause SanDisk - der Marke, der professionelle Fotografen aus aller Welt vertrauen.'],
['HPE ANW Networks Startup SVC U4832E Merkmal', 'Farbe und schwarze Texte'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'HPE ANW Networks Startup SVC U4832E Merkmal',
[
'HPE Care Pack Services sind leicht zu erwerben und zeichnen sich durch hohe Benutzerfreundlichkeit aus.',
'Dieses USB 2.0 Kabel von Delock dient zum Anschluss von verschiedenen USB Geräten, wie z. B. Drucker oder Scanner, an einen freien USB Port.',
'HPE ANW FC 1Y NBD EXCH 7220DC Contr SVC H3FQ1E.',
'Die SanDisk Extreme PRO Portable SSD ist eine robuste, zuverlässige Speicherlösung mit hoher SSD-Performance aus dem Hause SanDisk - der Marke, der professionelle Fotografen aus aller Welt vertrauen.',
'Farbe und schwarze Texte',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
shop_api_v3CrossEncoderRerankingEvaluator with these parameters:{
"at_k": 10,
"always_rerank_positives": true
}
| Metric | Value |
|---|---|
| map | 0.9977 (+0.9975) |
| mrr@10 | 0.9977 (+0.9975) |
| ndcg@10 | 0.9983 (+0.9979) |
anchor, positive, and label| anchor | positive | label | |
|---|---|---|---|
| type | string | string | int |
| details |
|
|
|
| anchor | positive | label |
|---|---|---|
HPE ANW Networks Startup SVC U4832E Merkmal |
HPE Care Pack Services sind leicht zu erwerben und zeichnen sich durch hohe Benutzerfreundlichkeit aus. |
1 |
HPE ANW Networks Startup SVC U4832E Merkmal |
Dieses USB 2.0 Kabel von Delock dient zum Anschluss von verschiedenen USB Geräten, wie z. B. Drucker oder Scanner, an einen freien USB Port. |
0 |
HPE ANW Networks Startup SVC U4832E Merkmal |
HPE ANW FC 1Y NBD EXCH 7220DC Contr SVC H3FQ1E. |
0 |
BinaryCrossEntropyLoss with these parameters:{
"activation_fn": "torch.nn.modules.linear.Identity",
"pos_weight": 5
}
eval_strategy: stepsper_device_train_batch_size: 16per_device_eval_batch_size: 16learning_rate: 2e-05num_train_epochs: 2warmup_ratio: 0.1seed: 12bf16: Truedataloader_num_workers: 4load_best_model_at_end: Trueoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 16per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 2e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 2max_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: 12data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Truefp16: 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: 4dataloader_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}tp_size: 0fsdp_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: proportional| Epoch | Step | Training Loss | shop_api_v3_ndcg@10 |
|---|---|---|---|
| -1 | -1 | - | 0.9694 (+0.9689) |
| 0.0004 | 1 | 0.2568 | - |
| 0.0836 | 200 | 0.3495 | - |
| 0.1672 | 400 | 0.1825 | - |
| 0.2508 | 600 | 0.163 | - |
| 0.3344 | 800 | 0.1344 | - |
| 0.4181 | 1000 | 0.145 | 0.9963 (+0.9958) |
| 0.5017 | 1200 | 0.1787 | - |
| 0.5853 | 1400 | 0.1644 | - |
| 0.6689 | 1600 | 0.1566 | - |
| 0.7525 | 1800 | 0.1058 | - |
| 0.8361 | 2000 | 0.1154 | 0.9981 (+0.9977) |
| 0.9197 | 2200 | 0.1144 | - |
| 1.0033 | 2400 | 0.1295 | - |
| 1.0870 | 2600 | 0.0308 | - |
| 1.1706 | 2800 | 0.0331 | - |
| 1.2542 | 3000 | 0.0374 | 0.9973 (+0.9968) |
| 1.3378 | 3200 | 0.0498 | - |
| 1.4214 | 3400 | 0.0655 | - |
| 1.5050 | 3600 | 0.0545 | - |
| 1.5886 | 3800 | 0.0486 | - |
| 1.6722 | 4000 | 0.018 | 0.9983 (+0.9979) |
| 1.7559 | 4200 | 0.0424 | - |
| 1.8395 | 4400 | 0.0269 | - |
| 1.9231 | 4600 | 0.0572 | - |
| -1 | -1 | - | 0.9983 (+0.9979) |
@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",
}