> 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 tenant compte de la quantification, permettant au format 4 bits d’avoir \~**72 % de mémoire en moins** avec **des performances proches de l’original**. Deux quants mobiles spéciaux de E2B et E4B sont également fournis, utilisant un mélange de largeurs de quantification.

Conversion vers `Q4_0` à partir de QAT, de manière naïve, n’obtient que 70,2 % de précision top-1 pour 26B-A4B. [Nous avons appliqué notre méthode dynamique Unsloth](#qat-analysis) pour le 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’à **256 K 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 sur 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égradait 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     | GGUF QAT (int4) | 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 QAT Gemma 4 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 des précisions supérieures à la `UD-Q4_K_XL` version téléchargée dégradaient la précision au lieu de l’améliorer. Utilisez les quants Q4\_0 non QAT d’origine [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 Gemma 4 QAT GGUF** (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 **128 K** pour **E2B**, **E4B** et **256 K** pour **12B**, **26B A4B**, **31B**.
{% endhint %}

## Analyse QAT

Nous avons constaté que convertir naïvement le checkpoint QAT Q4\_0 au format Q4\_0 dans l’univers de llama.cpp dégradait en fait la précision et n’était pas réellement aligné avec la grille QAT BF16 de Q4\_0. Nous avons appliqué notre méthode dynamique Unsloth pour forcer une meilleure correspondance entre le format Q4\_0 compatible llama.cpp et le vrai format BF16 QAT Q4\_0, 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× 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 BF16 QAT vers le format Q4\_0 de llama.cpp n’est pas sans perte. llama.cpp utilise des échelles F16, tandis que BF16 QAT utilise des échelles BF16, et les échelles ne sont pas déterminées de manière optimale dans l’univers de llama.cpp.

La conversion naïve atteint 24,77 % d’exactitude binaire par rapport au BF16 QAT, alors que nous avons constaté que nous pouvions l’amener à 99,96 % en utilisant 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 à mélange mobile

L’équipe Gemma-4 a également publié des versions QAT à mélange mobile spéciales de Gemma-4-E2B-it et Gemma-4-E4B-it. Nous les avons aussi converties fidèlement au format compatible avec llama.cpp, et avons également récupéré 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 8 bits et pour les plus grands modèles est **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 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é sur [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)
* [Inférence automatique](/docs/fr/nouveau/studio.md#model-arena) réglage des paramètres (temp, top-p, etc.)
* Inférence rapide CPU + GPU via llama.cpp
* [Entraîner des LLMs](/docs/fr/nouveau/studio.md#no-code-training) 2x plus rapide 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
```

Puis 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

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

Puis allez dans l’ [Unsloth Chat](/docs/fr/nouveau/studio/chat.md) onglet et recherchez Gemma 4 dans la barre de recherche et 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 seul : `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 la dernière version de `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 comme d'habitude - 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 aussi télécharger via Hugging Face (étape 3). Cela ressemble à `ollama run` . Utilisez `export LLAMA_CACHE="folder"` pour forcer `llama.cpp` pour enregistrer dans 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 se bloquent, voir : [Hugging Face Hub, débogage XET](/docs/fr/bases/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 dynamique 2 bits
```

{% 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 indifféremment 'true' et 'false'.
{% 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.
