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

# Integração Unsloth

> Treinamento LoRA mais rápido com Unsloth

# Integração Unsloth

O Unsloth fornece treinamento otimizado para fine-tuning LoRA, reduzindo significativamente o tempo de treinamento e o uso de memória.

## Requisitos

| Requisito               | Detalhes                             |
| ----------------------- | ------------------------------------ |
| **Instalação**          | `pip install unsloth`                |
| **Trainers Suportados** | `default`, `sft` apenas              |
| **Modelos Suportados**  | `llama`, `mistral`, `gemma`, `qwen2` |
| **Plataforma**          | Linux recomendado                    |

<Warning>
  Unsloth só funciona com **treinamento SFT** (`--trainer sft` ou `--trainer default`). DPO, ORPO, PPO e outros trainers não são suportados.
</Warning>

## Arquiteturas de Modelo Suportadas

Unsloth é otimizado para famílias de modelos específicas:

| Arquitetura | Modelos de Exemplo                     |
| ----------- | -------------------------------------- |
| `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                       |

Outras arquiteturas de modelo voltarão para treinamento padrão com um aviso.

## Início 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                 | Padrão  | Descrição                                               |
| ---------------------- | ------------------------ | ------- | ------------------------------------------------------- |
| `unsloth`              | `--unsloth`              | `False` | Habilitar Unsloth para treinamento mais rápido          |
| `use_sharegpt_mapping` | `--use-sharegpt-mapping` | `False` | Usar mapeamento ShareGPT do Unsloth em vez de converter |

## 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()
```

## Com Quantização

Unsloth funciona com quantização int4 e int8 para reduzir o uso de memória:

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

## Como Funciona

Quando Unsloth está habilitado e os requisitos são atendidos:

1. Usa `FastLanguageModel` da biblioteca Unsloth para carregamento otimizado do modelo
2. Aplica gradient checkpointing otimizado (`use_gradient_checkpointing="unsloth"`)
3. Configura automaticamente módulos alvo LoRA: `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj`
4. Integra com PEFT para treinamento eficiente de adaptadores

## Comportamento de Fallback

Se Unsloth não puder ser usado, o treinamento continua com transformers/PEFT padrão:

* **Unsloth não instalado**: Aviso registrado, continua sem Unsloth
* **Tipo de modelo não suportado**: Aviso registrado, continua sem Unsloth
* **Trainer não suportado**: Unsloth não aplicado (apenas SFT suportado)

```
WARNING: Unsloth not available, continuing without it...
```

## Mapeamento ShareGPT

Use `--use-sharegpt-mapping` para preservar o formato ShareGPT em vez de converter:

```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 Passos

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

  <Card title="Quantization" href="/advanced/quantization">
    Reduzir memória com quantização
  </Card>
</CardGroup>
