> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/de/modelle/gpt-oss-how-to-run-and-fine-tune.md).

# gpt-oss: Leitfaden zum Ausführen

OpenAI veröffentlicht '**gpt-oss-120b'** und '**gpt-oss-20b'**, zwei SOTA-Open-Source-Sprachmodelle unter der Apache-2.0-Lizenz. Beide 128k-Kontextmodelle übertreffen ähnlich große offene Modelle bei Reasoning, Tool-Nutzung und agentischen Aufgaben. Sie können sie jetzt lokal mit Unsloth ausführen und feinabstimmen!

<a href="#run-gpt-oss-20b" class="button secondary">gpt-oss-20b ausführen</a><a href="#run-gpt-oss-120b" class="button secondary">gpt-oss-120b ausführen</a><a href="#fine-tuning-gpt-oss-with-unsloth" class="button primary">gpt-oss feinabstimmen</a>

> [**Feinabstimmen**](#fine-tuning-gpt-oss-with-unsloth) **gpt-oss-20b kostenlos mit unserem** [**Colab-Notebook**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/gpt-oss-\(20B\)-Fine-tuning.ipynb)

Trainiert mit [RL](/docs/de/erste-schritte/reinforcement-learning-rl-guide.md), **gpt-oss-120b** konkurriert mit o4-mini und **gpt-oss-20b** konkurriert mit o3-mini. Beide glänzen bei Funktionsaufrufen und CoT-Reasoning und übertreffen o1 und GPT-4o.

Für beste Leistung stellen Sie sicher, dass Ihr gesamter verfügbarer Speicher (Unified Memory + VRAM + System-RAM) die Größe der quantisierten Modelldatei, die Sie herunterladen, übersteigt. Falls nicht, kann llama.cpp dennoch per SSD/HDD-Offloading ausgeführt werden, aber die Inferenz wird langsamer.

#### **gpt-oss - Unsloth GGUFs:**

{% hint style="success" %}
**Enthält Unsloths** [**Chat-Template-Fixes**](#unsloth-fixes-for-gpt-oss)**. Für beste Ergebnisse nutzen Sie unsere Uploads und trainieren Sie mit Unsloth!**
{% endhint %}

* 20B: [gpt-oss-**20B**](https://huggingface.co/unsloth/gpt-oss-20b-GGUF)
* 120B: [gpt-oss-**120B**](https://huggingface.co/unsloth/gpt-oss-120b-GGUF)

## :scroll:Unsloth-Fixes für gpt-oss

{% hint style="info" %}
Einige unserer Fixes wurden upstream in OpenAIs offizielles Modell auf Hugging Face übernommen. [Siehe](https://huggingface.co/openai/gpt-oss-20b/discussions/94/files)
{% endhint %}

OpenAI hat eine eigenständige Parsing- und Tokenisierungsbibliothek namens [Harmony](https://github.com/openai/harmony) veröffentlicht, mit der sich Konversationen in OpenAIs bevorzugtes Format für gpt-oss tokenisieren lassen.

Inferenz-Engines verwenden in der Regel stattdessen das jinja-Chat-Template und nicht das Harmony-Paket, und wir haben nach dem direkten Vergleich mit Harmony einige Probleme festgestellt. Wie unten zu sehen, ist der obere Teil die korrekte gerenderte Form wie von Harmony. Der untere ist der von der aktuellen jinja-Chat-Vorlage gerenderte. Es gibt ziemlich viele Unterschiede!

<div data-with-frame="true"><figure><img src="/files/b8fbe73dda1edd3380bff4b61f7eb68bd246ea10" alt="" width="563"><figcaption></figcaption></figure></div>

Wir haben außerdem einige Funktionen erstellt, mit denen Sie OpenAIs Harmony-Bibliothek direkt verwenden können, ohne ein jinja-Chat-Template, wenn Sie möchten – Sie können einfach normale Konversationen wie unten parsen:

```python
messages = [
    {"role" : "user", "content" : "Was ist 1+1?"},
    {"role" : "assistant", "content" : "2"},
    {"role": "user",  "content": "Wie ist die Temperatur in San Francisco jetzt? Und wie morgen? Das heutige Datum ist 2024-09-30."},
    {"role": "assistant",  "content": "Der Nutzer fragt: 'Wie ist das Wetter in San Francisco?' Wir müssen das Tool get_current_temperature verwenden.", "thinking" : ""},
    {"role": "assistant", "content": "", "tool_calls": [{"name": "get_current_temperature", "arguments": '{"location": "San Francisco, California, United States", "unit": "celsius"}'}]},
    {"role": "tool", "name": "get_current_temperature", "content": '{"temperature": 19.9, "location": "San Francisco, California, United States", "unit": "celsius"}'},
]
```

Dann verwenden Sie die `encode_conversations_with_harmony` Funktion von Unsloth:

```python
from unsloth_zoo import encode_conversations_with_harmony

def encode_conversations_with_harmony(
    messages,
    reasoning_effort = "medium",
    add_generation_prompt = True,
    tool_calls = None,
    developer_instructions = None,
    model_identity = "Sie sind ChatGPT, ein großes Sprachmodell, das von OpenAI trainiert wurde.",
)
```

Das Harmony-Format enthält mehrere interessante Dinge:

1. `reasoning_effort = "medium"` Sie können niedrig, mittel oder hoch auswählen, und dies ändert das Reasoning-Budget von gpt-oss – im Allgemeinen gilt: Je höher, desto besser die Genauigkeit des Modells.
2. `developer_instructions` ist wie ein System-Prompt, den Sie hinzufügen können.
3. `model_identity` lässt man am besten unverändert – Sie können ihn bearbeiten, aber wir sind uns nicht sicher, ob benutzerdefinierte funktionieren werden.

Wir finden mehrere Probleme mit aktuellen jinja-Chat-Vorlagen (es gibt mehrere Implementierungen im Ökosystem):

1. Funktion- und Tool-Aufrufe werden gerendert mit `tojson`, was in Ordnung ist, wenn es ein Dict ist, aber wenn es ein String ist, werden Anführungszeichen und andere **Symbole mit Backslashes versehen**.
2. Es gibt einige **zusätzliche Leerzeilen** in der jinja-Vorlage an einigen Grenzen.
3. Tool-Calling-Gedanken des Modells sollten das **`analysis` Tag haben und nicht `final` Tag**.
4. Andere Chat-Vorlagen scheinen `<|channel|>final` gar nicht zu verwenden – man sollte dies für die finale Assistenten-Nachricht verwenden. Sie sollten dies nicht für Denkspuren oder Tool-Aufrufe verwenden.

Unsere Chat-Vorlagen für das GGUF, unsere BnB- und BF16-Uploads und alle Versionen sind korrigiert! Wenn wir zum Beispiel unsere und das Harmony-Format vergleichen, erhalten wir keine unterschiedlichen Zeichen:

<div data-with-frame="true"><figure><img src="/files/772d892c89c3027393cd3c237ed48646e557a443" alt="" width="563"><figcaption></figcaption></figure></div>

### :1234: Präzisionsprobleme

Wir haben mehrere Präzisionsprobleme auf Tesla-T4- und Float16-Maschinen festgestellt, vor allem weil das Modell mit BF16 trainiert wurde und daher Ausreißer und Überläufe vorhanden waren. MXFP4 wird auf Ampere- und älteren GPUs nicht tatsächlich unterstützt, daher bietet Triton `tl.dot_scaled` für MXFP4-Matrixmultiplikation. Es castet die Matrizen intern unterwegs in BF16 hoch.

Wir haben ein [MXFP4-Inferenz-Notebook](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/GPT_OSS_MXFP4_\(20B\)-Inference.ipynb) ebenfalls im Tesla-T4-Colab erstellt!

{% hint style="info" %}
[Software-Emulation](https://triton-lang.org/main/python-api/generated/triton.language.dot_scaled.html) ermöglicht das Ansprechen von Hardwarearchitekturen ohne native Unterstützung für Microscaling-Operationen. Derzeit werden in einem solchen Fall microskalierte lhs/rhs vorab zu `bf16` Elementtyp für die Dot-Berechnung hochgestuft,
{% endhint %}

Wir haben festgestellt, dass Sie, wenn Sie float16 als den Autocast-Datentyp für gemischte Präzision verwenden, nach einiger Zeit Unendlichkeiten erhalten. Um dem entgegenzuwirken, haben wir festgestellt, dass es hilft, das MoE in bfloat16 auszuführen und es dann entweder in bfloat16- oder float32-Präzision zu belassen. Wenn ältere GPUs nicht einmal bfloat16 unterstützen (wie T4), wird float32 verwendet.

Wir ändern außerdem alle Präzisionen von Operationen (wie dem Router) auf float32 für float16-Maschinen.

## 🖥️ **gpt-oss ausführen**

Unten finden Sie Anleitungen für die [20B](#run-gpt-oss-20b) und [120B](#run-gpt-oss-120b) Varianten des Modells.

{% hint style="info" %}
Jede Quantisierung kleiner als F16, einschließlich 2-Bit, hat nur minimale Genauigkeitsverluste, da nur einige Teile (z. B. die Attention-Layer) mit geringerer Bitbreite vorliegen, während der Großteil vollpräzise bleibt. Deshalb liegen die Größen nahe am F16-Modell; zum Beispiel verhält sich die 2-Bit-Version (11,5 GB) nahezu genauso wie die vollständige 16-Bit-Version (14 GB). Sobald llama.cpp eine bessere Quantisierung für diese Modelle unterstützt, laden wir sie so schnell wie möglich hoch.
{% endhint %}

Die `gpt-oss` Modelle von OpenAI enthalten eine Funktion, mit der Nutzer den „Reasoning-Effort“ des Modells anpassen können. Dadurch können Sie den Kompromiss zwischen der Leistung des Modells und seiner Antwortgeschwindigkeit (Latenz) steuern, wobei die Anzahl der Tokens bestimmt, die das Modell zum Denken verwendet.

Die `gpt-oss` Modelle bieten drei verschiedene Reasoning-Effort-Stufen, aus denen Sie wählen können:

* **Niedrig**: Optimiert für Aufgaben, die sehr schnelle Antworten erfordern und kein komplexes, mehrstufiges Reasoning benötigen.
* **Mittel**: Ein Gleichgewicht zwischen Leistung und Geschwindigkeit.
* **Hoch**: Bietet die stärkste Reasoning-Leistung für Aufgaben, die sie erfordern, führt jedoch zu höherer Latenz.

### :gear: Empfohlene Einstellungen

OpenAI empfiehlt diese Inference-Einstellungen für beide Modelle:

`temperature=1.0`, `top_p=1.0`, `top_k=0`

* <mark style="background-color:green;">**Temperatur von 1.0**</mark>
* Top\_K = 0 (oder mit 100 experimentieren für möglicherweise bessere Ergebnisse)
* Top\_P = 1.0
* Empfohlener minimaler Kontext: 16.384
* Maximales Kontextfenster: 131.072

**Chat-Vorlage:**

```
<|start|>system<|message|>Sie sind ChatGPT, ein großes Sprachmodell, das von OpenAI trainiert wurde.\nWissensstand: 2024-06\nAktuelles Datum: 2025-08-05\n\nReasoning: medium\n\n# Gültige Kanäle: analysis, commentary, final. Der Kanal muss in jeder Nachricht enthalten sein.<|end|><|start|>user<|message|>Hallo<|end|><|start|>assistant<|channel|>final<|message|>Hallo!<|end|><|start|>user<|message|>Was ist 1+1?<|end|><|start|>assistant
```

Das Ende-Satz-/Generierungstoken: EOS ist `<|return|>`

### gpt-oss-20B ausführen

<figure><img src="/files/74a92e6adf18edd4476eabd2279a892e76e99b2e" alt=""><figcaption></figcaption></figure>

Um Inferenzgeschwindigkeiten von mehr als 6 Tokens pro Sekunde für unsere dynamische 4-Bit-Quantisierung zu erreichen, sollten Sie mindestens **14 GB Unified Memory** (kombiniertes VRAM und RAM) oder **14 GB System-RAM** allein haben. Als Faustregel sollte Ihr verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übersteigen. GGUF-Link: [unsloth/gpt-oss-20b-GGUF](https://huggingface.co/unsloth/gpt-oss-20b-GGUF)

**HINWEIS:** Das Modell kann mit weniger Speicher als seiner Gesamtgröße ausgeführt werden, aber das verlangsamt die Inferenz. Der maximale Speicher wird nur für die schnellsten Geschwindigkeiten benötigt.

{% hint style="info" %}
Beachten Sie die [**oben genannten Best Practices**](#recommended-settings). Sie sind dieselben wie beim 120B-Modell.
{% endhint %}

Sie können das Modell vorerst auf Google Colab, Docker, LM Studio oder llama.cpp ausführen. Siehe unten:

> **Sie können gpt-oss-20b kostenlos mit unserem** [**Google-Colab-Notebook**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/GPT_OSS_MXFP4_\(20B\)-Inference.ipynb)

#### 🦥 Unsloth Studio-Anleitung

Für dieses Tutorial verwenden wir [Unsloth Studio](/docs/de/neu/studio.md), das unsere neue Web-UI zum Ausführen und Trainieren von LLMs ist. Mit Unsloth Studio können Sie Modelle lokal auf **Mac, Windows**, und Linux und:

{% columns %}
{% column %}

* Suchen, herunterladen, [GGUFs ausführen](/docs/de/neu/studio.md#run-models-locally) und Safetensor-Modelle
* **Modelle** vergleichen **nebeneinander**
* [**Selbstheilende** Tool-Aufrufe](/docs/de/neu/studio.md#execute-code--heal-tool-calling) + **Websuche**
* [**Code-Ausführung**](/docs/de/neu/studio.md#run-models-locally) (Python, Bash)
* [Automatische Inferenz](https://unsloth.ai/docs/desktop#feature-deep-dive) Parametertuning (Temp, Top-P usw.)
* [LLMs trainieren](/docs/de/neu/studio.md#no-code-training) 2x schneller mit 70 % weniger VRAM
  {% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/89ac45c1d5144736e3036cb7225d0c867534603a" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% stepper %}
{% step %}

#### Unsloth installieren

Führen Sie dies in Ihrem Terminal aus:

**macOS, Linux, WSL:**

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

**Windows PowerShell:**

```bash
irm https://unsloth.ai/install.ps1 | iex
```

{% endstep %}

{% step %}

#### Unsloth starten

**MacOS, Linux, WSL, Windows ausführen:**

```bash
unsloth studio -H 0.0.0.0 -p 8888
```

<div data-with-frame="true"><figure><img src="/files/311a34fac8923d2f80dd8c143a1d9c68dff96db5" alt="" width="375"><figcaption></figcaption></figure></div>

**Dann öffnen Sie `http://localhost:8888` in Ihrem Browser.**
{% endstep %}

{% step %}

#### gpt-oss-20b suchen und herunterladen

Beim ersten Start müssen Sie ein Passwort erstellen, um Ihr Konto zu sichern, und sich später erneut anmelden. Sie sehen dann einen kurzen Einrichtungsassistenten, um ein Modell, einen Datensatz und grundlegende Einstellungen auszuwählen. Sie können ihn jederzeit überspringen.

Gehen Sie dann zur [Unsloth Chat](/docs/de/neu/studio/chat.md) Registerkarte und suchen Sie in der Suchleiste nach gpt-oss und laden Sie Ihr gewünschtes Modell und Ihre gewünschte Quantisierung herunter.

<div data-with-frame="true"><figure><img src="/files/8af4dfb2dd4fe3c21d8d246cb3124310f1c12929" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

#### gpt-oss-20b ausführen

Die Inferenzparameter sollten bei Verwendung von Unsloth Studio automatisch gesetzt werden, Sie können sie jedoch weiterhin manuell ändern. Sie können auch die Kontextlänge, das Chat-Template und andere Einstellungen bearbeiten.

Weitere Informationen finden Sie in unserer [Unsloth-Studio-Inferenzanleitung](/docs/de/neu/studio/chat.md).

<div data-with-frame="true"><figure><img src="/files/72e444ba2ee0f824709d0f03d5c3ca108bd5936f" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

#### 🐋 Docker: Tutorial zum Ausführen von gpt-oss-20b

Wenn Sie bereits Docker Desktop haben, müssen Sie nur den folgenden Befehl ausführen, und fertig:

```bash
docker model run hf.co/unsloth/gpt-oss-20b-GGUF:F16
```

#### :sparkles: Llama.cpp: Tutorial zum Ausführen von gpt-oss-20b

1. Holen Sie sich die neueste `llama.cpp` auf [GitHub hier](https://github.com/ggml-org/llama.cpp). Sie können auch den folgenden Build-Anweisungen folgen. Ändern Sie `-DGGML_CUDA=ON` zu `-DGGML_CUDA=OFF` wenn Sie keine GPU haben oder nur CPU-Inferenz möchten. **Für Apple-Mac-/Metal-Geräte**, setzen Sie `-DGGML_CUDA=OFF` und fahren Sie 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. Sie können direkt von Hugging Face herunterladen über:

   ```bash
   ./llama.cpp/llama-cli \\
       -hf unsloth/gpt-oss-20b-GGUF:F16 \
       --jinja -ngl 99 --ctx-size 16384 \
       --temp 1.0 --top-p 1.0 --top-k 0
   ```
3. Laden Sie das Modell über herunter (nach der Installation von `pip install huggingface_hub hf_transfer` ). Falls Downloads hängen bleiben, siehe [Debugging für Hugging Face Hub, XET](/docs/de/grundlagen/troubleshooting-and-faqs/hugging-face-hub-xet-debugging.md)

```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/gpt-oss-20b-GGUF",
    local_dir = "unsloth/gpt-oss-20b-GGUF",
    allow_patterns = ["*F16*"],
)
```

### gpt-oss-120b ausführen:

<figure><img src="/files/8f6fcbb8192666ceebeec8fcdf02ccd57527f466" alt=""><figcaption></figcaption></figure>

Um Inferenzgeschwindigkeiten von mehr als 6 Tokens pro Sekunde für unsere 1-Bit-Quantisierung zu erreichen, empfehlen wir mindestens **66 GB Unified Memory** (kombiniertes VRAM und RAM) oder **66 GB System-RAM** allein haben. Als Faustregel sollte Ihr verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übersteigen. GGUF-Link: [unsloth/gpt-oss-120b-GGUF](https://huggingface.co/unsloth/gpt-oss-120b-GGUF)

**HINWEIS:** Das Modell kann mit weniger Speicher als seiner Gesamtgröße ausgeführt werden, aber das verlangsamt die Inferenz. Der maximale Speicher wird nur für die schnellsten Geschwindigkeiten benötigt.

{% hint style="info" %}
Beachten Sie die [**oben genannten Best Practices**](#recommended-settings). Sie sind dieselben wie beim 20B-Modell.
{% endhint %}

#### 🦥 Unsloth Studio-Anleitung

Für dieses Tutorial verwenden wir [Unsloth Studio](/docs/de/neu/studio.md), das unsere neue Web-UI zum Ausführen und Trainieren von LLMs ist. Mit Unsloth Studio können Sie Modelle lokal auf **Mac, Windows**, und Linux und:

{% columns %}
{% column %}

* Suchen, herunterladen, [GGUFs ausführen](/docs/de/neu/studio.md#run-models-locally) und Safetensor-Modelle
* **Modelle** vergleichen **nebeneinander**
* [**Selbstheilende** Tool-Aufrufe](/docs/de/neu/studio.md#execute-code--heal-tool-calling) + **Websuche**
* [**Code-Ausführung**](/docs/de/neu/studio.md#run-models-locally) (Python, Bash)
* [Automatische Inferenz](https://unsloth.ai/docs/desktop#feature-deep-dive) Parametertuning (Temp, Top-P usw.)
* [LLMs trainieren](/docs/de/neu/studio.md#no-code-training) 2x schneller mit 70 % weniger VRAM
  {% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/89ac45c1d5144736e3036cb7225d0c867534603a" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% stepper %}
{% step %}

#### Unsloth installieren

**macOS, Linux, WSL:**

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

**Windows PowerShell:**

```bash
irm https://unsloth.ai/install.ps1 | iex
```

{% endstep %}

{% step %}

#### Unsloth Studio einrichten (einmalig)

Das Setup installiert automatisch Node.js (über nvm), baut das Frontend, installiert alle Python-Abhängigkeiten und baut llama.cpp mit CUDA-Unterstützung.

{% hint style="info" %}
**WSL-Benutzer:** Sie werden zur Eingabe Ihres `sudo` Passworts aufgefordert, um Build-Abhängigkeiten zu installieren (`cmake`, `git`, `libcurl4-openssl-dev`).
{% endhint %}
{% endstep %}

{% step %}

#### Unsloth starten

**macOS, Linux, WSL:**

```bash
source unsloth_studio/bin/activate
unsloth studio -H 0.0.0.0 -p 8888
```

**Windows PowerShell:**

```bash
& .\unsloth_studio\Scripts\unsloth.exe studio -H 0.0.0.0 -p 8888
```

<div data-with-frame="true"><figure><img src="/files/311a34fac8923d2f80dd8c143a1d9c68dff96db5" alt="" width="375"><figcaption></figcaption></figure></div>

**Dann öffnen Sie `http://localhost:8888` in Ihrem Browser.**
{% endstep %}

{% step %}

#### gpt-oss-120b suchen und herunterladen

Beim ersten Start müssen Sie ein Passwort erstellen, um Ihr Konto zu sichern, und sich später erneut anmelden. Sie sehen dann einen kurzen Einrichtungsassistenten, um ein Modell, einen Datensatz und grundlegende Einstellungen auszuwählen. Sie können ihn jederzeit überspringen.

Gehen Sie dann zur [Unsloth Chat](/docs/de/neu/studio/chat.md) Registerkarte und suchen Sie in der Suchleiste nach gpt-oss und laden Sie Ihr gewünschtes Modell und Ihre gewünschte Quantisierung herunter.

<div data-with-frame="true"><figure><img src="/files/68ac9baedb2fc6126bc9ef85a6f42973feca4383" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

#### gpt-oss-120b ausführen

Die Inferenzparameter sollten bei Verwendung von Unsloth Studio automatisch gesetzt werden, Sie können sie jedoch weiterhin manuell ändern. Sie können auch die Kontextlänge, das Chat-Template und andere Einstellungen bearbeiten.

Weitere Informationen finden Sie in unserer [Unsloth-Studio-Inferenzanleitung](/docs/de/neu/studio/chat.md).

<div data-with-frame="true"><figure><img src="/files/72e444ba2ee0f824709d0f03d5c3ca108bd5936f" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

#### 📖 Llama.cpp: Tutorial zum Ausführen von gpt-oss-120b

Für gpt-oss-120b verwenden wir speziell Llama.cpp für optimierte Inferenz.

{% hint style="success" %}
Wenn Sie eine **vollpräzise unquantisierte Version**, verwenden Sie unsere `F16` Versionen!
{% endhint %}

1. Holen Sie sich die neueste `llama.cpp` auf [GitHub hier](https://github.com/ggml-org/llama.cpp). Sie können auch den folgenden Build-Anweisungen folgen. Ändern Sie `-DGGML_CUDA=ON` zu `-DGGML_CUDA=OFF` wenn Sie keine GPU haben oder nur CPU-Inferenz möchten.

   ```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. Sie können llama.cpp direkt verwenden, um das Modell herunterzuladen, aber ich empfehle normalerweise die Verwendung von `huggingface_hub` Um llama.cpp direkt zu verwenden, führen Sie Folgendes aus:

   ```bash
   ./llama.cpp/llama-cli \\
       -hf unsloth/gpt-oss-120b-GGUF:F16 \
       --ctx-size 16384 \
       --n-gpu-layers 99 \
       -ot ".ffn_.*_exps.=CPU" \
       --temp 1.0 \\
       --min-p 0.0 \
       --top-p 1.0 \\
       --top-k 0 \
   ```
3. Oder laden Sie das Modell über herunter (nachdem Sie `pip install huggingface_hub hf_transfer` ). Sie können UD-Q2\_K\_XL oder andere quantisierte Versionen wählen..

   ```python
   # !pip install huggingface_hub hf_transfer
   import os
   os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0" # Kann manchmal Rate Limits auslösen, daher auf 0 setzen, um zu deaktivieren
   from huggingface_hub import snapshot_download
   snapshot_download(
       repo_id = "unsloth/gpt-oss-120b-GGUF",
       local_dir = "unsloth/gpt-oss-120b-GGUF",
       allow_patterns = ["*F16*"],
   )
   ```
4. Führen Sie das Modell im Konversationsmodus aus und probieren Sie einen beliebigen Prompt aus.
5. Bearbeiten `--threads -1` für die Anzahl der CPU-Threads, `--ctx-size` 262114 für die Kontextlänge, `--n-gpu-layers 99` für das GPU-Offloading für wie viele Schichten. Versuchen Sie, ihn anzupassen, wenn Ihrem GPU der Speicher ausgeht. Entfernen Sie ihn auch, wenn Sie nur CPU-Inferenz haben.

{% hint style="success" %}
Verwenden Sie `-ot ".ffn_.*_exps.=CPU"` um alle MoE-Layer auf die CPU auszulagern! Dadurch können Sie effektiv alle nicht-MoE-Layer auf 1 GPU unterbringen und so die Generierungsgeschwindigkeit verbessern. Sie können den Regex-Ausdruck anpassen, um mehr Layer auszulagern, wenn Sie mehr GPU-Kapazität haben. Weitere Optionen werden diskutiert [hier](#improving-generation-speed).
{% endhint %}

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \\
    --model unsloth/gpt-oss-120b-GGUF/gpt-oss-120b-F16.gguf \
    --ctx-size 16384 \
    --n-gpu-layers 99 \
    -ot ".ffn_.*_exps.=CPU" \
    --temp 1.0 \\
    --min-p 0.0 \
    --top-p 1.0 \\
    --top-k 0 \
```

{% endcode %}

### :tools: Verbesserung der Generierungsgeschwindigkeit

Wenn Sie mehr VRAM haben, können Sie versuchen, mehr MoE-Layer auszulagern oder ganze Layer auszulagern.

Normalerweise, `-ot ".ffn_.*_exps.=CPU"` lagert alle MoE-Layer auf die CPU aus! Dadurch können Sie effektiv alle nicht-MoE-Layer auf 1 GPU unterbringen und so die Generierungsgeschwindigkeit verbessern. Sie können den Regex-Ausdruck anpassen, um mehr Layer auszulagern, wenn Sie mehr GPU-Kapazität haben.

Wenn Sie etwas mehr GPU-Speicher haben, versuchen Sie `-ot ".ffn_(up|down)_exps.=CPU"` Dies lagert die MoE-Layer für Up- und Down-Projektionen aus.

Versuchen Sie `-ot ".ffn_(up)_exps.=CPU"` wenn Sie noch mehr GPU-Speicher haben. Dadurch werden nur die MoE-Layer für Up-Projektionen ausgelagert.

Sie können den Regex auch anpassen, zum Beispiel `-ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU"` bedeutet, dass Gate-, Up- und Down-MoE-Layer ausgelagert werden, aber erst ab der 6. Schicht.

Die [neueste llama.cpp-Version](https://github.com/ggml-org/llama.cpp/pull/14363) führt auch einen High-Throughput-Modus ein. Verwenden Sie `llama-parallel`. Lesen Sie mehr darüber [hier](https://github.com/ggml-org/llama.cpp/tree/master/examples/parallel). Sie können auch **den KV-Cache auf 4 Bit quantisieren** z. B. um die Bewegung von VRAM/RAM zu reduzieren, was den Generierungsprozess ebenfalls schneller machen kann.

## 🦥 gpt-oss mit Unsloth feinabstimmen

{% hint style="success" %}
[**Update vom 28. Aug.**](/docs/de/modelle/gpt-oss-how-to-run-and-fine-tune/long-context-gpt-oss-training.md#new-saving-to-gguf-vllm-after-gpt-oss-training)**:** Sie können Ihr mit QLoRA feinabgestimmtes gpt-oss-Modell jetzt nach llama.cpp, vLLM, HF usw. exportieren/speichern.

Wir haben außerdem [Unsloth Flex Attention](/docs/de/modelle/gpt-oss-how-to-run-and-fine-tune/long-context-gpt-oss-training.md#introducing-unsloth-flex-attention-support) eingeführt, das ermöglicht **>8× längere Kontextfenster**, **>50 % weniger VRAM-Nutzung** und **>1,5× schnelleres Training** im Vergleich zu allen Implementierungen. [Lesen Sie hier mehr](/docs/de/modelle/gpt-oss-how-to-run-and-fine-tune/long-context-gpt-oss-training.md#introducing-unsloth-flex-attention-support)
{% endhint %}

Die Feinabstimmung von gpt-oss mit Unsloth ist 1,5x schneller, nutzt 70 % weniger VRAM und unterstützt 10x längere Kontextfenster. Das QLoRA-Training von gpt-oss-20b passt auf 14 GB VRAM, und gpt-oss-120b läuft auf 65 GB VRAM.

* **QLoRA-Anforderungen:** gpt-oss-20b = 14 GB VRAM • gpt-oss-120b = 65 GB VRAM.
* **BF16-LoRA-Anforderungen:** gpt-oss-20b = 44 GB VRAM • gpt-oss-120b = 210 GB VRAM.

Lesen Sie unser Schritt-für-Schritt-Tutorial zum Feinabstimmen von gpt-oss:

{% content-ref url="/pages/795c60e5aacc9878814ca680a7342a1f57e65aad" %}
[Tutorial: Wie man gpt-oss fine-tunet](/docs/de/modelle/gpt-oss-how-to-run-and-fine-tune/tutorial-how-to-fine-tune-gpt-oss.md)
{% endcontent-ref %}

{% hint style="success" %}
Sie können Ihr mit QLoRA feinabgestimmtes gpt-oss-Modell jetzt nach llama.cpp, vLLM, HF usw. exportieren/speichern.
{% endhint %}

Kostenlose Unsloth-Notebooks zum Feinabstimmen von gpt-oss:

* gpt-oss-20b [Notebook für Reasoning + Konversation](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/gpt-oss-\(20B\)-Fine-tuning.ipynb)

### Reinforcement Learning (GRPO)

Unsloth unterstützt jetzt RL für gpt-oss! Wir haben zwei Notebooks erstellt; für weitere Details lesen Sie unseren speziellen Blog zu gpt-oss-RL: [gpt-oss RL](/docs/de/modelle/gpt-oss-how-to-run-and-fine-tune/gpt-oss-reinforcement-learning.md)

| [2048-Notebook](https://colab.research.google.com/github/openai/gpt-oss/blob/main/examples/reinforcement-fine-tuning.ipynb) (Offizielles OpenAI-Beispiel) | [Notebook zur Kernel-Generierung](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/gpt-oss-\(20B\)-GRPO.ipynb) |
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |

### 💾**NEU: Speichern in GGUF, vLLM nach gpt-oss-Training**

Sie können gpt-oss jetzt per QLoRA feinabstimmen und das Modell direkt in **llama.cpp**, **vLLM**, oder **HF** speichern, exportieren oder zusammenführen - nicht nur mit Unsloth. Wir werden hoffentlich bald ein kostenloses Notebook veröffentlichen.

Früher war jedes per QLoRA feinabgestimmte gpt-oss-Modell auf die Ausführung in Unsloth beschränkt. Diese Einschränkung haben wir entfernt, indem wir **On-Demand-Dekquantisierung von MXFP4** Basis-Modellen (wie gpt-oss) während des LoRA-Merge-Prozesses. Dadurch wird es möglich, Ihr feinabgestimmtes Modell im bf16-Format zu exportieren **Ihr feinabgestimmtes Modell im bf16-Format exportieren**.

Nachdem Sie Ihr gpt-oss-Modell feinabgestimmt haben, können Sie es jetzt mit einem **einzigen Befehl**:

```python
model.save_pretrained_merged(save_directory, tokenizer)
```

Wenn Sie das Modell stattdessen lieber zusammenführen und direkt in den Hugging-Face-Hub pushen möchten, können Sie dies mit folgendem Befehl tun:

```python
model.push_to_hub_merged(repo_name, tokenizer=tokenizer, token=hf_token)
```

### 💡Effizientes gpt-oss-Finetuning ermöglichen

Wir haben festgestellt, dass MXFP4 zwar sehr effizient ist, aber das Training mit gpt-oss nicht nativ unterstützt. Um diese Einschränkung zu umgehen, haben wir benutzerdefinierte Trainingsfunktionen speziell für MXFP4-Layer implementiert, indem wir es über Bitsandbytes NF4-Quantisierung nachbilden. `Bitsandbytes` NF4-Quantisierung.

Wir haben OpenAIs Triton-Kernel-Bibliothek direkt verwendet, um MXFP4-Inferenz zu ermöglichen. Für Feinabstimmung/Training unterstützen die MXFP4-Kernel jedoch noch kein Training, da der Backward-Pass noch nicht implementiert ist. Wir arbeiten aktiv daran, ihn in Triton zu implementieren! Es gibt ein Flag namens `W_TRANSPOSE` wie erwähnt, [hier](https://github.com/triton-lang/triton/blob/main/python/triton_kernels/triton_kernels/matmul_ogs_details/_matmul_ogs.py#L39), das implementiert werden sollte. Die Ableitung kann durch die Transposition der Gewichtsmatrizen berechnet werden, daher müssen wir die Transpositionsoperation implementieren.

Wenn Sie gpt-oss mit einer anderen Bibliothek als Unsloth trainieren möchten, müssen Sie die Gewichte vor dem Training auf bf16 hochcasten. Dieser Ansatz **erhöht erheblich** sowohl die VRAM-Nutzung als auch die Trainingszeit um bis zu **300 % mehr Speicherverbrauch**! <mark style="background-color:green;">**ALLE anderen Trainingsmethoden erfordern mindestens 65 GB VRAM, um das 20b-Modell zu trainieren, während Unsloth nur 14 GB VRAM benötigt (-80 %).**</mark>

Da beide Modelle die MoE-Architektur verwenden, wählt das 20B-Modell 4 Experten aus 32, während das 120B-Modell pro Token 4 von 128 auswählt. Während Training und Veröffentlichung werden die Gewichte im MXFP4-Format als `nn.Parameter` Objekte gespeichert, nicht als `nn.Linear` Layer, was die Quantisierung erschwert, insbesondere da die MoE/MLP-Experten etwa 19B der 20B-Parameter ausmachen.

Um `BitsandBytes` Quantisierung und speichereffizientes Feinabstimmen zu ermöglichen, haben wir diese Parameter in `nn.Linear` Layer umgewandelt. Obwohl dies die Operationen leicht verlangsamt, ermöglicht es die Feinabstimmung auf GPUs mit begrenztem Speicher, ein lohnender Kompromiss.

### Leitfaden für das Feinabstimmen von Datensätzen

Obwohl gpt-oss nur Reasoning unterstützt, können Sie es dennoch mit einem Nicht-Reasoning- [Datensatz](/docs/de/erste-schritte/fine-tuning-llms-guide/datasets-guide.md), aber dies kann seine Reasoning-Fähigkeit beeinträchtigen. Wenn Sie seine Reasoning-Fähigkeiten erhalten möchten (optional), können Sie eine Mischung aus direkten Antworten und Chain-of-Thought-Beispielen verwenden. Verwenden Sie mindestens <mark style="background-color:green;">75 % Reasoning</mark> und <mark style="background-color:green;">25 % Nicht-Reasoning</mark> in Ihrem Datensatz, damit das Modell seine Reasoning-Fähigkeiten beibehält.

Unser gpt-oss-20b-Konversations-Notebook verwendet OpenAIs Beispiel, das der Multilingual-Thinking-Datensatz von Hugging Face ist. Der Zweck dieses Datensatzes besteht darin, dem Modell zu ermöglichen, Reasoning-Fähigkeiten in diesen vier verschiedenen Sprachen zu erlernen und zu entwickeln.

<figure><img src="/files/21251de3d4cda52bf8d8a9cf65fb4db870bd0fe4" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://unsloth.ai/docs/de/modelle/gpt-oss-how-to-run-and-fine-tune.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
