# 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](./gptq), se beneficiam mais, pois a calibração pode levar de minutos a horas.

## Salvar o modelo

Chame [save_pretrained()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.save_pretrained) no modelo quantizado para gravar os pesos quantizados e adicionar o `quantization_config` ao `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")
```

Salve o tokenizer no mesmo diretório para que o checkpoint esteja completo.

## Envie o modelo para o Hub

Chame [push_to_hub()](/docs/transformers/main/pt/main_classes/model#transformers.utils.PushToHubMixin.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.

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

## Carregue o modelo salvo

Carregue o checkpoint salvo com [from_pretrained()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.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.

```py
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()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.save_pretrained) levanta um `ValueError` para eles.

| Método | Por quê |
|---|---|
| [GGUF](./gguf) | Os pesos são carregados de um arquivo GGUF. Salve no formato GGUF usando as ferramentas do [llama.cpp](https://github.com/ggml-org/llama.cpp). |
| [NVFP4](./nvfp4) | Salvar não é suportado. Quantize o modelo novamente ao carregá-lo. |
| [Quanto](./quanto) | O salvamento não é suportado por meio do Transformers. |
| [Quark](./quark) | O salvamento não é suportado por meio do Transformers. |
| [AWQ](./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](../peft) anexado é uma exceção. [save_pretrained()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.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](./dequantize).

