BjarneNPO's picture
finetune_27_08_2025_10_26_51
cf07e6c verified
---
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](https://www.SBERT.net) model finetuned from [Snowflake/snowflake-arctic-embed-m-v2.0](https://huggingface.co/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](https://huggingface.co/Snowflake/snowflake-arctic-embed-m-v2.0) <!-- at revision 95c2741480856aa9666782eb4afe11959938017f -->
- **Maximum Sequence Length:** 8192 tokens
- **Output Dimensionality:** 768 dimensions
- **Similarity Function:** Cosine Similarity
<!-- - **Training Dataset:** Unknown -->
<!-- - **Language:** Unknown -->
<!-- - **License:** Unknown -->
### Model Sources
- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
- **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)
### 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:
```bash
pip install -U sentence-transformers
```
Then you can load this model and run inference.
```python
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]])
```
<!--
### Direct Usage (Transformers)
<details><summary>Click to see the direct usage in Transformers</summary>
</details>
-->
<!--
### Downstream Usage (Sentence Transformers)
You can finetune this model on your own dataset.
<details><summary>Click to expand</summary>
</details>
-->
<!--
### Out-of-Scope Use
*List how the model may foreseeably be misused and address what users ought not to do with the model.*
-->
## Evaluation
### Metrics
#### Information Retrieval
* Dataset: `Snowflake/snowflake-arctic-embed-m-v2.0`
* Evaluated with <code>scripts.InformationRetrievalEvaluatorCustom.InformationRetrievalEvaluatorCustom</code> with these parameters:
```json
{
"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 |
<!--
## Bias, Risks and Limitations
*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
-->
<!--
### Recommendations
*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
-->
## Training Details
### Training Dataset
#### Unnamed Dataset
* Size: 86,218 training samples
* Columns: <code>query</code> and <code>answer</code>
* Approximate statistics based on the first 1000 samples:
| | query | answer |
|:--------|:------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|
| type | string | string |
| details | <ul><li>min: 5 tokens</li><li>mean: 80.67 tokens</li><li>max: 5231 tokens</li></ul> | <ul><li>min: 3 tokens</li><li>mean: 25.16 tokens</li><li>max: 238 tokens</li></ul> |
* Samples:
| query | answer |
|:---------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| <code>Nun ist die Monatsmeldung erfolgt, aber rote Ausrufezeichen tauchen auf.</code> | <code>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.</code> |
| <code>Die Feiertage in den Stammdaten stimmen nicht.</code> | <code>Es besteht bereits ein Ticket dafür.</code> |
| <code>Abrechnung kann nicht final freigegeben werden, es wird aber keiner Fehlermeldung angeziegt</code> | <code>im Hintergrund ist eine Fehlermeldung zu sehen. An Entwickler weitergeleitet. <br>Korrektur vorgenommen.</code> |
* Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
```json
{
"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
<details><summary>Click to expand</summary>
- `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`: {}
</details>
### 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
```bibtex
@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
```bibtex
@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}
}
```
<!--
## Glossary
*Clearly define terms in order to be accessible across audiences.*
-->
<!--
## Model Card Authors
*Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
-->
<!--
## Model Card Contact
*Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
-->