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 |
Unsloth só funciona com treinamento SFT (--trainer sft ou --trainer default). DPO, ORPO, PPO e outros trainers não são suportados.
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
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
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()
Unsloth funciona com quantização int4 e int8 para reduzir o uso de memória:
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:
- Usa
FastLanguageModel da biblioteca Unsloth para carregamento otimizado do modelo
- Aplica gradient checkpointing otimizado (
use_gradient_checkpointing="unsloth")
- Configura automaticamente módulos alvo LoRA:
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
- 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:
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