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 は、大規模言語モデルの学習を高速化し、メモリ使用量を削減するファインチューニングおよび強化学習フレームワークです。カスタム RoPE および Triton カーネルを用いた 4 ビット、8 ビット、16 ビットの精度での学習に対応しています。Unsloth は Llama、Mistral、Gemma、Qwen など、さまざまなモデルファミリーと互換性があります。

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

Transformers の統合

Unsloth は Transformers の API をラップし、内部メソッドをパッチすることで高速化を実現しています。

リソース

Update on GitHub