Pular para o conteúdo principal

Capítulo 2: Quantização (INT8, INT4)

Por que quantizar?​

Reduza o uso de memória e aumente a velocidade utilizando menor precisão:

PrecisãoBitsMemóriaQualidade
FP3232100%100%
FP161650%~100%
INT8825%~99%
INT4412,5%~95-98%

GPTQ​

Quantização pós-treinamento otimizada para modelos do tipo GPT:

from transformers import AutoModelForCausalLM
from auto_gptq import AutoGPTQForCausalLM

model = AutoGPTQForCausalLM.from_quantized(
"TheBloke/Llama-2-7B-GPTQ",
device="cuda:0"
)

AWQ (Activation-aware Weight Quantization)​

Preserva pesos importantes:

from awq import AutoAWQForCausalLM

model = AutoAWQForCausalLM.from_quantized(
"TheBloke/Llama-2-7B-AWQ",
fuse_layers=True
)

bitsandbytes​

Quantização em tempo real:

from transformers import BitsAndBytesConfig

bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.bfloat16
)
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-2-7b",
quantization_config=bnb_config
)