> 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/bases/inference-and-deployment/saving-to-gguf.md).

# Enregistrement en GGUF

Enregistrer les modèles en 16 bits pour GGUF afin que vous puissiez l’utiliser pour [Unsloth Studio](/docs/fr/nouveau/studio.md), Ollama, llama.cpp et plus encore !

{% tabs %}
{% tab title="En local" %}
Pour enregistrer en GGUF, utilisez ce qui suit pour enregistrer localement :

```python
model.save_pretrained_gguf("directory", tokenizer, quantization_method = "q4_k_m")
model.save_pretrained_gguf("directory", tokenizer, quantization_method = "q8_0")
model.save_pretrained_gguf("directory", tokenizer, quantization_method = "f16")
```

Pour publier sur le hub Hugging Face :

```python
model.push_to_hub_gguf("hf_username/directory", tokenizer, quantization_method = "q4_k_m")
model.push_to_hub_gguf("hf_username/directory", tokenizer, quantization_method = "q8_0")
```

Toutes les options de quantification prises en charge pour `quantization_method` sont सूचीées ci-dessous :

```python
# https://github.com/ggml-org/llama.cpp/blob/master/examples/quantize/quantize.cpp#L19
ALLOWED_QUANTS = \
{
    "not_quantized"  : "Recommandé. Conversion rapide. Inférence lente, fichiers volumineux.",
    "fast_quantized" : "Recommandé. Conversion rapide. Inférence correcte, taille de fichier correcte.",
    "quantized"      : "Recommandé. Conversion lente. Inférence rapide, fichiers petits.",
    "f32"     : "Non recommandé. Conserve 100 % de précision, mais très lent et gourmand en mémoire.",
    "f16"     : "Conversion la plus rapide + conserve 100 % de précision. Lent et gourmand en mémoire.",
    "q8_0"    : "Conversion rapide. Forte utilisation des ressources, mais généralement acceptable.",
    "q4_k_m"  : "Recommandé. Utilise Q6_K pour la moitié des tenseurs attention.wv et feed_forward.w2, sinon Q4_K",
    "q5_k_m"  : "Recommandé. Utilise Q6_K pour la moitié des tenseurs attention.wv et feed_forward.w2, sinon Q5_K",
    "q2_k"    : "Utilise Q4_K pour les tenseurs attention.wv et feed_forward.w2, Q2_K pour les autres tenseurs.",
    "q3_k_l"  : "Utilise Q5_K pour les tenseurs attention.wv, attention.wo et feed_forward.w2, sinon Q3_K",
    "q3_k_m"  : "Utilise Q4_K pour les tenseurs attention.wv, attention.wo et feed_forward.w2, sinon Q3_K",
    "q3_k_s"  : "Utilise Q3_K pour tous les tenseurs",
    "q4_0"    : "Méthode de quantification originale, 4 bits.",
    "q4_1"    : "Précision plus élevée que q4_0 mais pas aussi élevée que q5_0. Cependant, inférence plus rapide que les modèles q5.",
    "q4_k_s"  : "Utilise Q4_K pour tous les tenseurs",
    "q4_k"    : "alias de q4_k_m",
    "q5_k"    : "alias de q5_k_m",
    "q5_0"    : "Précision plus élevée, utilisation plus importante des ressources et inférence plus lente.",
    "q5_1"    : "Précision encore plus élevée, utilisation des ressources et inférence plus lente.",
    "q5_k_s"  : "Utilise Q5_K pour tous les tenseurs",
    "q6_k"    : "Utilise Q8_K pour tous les tenseurs",
    "iq2_xxs" : "Quantification à 2,06 bpw",
    "iq2_xs"  : "Quantification à 2,31 bpw",
    "iq3_xxs" : "Quantification à 3,06 bpw",
    "q3_k_xs" : "Quantification extra petite à 3 bits",
}
```

{% endtab %}

{% tab title="Enregistrement manuel" %}
Enregistrez d’abord votre modèle en 16 bits :

```python
model.save_pretrained_merged("merged_model", tokenizer, save_method = "merged_16bit",)
```

Ensuite, utilisez le terminal et faites :

{% code overflow="wrap" %}

```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-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp

python llama.cpp/convert_hf_to_gguf.py FOLDER --outfile OUTPUT --outtype f16
```

{% endcode %}

Ou suivez les étapes sur <https://rentry.org/llama-cpp-conversions#merging-loras-into-a-model> en utilisant le nom de modèle "merged\_model" pour fusionner en GGUF.
{% endtab %}
{% endtabs %}

### L’exécution dans Unsloth fonctionne bien, mais après l’exportation et l’exécution sur d’autres plateformes, les résultats sont médiocres

Il peut parfois arriver que votre modèle s’exécute et produise de bons résultats dans Unsloth, mais lorsque vous l’utilisez sur une autre plateforme comme Ollama ou vLLM, les résultats sont médiocres ou vous pouvez obtenir du charabia, des générations infinies/sans fin *ou* des sorties répétée&#x73;**.**

* La cause la plus courante de cette erreur est l’utilisation d’un <mark style="background-color:blue;">**mauvais modèle de chat**</mark>**.** Il est essentiel d’utiliser le MÊME modèle de chat qui a été utilisé lors de l’entraînement du modèle dans Unsloth et ensuite lorsque vous l’exécutez dans un autre framework, tel que llama.cpp ou Ollama. Lors de l’inférence à partir d’un modèle enregistré, il est crucial d’appliquer le bon modèle.
* Vous devez utiliser le bon `jeton eos`. Sinon, vous pourriez obtenir du charabia lors de générations plus longues.
* Cela peut aussi être dû au fait que votre moteur d’inférence ajoute un jeton de « début de séquence » inutile (ou, à l’inverse, qu’il n’en ajoute pas), alors assurez-vous de vérifier les deux hypothèses !
* <mark style="background-color:green;">**Utilisez nos notebooks conversationnels pour forcer le modèle de chat - cela résoudra la plupart des problèmes.**</mark>
  * Notebook conversationnel Qwen-3 14B [**Ouvrir dans Colab**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_\(14B\)-Reasoning-Conversational.ipynb)
  * Notebook conversationnel Gemma-3 4B [**Ouvrir dans Colab**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Gemma3_\(4B\).ipynb)
  * Notebook conversationnel Llama-3.2 3B [**Ouvrir dans Colab**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Llama3.2_\(1B_and_3B\)-Conversational.ipynb)
  * Notebook conversationnel Phi-4 14B [**Ouvrir dans Colab**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Phi_4-Conversational.ipynb)
  * Notebook conversationnel Mistral v0.3 7B [**Ouvrir dans Colab**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Mistral_v0.3_\(7B\)-Conversational.ipynb)
  * **Plus de notebooks dans notre** [**documentation des notebooks**](/docs/fr/commencer/unsloth-notebooks.md)

### L’enregistrement en GGUF / vLLM 16 bits plante

Vous pouvez essayer de réduire l’utilisation maximale du GPU pendant l’enregistrement en modifiant `maximum_memory_usage`.

La valeur par défaut est `model.save_pretrained(..., maximum_memory_usage = 0.75)`. Réduisez-la par exemple à 0,5 pour utiliser 50 % du pic de mémoire du GPU ou moins. Cela peut réduire les plantages OOM pendant l’enregistrement.

### Comment enregistrer manuellement en GGUF ?

Enregistrez d’abord votre modèle en 16 bits via :

{% code overflow="wrap" %}

```python
model.save_pretrained_merged("merged_model", tokenizer, save_method = "merged_16bit",)
```

{% endcode %}

Compilez llama.cpp à partir des sources comme ci-dessous :

{% code overflow="wrap" %}

```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-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

{% endcode %}

Ensuite, enregistrez le modèle en F16 :

```bash
python llama.cpp/convert_hf_to_gguf.py merged_model \
    --outfile model-F16.gguf --outtype f16 \
    --split-max-size 50G
```

```bash
# Pour BF16 :
python llama.cpp/convert_hf_to_gguf.py merged_model \
    --outfile model-BF16.gguf --outtype bf16 \
    --split-max-size 50G
    
# Pour Q8_0 :
python llama.cpp/convert_hf_to_gguf.py merged_model \
    --outfile model-Q8_0.gguf --outtype q8_0 \
    --split-max-size 50G
```


---

# 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/bases/inference-and-deployment/saving-to-gguf.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.
