|
|
--- |
|
|
library_name: transformers |
|
|
license: apache-2.0 |
|
|
language: |
|
|
- de |
|
|
base_model: |
|
|
- DigitalLearningGmbH/educa-ai-nemo-dpo |
|
|
--- |
|
|
|
|
|
# educa-ai-nemo-think |
|
|
|
|
|
This is a preliminary release of our internal testing reasoning model trained on a purely german dataset of reasoning traces mostly generated with DeepSeek R1. |
|
|
|
|
|
## Training details |
|
|
|
|
|
We trained this model for 2 epochs on 10k reasoning SFT samples. No DPO / GRPO / other preference optimization has been done. |
|
|
The dataset is a POC subset of our much larger reasoning dataset which we are still filtering and cleaning. |
|
|
As such, this model will be updated soon when we have trained it on the full dataset. |
|
|
|
|
|
## Sampling Parameters |
|
|
|
|
|
We've had success with top_p=0.95, top_k=30, repetition_penalty=1.15 and temperature=0.4 and it's also recommended to append \<think\> to force reasoning like this: |
|
|
|
|
|
```python |
|
|
input_text = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False) |
|
|
input_text += "<think>\n" |
|
|
input_ids = tokenizer(input_text, return_tensors="pt")["input_ids"].to("cuda") |
|
|
``` |
|
|
|
|
|
## Example outputs: |
|
|
|
|
|
**Human**: Führe einen Induktionsbeweis und zeige, dass die Summe von i=1 bis n von 2i-1 = n^2 ist. |
|
|
**Assistant**: \<think\> |
|
|
Ich soll einen Induktionsbeweis führen, um zu zeigen, dass die Summe von 2i-1 für i=1 bis n gleich n^2 ist. Zuerst muss ich die Formel für die Summe von 2i-1 für i=1 bis n aufschreiben. Das ist die Summe von 1, 3, 5, ..., 2n-1. Ich denke, dass ich die Summe durch eine andere Methode auswerten kann, um zu zeigen, dass sie n^2 ergibt. |
|
|
|
|
|
Eine Möglichkeit wäre, die Summe direkt auszurechnen, aber das wird mit zunehmender n sehr kompliziert. Eine andere Methode wäre, die Summe durch eine bekannte Formel auszudrücken. Ich erinnere mich, dass die Summe einer arithmetischen Reihe Summe = n/2 * (anfang + ende) ist. Hier ist der Anfang 1 und das Ende 2n-1. Aber ich muss sicherstellen, dass ich die Summe richtig berechne. |
|
|
|
|
|
Lass mich die Summe mit der arithmetischen Reihe Formulierung berechnen: |
|
|
|
|
|
Summe = n/2 * (1 + (2n-1)) |
|
|
= n/2 * (2n) |
|
|
= n^2 |
|
|
|
|
|
Das ergibt tatsächlich n^2. Also scheint die Aussage zu stimmen. Jetzt muss ich den Induktionsbeweis führen. |
|
|
|
|
|
Ich werde in zwei Schritten vorgehen: Basisfall und Induktionsschritt. |
|
|
|
|
|
Basisfall: n=1 |
|
|
Ich muss zeigen, dass die Summe für n=1 gleich 1^2 ist. Die Summe ist dann nur 2*1-1 = 1. Also ist die Summe für n=1 tatsächlich 1^2. Der Basisfall ist erfüllt. |
|
|
|
|
|
Induktionsschritt: Ich muss annehmen, dass die Summe für n=k gleich k^2 ist und dann zeigen, dass die Summe für n=k+1 gleich (k+1)^2 ist. |
|
|
|
|
|
Die Summe für n=k+1 ist die Summe von 1 bis 2k+1. Das ist die Summe von 1 bis 2k plus 2k+1. Nach der Induktionsannahme ist die Summe von 1 bis 2k gleich k^2. Also ist die Summe für n=k+1 gleich k^2 + 2k+1. Ich muss zeigen, dass das gleich (k+1)^2 ist. |
|
|
|
|
|
(k+1)^2 = k^2 + 2k + 1 |
|
|
|
|
|
Das ist genau die Summe, die ich berechnet habe. Also ist die Summe für n=k+1 tatsächlich gleich (k+1)^2. Der Induktionsschritt ist erfüllt. |
|
|
|
|
|
Da sowohl der Basisfall als auch der Induktionsschritt erfüllt sind, ist die Aussage für alle n bewiesen. |
|
|
\</think\> |
|
|
Um die Summe von \(2i-1\) für \(i=1\) bis \(n\) zu zeigen, dass sie \(n^2\) ergibt, führe ich einen Induktionsbeweis durch. |
|
|
|
|
|
**Basisfall (n=1):** |
|
|
Die Summe ist dann \(2\cdot1-1=1\). Das ist gleich \(1^2\). Der Basisfall ist erfüllt. |
|
|
|
|
|
**Induktionsschritt:** |
|
|
Angenommen, die Summe für \(n=k\) ist \(k^2\). Dann ist die Summe für \(n=k+1\) die Summe von \(2i-1\) für \(i=1\) bis \(k+1\). Das ist die Summe von \(2i-1\) für \(i=1\) bis \(k\) plus \(2(k+1)-1=2k+1\). Nach der Induktionsannahme ist die Summe für \(i=1\) bis \(k\) gleich \(k^2\). Also ist die Summe für \(i=1\) bis \(k+1\) gleich \(k^2+2k+1\). Das ist gleich \((k+1)^2\). Der Induktionsschritt ist erfüllt. |
|
|
|
|
|
Da sowohl der Basisfall als auch der Induktionsschritt erfüllt sind, gilt die Aussage für alle \(n\). |