Saltar al contenido principal

Integración Unsloth

Unsloth proporciona entrenamiento optimizado para fine-tuning LoRA, reduciendo significativamente el tiempo de entrenamiento y el uso de memoria.

Requisitos

RequisitoDetalles
Instalaciónpip install unsloth
Trainers Soportadosdefault, sft solamente
Modelos Soportadosllama, mistral, gemma, qwen2
PlataformaLinux recomendado
Unsloth solo funciona con entrenamiento SFT (--trainer sft o --trainer default). DPO, ORPO, PPO y otros trainers no son soportados.

Arquitecturas de Modelo Soportadas

Unsloth está optimizado para familias de modelos específicas:
ArquitecturaModelos de Ejemplo
llamaLlama 2, Llama 3, Llama 3.1, Llama 3.2
mistralMistral 7B, Mistral Nemo
gemmaGemma, Gemma 2
qwen2Qwen 2, Qwen 2.5
Otras arquitecturas de modelo volverán a entrenamiento estándar con una advertencia.

Inicio Rápido

aitraining llm --train \
  --model meta-llama/Llama-3.2-1B \
  --data-path ./data \
  --project-name fast-model \
  --trainer sft \
  --unsloth \
  --peft \
  --lora-r 16

Parámetros

ParámetroFlag CLIPor DefectoDescripción
unsloth--unslothFalseHabilitar Unsloth para entrenamiento más rápido
use_sharegpt_mapping--use-sharegpt-mappingFalseUsar mapeo ShareGPT de Unsloth en lugar de convertir

Python API

from autotrain.trainers.clm.params import LLMTrainingParams
from autotrain.project import AutoTrainProject

params = LLMTrainingParams(
    model="meta-llama/Llama-3.2-1B",
    data_path="./data",
    project_name="fast-model",

    trainer="sft",
    unsloth=True,

    peft=True,
    lora_r=16,
    lora_alpha=32,

    epochs=3,
    batch_size=4,
)

project = AutoTrainProject(params=params, backend="local", process=True)
project.create()

Con Cuantización

Unsloth funciona con cuantización int4 e int8 para reducir el uso de memoria:
aitraining llm --train \
  --model meta-llama/Llama-3.2-3B \
  --data-path ./data \
  --project-name quantized-model \
  --trainer sft \
  --unsloth \
  --peft \
  --quantization int4 \
  --lora-r 16

Cómo Funciona

Cuando Unsloth está habilitado y se cumplen los requisitos:
  1. Usa FastLanguageModel de la biblioteca Unsloth para carga optimizada del modelo
  2. Aplica gradient checkpointing optimizado (use_gradient_checkpointing="unsloth")
  3. Configura automáticamente módulos objetivo LoRA: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
  4. Se integra con PEFT para entrenamiento eficiente de adaptadores

Comportamiento de Fallback

Si Unsloth no puede ser usado, el entrenamiento continúa con transformers/PEFT estándar:
  • Unsloth no instalado: Advertencia registrada, continúa sin Unsloth
  • Tipo de modelo no soportado: Advertencia registrada, continúa sin Unsloth
  • Trainer no soportado: Unsloth no aplicado (solo SFT soportado)
WARNING: Unsloth not available, continuing without it...

Mapeo ShareGPT

Usa --use-sharegpt-mapping para preservar el formato ShareGPT en lugar de convertir:
aitraining llm --train \
  --model meta-llama/Llama-3.2-1B \
  --data-path ./sharegpt_data.json \
  --project-name model \
  --trainer sft \
  --unsloth \
  --use-sharegpt-mapping \
  --peft

Próximos Pasos