# Enregistrer et partager un modèle

Enregistrer un modèle après l’avoir quantifié lors du chargement permet à vous-même et à toute personne avec qui vous le partagez de passer outre l’étape de quantification lors des prochaines utilisations. Les méthodes de calibration telles que [GPTQ](./gptq) en bénéficient le plus, car la calibration peut prendre de quelques minutes à plusieurs heures.

## Enregistrer le modèle

Appel [save_pretrained()](/docs/transformers/main/fr/main_classes/model#transformers.PreTrainedModel.save_pretrained) sur le modèle quantifié pour écrire les poids quantifiés et ajouter `quantization_config` à `config.json`.

```py
from transformers import AutoModelForCausalLM, BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(load_in_4bit=True)
model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-0.6B",
    quantization_config=quantization_config,
    device_map="auto",
)
model.save_pretrained("Qwen3-0.6B-bnb-4bit")
```

Enregistrez le tokenizer dans le même répertoire afin que le point de contrôle soit complet.

## Pousser le modèle vers le Hub

Appel de [push_to_hub()](/docs/transformers/main/fr/main_classes/model#transformers.utils.PushToHubMixin.push_to_hub) pour téléverser les poids quantifiés et la configuration vers un dépôt du Hub. Connectez-vous d’abord avec `hf auth login`.

```py
model.push_to_hub("Qwen3-0.6B-bnb-4bit")
```

## Charger le modèle enregistré

Chargez le point de contrôle enregistré avec [from_pretrained()](/docs/transformers/main/fr/main_classes/model#transformers.PreTrainedModel.from_pretrained) et sans configuration de quantification. Transformers lit la méthode depuis `quantization_config` dans `config.json` et charge les poids déjà quantifiés.

```py
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("your-username/Qwen3-0.6B-bnb-4bit", device_map="auto")
```

La bibliothèque de la méthode doit être installée là où le point de contrôle est chargé.

## Méthodes qui ne peuvent pas enregistrer

Certaines méthodes ne peuvent pas enregistrer leurs poids quantifiés, et [save_pretrained()](/docs/transformers/main/fr/main_classes/model#transformers.PreTrainedModel.save_pretrained) lève une `ValueError` pour elles.

| Méthode | Pourquoi |
|---|---|
| [GGUF](./gguf) | Les poids sont chargés depuis un fichier GGUF. Enregistrez plutôt au format GGUF à l'aide des outils [llama.cpp](https://github.com/ggml-org/llama.cpp). |
| [NVFP4](./nvfp4) | La sauvegarde n'est pas prise en charge. Requantisez le modèle lors de son chargement. |
| [Quanto](./quanto) | La sauvegarde n'est pas prise en charge via Transformers. |
| [Quark](./quark) | La sauvegarde n'est pas prise en charge via Transformers. |
| [AWQ](./awq) avec un backend ExLlama | La sauvegarde n'est pas prise en charge avec les backends ExLlama. Chargez le modèle avec un autre backend pour le sauvegarder. |

Un modèle quantifié auquel un adaptateur [PEFT](../peft) est attaché constitue une exception. [save_pretrained()](/docs/transformers/main/fr/main_classes/model#transformers.PreTrainedModel.save_pretrained) n'enregistre que les poids de l'adaptateur, ce qui fonctionne donc avec n'importe quelle méthode.

Pour enregistrer un modèle en pleine précision, il faut d'abord le déquantiser. Voir [Déquantiser un modèle](./dequantize).

