Transformers documentation

Compilar um modelo

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Compilar um modelo

A quantização economiza memória, mas a desquantização dos pesos dentro de cada matmul pode tornar a geração mais lenta do que em bf16. torch.compile funde esse trabalho em kernels otimizados e recupera grande parte da velocidade.

Compilar automaticamente em generate

generate() compila automaticamente a passagem direta do modelo quando todas essas condições são atendidas.

Passe cache_implementation="static" para generate(). O exemplo abaixo usa a quantização int8 apenas de pesos do torchao.

import torch
from torchao.quantization import Int8WeightOnlyConfig
from transformers import AutoModelForCausalLM, AutoTokenizer, TorchAoConfig

model_id = "Qwen/Qwen3-0.6B"
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    quantization_config=TorchAoConfig(quant_type=Int8WeightOnlyConfig()),
    device_map="cuda",
)
tokenizer = AutoTokenizer.from_pretrained(model_id)

inputs = tokenizer("The capital of France is", return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=32, cache_implementation="static")
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

As primeiras chamadas são lentas enquanto o modelo é compilado. Chamadas posteriores com as mesmas formas reutilizam os kernels compilados.

Passe disable_compile=True para generate() para desativar a compilação automática.

Update on GitHub