> ## 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.

# Integración Unsloth

> Entrenamiento LoRA más rápido con Unsloth

# 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                    |

<Warning>
  Unsloth solo funciona con **entrenamiento SFT** (`--trainer sft` o `--trainer default`). DPO, ORPO, PPO y otros trainers no son soportados.
</Warning>

## 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

```bash theme={null}
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

```python theme={null}
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:

```bash theme={null}
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:

```bash theme={null}
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

<CardGroup cols={2}>
  <Card title="LoRA/PEFT" href="/advanced/lora-peft">
    Técnicas de fine-tuning eficiente
  </Card>

  <Card title="Quantization" href="/advanced/quantization">
    Reducir memoria con cuantización
  </Card>
</CardGroup>
