# Desquantizar um modelo

A desquantização converte pesos quantizados de volta para um dtype de maior precisão, como bf16. Desquantize um modelo para ajustá-lo completamente, para executá-lo em hardware que não é suportado pelos kernels do método, ou para convertê-lo para outro formato. O resultado usa a mesma quantidade de memória de um modelo não quantizado e não recupera a precisão perdida devido ao arredondamento.

Transformers realiza a desquantização de duas maneiras, dependendo do método.

| Método | Como desquantizar |
|---|---|
| [bitsandbytes](./bitsandbytes), [HIGGS](./higgs) | Chame [dequantize()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.dequantize) após o carregamento. |
| [compressed-tensors](./compressed_tensors), [FP8 de granulação fina](./finegrained_fp8), [GGUF](./gguf), [Metal](./metal), [MXFP4](./mxfp4) | Passar `dequantize=True` na configuração do método ao carregar. |

Outros métodos lançam um `NotImplementedError` a partir de [dequantize()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.dequantize).

## Desquantizar após o carregamento

Chame [dequantize()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.dequantize) em um modelo carregado. Por padrão, ele usa o dtype em que o modelo foi carregado. Passe `dtype` para escolher outro.

```py
import torch
from transformers import AutoModelForCausalLM, BitsAndBytesConfig

model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-0.6B",
    quantization_config=BitsAndBytesConfig(load_in_4bit=True),
    device_map="auto",
)
model = model.dequantize(dtype=torch.bfloat16)
```

[dequantize()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.dequantize) também remove o `quantization_config`, de modo que o [save_pretrained()](/docs/transformers/main/pt/main_classes/model#transformers.PreTrainedModel.save_pretrained) salva um checkpoint regular de precisão completa.

## Desquantizar durante o carregamento

Pass `dequantize=True` para a config de um método que o suporte. Os pesos são desquantizados durante o carregamento, de modo que os kernels quantizados nunca são usados. O exemplo abaixo carrega os pesos MXFP4 do gpt-oss em bf16.

```py
from transformers import AutoModelForCausalLM, Mxfp4Config

model = AutoModelForCausalLM.from_pretrained(
    "openai/gpt-oss-20b",
    quantization_config=Mxfp4Config(dequantize=True),
    device_map="auto",
)
```

Alguns métodos desquantizam automaticamente quando seus kernels não podem ser executados. [GGUF](./gguf), por exemplo, recorre à desquantização quando nenhum kernel suporta os tipos de quantização do arquivo.

