Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
This is a sentence-transformers model finetuned from sentence-transformers/distiluse-base-multilingual-cased-v2. It maps sentences & paragraphs to a 512-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': 128, 'do_lower_case': False}) with Transformer model: DistilBertModel
(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): Dense({'in_features': 768, 'out_features': 512, 'bias': True, 'activation_function': 'torch.nn.modules.activation.Tanh'})
)
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("philipp-zettl/distiluse-base-multilingual-cased-v2-CEB")
# Run inference
sentences = [
'Kaufmann / Kauffrau für Spedition und Logistikdienstleistungen - Vorbereitung auf Externenprüfung / Externenregelung - geringe Vorkenntnisse - Intensivkurs (IHK)\n\nSie haben keinen Abschluss, aber sind berufserfahren und engagiert? Darauf lässt sich aufbauen! Die Externenprüfung ist ein Weg, eine Qualifikationen nachzuholen und eine Ausbildung abzuschließen. Mit einem Berufsabschluss haben Sie die besten Aussichten auf einen sicheren Job und mindern das Risiko von Arbeitslosigkeit. Damit eröffnet das Bestehen der Externenprüfung vielfältige Perspektiven und neue Chancen auf ein erfolgreiches Berufsleben und einen beruflichen Aufstieg. \n \nIm Rahmen dieser Maßnahme werden Sie auf die Externenprüfung zum Kaufmann bzw. zur Kauffrau für Spedition und Logistikdienstleistungen vorbereitet. \n \nDie individuelle Vorbereitung auf die Abschlussprüfung wird nach einer ausführlichen persönlichen Bildungsberatung für Sie zusammengestellt und richtet sich nach Ihren Vorkenntnissen.',
'Kaufmann / Kauffrau für Spedition und Logistikdienstleistungen - Vorbereitung auf Externenprüfung / Externenregelung - geringe Vorkenntnisse - Intensivkurs (IHK)\n\nThemen der Vorbereitungsschulung sind zum Beispiel:\n\n* Wirtschafts\\- und Sozialkunde, Betriebswirtschaftslehre\n* Information, Kommunikation und Kooperation\n* Rechnungswesen\n* Marketing\n* Personal\n* Dokumentation und Bearbeitung von Geschäftsprozessen und Zahlungsvorgängen\n* Vergleich und Bearbeitung von Verkehrsträgern und Frachtaufträgen\n* Bearbeitung von Speditionsaufträgen im Sammelgut\\- und Systemverkehr\n* Beschaffungsvorgänge\n\nSie haben keinen Abschluss, aber sind berufserfahren und engagiert? Darauf lässt sich aufbauen! Die Externenprüfung ist ein Weg, eine Qualifikationen nachzuholen und eine Ausbildung abzuschließen. Mit einem Berufsabschluss haben Sie die besten Aussichten auf einen sicheren Job und mindern das Risiko von Arbeitslosigkeit. Damit eröffnet das Bestehen der Externenprüfung vielfältige Perspektiven und neue Chancen auf ein erfolgreiches Berufsleben und einen beruflichen Aufstieg. \n \nIm Rahmen dieser Maßnahme werden Sie auf die Externenprüfung zum Kaufmann bzw. zur Kauffrau für Spedition und Logistikdienstleistungen vorbereitet. \n \nDie individuelle Vorbereitung auf die Abschlussprüfung wird nach einer ausführlichen persönlichen Bildungsberatung für Sie zusammengestellt und richtet sich nach Ihren Vorkenntnissen.',
'Gasschweißen - Blechschweißer\n\n* Theoretischer Unterricht\n* Schweißen von Kehlnähten an Blechen mit unterschiedlichen Dicken, „nach links“ und „nach rechts“, in den Positionen PA, PB, PD, PF\n* Schweißen von Stirnkehlnähten an Blechen mit unterschiedlichen Dicken, „nach links“ und „nach rechts“, in den Positionen PA, PD, PF\n* Schweißen von Stumpfnähten an Blechen mit unterschiedlichen Dicken, „nach links“ und „nach rechts“, in den Positionen PA, PC, PF\n\nDas Schweißverfahren Gasschweißen wird normalerweise als Teil einer modularen Schweißerausbildung zusammen mit anderen Verfahren erlernt. Das Gasschweißen wird vorwiegend zum Schweißen von unlegierten und niedriglegierten Stählen eingesetzt. Es eignet sich besonders zum Schweißen dünner Bleche und dünnwandiger Rohre sowie zur Durchführung von Reparatur\\- und Auftragsschweißungen. Das Verfahren ist besonders im Heizungs\\-, Installations\\- und Rohrleitungsbau weit verbreitet.\n\nIm Schweißverfahren Gasschweißen \\- Blechschweißen erlernen Sie fachkundliche Kenntnisse und praktische Fertigkeiten im Schweißen von Blechen mit Acetylen\\-Sauerstoff\\-Flamme. Auch erlernen Sie das Schweißen von Kehl\\- und Stumpfnähten an Blechen mit verschiedenen Blechdicken und in unterschiedlichen Schweißpositionen.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 512]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
Webseitengestaltung mit (X)HTML und CSS, Basics |
Webseitengestaltung mit (X)HTML und CSS, Basics |
Fachkraft für Schutz und Sicherheit - Vorbereitung auf Externenprüfung / Externenregelung - umfangreiche Vorkenntnisse - Kompaktkurs (IHK) |
Fachkraft für Schutz und Sicherheit - Vorbereitung auf Externenprüfung / Externenregelung - umfangreiche Vorkenntnisse - Kompaktkurs (IHK) |
Office Manager für Migranten (m/w/d) |
Office Manager für Migranten (m/w/d) |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
per_device_train_batch_size: 32per_device_eval_batch_size: 32multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 32per_device_eval_batch_size: 32per_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: 3max_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}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: 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: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | Training Loss |
|---|---|---|
| 2.7322 | 500 | 0.0179 |
@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}
}