BjarneNPO's picture
finetune_27_08_2025_10_26_51
cf07e6c verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - dense
  - generated_from_trainer
  - dataset_size:86218
  - loss:MultipleNegativesRankingLoss
base_model: Snowflake/snowflake-arctic-embed-m-v2.0
widget:
  - source_sentence: Benutzer benötigt einen eigenen Zugang als Gemeinde.
    sentences:
      - >-
        Userin erklärt wie Urlaubsberechnung erfolgt. Nicht speichern sondern
        Urlaub berechnen anklicken. RT werden separat geführt
      - >-
        Benutzer muss sich einmal an denjenigen wenden, der mit dem Hauptzugang
        der Gemeinde arbeitet.
      - "Benutzer sendet uns einmal einen Screenshot der aktuellen Daten im KitaPlaner.\r\nAn Entwickler weitergegeben.\r\nLaut Entwickler sind die Daten alle im KitaPlaner angekommen. Die Archivkinder können noch einmal einzeln synchronisiert werden, wenn nötig."
  - source_sentence: >-
      Die  Kollegin hat keinen Zugriff auf die Eltern-App, wer kann dies
      aktivieren?
    sentences:
      - >-
        Nachdem die Browserdaten der letzten 4 Wochen gelöscht wurden hat der
        Login wieder funktioniert
      - Gebeten sich dazu an den Träger zu wenden
      - >-
        Im Abgleich Belegung und BE konnte man erkennen, dass der entsprechenden
        Platzstruktur zwei Kinder zu viel zugeordnet waren.
  - source_sentence: "Hallo zusammen,\r\n\_\r\nwir haben im letzten Monat zusammen mit Digibox eine neue Funktion auf unserer Homepage eingestellt\r\nzur Buchung von Schulungen und Infoveranstaltungen. Mittlerweile ist dort alles weitestgehend getestet und funktioniert so wie gewünscht. Früher waren Termine per Überschrift getrennt, aber alle auf der gleichen Seite. Der Aufwand neue Termine einzustellen\r\n oder bestehende zu bearbeiten war nicht klein. Zusätzlich mussten neue Kategorien geschaffen werden für eine gesteigerte Nachfrage unserer Produkte. Von daher sollte diese Systematik umgestellt werden, sodass man erst zwei Dropdown-Menüs auswählen muss, damit\r\n Termine angezeigt werden. Durch das Fachteam wurden zusätzlich bei den Schulungen Dokumente zur Verfügung gestellt zu allen Formaten und Bundesländern, um für verbesserte Transparenz zu sorgen. Hier sind die beiden Seiten zu finden:\r\n\_\r\nFür Schulungen: \r\nhttps://kitaplus.de/services/schulungen\r\nFür Infoveranstaltungen: \r\nhttps://kitaplus.de/services/infoveranstaltungen\r\n\_\r\nDieses System erleichtert den Prozess im Hintergrund sehr stark bei der Erstellung von Terminen, und ist gleichzeitig für Interessenten deutlich übersichtlicher bei einer Vielzahl von verschiedenen Formaten. Die Formate werden nun erst\r\n angezeigt, nachdem man ein Bundesland im ersten Schritt ausgewählt hat. Danach kann man entweder eines oder alle Formate auswählen, unter denen Termine chronologisch sortiert auftauchen. Zuletzt kann man sich über das Kontaktformular zu einer Veranstaltung\r\n anmelden. \r\n\_\r\nDiese Mail dient als Info für alle, dass ihr Bescheid wisst, falls ihr das noch nicht mitbekommen habt. Falls jemand Feedback zu dieser Funktion haben sollte, könnt ihr euch gerne persönlich bei mir zurückmelden.\r\n\r\nIch wünsche allen eine angenehme Restwoche und genießt die Sonnenstrahlen!\r\n\_\r\nViele Grüße,\r\nWladimir"
    sentences:
      - 'N'
      - 'N'
      - >-
        laufend muss auf nein gesetzt werden, danach kann das Datum dort
        eingegeben werden
  - source_sentence: >-
      Userin fragt warum bei einem Bericht bei den Plätzen laut
      Betriebserlaubnis 15 steht und bei der Platzstruktur dann aber 17?
    sentences:
      - "1. Userin hatte noch keinen Personalbogen erstellt. Mit Userin den Personalbogen erstellt und freigegeben.\r\n2. Userin hatte schon das Beschäftigungsende eingegeben. Sie musste die Ausbildung und Funktion noch befristen."
      - >-
        Weil es genau so in den Einrichtungsstammdaten hinterlegt wurde. Ich
        kann bei der Platzstruktur ja was anderes hinterlegt haben als bei den
        Pl. laut Betriebserlaubnis
      - >-
        Es wurde für das kommende KGJ noch kein LB erstellt, daher kommt der
        Hinweis.
  - source_sentence: "Userin hinterlegt Email-Adresse im Benutzerkonto und speichert. Aber die Adresse wird trotz Bestätigung nicht gespeichert. \r\nEMA ist notwendig für 2FA\r\n\r\n Roesler =  jil.roesler@cse.ruhr"
    sentences:
      - >-
        Unter dem Namen der Dame gibt es nur einen Login. Vielleicht schaut sie
        mit dem Login einer anderen Kollegin auf die zweite Einrichtung? Oder
        sie hat einen Login als Träger? Dies klärt sie mit der Einrichtung ab.
      - Userin hat die Rolle "Mitarbeiter".
      - 'N'
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - cosine_accuracy@1
  - cosine_accuracy@3
  - cosine_accuracy@5
  - cosine_accuracy@10
  - cosine_precision@1
  - cosine_precision@3
  - cosine_precision@5
  - cosine_precision@10
  - cosine_recall@1
  - cosine_recall@3
  - cosine_recall@5
  - cosine_recall@10
  - cosine_ndcg@10
  - cosine_mrr@10
  - cosine_map@100
model-index:
  - name: SentenceTransformer based on Snowflake/snowflake-arctic-embed-m-v2.0
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: Snowflake/snowflake arctic embed m v2.0
          type: Snowflake/snowflake-arctic-embed-m-v2.0
        metrics:
          - type: cosine_accuracy@1
            value: 0.2987012987012987
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.5974025974025974
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.6883116883116883
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.7272727272727273
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.2987012987012987
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2727272727272727
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.22857142857142854
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.16883116883116883
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.03240381552069864
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.0881092933040985
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.11703491313880922
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.1670583384869099
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.22318546659172717
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.4622655122655123
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.15449348347992584
            name: Cosine Map@100

SentenceTransformer based on Snowflake/snowflake-arctic-embed-m-v2.0

This is a sentence-transformers model finetuned from Snowflake/snowflake-arctic-embed-m-v2.0. 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 Type: Sentence Transformer
  • Base model: Snowflake/snowflake-arctic-embed-m-v2.0
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False, 'architecture': 'GteModel'})
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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()
)

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("BjarneNPO-27_08_2025_10_26_51")
# Run inference
queries = [
    "Userin hinterlegt Email-Adresse im Benutzerkonto und speichert. Aber die Adresse wird trotz Best\u00e4tigung nicht gespeichert. \r\nEMA ist notwendig f\u00fcr 2FA\r\n\r\n Roesler =  jil.roesler@cse.ruhr",
]
documents = [
    'N',
    'Unter dem Namen der Dame gibt es nur einen Login. Vielleicht schaut sie mit dem Login einer anderen Kollegin auf die zweite Einrichtung? Oder sie hat einen Login als Träger? Dies klärt sie mit der Einrichtung ab.',
    'Userin hat die Rolle "Mitarbeiter".',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 768] [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[0.3469, 0.1318, 0.0795]])

Evaluation

Metrics

Information Retrieval

  • Dataset: Snowflake/snowflake-arctic-embed-m-v2.0
  • Evaluated with scripts.InformationRetrievalEvaluatorCustom.InformationRetrievalEvaluatorCustom with these parameters:
    {
        "query_prompt_name": "query",
        "corpus_prompt_name": "document"
    }
    
Metric Value
cosine_accuracy@1 0.2987
cosine_accuracy@3 0.5974
cosine_accuracy@5 0.6883
cosine_accuracy@10 0.7273
cosine_precision@1 0.2987
cosine_precision@3 0.2727
cosine_precision@5 0.2286
cosine_precision@10 0.1688
cosine_recall@1 0.0324
cosine_recall@3 0.0881
cosine_recall@5 0.117
cosine_recall@10 0.1671
cosine_ndcg@10 0.2232
cosine_mrr@10 0.4623
cosine_map@100 0.1545

Training Details

Training Dataset

Unnamed Dataset

  • Size: 86,218 training samples
  • Columns: query and answer
  • Approximate statistics based on the first 1000 samples:
    query answer
    type string string
    details
    • min: 5 tokens
    • mean: 80.67 tokens
    • max: 5231 tokens
    • min: 3 tokens
    • mean: 25.16 tokens
    • max: 238 tokens
  • Samples:
    query answer
    Nun ist die Monatsmeldung erfolgt, aber rote Ausrufezeichen tauchen auf. Userin an das JA verwiesen, diese müssten ihr die Schloss-Monate zur Überarbeitung im Kibiz.web zurückgeben. Userin dazu empfohlen, die Kinder die nicht in kitaplus sind, aber in Kibiz.web - im KiBiz.web zu entfernen, wenn diese nicht vorhanden sind.
    Die Feiertage in den Stammdaten stimmen nicht. Es besteht bereits ein Ticket dafür.
    Abrechnung kann nicht final freigegeben werden, es wird aber keiner Fehlermeldung angeziegt im Hintergrund ist eine Fehlermeldung zu sehen. An Entwickler weitergeleitet.

    Korrektur vorgenommen.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "gather_across_devices": false
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 64
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 6
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • bf16: True
  • tf32: True
  • load_best_model_at_end: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 64
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • 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: 6
  • max_steps: -1
  • lr_scheduler_type: cosine
  • 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: False
  • 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: True
  • 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: True
  • 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_fused
  • 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
  • hub_revision: None
  • 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
  • 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
  • liger_kernel_config: None
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss Snowflake/snowflake-arctic-embed-m-v2.0_cosine_ndcg@10
0.1187 10 2.9294 -
0.2374 20 2.7425 -
0.3561 30 2.5243 -
0.4748 40 2.2567 -
0.5935 50 2.0585 -
0.7122 60 1.8781 -
0.8309 70 1.7354 -
0.9496 80 1.2364 -
1.0 85 - 0.1777
1.0593 90 0.7611 -
1.1780 100 1.508 -
1.2967 110 1.4526 -
1.4154 120 1.4424 -
1.5341 130 1.3935 -
1.6528 140 1.3538 -
1.7715 150 1.2788 -
1.8902 160 1.2697 -
2.0 170 0.2985 0.1896
2.1187 180 1.2018 -
2.2374 190 1.2108 -
2.3561 200 1.16 -
2.4748 210 1.1579 -
2.5935 220 1.1204 -
2.7122 230 1.1139 -
2.8309 240 1.1179 -
2.9496 250 0.8354 -
3.0 255 - 0.1899
3.0593 260 0.5491 -
3.1780 270 1.0434 -
3.2967 280 1.0247 -
3.4154 290 1.0304 -
3.5341 300 1.0404 -
3.6528 310 1.0274 -
3.7715 320 1.0334 -
3.8902 330 1.0448 -
4.0 340 0.2284 0.2234
4.1187 350 0.9729 -
4.2374 360 0.9873 -
4.3561 370 0.9758 -
4.4748 380 1.0084 -
4.5935 390 0.9756 -
4.7122 400 0.9646 -
4.8309 410 0.9879 -
4.9496 420 0.6986 -
5.0 425 - 0.2283
5.0593 430 0.4902 -
5.1780 440 0.9634 -
5.2967 450 0.9401 -
5.4154 460 0.9458 -
5.5341 470 0.9423 -
5.6528 480 0.9704 -
5.7715 490 0.9603 -
5.8902 500 0.9599 -
6.0 510 0.2269 0.2232
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.11
  • Sentence Transformers: 5.1.0
  • Transformers: 4.55.2
  • PyTorch: 2.8.0+cu129
  • Accelerate: 1.10.0
  • Datasets: 3.6.0
  • Tokenizers: 0.21.4

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}
}