Transformers documentation

AutoRound

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoRound

AutoRound es un algoritmo de cuantización avanzado que ofrece una precisión sólida, incluso con una precisión de 2 bits. Aprovecha el descenso de gradiente de signo para ajustar con precisión tanto los valores de redondeo como los umbrales de recorte min-max en solo 200 pasos. Diseñado para una amplia compatibilidad, admite de forma transparente una amplia gama de LLM y se está expandiendo activamente para cubrir también más VLM. También admite la cuantización y la inferencia en varias plataformas de hardware, incluidas CPU, XPU y CUDA.

AutoRound también ofrece una variedad de funciones útiles, como el ajuste y la inferencia automáticos con bits mixtos, soporte para los tipos de datos MXFP4 y NVFP4, cuantización sin modelo, exportación a formatos como GPTQ, AWQ, GGUF y LLM-Compressor, y recetas de ajuste flexibles. Para obtener una visión general completa y las últimas actualizaciones, consulte el README de AutoRound.

AutoRound se desarrolló originalmente como parte de Intel Neural Compressor, sirviendo como una biblioteca general de compresión de modelos para el aprendizaje profundo. Desde entonces, ha evolucionado hasta convertirse en una biblioteca independiente centrada específicamente en la optimización de baja precisión para modelos de lenguaje de gran escala (LLM). AutoRound sigue estando totalmente integrado con Intel Neural Compressor, y puedes explorar el repositorio para obtener más detalles.

Instalación

pip install auto-round

Configuraciones de cuantización admitidas

AutoRound admite las siguientes configuraciones de cuantización:

  1. Pesos solo INT2–INT8
  2. Pesos solo de bits mixtos
  3. GGUF Q*_K
  4. MXFP (soporte limitado)
  5. NVFP4 (soporte limitado)

Compatibilidad con el hardware

CPU, XPU y CUDA para la cuantización y la inferencia.

Cuantización y serialización (fuera de línea)

Actualmente, solo se admite el modo sin conexión para generar modelos cuantizados.

quantization cmd
auto scheme cmd
combinaciones de alg
quantization auto-round api
quantization auto-round-best
quantization auto-round-light

Uso desde la línea de comandos

auto-round \
    --model Qwen/Qwen3-0.6B \
    --scheme "W4A16" \
    --group_size 128 \
    --output_dir ./tmp_autoround

AutoRound también ofrece otras cuatro recetas, auto-round-best, auto-round-light,auto-round-opt-rtn,auto-round-rtn, diseñadas para una precisión óptima y una velocidad mejorada, respectivamente. Para 2 bits, recomendamos usar auto-round-best con --enable_alg_ext.

W4G128 Precisión media de 13 tareas (mmlu-pro, if_eval, gsm8k, etc.) y resultados de coste de tiempo (las pruebas se realizaron en una Nvidia A100 80G utilizando la versión 2.6.0 de PyTorch con enable_torch_compile):

ModeloQwen2.5-0.5B-InstructFalcon3-3BQwen2.5-7B-InstructMeta-Llama-3.1-8B-InstructFalcon3-10BQwen2.5-72B-Instruct
16bits0.41920.52030.64700.62120.61510.7229
Mejor0.4137(7m)0.5142(23m)0.6426(58m)0.6116(65m)0.6092(81m)0.7242(575m)
Predeterminado0.4129(2m)0.5133(6m)0.6441(13m)0.6106(13m)0.6080(18m)0.7252(118m)
Ligero0.4052(2m)0.5108(3m)0.6453(5m)0.6104(6m)0.6063(6m)0.7243(37m)

Inferencia

AutoRound selecciona automáticamente el mejor backend disponible en función de las bibliotecas instaladas y solicita al usuario que instale bibliotecas adicionales cuando se encuentra un backend mejor.

inferencia cpu
inference xpu
inference cuda
backend de inferencia
convertir formato

CPU

Admite 2, 4 y 8 bits. Recomendamos usar el backend AutoRound Kernel (ARK) para la inferencia. Se requiere PyTorch 2.8.0 o posterior con ARK.

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "OPEA/Qwen2.5-1.5B-Instruct-int4-sym-inc"
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="cpu", dtype="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
text = "There is a girl who likes adventure,"
inputs = tokenizer(text, return_tensors="pt").to(model.device)
print(tokenizer.decode(model.generate(**inputs, max_new_tokens=50, do_sample=False)[0]))

Problemas

Si encuentras algún problema con la integración de transformers, abre un issue en el repositorio de transformers.
Si encuentras algún problema con auto-round, abre un issue en el repositorio de AutoRound.

Agradecimientos

Agradecimientos especiales a las bibliotecas de baja precisión de código abierto como AutoGPTQ, AutoAWQ, GPTQModel, Triton, Marlin y ExLLaMAV2, por proporcionar kernels de CUDA de baja precisión, que se aprovechan en AutoRound.

Contribución

¡Las contribuciones a AutoRound son bienvenidas y muy apreciadas! Ya sea corrigiendo errores, mejorando la documentación, añadiendo nuevas funciones o sugiriendo mejoras, siempre se valora tu ayuda.

Update on GitHub