# FP8 Reinforcement Learning

Wir führen FP8-Genauigkeitstraining für RL ein und machen FP8 GRPO jetzt möglich auf **Consumer-GPUs** (RTX 40, 50 usw.). DeepSeek-R1 zeigte, wie leistungsfähig FP8 sein kann, und mit Unsloth funktioniert Qwen3-1.7B FP8 GRPO jetzt nur auf **5 GB VRAM**.

Schnellere RL-Inferenz ist entscheidend, da sie die rechenintensivste Arbeitslast im RL ist. Wir haben mit [TorchAO](https://github.com/pytorch/ao) von PyTorch zusammengearbeitet, um Leistungssteigerungen ohne Genauigkeitsverlust zu ermöglichen.

* **\~1,4× schneller** RL-Inferenz über [vLLM](https://github.com/vllm-project/vllm) • 2x längerer Kontext gegenüber BF16 und FP16
* **60% weniger VRAM** und **10× länger** Kontext als andere FP8-RL-Implementierungen
* Unsloth ist das **einzige Framework** das FP8 RL LoRA auf Consumer-GPUs (z. B. NVIDIA GeForce RTX 40 und 50 Serie) zum Laufen bringt. Funktioniert auch auf H100, H200, B200 usw.
* Verwenden Sie `load_in_fp8 = True` innerhalb `FastLanguageModel` um FP8 RL zu aktivieren.
* Obwohl Qwen3-8B in 16 GB VRAM passt, unterstützen freie Colab NVIDIA Tesla T4 GPUs **kein FP8**. Daher verwenden unsere Notebooks **24GB L4 GPUs, die Qwen3-14B aufnehmen**.

**Notebooks:** [Qwen3-8B FP8 GRPO](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_8B_FP8_GRPO.ipynb) und [Llama-3.2-1B FP8 GRPO](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Llama_FP8_GRPO.ipynb)

{% hint style="success" %}
Bonus: Du wirst feststellen, dass Unsloth jetzt viel weniger VRAM verwendet. Wir teilen die Details bald in einem neuen Blog.
{% endhint %}

Unsere FP8-Unterstützung nutzt Unsloths [Gewichts-Sharing-Funktion](https://unsloth.ai/docs/de/los-gehts/reinforcement-learning-rl-guide/memory-efficient-rl), wodurch der VRAM-Verbrauch um weitere **50%**&#x72;eduziert wird und **10× mehr** Kontext ohne Genauigkeitsverlust ermöglicht. Wir verwenden [vLLM](https://github.com/vllm-project/vllm) für schnelle Inferenz und Techniken wie Unsloth [Standby](https://unsloth.ai/docs/de/los-gehts/reinforcement-learning-rl-guide/memory-efficient-rl) und [Flex Attention](https://unsloth.ai/docs/de/modelle/gpt-oss-how-to-run-and-fine-tune/long-context-gpt-oss-training) um den VRAM-Verbrauch weiter zu reduzieren. TorchAO ermöglicht universelles, on-the-fly FP8, sodass Llama, Gemma, Mistral & mehr funktionieren. Wir haben außerdem [hochgeladen](#unsloth-fp8-uploads) die meisten FP8-Modelle (einschließlich Qwen3).

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FNhbi7jRc6zwCAeuddBBk%2Foutput(14).png?alt=media&#x26;token=80ad0712-4626-4536-aa57-29bc53b40540" alt="" width="375"><figcaption><p>Der Reward-Plot zeigt, dass FP8 dem gleichen Trend wie BF16 folgt</p></figcaption></figure>

### :sunflower:FP8 vs BF16 Training

Forschung zeigt, dass FP8-Training die BF16-Genauigkeit weitgehend erreichen kann, und wenn du Modelle in FP8 bereitstellst, **Training und Bereitstellung in derselben Präzision** trägt das zur Erhaltung der Genauigkeit bei. Außerdem liefert FP8 gegenüber BF16 auf H100s eine 1,6x höhere Durchsatzrate und verwendet 2x weniger Speicher.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FApLfXUBVZSbjpPhRJG6z%2Ffp8%20f16%20quant.png?alt=media&#x26;token=77a2917a-f191-44a7-8597-6796fcf24ed7" alt="" width="375"><figcaption></figcaption></figure>

#### Gewichtsskalen & FP8-Typen

Quantisiertes Training speichert ein niedrigpräzises Gewicht (z. B. FP8) plus eine höherpräzise Skala (FP16/BF16/FP32). Du stellst das ursprüngliche Gewicht ungefähr so wieder her: `original_weight ≈ quantized_weight * weight_scale`

Die Skala bildet den Wertebereich des Gewichts in den darstellbaren Bereich von FP8 ab. Mehr Skalen verbessern normalerweise die Genauigkeit, aber Skalen kosten zusätzlichen hochpräzisen Speicher, daher ist es ein Kompromiss. [DeepSeek R1](https://arxiv.org/abs/2501.12948), zum Beispiel, bevorzugt überwiegend Block-Quantisierung.

Es gibt 3 gängige FP8-Typen, wie sie von vLLM's definiert werden [llm-compressor](https://github.com/vllm-project/llm-compressor). Wir haben Qwen3-8B für alle 3 Typen benchmarked und auch Durchsatz, MMLU Pro und GQPA Diamond geprüft. Wir stellen fest, dass **FP8 Block-Wise oder Per-Channel (-FP8-Dynamic) das beste** in Bezug auf Genauigkeit und Durchsatz ist.

<table><thead><tr><th width="121">Typ</th><th width="225.20001220703125"></th><th width="126.4000244140625">Durchsatz</th><th width="121.60003662109375">MMLU Pro</th><th>GQPA Diamond</th></tr></thead><tbody><tr><td></td><td>Bfloat16-Baseline</td><td>11,367</td><td><strong>62.04%</strong></td><td>28.79%</td></tr><tr><td>Block-wise</td><td>Skalen pro Block (128X128)</td><td>12,041</td><td><strong>62.37%</strong></td><td><strong>29.29%</strong></td></tr><tr><td>Per-Channel</td><td>1 Skala pro Zeile oder Spalte</td><td>12,963</td><td>61.89%</td><td><strong>31.82%</strong></td></tr><tr><td>Per-Tensor</td><td>1 Skala für das gesamte Tensor</td><td><strong>13,681</strong></td><td>61.83%</td><td>27.78%</td></tr></tbody></table>

### :zap:FP8 Leistungs-Benchmarks

Unsloth FP8 RL-Inferenz über vLLM ist generell 1,4x schneller als BF16. Bei größeren Modellen sind noch höhere Geschwindigkeitsverbesserungen möglich!

#### Genauigkeit Trainingsverlust-Benchmarks

Wir testeten mehrere Modelle, darunter Qwen3-4B, 8B, 14B, Llama 3.2 1B, 3B, Qwen3-VL-2B, Qwen3-VL 4B und viele mehr. Alle wurden sowohl in BF16 als auch in FP8 trainiert. Wie in den Plots zu sehen ist, **verfolgen die Verlustkurven während SFT für BF16 und FP8 einander eng**. Es gibt kaum einen Unterschied zwischen den beiden Datentypen hinsichtlich des Trainingsverlusts:

{% columns %}
{% column %}

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FR6Hx9RtgqPXnYxvx5BbR%2FW%26B%20Chart%2025_11_2025%2C%208_54_56%20am.png?alt=media&#x26;token=d1d70d59-df00-45bb-8352-e833f9b5f3cd" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FlUzs2uNkCyF1ulNdrVRc%2FW%26B%20Chart%2025_11_2025%2C%208_56_50%20am.png?alt=media&#x26;token=09545235-c9fa-4b76-a834-ffe0ceb8f639" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Speziell für GRPO ist das Ziel aufgrund von Unterschiedlichkeiten bei der Generierung zu sehen, ob sich die Reward-Plots zumindest angleichen und nicht auseinanderlaufen (manchmal sind z. B. Qwen3-14B-Läufe nicht exakt ähnlich)

{% columns %}
{% column width="50%" %}

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FeLBs5GrQb988GcrYVzpF%2FW%26B%20Chart%2025_11_2025%2C%209_00_50%20am.png?alt=media&#x26;token=59220833-33c6-4c28-abe7-b5d0d93a0a17" alt=""><figcaption></figcaption></figure>

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FPqXVeofauAIr5Qngm9d2%2FW%26B%20Chart%2025_11_2025%2C%209_08_06%20am.png?alt=media&#x26;token=16498cf1-17e1-4984-b933-fe3633e19a6b" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column width="50%" %}

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FC76ql9G59SB0v3nG3pbL%2FW%26B%20Chart%2025_11_2025%2C%209_05_32%20am.png?alt=media&#x26;token=554b6fe8-c121-48a4-8b33-41f28fc38ebb" alt=""><figcaption></figcaption></figure>

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FqM5NKHjOxqJv0hrzmr2B%2FW%26B%20Chart%2025_11_2025%2C%209_07_12%20am.png?alt=media&#x26;token=a7ad9eb0-0ea2-4364-982a-0875ec63459f" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### :shinto\_shrine:Inference = 96% des RL-Trainings

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FTvC7GqMM5XAfV8Zv2tpf%2Fimage.avif?alt=media&#x26;token=62b40c34-3111-40a9-b02a-4bfa8826402d" alt=""><figcaption></figcaption></figure>

Im RL müssen wir das LLM/VLM aufrufen, um einige mögliche Kandidatenlösungen für einen Lauf zu generieren, dann bewerten wir jede mögliche Lösung und **belohnen gute Lösungen und bestrafen schlechte Antworten**. Um maximale Effizienz zu erreichen, müssen wir die Inferenz nahezu 100% des Trainingslaufs ausmachen. In Unsloth haben wir **es geschafft, das Training auf weniger als 4% des gesamten RL-Laufs zu reduzieren, wobei 96% reine vLLM-Inferenz sind.**

Zum Beispiel für Qwen-3-8B, das bei kürzeren Sequenzlängen 1,15x schneller ist, ist vLLM FP8 selbst für Inferenz (ohne Training) ebenfalls 1,15x schneller im Durchsatz. Wir sehen, dass unser RL-Lauf in Unsloth ebenfalls 1,15x schneller bei verarbeiteten Tokens ist, was zeigt, wie **der Trainings-Overhead in Unsloth vernachlässigbar ist.**

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F105iKEPXAor00mdUPTfo%2FTokens%20Processed%20during%20RL.svg?alt=media&#x26;token=ca1c1d76-64b2-4019-91ac-7043f0ab79fd" alt=""><figcaption></figcaption></figure>

### :1234:60% weniger Speicherverbrauch

Theoretisch würde man erwarten, dass die Speicherersparnis ungefähr **dem Gewichtsspeicher des Modells entspricht**, weil: Optimizer-Zustände werden weiterhin in hoher Präzision gespeichert und Aktivierungen werden ebenfalls in hoher Präzision gespeichert (vorerst). Unsere Erkenntnisse stimmen mit der Theorie überein. Für LoRA-Finetuning beobachteten wir: **\~30 GB eingespart** für **Qwen3-32B, \~14 GB eingespart** für **Qwen2.5-14B** und **\~8 GB eingespart** für **Qwen3-8B**

Für **BF16 LoRA-Finetuning auf** Qwen3-32B, wir hatten OOMs bei größeren Batch-Größen und mussten die Batch verkleinern. Die **FP8-Variante hatte solche Probleme nicht**, und wir konnten **größere Batch-Größen** ohne OOM verwenden.

Außerdem Erinnerung: In Unsloth teilen wir den vLLM-Speicherraum für die Gewichte wie eingeführt in [memory-efficient-rl](https://unsloth.ai/docs/de/los-gehts/reinforcement-learning-rl-guide/memory-efficient-rl "mention") - wir haben diesen Trick in den FP8-Bereich übertragen!

| 80GB GPU                                                                                                                                                        | Inference Engine      | Training Engine                               |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | --------------------------------------------- |
| Modellgewichte                                                                                                                                                  | **8GB GETEILTER FP8** | **<<< GETEILT**                               |
| <p><mark style="background-color:purple;"><strong>Mehrzweck</strong></mark></p><p><mark style="background-color:purple;"><strong>72GB Platz</strong></mark></p> | KV-Cache              | Aktivierungen, Gradienten, Optimizer-Zustände |

nn.Linear [Unsloth Standby](https://unsloth.ai/docs/de/los-gehts/reinforcement-learning-rl-guide/memory-efficient-rl) Für FP8 (oder BF16) RL füge einfach das Folgende zu allen RL/GRPO-Trainingsläufen hinzu, bevor irgendein Unsloth-Import erfolgt:

```python
import os
os.environ["UNSLOTH_VLLM_STANDBY"] = "1"
```

### :question:Wie man FP8 RL verwendet / Installation

Aktualisiere einfach Unsloth oder installiere Unsloth in einer neuen virtuellen Umgebung für H100, L4, RTX 50x, RTX 40x, H200s, B200s und jede NVIDIA-GPU (Consumer- oder Rechenzentrumsklasse), die nach der RTX 4090 veröffentlicht wurde.

Um Unsloth zu aktualisieren: `pip install --upgrade --force-reinstall --no-cache-dir --no-deps unsloth unsloth_zoo`Oder erstelle eine neue Umgebung:

{% code overflow="wrap" %}

```bash
python -m venv unsloth_env
source unsloth_env/bin/activate

pip install unsloth vllm
pip install --pre torchao --index-url https://download.pytorch.org/whl/nightly/cu128 --force-reinstall
pip install --pre fbgemm-gpu fbgemm-gpu-genai --index-url https://download.pytorch.org/whl/cu128 --force-reinstall
pip install --upgrade numba numpy
```

{% endcode %}

Verwenden Sie dann `load_in_fp8 = True` und du bist startklar! Wir werden den Modellnamen automatisch der Float8-Variante zuordnen, oder wir konvertieren das Modell on-the-fly in Float8!

<pre class="language-python" data-overflow="wrap"><code class="lang-python">import os
os.environ['UNSLOTH_VLLM_STANDBY'] = "1" # Unsloth Standby spart 30%+ Speicher für RL
from unsloth import FastLanguageModel
import torch
max_seq_length = 2048 # Kann für längere Reasoning-Traces erhöht werden
lora_rank = 32 # Größerer Rank = intelligenter, aber langsamer
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/Qwen3-8B",
    max_seq_length = max_seq_length,
    load_in_4bit = False, # False für LoRA 16bit
    fast_inference = True, # vLLM Fast-Inferenz aktivieren
    max_lora_rank = lora_rank,
<strong>    load_in_fp8 = True, # Float8 RL / GRPO!
</strong>)
</code></pre>

Zum Beispiel auf einer RTX 5090 (Erinnerung: setze `os.environ["UNSLOTH_VLLM_STANDBY"] = "1"` )

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FlVA3v7E5J8pHb1QKLi2V%2Fimage.png?alt=media&#x26;token=20b5329c-6ac2-479a-a4cc-2a0d74486696" alt="" width="375"><figcaption></figcaption></figure>

Verwende dann unsere 2 FP8-Notebooks für RL:

{% columns %}
{% column %}
**Qwen3-8B FP8 RL Colab**

{% embed url="<https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_8B_FP8_GRPO.ipynb>" %}
{% endcolumn %}

{% column %}
**Llama-3.2-1B-FP8 RL Colab**

{% embed url="<https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Llama_FP8_GRPO.ipynb>" %}
{% endcolumn %}
{% endcolumns %}

### :cd:Implementierung von FP8-Training

Unser erster Referenzpunkt war `transformers`, der FP8 bereits auf mehrere Arten unterstützt. Eine davon ist eine block-quantisierte Matmul-Implementierung: wenn eine Schicht 16-Bit-Aktivierungen erhält, quantisiert sie diese und übergibt sie an einen benutzerdefinierten FP8-Matmul-Kernel. Nachdem wir das verdrahtet und auf einer NVIDIA H100 gebenchmarkt hatten, sahen wir das Gegenteil von dem, was wir wollten: Finetuning wurde etwa **4× langsamer** als standardmäßiges BF16-Finetuning.

### 🔥TorchAO Zusammenarbeit

Also arbeiteten wir mit dem [TorchAO](https://github.com/pytorch/ao) Team (großer Dank an[ Andrew](https://github.com/unslothai/unsloth/pull/3440)) zusammen, um TorchAOs FP8-Unterstützung in unsere RL-Workloads zu integrieren und sahen etwa **1,4× höheren Durchsatz** und bis zu **60% geringeren Modellspeicherverbrauch**. Auf hoher Ebene:

* Wir speichern die eingefrorenen LoRA-Gewichte in FP8.
* Während des Vorwärtspasses wenden wir dynamische FP8-Quantisierung auf die Eingabeaktivierungen an, während die trainierbaren LoRA-Adapter in BF16 bleiben.
* Diese FP8-Gewichte teilen die gleichen Puffer wie die vLLM-Modellgewichte, sodass zu jedem Zeitpunkt nur eine einzige FP8-Kopie des Modells im Speicher ist (keine doppelte Modell-Speicherüberhead).
* Im Rückwärtspass dequantisieren wir die LoRA-Gewichte, sodass alle Gradientenberechnungen in BF16 für bessere Genauigkeit erfolgen.

Dieses allgemeine Setup funktioniert über alle unterstützten RL-Algorithmen hinweg, einschließlich [GSPO](https://unsloth.ai/docs/de/los-gehts/reinforcement-learning-rl-guide/advanced-rl-documentation/gspo-reinforcement-learning), Dr. GRPO, PPO und DPO.

<figure><img src="https://797013937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FUir0hB7T0xBtWUTnK3aG%2Funknown.png?alt=media&#x26;token=d225cd2e-fdf4-4521-8e9f-72bd684eb9e4" alt="" width="375"><figcaption></figcaption></figure>

TorchAO bietet native PyTorch FP8-Unterstützung für Training und Inferenz und bietet eine Vielzahl von Skalierungsgranularitäten, einschließlich tensorweise, zeilenweise und 128x128 blockweise (Prototyp). TorchAOs FP8-Unterstützung kann die Inferenzdurchsatzrate um bis zu [1,64x bei 27B-Skalierung](https://huggingface.co/pytorch/gemma-3-27b-it-FP8/blob/main/README.md#results-h100-machine) mit zeilenweiser Skalierungsgranularität verbessern. Für weitere Details besuche das TorchAO [FP8 README](https://github.com/pytorch/ao/blob/main/torchao/float8/README.md).

#### TorchAOs block-quantisiertes FP8-Matmul

Wir verwendeten TorchAOs block‑quantisierte FP8-Matmul-Implementierung, die Folgendes lieferte:

* **80% des BF16-Durchsatzes**
* Ohne Verlust der Trainingsstabilität oder Verschlechterung des Loss

Eine Zeit lang wurde dies unser Standard-FP8-Matmul-Backend, bis FBGEMM aufholte – wir verwenden jetzt standardmäßig FBGEMMs Implementierung, wenn deine GPU sie unterstützt! Die aktuelle Version von Unsloth kann automatisch das beste Backend basierend auf der Installation wählen. Wenn du die richtigen Pakete hast, musst du keine Performance-Potenziale verschenken 🙂

PS: Wir haben auch mit DeepSeeks DeepGEMM experimentiert, konnten es aber nicht vollständig end-to-end integrieren, um saubere, vergleichbare Tests durchzuführen.

### :bird:On-the-fly TorchAO FP8-Quantisierung

Großer Dank an [Andrew](https://github.com/unslothai/unsloth/pull/3440) von TorchAO, Unsloth FP8 RL ermöglicht es dir auch, das Modell on-the-fly zu quantisieren, indem die Quantisierung zur Modellladezeit durchgeführt und an vLLM übergeben wird. Auf diese Weise musst du das Modell nicht explizit selbst quantisieren (wir übernehmen das für dich). Du kannst dies tun, indem du `load_in_fp8 = True` in den Modell-Ladeargumenten setzt, und wir führen eine Offline-FP8 durch, falls wir keinen geeigneten vor-quantisierten Checkpoint finden.

```python
from unsloth import FastLanguageModel
fp8_model = FastLanguageModel.from_pretrained(
    "unsloth/Llama-3.3-70B-Instruct", # Kann jeder Modellname sein!
    load_in_fp8 = True, # Kann für Block-FP8 "block", für Zeilen-FP8 True, für False sein
)
```

### :tada:Unsloth FP8 Uploads

Zur Bequemlichkeit haben wir FP8 Dynamic- und FP8 Block-Modelle auf Hugging Face hochgeladen. Du kannst sie für FP8-Training oder auch für effizientes & schnelles Serving/Deployment über [vLLM](https://unsloth.ai/docs/de/grundlagen/inference-and-deployment/vllm-guide)/[SGLang](https://unsloth.ai/docs/de/grundlagen/inference-and-deployment/sglang-guide) usw.

FP8 Dynamic bietet etwas schnelleres Training und geringeren VRAM-Verbrauch als FP8 Block, jedoch mit einem kleinen Genauigkeitskompromiss. [Sieh hier](https://unsloth.ai/docs/de/unsloth-model-catalog#fp8) für unsere vollständige Liste der FP8-Quantis, aber hier die populärsten:

| Modell                | FP8 Uploads                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Qwen3 (2507)**      | <p>4B Instruct — <a href="https://huggingface.co/unsloth/Qwen3-4B-Instruct-2507-FP8">FP8</a><br>4B Thinking — <a href="https://huggingface.co/unsloth/Qwen3-4B-Thinking-2507-FP8">FP8</a><br>30B-A3B Instruct — <a href="https://huggingface.co/unsloth/Qwen3-30B-A3B-Instruct-2507-FP8">FP8</a><br>30B-A3B Thinking — <a href="https://huggingface.co/unsloth/Qwen3-30B-A3B-Thinking-2507-FP8">FP8</a></p>                                                                                                                                                                                                                                                                                                                                                 |
| **Qwen3-VL**          | <p>4B Instruct — <a href="https://huggingface.co/unsloth/Qwen3-VL-4B-Instruct-FP8">FP8</a><br>4B Thinking — <a href="https://huggingface.co/unsloth/Qwen3-VL-4B-Thinking-FP8">FP8</a><br>8B Instruct — <a href="https://huggingface.co/unsloth/Qwen3-VL-8B-Instruct-FP8">FP8</a><br>8B Thinking — <a href="https://huggingface.co/unsloth/Qwen3-VL-8B-Thinking-FP8">FP8</a></p>                                                                                                                                                                                                                                                                                                                                                                             |
| **Llama 3.1**         | <p>8B Instruct — <a href="https://huggingface.co/unsloth/Llama-3.1-8B-Instruct-FP8-Dynamic">Dynamisches</a> · <a href="https://huggingface.co/unsloth/Llama-3.1-8B-Instruct-FP8-Block">Block</a><br>8B Base — <a href="https://huggingface.co/unsloth/Llama-3.1-8B-FP8-Dynamic">Dynamisches</a> · <a href="https://huggingface.co/unsloth/Llama-3.1-8B-FP8-Block">Block</a><br>70B — <a href="https://huggingface.co/unsloth/Llama-3.1-70B-FP8-Dynamic">Dynamisches</a> · <a href="https://huggingface.co/unsloth/Llama-3.1-70B-FP8-Block">Block</a></p>                                                                                                                                                                                                    |
| **Qwen3**             | <p>0.6B — <a href="https://huggingface.co/unsloth/Qwen3-0.6B-FP8">FP8</a><br>1.7B — <a href="https://huggingface.co/unsloth/Qwen3-1.7B-FP8">FP8</a><br>4B — <a href="https://huggingface.co/unsloth/Qwen3-4B-FP8">FP8</a><br>8B — <a href="https://huggingface.co/unsloth/Qwen3-8B-FP8">FP8</a><br>14B — <a href="https://huggingface.co/unsloth/Qwen3-14B-FP8">FP8</a><br>32B — <a href="https://huggingface.co/unsloth/Qwen3-32B-FP8">FP8</a></p>                                                                                                                                                                                                                                                                                                         |
| **Llama 3.3**         | 70B — [Dynamisches](https://huggingface.co/unsloth/Llama-3.3-70B-Instruct-FP8-Dynamic) · [Block](https://huggingface.co/unsloth/Llama-3.3-70B-Instruct-FP8-Block)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| **Llama 3.2**         | <p>1B Base — <a href="https://huggingface.co/unsloth/Llama-3.2-1B-FP8-Dynamic">Dynamisches</a> · <a href="https://huggingface.co/unsloth/Llama-3.2-1B-FP8-Block">Block</a><br>1B Instruct — <a href="https://huggingface.co/unsloth/Llama-3.2-1B-Instruct-FP8-Dynamic">Dynamisches</a> · <a href="https://huggingface.co/unsloth/Llama-3.2-1B-Instruct-FP8-Block">Block</a><br>3B Base — <a href="https://huggingface.co/unsloth/Llama-3.2-3B-FP8-Dynamic">Dynamisches</a> · <a href="https://huggingface.co/unsloth/Llama-3.2-3B-FP8-Block">Block</a><br>3B Instruct — <a href="https://huggingface.co/unsloth/Llama-3.2-3B-Instruct-FP8-Dynamic">Dynamisches</a> · <a href="https://huggingface.co/unsloth/Llama-3.2-3B-Instruct-FP8-Block">Block</a></p> |
| **Granite 4.0**       | <p>h-tiny — <a href="https://huggingface.co/unsloth/granite-4.0-h-tiny-FP8-Dynamic">FP8 Dynamic</a><br>h-small — <a href="https://huggingface.co/unsloth/granite-4.0-h-small-FP8-Dynamic">FP8 Dynamic</a></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Magistral Small**   | [FP8 Dynamic](https://huggingface.co/unsloth/Magistral-Small-2509-FP8-Dynamic) · [FP8 torchao](https://huggingface.co/unsloth/Magistral-Small-2509-FP8-torchao)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **Mistral Small 3.2** | [FP8](https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506-FP8)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Gemma 3**           | <p>270m — <a href="https://huggingface.co/unsloth/gemma-3-270m-it-FP8-Dynamic">FP8</a><br>1B — <a href="https://huggingface.co/unsloth/gemma-3-1b-it-FP8-Dynamic">FP8</a><br>4B — <a href="https://huggingface.co/unsloth/gemma-3-4b-it-FP8-Dynamic">FP8</a><br>12B — <a href="https://huggingface.co/unsloth/gemma-3-12B-it-FP8-Dynamic">FP8</a><br>27B — <a href="https://huggingface.co/unsloth/gemma-3-27b-it-FP8-Dynamic">FP8</a></p>                                                                                                                                                                                                                                                                                                                  |

### :person\_tipping\_hand:Danksagungen

Großer Dank an das gesamte PyTorch- und TorchAO-Team für ihre Hilfe und Zusammenarbeit! Ein besonderer Dank geht an: Andrew Or, Jerry Zhang, Supriya Rao, Scott Roy und Mergen Nachin für die Unterstützung in vielen Diskussionen zu FP8 RL und bei der Integration in Unsloth! Auch Dank an das Executorch-Team!
