SentenceTransformer based on chkla/parlbert-german-v1

This is a sentence-transformers model finetuned from chkla/parlbert-german-v1 on the parl-synthetic-queries-v3 dataset. 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.

Model Details

Model Description

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel 
  (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})
)

Usage

Direct Usage (Sentence Transformers)

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("davhin/parlbert-german-search-v3")
# Run inference
sentences = [
    'Das ist keine vernünftige Haushaltspolitik. Gerade im Bereich Luft- und Raumfahrt finden derzeit unglaublich viele Innovationen für eine klimaneutrale Mobilität statt. So entwickelt Airbus Flugzeuge mit Wasserstoffantrieb, und in Leipzig wird mit der Neuentwicklung der Dornier 328 ein Regionalflugzeug gebaut, welches mit klimaneutralen E-Fuels betrieben werden kann.',
    'Airbus Wasserstoffantrieb Flugzeuge',
    'Ukrainekrieg Luftfahrt',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Triplet

  • Datasets: parlsearch-test-before-training and parlsearch-test-after-training
  • Evaluated with TripletEvaluator
Metric parlsearch-test-before-training parlsearch-test-after-training
cosine_accuracy 0.5466 0.5466

Training Details

Training Dataset

parl-synthetic-queries-v3

  • Dataset: parl-synthetic-queries-v3 at afdb8d3
  • Size: 2,232 training samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 33 tokens
    • mean: 114.11 tokens
    • max: 130 tokens
    • min: 4 tokens
    • mean: 7.3 tokens
    • max: 15 tokens
    • min: 4 tokens
    • mean: 7.23 tokens
    • max: 16 tokens
  • Samples:
    anchor positive negative
    Aber Deutschland – und übrigens auch der Rest Europas – muss die Realität anerkennen, dass es günstigen Strom zu unterschiedlichen Tageszeiten gibt. Darauf muss der Markt reagieren – der Markt, den Herr Linnemann und die Union eigentlich so hoch schätzen. Dass wir dessen Signale wirken lassen wollen, was dann zu günstigen Preisen führt, dürfte ich der Union eigentlich nicht erklären müssen. Das ist traurig. Es ist traurig, dass Sie diese neuen Konzepte nicht annehmen. Gleichzeitig hoffe ich, dass in der Regierung bei dem Konzept, den Markt wirken zu lassen, noch mehr passiert. günstiger Strom Tageszeiten Deutschland Lastprofil Unternehmen Entlastung
    Wenn Sie die Menschen vor Ort fragen, sagen alle: Diese Planungen sind vollkommen überdimensioniert.– Dazu muss man ins Verhältnis setzen, dass wir bundesweit eigentlich 8 000 Brücken ersetzen müssen. Bei uns in Leverkusen haben wir schon eine neue Brücke, aber jetzt bekommen wir noch eine zweite. Wir können es uns schlichtweg nicht mehr leisten, den Bundesverkehrswegeplan als Wünsch-dir-was-Liste anzusehen, in der sich jeder Abgeordnete mit einer eigenen Autobahnausfahrt verewigt. Autobahnausfahrt Abgeordnete Bundesverkehrswegeplan Kritik
    Es geht nicht nur um die Bürgerinnen und Bürger, die bei einer Langen Nacht der Wissenschaften unterwegs sind, die sich vielleicht an einem Citizen-Science-Projekt beteiligen, sondern es geht auch darum, dass wissenschaftliche Erkenntnisse in der Politik verwendet werden, dass sie auch dort reflektiert werden, dass sie auch dort verstanden werden. wissenschaftliche Erkenntnisse Politik Citizen Science Projekte
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Evaluation Dataset

parl-synthetic-queries-v3

  • Dataset: parl-synthetic-queries-v3 at afdb8d3
  • Size: 2,232 evaluation samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 56 tokens
    • mean: 113.8 tokens
    • max: 130 tokens
    • min: 4 tokens
    • mean: 7.23 tokens
    • max: 16 tokens
    • min: 4 tokens
    • mean: 7.21 tokens
    • max: 13 tokens
  • Samples:
    anchor positive negative
    Es wurde ausgerechnet, unter anderem vom Bundesgerichtshof, dass mit diesem Verfahren beim Dieselabgasskandal circa zwei Jahre Zeit bis zu einer höchstrichterlichen Entscheidung hätten eingespart werden können. Das wäre für die Richterinnen und Richter wichtig gewesen. Beim nächsten Massenverfahren wird es möglich sein, Zeit einzusparen. Von daher ist es gut, dass wir die Justiz mit diesem Gesetz entlasten. Weil die Länge und die Dauer der Verhandlungen angesprochen worden sind, lassen Sie mich noch ein paar Sätze zu anderen möglichen Verfahrensformen sagen, mit denen man Massenverfahren besser bewältigen kann. Massenverfahren Justiz Entlastung Dieselabgasskandal Verfahrensdauer
    Welchen Sinn macht die Fortschreibung einer Blockade und eines Selbstbetruges? Keinen Sinn. Deshalb ist dieser Moment durchaus ein historischer. Deshalb bin ich ausgesprochen dankbar für den Gesetzentwurf der Ministerin. Wir als Koalition werden diesen Gesetzentwurf durchbringen und damit endlich ein Gesetz des gesunden Menschenverstandes durchsetzen; denn darum geht es hier. Die Menschen, um die es geht, haben keine großen migrationspolitischen Fragen oder Open Borders oder sonst etwas auf der Agenda. Ihre Agenda ist ihr eigenes Leben. Sie wollen hier einfach vernünftig leben können; denn sie sind Mitglieder dieser Gesellschaft. Aber bisher dürfen sie es nicht sein. Gesetz des gesunden Menschenverstandes Abschaffung EEG-Umlage
    Wir bieten ein Framework an, auf dem die Wirtschaft aufsetzen kann und mit dem sie zuarbeiten kann, wodurch Innovationen, die die Wirtschaft bereitstellt, auch der Verwaltung zugutekommen können. Und andersrum: Die Verwaltung ist ein Treiber von Innovationen. Denn der öffentliche Dienst ist der größte Auftraggeber in der IT-Branche. Wenn wir da mehr kooperieren, haben beide Seiten was davon. Das bringt uns Wohlstand. Das bringt uns einfach eine breitere Perspektive. Deswegen ist dieses Gesetz auch ein Wirtschaftsförderungsgesetz. Es wurde sehr viel über das alte OZG 1.0 gelästert. OZG 1.0 Kritik Innovationen Verwaltung Wirtschaft
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • use_mps_device: True
  • bf16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: True
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss Validation Loss parlsearch-test-before-training_cosine_accuracy parlsearch-test-after-training_cosine_accuracy
-1 -1 - - 0.5269 -
0.9524 100 1.7259 1.3180 0.5466 -
-1 -1 - - - 0.5466

Framework Versions

  • Python: 3.12.8
  • Sentence Transformers: 3.4.0
  • Transformers: 4.48.1
  • PyTorch: 2.5.1
  • Accelerate: 1.3.0
  • Datasets: 3.2.0
  • Tokenizers: 0.21.0

Citation

BibTeX

Sentence Transformers

@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",
}

MultipleNegativesRankingLoss

@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}
}
Downloads last month
21
Safetensors
Model size
109M params
Tensor type
F32
·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.

Model tree for davhin/parlbert-german-search-v3

Finetuned
(2)
this model

Dataset used to train davhin/parlbert-german-search-v3

Evaluation results

  • Cosine Accuracy on parlsearch test before training
    self-reported
    0.547
  • Cosine Accuracy on parlsearch test after training
    self-reported
    0.547