Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper
•
1908.10084
•
Published
•
9
This is a Cross Encoder model finetuned from cross-encoder/mmarco-mMiniLMv2-L12-H384-v1 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("cross_encoder_model_id")
# Get scores for pairs of texts
pairs = [
['9. Die Fondsleitung darf für das Vermögen eines Teilvermögens höchstens je 10% der stimmrechtslosen Beteiligungspapiere, Schuldverschreibungen und/oder Geldmarktinstrumente desselben Emittenten sowie höchstens 25% der Anteile an anderen kollektiven Kapitalanlagen erwerben.', 'Beschränkung für stimmrechtslose Schuldverschreibungen: Fondsleitung und SICAV dürfen höchstens 10 Prozent Schuldverschreibungen oder Geldmarktinstrumente desselben Emittenten erwerben.'],
['Der Emittent der Sicherheiten muss eine hohe Bonität aufweisen und die Sicherheiten dürfen nicht von der Gegenpartei oder von einer dem Konzern der Gegenpartei angehörigen oder davon abhängigen Gesellschaft begeben sein.', 'Bonitätsanforderung für Gegenparteien und Garanten: Bei OTC-Geschäften muss die Gegenpartei oder deren Garant eine hohe Bonität aufweisen.'],
['5. a) Bei engagementreduzierenden Derivaten müssen die eingegangenen Verpflichtungen unter Vorbehalt von Bst. b und d dauernd durch die dem Derivat zu Grunde liegenden Basiswerte gedeckt sein.', '5. a) Bei engagementreduzierenden Derivaten müssen die eingegangenen Verpflichtungen unter Vorbehalt von Bst. b und d dauernd durch die dem Derivat zu Grunde liegenden Basiswerte gedeckt sein.'],
['1. Die Fondsleitung darf für Rechnung der Teilvermögen keine Kredite gewähren.', 'Verbot von Krediten und Bürgschaften: Zulasten eines Effektenfonds dürfen keine Kredite gewährt und keine Bürgschaften abgeschlossen werden.'],
['Zudem müssen die den Derivaten zugrunde liegenden Basiswerte nach diesem Fondsvertrag für das entsprechende Teilvermögen als Anlagen zulässig sein.', 'Deckung mit anderen Anlagen bei Indexderivaten: Deckung mit anderen Anlagen ist zulässig, wenn das Derivat auf einen extern berechneten Index lautet, der repräsentativ und korreliert ist.'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'9. Die Fondsleitung darf für das Vermögen eines Teilvermögens höchstens je 10% der stimmrechtslosen Beteiligungspapiere, Schuldverschreibungen und/oder Geldmarktinstrumente desselben Emittenten sowie höchstens 25% der Anteile an anderen kollektiven Kapitalanlagen erwerben.',
[
'Beschränkung für stimmrechtslose Schuldverschreibungen: Fondsleitung und SICAV dürfen höchstens 10 Prozent Schuldverschreibungen oder Geldmarktinstrumente desselben Emittenten erwerben.',
'Bonitätsanforderung für Gegenparteien und Garanten: Bei OTC-Geschäften muss die Gegenpartei oder deren Garant eine hohe Bonität aufweisen.',
'5. a) Bei engagementreduzierenden Derivaten müssen die eingegangenen Verpflichtungen unter Vorbehalt von Bst. b und d dauernd durch die dem Derivat zu Grunde liegenden Basiswerte gedeckt sein.',
'Verbot von Krediten und Bürgschaften: Zulasten eines Effektenfonds dürfen keine Kredite gewährt und keine Bürgschaften abgeschlossen werden.',
'Deckung mit anderen Anlagen bei Indexderivaten: Deckung mit anderen Anlagen ist zulässig, wenn das Derivat auf einen extern berechneten Index lautet, der repräsentativ und korreliert ist.',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
sentence_0, sentence_1, and label| sentence_0 | sentence_1 | label | |
|---|---|---|---|
| type | string | string | float |
| details |
|
|
|
| sentence_0 | sentence_1 | label |
|---|---|---|
9. Die Fondsleitung darf für das Vermögen eines Teilvermögens höchstens je 10% der stimmrechtslosen Beteiligungspapiere, Schuldverschreibungen und/oder Geldmarktinstrumente desselben Emittenten sowie höchstens 25% der Anteile an anderen kollektiven Kapitalanlagen erwerben. |
Beschränkung für stimmrechtslose Schuldverschreibungen: Fondsleitung und SICAV dürfen höchstens 10 Prozent Schuldverschreibungen oder Geldmarktinstrumente desselben Emittenten erwerben. |
1.0 |
Der Emittent der Sicherheiten muss eine hohe Bonität aufweisen und die Sicherheiten dürfen nicht von der Gegenpartei oder von einer dem Konzern der Gegenpartei angehörigen oder davon abhängigen Gesellschaft begeben sein. |
Bonitätsanforderung für Gegenparteien und Garanten: Bei OTC-Geschäften muss die Gegenpartei oder deren Garant eine hohe Bonität aufweisen. |
1.0 |
5. a) Bei engagementreduzierenden Derivaten müssen die eingegangenen Verpflichtungen unter Vorbehalt von Bst. b und d dauernd durch die dem Derivat zu Grunde liegenden Basiswerte gedeckt sein. |
5. a) Bei engagementreduzierenden Derivaten müssen die eingegangenen Verpflichtungen unter Vorbehalt von Bst. b und d dauernd durch die dem Derivat zu Grunde liegenden Basiswerte gedeckt sein. |
1.0 |
FitMixinLossper_device_train_batch_size: 1per_device_eval_batch_size: 1num_train_epochs: 20overwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 1per_device_eval_batch_size: 1per_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_torch_fusedoptim_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: 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: Falseneftune_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: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.7962 | 500 | 2.0688 |
| 1.5924 | 1000 | 1.0619 |
| 2.3885 | 1500 | 0.3302 |
| 3.1847 | 2000 | 0.4093 |
| 3.9809 | 2500 | 0.2725 |
| 4.7771 | 3000 | 0.1523 |
| 5.5732 | 3500 | 0.0737 |
| 6.3694 | 4000 | 0.0784 |
| 7.1656 | 4500 | 0.1115 |
| 7.9618 | 5000 | 0.1435 |
| 8.7580 | 5500 | 0.1006 |
| 9.5541 | 6000 | 0.0482 |
| 10.3503 | 6500 | 0.033 |
| 11.1465 | 7000 | 0.0273 |
| 11.9427 | 7500 | 0.127 |
| 12.7389 | 8000 | 0.2191 |
| 13.5350 | 8500 | 0.0331 |
| 14.3312 | 9000 | 0.0001 |
| 15.1274 | 9500 | 0.0137 |
| 15.9236 | 10000 | 0.0136 |
| 16.7197 | 10500 | 0.0235 |
| 17.5159 | 11000 | 0.0001 |
| 18.3121 | 11500 | 0.012 |
| 19.1083 | 12000 | 0.0112 |
| 19.9045 | 12500 | 0.0113 |
@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",
}