Transformers documentation
Enregistrer et partager un modèle
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 en bénéficient le plus, car la calibration peut prendre de quelques minutes à plusieurs heures.
Enregistrer le modèle
Appel save_pretrained() sur le modèle quantifié pour écrire les poids quantifiés et ajouter quantization_config à config.json.
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() 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.
model.push_to_hub("Qwen3-0.6B-bnb-4bit")Charger le modèle enregistré
Chargez le point de contrôle enregistré avec 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.
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 être enregistrées
Certaines méthodes ne peuvent pas enregistrer leurs poids quantifiés, et save_pretrained() lève une ValueError pour elles.
| Méthode | Pourquoi |
|---|---|
| GGUF | Les poids sont chargés depuis un fichier GGUF. Enregistrez plutôt au format GGUF à l'aide des outils llama.cpp. |
| NVFP4 | La sauvegarde n'est pas prise en charge. Requantisez le modèle lors de son chargement. |
| Quanto | La sauvegarde n'est pas prise en charge via Transformers. |
| Quark | La sauvegarde n'est pas prise en charge via Transformers. |
| 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 est attaché constitue une exception. 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.
Update on GitHub