> 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/fr/modeles/gemma-4/qat.md).

# Gemma 4 QAT

Gemma 4 QAT (Quantization-Aware Training) est la nouvelle [Gemma 4](/docs/fr/modeles/gemma-4.md) variantes conçues pour **réduire les besoins en mémoire tout en préservant la qualité du modèle**. Cela permet d’exécuter des modèles plus grands, comme **Gemma 4 26B-A4B**, localement sur des GPU grand public avec seulement **16 Go de RAM**.

Gemma 4 QAT est entraîné en gardant la quantification à l’esprit, ce qui permet au format 4 bits d’avoir \~**72 % d’utilisation de mémoire en moins** avec **des performances presque d’origine**. 2 quants mobiles spéciaux de E2B et E4B sont également fournis, utilisant un mélange de largeurs de quantification.

Conversion vers `Q4_0` depuis QAT n’obtient naïvement que 70,2 % de précision top-1 pour 26B-A4B. [Nous avons appliqué notre méthode dynamique Unsloth](#qat-analysis) pour la faire monter à **85,6 % (+15,6 %) tout en étant aussi** [**200 Mo plus petit**](#usage-guide)!

Gemma 4 QAT comprend : **E2B**, **E4B**, **12B, 26B-A4B**, et **31B.** Ce sont des modèles multimodaux à raisonnement hybride qui prennent en charge plus de 140 langues et jusqu’à **256K de contexte.**

{% columns %}
{% column %} <a href="/pages/37cce83fd1e6ea602111351259e229bf84c8f6e5#run-gemma-4-qat-tutorials" class="button primary">Exécuter Gemma 4 QAT</a><a href="/pages/37cce83fd1e6ea602111351259e229bf84c8f6e5#qat-analysis" class="button secondary">Analyse QAT</a>

**Gemma-4-E2B** QAT fonctionne avec 3 Go de RAM, **E4B** sur 5 G&#x6F;**, 12B** sur 7 G&#x6F;**, 26-A4B** sur 15 Go et **31B** sur 18 G&#x6F;**.**

Nous nommons nos GGUF Gemma 4 QAT comme `UD-Q4_K_XL` car nous avons constaté que q4\_0 dégrade la précision malgré une taille plus grande. Voir nos [GGUF Gemma 4 QAT](https://huggingface.co/collections/unsloth/gemma-4-qat).

Pour comparer `int4` la quantification, voir ci-dessous les différences de taille entre l’original et QAT. QAT utilise \~72 % de mémoire en moins tout en conservant presque toute sa précision d’origine :
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/8509bd2662f5e561fb010ee8dd54b04acd96ac98" alt="" width="563"><figcaption><p>Visualisation du fonctionnement de Gemma 4 Mobile QAT.</p></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

| Gemma 4     | QAT (int4) GGUF | BF16 d’origine | Variation en pourcentage |
| ----------- | --------------: | -------------: | -----------------------: |
| **E2B**     |         2,62 Go |        9,31 Go |                   71.86% |
| **E4B**     |         4,22 Go |        15,1 Go |                   72.05% |
| **12B**     |         6,72 Go |        23,8 Go |                   71.76% |
| **26B A4B** |         14,2 Go |        50,5 Go |                   71.88% |
| **31B**     |         17,3 Go |        61,4 Go |                   71.82% |

### Guide d'utilisation

Les variantes Gemma 4 QAT pour E2B et E4B sont conçues pour les téléphones et les ordinateurs portables, tandis que les plus grands 26B-A4B et 31B QAT modèles fonctionnent désormais sur des ordinateurs portables plutôt que seulement sur de puissants GPU domestiques.

Il y a **un seul fichier GGUF** pour chaque modèle Gemma 4, car nous avons constaté que les précisions supérieures à la `UD-Q4_K_XL` version téléchargée dégradent la précision au lieu de l’améliorer. Utilisez les quants Q4\_0 originaux non QAT [ici](https://huggingface.co/collections/unsloth/gemma-4).

<figure><img src="/files/d97be06ebfe89f379e312a40c247e6b8b2cbaed2" alt="" width="563"><figcaption></figcaption></figure>

### Exigences matérielles

**Tableau : exigences matérielles recommandées pour l’inférence GGUF de Gemma 4 QAT** (unités = mémoire totale : RAM + VRAM, ou mémoire unifiée).

| Gemma 4 QAT     | Exigences |
| --------------- | --------: |
| **E2B** QAT     |      3 Go |
| **E4B** QAT     |      5 Go |
| **12B** QAT     |      7 Go |
| **26B A4B** QAT |     15 Go |
| **31B** QAT     |     18 Go |

### Paramètres recommandés

Les checkpoints QAT utilisent les mêmes paramètres Gemma 4 recommandés :

* `temperature = 1.0`
* `top_p = 0.95`
* `top_k = 64`

{% hint style="info" %}
Le contexte maximal de Gemma 4 est **128K** pour **E2B**, **E4B** et **256K** pour **12B**, **26B A4B**, **31B**.
{% endhint %}

## Analyse QAT

Nous avons constaté que la conversion naïve du checkpoint QAT Q4\_0 en Q4\_0 dans l’univers llama.cpp dégradait en fait la précision et n’était pas réellement alignée avec la grille BF16 QAT pour Q4\_0. Nous avons appliqué notre méthode dynamique Unsloth pour forcer un meilleur accord entre le format Q4\_0 compatible llama.cpp et le vrai format Q4\_0 BF16 QAT, et avons réussi à rendre les quants à la fois plus petits (Q6\_K n’était pas nécessaire pour les embeddings) et plus précis !

<figure><img src="/files/5ed922baad846ed2cf9a6019c96b7b3239c41342" alt=""><figcaption></figcaption></figure>

Ci-dessous se trouve un tableau du KLD, de la précision Top 1 % et de l’espace disque. Vous pouvez voir que nos versions améliorent considérablement le KLD à 99,9 % et le KLD moyen. **E2B, par exemple, a un KLD moyen de 0,00173 contre 0,05109 (29 fois mieux relativement) pour une quantification Q4\_0 naïve, et la nôtre est même 22 % plus petite !**

Le principal problème est que la conversion de QAT BF16 vers le format Q4\_0 de llama.cpp n’est pas sans perte. llama.cpp utilise des échelles F16, tandis que QAT BF16 utilise des échelles BF16, et les échelles ne sont pas déterminées de manière optimale dans l’univers llama.cpp.

La conversion naïve atteint 24,77 % d’exactitude octet par octet par rapport à BF16 QAT, tandis que nous avons constaté qu’on peut la faire monter à 99,96 % grâce à quelques astuces !

<table><thead><tr><th width="100">Modèle</th><th>Méthode</th><th>Disque (Go)</th><th>KLD à 99,9 %</th><th>KLD moyen</th><th width="77.5999755859375">Top-1 %</th></tr></thead><tbody><tr><td>E2B</td><td>Unsloth</td><td><strong>2.62</strong></td><td>0.0557</td><td>0.00173</td><td><strong>98.16</strong></td></tr><tr><td>E2B</td><td>Q4_0</td><td>3.35</td><td>1.0513</td><td>0.05109</td><td>89.29</td></tr><tr><td>E4B</td><td>Unsloth</td><td><strong>4.22</strong></td><td>0.0536</td><td>0.00121</td><td><strong>98.54</strong></td></tr><tr><td>E4B</td><td>Q4_0</td><td>5.15</td><td>0.6722</td><td>0.03778</td><td>90.94</td></tr><tr><td>26B</td><td>Unsloth</td><td><strong>14.25</strong></td><td>2.7087</td><td>0.09788</td><td><strong>85.63</strong></td></tr><tr><td>26B</td><td>Q4_0</td><td>14.44</td><td>4.5420</td><td>0.36094</td><td>70.20</td></tr><tr><td>31B</td><td>Unsloth</td><td><strong>17.29</strong></td><td>1.3659</td><td>0.01403</td><td><strong>96.67</strong></td></tr><tr><td>31B</td><td>Q4_0</td><td>17.65</td><td>3.0030</td><td>0.09349</td><td>87.91</td></tr><tr><td>12B</td><td>Unsloth</td><td><strong>6.72</strong></td><td>9.2740</td><td>0.13288</td><td><strong>88.76</strong></td></tr><tr><td>12B</td><td>Q4_0</td><td>6.98</td><td>14.7323</td><td>0.50702</td><td>74.08</td></tr></tbody></table>

## QAT mobile à mélange

L’équipe Gemma-4 a également publié des versions QAT mobiles spéciales à mélange de Gemma-4-E2B-it et Gemma-4-E4B-it. Nous les avons aussi fidèlement converties au format compatible llama.cpp, tout en récupérant presque toute la précision. Nous avons utilisé TQ2\_0 pour les couches 2 bits et appliqué un scaler négatif.

Nous avons créé des quants UD-Q2\_K\_XL pour E2B et E4B.

|                          | E2B mobile                 | E4B mobile                |
| ------------------------ | -------------------------- | ------------------------- |
| Taille                   | 2,19 Go                    | 3,22 Go                   |
| tenseurs 2 bits (TQ2\_0) | 61 (y compris le deep MLP) | 2 (embeddings uniquement) |
| KLD moyen vs BF16        | 0.00409                    | 0.00102                   |
| Top-1 %                  | 97.82%                     | 98.76%                    |
| PPL de base              | \~103                      | 42.4                      |

Voir [gemma-4-E2B-it-qat-GGUF](https://huggingface.co/unsloth/gemma-4-E2B-it-qat-GGUF) et [gemma-4-E4B-it-qat-GGUF](https://huggingface.co/unsloth/gemma-4-E4B-it-qat-GGUF) pour `UD-Q2_K_XL`.

## Exécuter les tutoriels Gemma 4 QAT

Comme les GGUF Gemma 4 existent en plusieurs tailles, le point de départ recommandé pour les petits modèles est le 8 bits et pour les plus grands modèles **4 bits dynamique**. [GGUF Gemma 4](https://huggingface.co/collections/unsloth/gemma-4-qat):

| [E2B](https://huggingface.co/unsloth/gemma-4-E2B-it-qat-GGUF) | [E4B](https://huggingface.co/unsloth/gemma-4-E4B-it-qat-GGUF) | [12b](https://huggingface.co/unsloth/gemma-4-12b-it-qat-GGUF) | [26B-A4B](https://huggingface.co/unsloth/gemma-4-26B-A4B-it-qat-GGUF) | [31B](https://huggingface.co/unsloth/gemma-4-31B-it-qat-GGUF) |
| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------- |

<a href="/pages/37cce83fd1e6ea602111351259e229bf84c8f6e5#unsloth-studio-guide" class="button primary">🦥 Guide Unsloth Studio</a><a href="/pages/37cce83fd1e6ea602111351259e229bf84c8f6e5#llama.cpp-guide" class="button primary">🦙 Guide Llama.cpp</a>

{% columns %}
{% column %}
**Vous pouvez exécuter et entraîner Gemma 4 QAT gratuitement avec une interface utilisateur dans notre** [**Unsloth Studio**](/docs/fr/nouveau/studio.md)✨ **notebook :**
{% endcolumn %}

{% column %}
{% embed url="<https://colab.research.google.com/github/unslothai/unsloth/blob/main/studio/Unsloth_Studio_Colab.ipynb>" %}
{% endcolumn %}
{% endcolumns %}

### 🦥 Guide Unsloth Studio

Gemma 4 QAT peut désormais être exécuté et entraîné dans [Unsloth Studio](/docs/fr/nouveau/studio.md), notre nouvelle interface web open source pour l’IA locale. Unsloth Studio vous permet d’exécuter des modèles localement sur **MacOS, Windows**, Linux et :

{% columns %}
{% column %}

* Rechercher, télécharger, [exécuter des GGUF](/docs/fr/nouveau/studio.md#run-models-locally) et des modèles safetensor
* [**Auto-réparation** appel d’outils](/docs/fr/nouveau/studio.md#execute-code--heal-tool-calling) + **recherche web**
* [**Exécution de code**](/docs/fr/nouveau/studio.md#run-models-locally) (Python, Bash)
* [Ajustement automatique des paramètres d’inférence](https://unsloth.ai/docs/desktop#feature-deep-dive) (temp, top-p, etc.)
* Inférence CPU + GPU rapide via llama.cpp
* [Entraîner des LLM](/docs/fr/nouveau/studio.md#no-code-training) 2 fois plus vite avec 70 % de VRAM en moins
  {% endcolumn %}

{% column %}

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

{% stepper %}
{% step %}

#### Installer Unsloth

Exécutez dans votre terminal :

**MacOS, Linux, WSL :**

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

**Windows PowerShell :**

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

{% endstep %}

{% step %}

#### Lancer Unsloth

**MacOS, Linux, WSL et Windows :**

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

Ensuite ouvrez `http://127.0.0.1:8888` (ou votre URL spécifique) dans votre navigateur.
{% endstep %}

{% step %}

#### Rechercher et télécharger Gemma 4 QAT

Au premier lancement, vous devrez créer un mot de passe pour sécuriser votre compte et vous reconnecter.

Puis allez dans l’onglet [Unsloth Chat](/docs/fr/nouveau/studio/chat.md) et recherchez Gemma 4 dans la barre de recherche, puis téléchargez le modèle et le quant souhaités.
{% endstep %}

{% step %}

#### Exécuter Gemma 4 QAT

Les paramètres d’inférence devraient être définis automatiquement lors de l’utilisation d’Unsloth Studio, mais vous pouvez toujours les modifier manuellement. Vous pouvez également modifier la longueur du contexte, le modèle de chat et d’autres paramètres.

Pour plus d’informations, vous pouvez consulter notre [guide d’inférence Unsloth Studio](/docs/fr/nouveau/studio/chat.md).

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

### 🦙 Guide Llama.cpp

Pour ce guide, il n’est pas nécessaire de sélectionner le type de quantification puisqu’il n’y en a qu’un : `UD-Q4_K_XL`. Voir : [collection Gemma 4 QAT](https://huggingface.co/collections/unsloth/gemma-4-qat). Pour ces tutoriels, nous utiliserons [llama.cpp](llama.cpphttps://github.com/ggml-org/llama.cpp) pour une inférence locale rapide, surtout si vous avez un CPU.

{% stepper %}
{% step %}
Obtenez le dernier `llama.cpp` **sur** [**GitHub ici**](https://github.com/ggml-org/llama.cpp). Vous pouvez également suivre les instructions de compilation ci-dessous. Modifiez `-DGGML_CUDA=ON` en `-DGGML_CUDA=OFF` si vous n’avez pas de GPU ou si vous voulez simplement une inférence CPU. **Pour les appareils Apple Mac / Metal**, définissez `-DGGML_CUDA=OFF` puis continuez normalement - la prise en charge de Metal est activée par défaut.

```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
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

{% endstep %}

{% step %}
Si vous souhaitez utiliser `llama.cpp` directement pour charger les modèles, vous pouvez suivre les commandes ci-dessous, selon chaque modèle. `UD-Q4_K_XL` est le SEUL type de quantification. Vous pouvez également télécharger via Hugging Face (étape 3). C’est similaire à `ollama run` . Utilisez `export LLAMA_CACHE="folder"` pour forcer `llama.cpp` à enregistrer à un emplacement spécifique.

**26B-A4B :**

```bash
export LLAMA_CACHE="unsloth/gemma-4-26B-A4B-it-qat-GGUF"
./llama.cpp/llama-cli \
    -hf unsloth/gemma-4-26B-A4B-it-qat-GGUF:UD-Q4_K_XL \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 64
```

**31B :**

```bash
export LLAMA_CACHE="unsloth/gemma-4-31B-it-qat-GGUF"
./llama.cpp/llama-cli \
    -hf unsloth/gemma-4-31B-it-qat-GGUF:UD-Q4_K_XL \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 64
```

**E4B :**

```bash
export LLAMA_CACHE="unsloth/gemma-4-E4B-it-qat-GGUF"
./llama.cpp/llama-cli \
    -hf unsloth/gemma-4-E4B-it-qat-GGUF:UD-Q4_K_XL \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 64
```

**E2B :**

```bash
export LLAMA_CACHE="unsloth/gemma-4-E2B-it-GGUF"
./llama.cpp/llama-cli \
    -hf unsloth/gemma-4-E2B-it-qat-GGUF:UD-Q4_K_XL \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 64
```

{% endstep %}

{% step %}
Téléchargez le modèle via (après avoir installé `pip install huggingface_hub hf_transfer` ). Vous pouvez choisir `UD-Q4_K_XL` ou d’autres versions quantifiées comme `Q8_0` . Si les téléchargements restent bloqués, voir : [Hugging Face Hub, débogage XET](/docs/fr/notions-de-base/troubleshooting-and-faqs/hugging-face-hub-xet-debugging.md)

```bash
hf download unsloth/gemma-4-26B-A4B-it-qat-GGUF \
    --local-dir unsloth/gemma-4-26B-A4B-it-qat-GGUF \
    --include "*mmproj-BF16*" \
    --include "*UD-Q4_K_XL*" # Utilisez "*UD-Q2_K_XL*" pour le 2 bits dynamique
```

{% endstep %}

{% step %}
Ensuite, exécutez le modèle en mode conversation (avec vision `mmproj-F16`):

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/gemma-4-26B-A4B-it-qat-GGUF/gemma-4-26B-A4B-it-qat-UD-Q4_K_XL.gguf \
    --mmproj unsloth/gemma-4-26B-A4B-it-qat-GGUF/mmproj-BF16.gguf \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 64
```

{% endcode %}
{% endstep %}

{% step %}

### Déploiement avec Llama-server

Pour déployer Gemma-4 sur llama-server, utilisez :

```bash
./llama.cpp/llama-server \
    --model unsloth/gemma-4-26B-A4B-it-qat-GGUF/gemma-4-26B-A4B-it-qat-UD-Q4_K_XL.gguf \
    --mmproj unsloth/gemma-4-26B-A4B-it-qat-GGUF/mmproj-BF16.gguf \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 64 \
    --alias "unsloth/gemma-4-26B-A4B-it-qat-GGUF" \
    --port 8001 \
    --chat-template-kwargs '{"enable_thinking":true}'
```

{% hint style="warning" %}
Pour [désactiver la réflexion / le raisonnement](#how-to-enable-or-disable-reasoning-and-thinking), utilisez `--chat-template-kwargs '{"enable_thinking":false}'`

Si vous êtes sur **Windows** Powershell, utilisez : `--chat-template-kwargs "{\"enable_thinking\":false}"`

Utilisez 'true' et 'false' de manière interchangeable.
{% endhint %}
{% endstep %}
{% endstepper %}


---

# 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/fr/modeles/gemma-4/qat.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.
