Transformers documentation

Unsloth

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Unsloth

Unsloth es un marco de ajuste fino y refuerzo que acelera el entrenamiento y reduce el uso de memoria para modelos de lenguaje de gran escala. Admite entrenamiento con precisión de 4 bits, 8 bits y 16 bits mediante kernels personalizados de RoPE y Triton. Unsloth funciona con las familias de modelos Llama, Mistral, Gemma, Qwen y otras.

from datasets import load_dataset
from transformers import TrainingArguments
from unsloth import FastLanguageModel
from unsloth.trainer import UnslothTrainer

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/Llama-3.2-1B-Instruct",
    max_seq_length=2048,
    load_in_4bit=True,
)

model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    lora_alpha=16,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
)

dataset = load_dataset("trl-lib/Capybara", split="train[:500]")
dataset = dataset.map(lambda x: {"text": x["conversations"][0]["value"]})

trainer = UnslothTrainer(
    model=model,
    tokenizer=tokenizer,
    train_dataset=dataset,
    dataset_text_field="text",
    max_seq_length=2048,
    args=TrainingArguments(
        output_dir="outputs",
        per_device_train_batch_size=2,
        num_train_epochs=1,
    ),
)

trainer.train()

Integración con Transformers

Unsloth envuelve las API de Transformers y parchea los métodos internos para mejorar la velocidad.

Recursos

Update on GitHub