Transformers documentation
Salvar e compartilhar um modelo
Salvar e compartilhar um modelo
Salvar um modelo após quantizá-lo durante o carregamento permite que você, e qualquer pessoa com quem você o compartilhar, pule a etapa de quantização na próxima vez. Os métodos de calibração, como GPTQ, se beneficiam mais, pois a calibração pode levar de minutos a horas.
Salvar o modelo
Chame save_pretrained() no modelo quantizado para gravar os pesos quantizados e adicionar o quantization_config ao 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")Salve o tokenizer no mesmo diretório para que o checkpoint esteja completo.
Envie o modelo para o Hub
Chame push_to_hub() para enviar os pesos quantizados e a configuração para um repositório do Hub. Faça login com hf auth login primeiro.
model.push_to_hub("Qwen3-0.6B-bnb-4bit")Carregue o modelo salvo
Carregue o checkpoint salvo com from_pretrained() e sem configuração de quantização. O Transformers lê o método do quantization_config em config.json e carrega os pesos já quantizados.
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("your-username/Qwen3-0.6B-bnb-4bit", device_map="auto")A biblioteca do método deve estar instalada em qualquer local onde o checkpoint for carregado.
Métodos que não podem salvar
Alguns métodos não conseguem salvar seus pesos quantizados, e save_pretrained() levanta um ValueError para eles.
| Método | Por quê |
|---|---|
| GGUF | Os pesos são carregados de um arquivo GGUF. Salve no formato GGUF usando as ferramentas do llama.cpp. |
| NVFP4 | O salvamento não é suportado. Quantize o modelo novamente ao carregá-lo. |
| Quanto | O salvamento não é suportado por meio do Transformers. |
| Quark | O salvamento não é suportado por meio do Transformers. |
| AWQ com um backend ExLlama | O salvamento não é suportado com os backends ExLlama. Carregue o modelo com outro backend para salvá-lo. |
Um modelo quantizado com um adaptador PEFT anexado é uma exceção. save_pretrained() salva apenas os pesos do adaptador, então funciona com qualquer método.
Para salvar um modelo em precisão completa, desquantize-o primeiro. Consulte Desquantizar um modelo.
Update on GitHub