Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.monostate.ai/llms.txt

Use this file to discover all available pages before exploring further.

Cuantización

La cuantización reduce el uso de memoria usando menor precisión para pesos del modelo.

Inicio Rápido

aitraining llm --train \
  --model meta-llama/Llama-3.2-8B \
  --data-path ./data.jsonl \
  --project-name quantized-model \
  --peft \
  --quantization int4

Python API

from autotrain.trainers.clm.params import LLMTrainingParams

params = LLMTrainingParams(
    model="meta-llama/Llama-3.2-8B",
    data_path="./data.jsonl",
    project_name="quantized-model",

    peft=True,
    quantization="int4",  # or "int8"
    lora_r=16,
)

Opciones de Cuantización

OpciónReducción de MemoriaCalidad
None0%Mejor
int8~50%Muy Buena
int4~75%Buena

Tareas Soportadas

La cuantización está disponible para:
TareaClase ParamsNotas
LLMLLMTrainingParamsSoporte completo
VLMVLMTrainingParamsSoporte completo
Seq2SeqSeq2SeqParamsSoporte completo

4-bit (QLoRA)

Máximo ahorro de memoria:
params = LLMTrainingParams(
    ...
    quantization="int4",
)

8-bit

Mejor calidad, menos ahorro:
params = LLMTrainingParams(
    ...
    quantization="int8",
)

Requisitos de Memoria

Llama 3.2 8B

ConfigVRAM Requerido
Precisión completa~64 GB
LoRA (fp16)~18 GB
LoRA + 8bit~12 GB
LoRA + 4bit~8 GB

Gemma 2 27B

ConfigVRAM Requerido
Precisión completa~108 GB
LoRA + 4bit~20 GB

Mejores Prácticas

Usa con LoRA

La cuantización requiere que PEFT/LoRA esté habilitado:
params = LLMTrainingParams(
    ...
    peft=True,  # Required for quantized training
    quantization="int4",
)
La cuantización solo funciona cuando peft=True. Sin PEFT habilitado, la configuración de cuantización será ignorada.

Ajusta la Tasa de Aprendizaje

El entrenamiento cuantizado a menudo se beneficia de una tasa de aprendizaje mayor que la por defecto (3e-5):
params = LLMTrainingParams(
    ...
    peft=True,
    quantization="int4",
    lr=2e-4,  # Higher LR works well with QLoRA
)

Usa Flash Attention

Combina con Flash Attention para velocidad:
params = LLMTrainingParams(
    ...
    quantization="int4",
    use_flash_attention_2=True,  # Requires Linux + CUDA + flash-attn package
)

Inferencia con Modelos Cuantizados

Carga modelos cuantizados para inferencia:
import torch
from transformers import AutoModelForCausalLM, BitsAndBytesConfig

# 4-bit config (matches AITraining defaults)
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.float16,
    bnb_4bit_use_double_quant=False,
)

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.2-8B",
    quantization_config=bnb_config,
)

Requisitos de Plataforma

La cuantización solo funciona en Linux. La biblioteca bitsandbytes requerida para cuantización int4/int8 está disponible solo en sistemas Linux.

Nota sobre Apple Silicon (MPS)

La cuantización no es compatible con Apple Silicon MPS. Cuando usas cuantización en un Mac con M1/M2/M3:
  • El entrenamiento automáticamente vuelve a CPU
  • Verás un mensaje de advertencia explicando esto
  • Para entrenamiento más rápido en Mac, omite la cuantización y usa solo LoRA
# En Apple Silicon - usa LoRA sin cuantización para aceleración MPS
aitraining llm --train \
  --model google/gemma-3-270m \
  --data-path ./data.jsonl \
  --project-name mac-training \
  --peft \
  --lora-r 16
Variables de entorno para control manual:
  • AUTOTRAIN_DISABLE_MPS=1 - Forzar entrenamiento en CPU
  • AUTOTRAIN_ENABLE_MPS=1 - Forzar MPS incluso con cuantización (puede fallar)

Consideraciones de Calidad

La cuantización reduce ligeramente la calidad. Para aplicaciones críticas:
  1. Prueba en tu tarea específica
  2. Compara con línea base de precisión completa
  3. Considera 8-bit si la calidad importa más

Próximos Pasos

LoRA/PEFT

Fine-tuning eficiente

Flash Attention

Optimizaciones de velocidad