> 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

Exécutez localement les modèles Gemma 4 QAT de Google, y compris E2B, E4B, 12B, 26B-A4B et 31B.

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 mémoire en moins** par **des performances proches de l’original**. 2 quantifications mobiles spéciales d’E2B et d’E4B sont également fournies, qui utilisent un mélange de largeurs de quantification.

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

Gemma 4 QAT inclut : **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="/docs/fr/modeles/gemma-4/qat.md#run-gemma-4-qat-tutorials" class="button primary">Exécuter Gemma 4 QAT</a><a href="/docs/fr/modeles/gemma-4/qat.md#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é sa taille plus importante. Voir nos [GGUF Gemma 4 QAT](https://huggingface.co/collections/unsloth/gemma-4-qat).

Pour comparer `int4` quantification, voir ci-dessous les différences de taille entre l’original et la 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="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FGLHNSIo3qe4ByThVZDzm%2Fgemma%204%20qat.png?alt=media&amp;token=ae72b8e1-def7-447c-bafc-67514354df7d" 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 original | 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 des précisions supérieures à la `UD-Q4_K_XL` version téléchargée dégradent la précision plutôt que de l’améliorer. Utilisez les quantifications Q4\_0 d’origine non QAT [ici](https://huggingface.co/collections/unsloth/gemma-4).

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FrTygbMBlZcUER9GUMzKg%2Fimage.png?alt=media&amp;token=85c3c44b-0f42-477a-9ce2-30b085e21b5c" alt="" width="563"><figcaption></figcaption></figure>

### Configuration matérielle requise

**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 |

{% hint style="info" %}
Le tableau suppose \~8K tokens de contexte. Le contexte par défaut de 256K de llama.cpp pour 26B A4B ajoute \~5 Go de cache KV. Sur les machines limitées en mémoire et sans CPU, utilisez `-c 8192` ou `-c 16384`; `--fit` ignore actuellement les poids recompilés du CPU.
{% endhint %}

### Paramètres recommandés

Les points de contrôle QAT utilisent les mêmes paramètres Gemma 4 recommandés :

* `température = 1.0`
* `top_p = 0.95`
* `top_k = 64`

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

## Analyse QAT

Nous avons constaté que convertir naïvement le point de contrôle QAT Q4\_0 en Q4\_0 dans l’univers de llama.cpp dégradait en réalité la précision et n’était pas réellement aligné avec la grille BF16 QAT pour Q4\_0. Nous avons appliqué notre méthode dynamique Unsloth pour imposer une meilleure concordance entre le format Q4\_0 compatible avec llama.cpp et le vrai format BF16 QAT Q4\_0, et avons réussi à rendre les quantifications à la fois plus petites (Q6\_K n’était pas nécessaire pour les embeddings) et plus précises !

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FcBHRs9twWiAnjgtm4EKf%2Fimage.png?alt=media&amp;token=023d7771-dba1-4a1e-a8c4-da6ac98921f7" 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. **Par exemple, E2B a un KLD moyen de 0,00173 contre 0,05109 (29x 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 du QAT BF16 au format Q4\_0 de llama.cpp n’est pas sans perte. llama.cpp utilise des échelles F16, alors que le QAT BF16 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 octet par octet par rapport au QAT BF16, alors que nous avons constaté que nous pouvions l’augmenter à 99,96 % à l’aide de 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 moyenne</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 Mixture Mobile

L’équipe Gemma-4 a également publié des versions QAT mixtes mobiles 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 coefficient d’échelle négatif.

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

|                          | mobile E2B                    | mobile E4B               |
| ------------------------ | ----------------------------- | ------------------------ |
| Taille                   | 2,19 Go                       | 3,22 Go                  |
| tenseurs 2 bits (TQ2\_0) | 61 (y compris le MLP profond) | 2 (embeddings seulement) |
| 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 dynamiques**. [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="/docs/fr/modeles/gemma-4/qat.md#unsloth-studio-guide" class="button primary">🦥 Guide d’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 d’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)
* [Inférence automatique](https://unsloth.ai/docs/desktop#feature-deep-dive) réglage des paramètres (temp, top-p, etc.)
* Inférence CPU + GPU rapide via llama.cpp
* [Entraîner des LLM](/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="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FVrLgXwplAMcvkU4owjPk%2F26b%20gif.gif?alt=media&amp;token=8a569952-c152-435f-b815-c9f295619587" 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.

Ensuite, 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 la quantification 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, cependant vous pouvez toujours les modifier manuellement. Vous pouvez aussi 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 d’Unsloth Studio](/docs/fr/nouveau/studio/chat.md).

<div data-with-frame="true"><figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FVrLgXwplAMcvkU4owjPk%2F26b%20gif.gif?alt=media&amp;token=8a569952-c152-435f-b815-c9f295619587" 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 `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` à `-DGGML_CUDA=OFF` si vous n'avez pas de GPU ou si vous souhaitez 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 des 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 à 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 : [Débogage de Hugging Face Hub et 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 Dynamic 2 bits
```

{% endstep %}

{% step %}
Puis exécutez le modèle en mode conversation (avec la 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 de 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://unsloth.ai/docs/fr/modeles/gemma-4/qat.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
