# Khử lượng tử hóa một mô hình

Dequantizing chuyển các trọng lượng đã lượng tử hóa trở lại một kiểu dữ liệu độ chính xác cao hơn như bf16. Hãy dequantize một mô hình để tinh chỉnh hoàn toàn nó, để chạy nó trên phần cứng mà các kernel của phương pháp không hỗ trợ, hoặc để chuyển đổi nó sang một định dạng khác. Kết quả sẽ sử dụng bộ nhớ nhiều như một mô hình chưa được lượng tử hóa, và nó không khôi phục được độ chính xác đã mất do làm tròn.

Transformers thực hiện khử lượng tử hóa theo hai cách, tùy thuộc vào phương pháp.

| Phương pháp | Cách để khử lượng tử hóa |
|---|---|
| [bitsandbytes](./bitsandbytes), [HIGGS](./higgs) | Gọi [dequantize()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.dequantize) sau khi tải. |
| [compressed-tensors](./compressed_tensors), [FP8 chi tiết](./finegrained_fp8), [GGUF](./gguf), [Metal](./metal), [MXFP4](./mxfp4) | Truyền `dequantize=True` vào cấu hình của phương thức khi tải. |

Các phương thức khác sẽ gây ra `NotImplementedError` từ [dequantize()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.dequantize).

## Khử lượng tử hóa sau khi tải

Gọi [dequantize()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.dequantize) trên một model đã được nạp. Mặc định, nó sẽ dùng `dtype` mà model được nạp vào. Truyền `dtype` để chọn một `dtype` khác.

```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/vi/main_classes/model#transformers.PreTrainedModel.dequantize) cũng xóa `quantization_config`, do đó [save_pretrained()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.save_pretrained) sẽ lưu một checkpoint độ chính xác đầy đủ thông thường.

## Khử lượng tử hóa khi tải

Truyền `dequantize=True` vào config của một phương thức hỗ trợ tính năng này. Các trọng số sẽ được khử lượng tử hóa khi tải, do đó các kernel đã lượng tử hóa sẽ không bao giờ được sử dụng. Ví dụ bên dưới tải các trọng số MXFP4 của gpt-oss ở dạng bf16.

```py
from transformers import AutoModelForCausalLM, Mxfp4Config

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

Một số phương thức tự động khử lượng tử hóa khi kernel của chúng không thể chạy. Ví dụ, [GGUF](./gguf) sẽ chuyển sang khử lượng tử hóa khi không có kernel nào hỗ trợ các kiểu lượng tử hóa của tệp.

