Pular para o conteúdo principal

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

RequisitoDetalhes
Instalaçãopip install unsloth
Trainers Suportadosdefault, sft apenas
Modelos Suportadosllama, mistral, gemma, qwen2
PlataformaLinux 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:
ArquiteturaModelos de Exemplo
llamaLlama 2, Llama 3, Llama 3.1, Llama 3.2
mistralMistral 7B, Mistral Nemo
gemmaGemma, Gemma 2
qwen2Qwen 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âmetroFlag CLIPadrãoDescrição
unsloth--unslothFalseHabilitar Unsloth para treinamento mais rápido
use_sharegpt_mapping--use-sharegpt-mappingFalseUsar 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()

Com Quantização

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