Integración Unsloth
Unsloth proporciona entrenamiento optimizado para fine-tuning LoRA, reduciendo significativamente el tiempo de entrenamiento y el uso de memoria.
Requisitos
| Requisito | Detalles |
|---|
| Instalación | pip install unsloth |
| Trainers Soportados | default, sft solamente |
| Modelos Soportados | llama, mistral, gemma, qwen2 |
| Plataforma | Linux 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:
| Arquitectura | Modelos de Ejemplo |
|---|
llama | Llama 2, Llama 3, Llama 3.1, Llama 3.2 |
mistral | Mistral 7B, Mistral Nemo |
gemma | Gemma, Gemma 2 |
qwen2 | Qwen 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ámetro | Flag CLI | Por Defecto | Descripción |
|---|
unsloth | --unsloth | False | Habilitar Unsloth para entrenamiento más rápido |
use_sharegpt_mapping | --use-sharegpt-mapping | False | Usar 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:
- Usa
FastLanguageModel de la biblioteca Unsloth para carga optimizada del modelo
- Aplica gradient checkpointing optimizado (
use_gradient_checkpointing="unsloth")
- Configura automáticamente módulos objetivo LoRA:
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
- 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