# Phi-4 Reasoning: Wie man ausführt und feinabstimmt

Microsofts neue Phi-4-Reasoning-Modelle werden jetzt in Unsloth unterstützt. Die Variante „plus“ erreicht eine Leistung auf dem Niveau von OpenAIs o1-mini, o3-mini und Sonnet 3.7. Die „plus“- und Standard-Reasoning-Modelle haben 14B Parameter, während das „mini“ 4B Parameter hat.\
\
Alle Phi-4-Reasoning-Uploads verwenden unsere [Unsloth Dynamic 2.0](/docs/de/grundlagen/unsloth-dynamic-2.0-ggufs.md) Methodik.

#### **Phi-4 Reasoning - Unsloth Dynamic 2.0 Uploads:**

| Dynamic 2.0 GGUF (zum Ausführen)                                                                                                                                                                                                                                                                             | Dynamisches 4-Bit-Safetensor (zum Finetunen/Deployen)                                                                                                                                                                                                                                                                         |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <ul><li><a href="https://huggingface.co/unsloth/Phi-4-reasoning-plus-GGUF/">Reasoning-plus</a> (14B)</li><li><a href="https://huggingface.co/unsloth/Phi-4-reasoning-GGUF">Reasoning</a> (14B)</li><li><a href="https://huggingface.co/unsloth/Phi-4-mini-reasoning-GGUF/">Mini-Reasoning</a> (4B)</li></ul> | <ul><li><a href="https://huggingface.co/unsloth/Phi-4-reasoning-plus-unsloth-bnb-4bit">Reasoning-plus</a></li><li><a href="https://huggingface.co/unsloth/phi-4-reasoning-unsloth-bnb-4bit">Reasoning</a></li><li><a href="https://huggingface.co/unsloth/Phi-4-mini-reasoning-unsloth-bnb-4bit">Mini-Reasoning</a></li></ul> |

## 🖥️ **Ausführen von Phi-4 Reasoning**

### :gear: Offizielle empfohlene Einstellungen

Laut Microsoft sind dies die empfohlenen Einstellungen für die Inferenz:

* <mark style="background-color:blue;">**Temperatur = 0,8**</mark>
* Top\_P = 0,95

### **Phi-4 Reasoning Chat-Vorlagen**

Bitte stellen Sie sicher, dass Sie die richtige Chat-Vorlage verwenden, da die Variante „mini“ eine andere hat.

#### **Phi-4-mini:**

{% code overflow="wrap" %}

```
<|system|>Dein Name ist Phi, ein von Microsoft entwickelter KI-Mathematikexperte.<|end|><|user|>Wie löst man 3*x^2+4*x+5=1?<|end|><|assistant|>
```

{% endcode %}

#### **Phi-4-reasoning und Phi-4-reasoning-plus:**

Dieses Format wird für allgemeine Gespräche und Anweisungen verwendet:

{% code overflow="wrap" %}

```
<|im_start|>system<|im_sep|>Du bist Phi, ein von Microsoft trainiertes Sprachmodell, das Benutzern helfen soll. Deine Rolle als Assistent besteht darin, Fragen gründlich durch einen systematischen Denkprozess zu untersuchen, bevor du die endgültigen präzisen und genauen Lösungen bereitstellst. Dies erfordert einen umfassenden Zyklus aus Analyse, Zusammenfassung, Erkundung, Neubewertung, Reflexion, Rückverfolgung und Iteration, um einen gut durchdachten Denkprozess zu entwickeln. Bitte strukturiere deine Antwort in zwei Hauptabschnitte: Gedanke und Lösung unter Verwendung des angegebenen Formats: <think> {Gedankenabschnitt} </think> {Lösungsabschnitt}. Beschreibe im Gedankenabschnitt deinen Denkprozess in Schritten. Jeder Schritt sollte detaillierte Überlegungen enthalten, wie etwa das Analysieren von Fragen, das Zusammenfassen relevanter Erkenntnisse, das Brainstorming neuer Ideen, das Überprüfen der Genauigkeit der aktuellen Schritte, das Verfeinern von Fehlern und das erneute Durchgehen vorheriger Schritte. Präsentiert im Lösungsabschnitt auf Grundlage verschiedener Versuche, Erkundungen und Reflexionen aus dem Gedankenabschnitt systematisch die endgültige Lösung, die du für korrekt hältst. Der Lösungsabschnitt sollte logisch, genau und prägnant sein und die notwendigen Schritte zur Erreichung der Schlussfolgerung beschreiben. Versuche nun, die folgende Frage anhand der obigen Richtlinien zu lösen:<|im_end|><|im_start|>user<|im_sep|>Was ist 1+1?<|im_end|><|im_start|>assistant<|im_sep|>
```

{% endcode %}

{% hint style="info" %}
Ja, das Chat-Vorlagen-/Prompt-Format ist so lang!
{% endhint %}

### 🦙 Ollama: Phi-4 Reasoning Tutorial ausführen

1. Installieren Sie `ollama` falls Sie das noch nicht getan haben!

```bash
apt-get update
apt-get install pciutils -y
curl -fsSL https://ollama.com/install.sh | sh
```

2. Führen Sie das Modell aus! Beachten Sie, dass Sie `ollama serve`in einem anderen Terminal aus, falls es fehlschlägt. Wir enthalten alle unsere Fehlerbehebungen und empfohlenen Parameter (Temperatur usw.) in `params` in unserem Hugging-Face-Upload.

```bash
ollama run hf.co/unsloth/Phi-4-mini-reasoning-GGUF:Q4_K_XL
```

### 📖 Llama.cpp: Phi-4 Reasoning Tutorial ausführen

{% hint style="warning" %}
Sie müssen `--jinja` in llama.cpp, um Reasoning für die Modelle zu aktivieren, außer für die Variante „mini“. Andernfalls wird kein Token bereitgestellt.
{% endhint %}

1. Hole dir die neueste `llama.cpp` auf [GitHub hier](https://github.com/ggml-org/llama.cpp). Du kannst auch den untenstehenden Build-Anweisungen folgen. Ändere `-DGGML_CUDA=ON` zu `-DGGML_CUDA=OFF` wenn du keine GPU hast oder nur CPU-Inferenz möchtest. **Für Apple Mac / Metal-Geräte**, setze `-DGGML_CUDA=OFF` und fahre dann wie gewohnt fort - Metal-Unterstützung ist standardmäßig aktiviert.

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

2. Lade das Modell herunter über (nach der Installation von `pip install huggingface_hub hf_transfer` ). Du kannst Q4\_K\_M oder andere quantisierte Versionen wählen.

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Phi-4-mini-reasoning-GGUF",
    local_dir = "unsloth/Phi-4-mini-reasoning-GGUF",
    allow_patterns = ["*UD-Q4_K_XL*"],
)
```

3. Führe das Modell im Konversationsmodus in llama.cpp aus. Du musst `--jinja` in llama.cpp, um Reasoning für die Modelle zu aktivieren. Dies ist jedoch nicht erforderlich, wenn du die Variante „mini“ verwendest.

```bash
./llama.cpp/llama-cli \
    --model unsloth/Phi-4-mini-reasoning-GGUF/Phi-4-mini-reasoning-UD-Q4_K_XL.gguf \
    --threads -1 \\
    --n-gpu-layers 99 \
    --prio 3 \
    --temp 0.8 \\
    --top-p 0.95 \
    --jinja \
    --min-p 0.00 \
    --ctx-size 32768 \\
    --seed 3407
```

## 🦥 Phi-4 mit Unsloth feinabstimmen

[Phi-4 Feinabstimmung](https://unsloth.ai/blog/phi4) für die Modelle wird jetzt ebenfalls in Unsloth unterstützt. Um kostenlos auf Google Colab feinabzustimmen, ändere einfach den `model_name` von 'unsloth/Phi-4' zu 'unsloth/Phi-4-mini-reasoning' usw.

* [Phi-4 (14B) Feinabstimmungs-Notebook](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Phi_4-Conversational.ipynb)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/de/modelle/tutorials/phi-4-reasoning-how-to-run-and-fine-tune.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
