AI・機械学習
中級
Unsloth(アンスロス)
LLMのLoRA/QLoRAファインチューニングを2〜5倍高速化するライブラリ。TritonとCUDAカーネルを手書き最適化し、同じGPUでAxolotl/HuggingFaceより少ないVRAMで速く学習できる。Llama・Mistral・Gemma・Qwen・Phi等に対応。
0 回閲覧
0 いいね
2026/6/5 更新
関連タグ
ai
llm
fine-tuning
lora
qlora
optimization
cuda
Unslothとは
Daniel HanとMichael Hanが開発したLLMファインチューニング高速化ライブラリ。PyTorchとHugging Face Transformersの上に最適化されたTriton/CUDAカーネルを重ね、LoRA/QLoRA学習を標準実装より2〜5倍高速化し、VRAMを20〜40%削減する。2024年にGitHub上で急速に注目を集め、個人開発者・研究者のファインチューニング環境を大幅に民主化した。
速度改善の仕組み
1. RoPE(Rotary Position Embedding)カーネル最適化
- 標準PyTorch: Pythonループ + 複数CUDA ops
- Unsloth: 単一Tritonカーネルに融合 → 30〜60%高速化
2. Flash Attention 2統合
- メモリバンド幅効率の最大化
- シーケンス長4096〜8192でも安定動作
3. SwiGLU/GeGLU活性化関数融合
- LLaMA/Mistralの主要活性化関数を単一opに
4. LoRAの行列演算をカーネル内で直接計算
- W + AB (LoRA) を融合演算
Google Colab での使用例
!pip install unsloth
from unsloth import FastLanguageModel
import torch
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit",
max_seq_length = 2048,
dtype = None,
load_in_4bit = True,
)
model = FastLanguageModel.get_peft_model(
model,
r = 16,
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj"],
lora_alpha = 16,
lora_dropout = 0,
bias = "none",
use_gradient_checkpointing = "unsloth",
use_rslora = False,
)
from trl import SFTTrainer
from transformers import TrainingArguments
trainer = SFTTrainer(
model = model,
tokenizer = tokenizer,
train_dataset = dataset,
dataset_text_field = "text",
max_seq_length = 2048,
args = TrainingArguments(
per_device_train_batch_size = 2,
gradient_accumulation_steps = 4,
num_train_epochs = 3,
learning_rate = 2e-4,
fp16 = not torch.cuda.is_bf16_supported(),
bf16 = torch.cuda.is_bf16_supported(),
optim = "adamw_8bit",
output_dir = "outputs",
),
)
trainer.train()
VRAMと速度の比較
| 設定 | 標準HF+PEFT | Unsloth | 削減率 |
|---|---|---|---|
| Llama-3.1-8B QLoRA | 6.5GB VRAM | 4.3GB VRAM | 34% |
| Llama-3.1-8B LoRA | 14GB VRAM | 9.2GB VRAM | 34% |
| 学習速度(8B QLoRA) | 1× | 2.3× | - |
| 学習速度(8B LoRA) | 1× | 1.8× | - |
対応モデル(2025年時点)
- Llama系: Llama-3.1/3.2/3.3(8B/70B/405B)
- Mistral系: Mistral-7B、Mixtral-8x7B
- Google系: Gemma 2(2B/9B/27B)
- Alibaba系: Qwen2.5(0.5B〜72B)
- Microsoft: Phi-3/Phi-3.5
- DeepSeek: DeepSeek-R1-Distill系
Free版 vs Pro版
| 機能 | Free | Pro/Plus |
|---|---|---|
| シングルGPU LoRA/QLoRA | ○ | ○ |
| マルチGPU | × | ○ |
| 70B+完全学習 | × | ○ |
| Vision model | △ | ○ |
| 料金 | 無料 | $49〜/月 |