Home
Login
unslothai/unsloth

Unsloth: 大規模言語モデルの効率的なファインチューニングと強化学習ツール - 学習速度2倍向上、メモリ使用量70%削減

Apache-2.0Python 40.5kunslothai Last Updated: 2025-06-12
https://github.com/unslothai/unsloth

Unsloth プロジェクト詳細

プロジェクト概要

Unsloth は、大規模言語モデル (LLM) のファインチューニングと強化学習に特化したオープンソースツールです。Qwen3、Llama 4、DeepSeek-R1、Gemma 3、TTS などのモデルの学習速度を2倍に向上させ、同時にメモリ使用量を70%削減できます。このプロジェクトは、AI技術をより普及させ、使いやすくすることを目的としており、研究者や開発者に効率的なモデル学習ソリューションを提供します。

主な特徴

  • 高性能最適化: 学習速度2倍向上、メモリ使用量70%削減
  • ゼロ精度損失: 近似法を使用せず、学習精度を保証
  • 幅広い互換性: さまざまな主要LLMモデルと学習方法をサポート
  • ユーザーフレンドリー: 初心者向けのノートブックと詳細なドキュメントを提供

コア機能と特性

1. モデルサポート

Unsloth は、以下を含む多くの主要な大規模言語モデルをサポートしています。

  • Llama シリーズ: Llama 4、Llama 3.3 (70B)、Llama 3.2、Llama 3.1
  • Qwen シリーズ: Qwen 3 (14B)、Qwen 2.5 (Coder モデルを含む)
  • Gemma シリーズ: Gemma 3、Gemma 2 (9B/27B)
  • その他のモデル: Phi-4 (14B)、Mistral Small (22B)、DeepSeek-R1 など

2. 学習方法

ファインチューニング (Fine-tuning):

  • 全パラメータファインチューニング、事前学習をサポート
  • 4bit、8bit、16bit 量子化学習
  • QLoRA および LoRA ファインチューニング
  • 動的4bit量子化技術

強化学習:

  • DPO (Direct Preference Optimization)
  • GRPO (長文脈推論)
  • PPO (Proximal Policy Optimization)
  • 報酬モデル学習
  • オンラインDPO

3. 技術的優位性

性能最適化:

  • すべてのカーネルは OpenAI の Triton 言語で記述され、手動で逆伝播エンジンを実装
  • 0% 精度損失 - 近似法なし - すべて正確な計算
  • 長文脈学習をサポート (最長342K文脈をサポート)

メモリ最適化:

  • 動的4bit量子化技術により、精度を向上させながら、メモリ使用量を10%未満に抑える
  • 勾配チェックポイント最適化により、メモリ使用量をさらに30%削減
  • 4倍長い文脈ウィンドウをサポート

4. ハードウェア互換性

  • GPU要件: 2018年以降のNVIDIA GPUをサポート、最低CUDA能力7.0
  • サポートモデル: V100、T4、Titan V、RTX 20/30/40シリーズ、A100、H100、L40など
  • オペレーティングシステム: Linux および Windows
  • 特殊サポート: GTX 1070、1080は実行可能だが速度は遅い

5. 統合とエコシステム

フレームワーク統合:

  • 🤗 Hugging Face TRLライブラリの公式サポート
  • Trainer、Seq2SeqTrainer をサポート
  • PyTorch ネイティブコードと互換性あり

デプロイオプション:

  • GGUF 形式でエクスポート
  • Ollama、vLLM デプロイをサポート
  • Hugging Face モデルハブ統合

インストールと使用

快速インストール

Linux デバイスでは、pip を使用してインストールすることをお勧めします。

pip install unsloth

基本的な使用例

from unsloth import FastLanguageModel
import torch
from trl import SFTTrainer, SFTConfig

# モデルをロード
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/gemma-3-4B-it",
    max_seq_length = 2048,
    load_in_4bit = True,
)

# LoRA アダプターを追加
model = FastLanguageModel.get_peft_model(
    model,
    r = 16,
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj"],
    lora_alpha = 16,
    use_gradient_checkpointing = "unsloth",
)

# 学習を開始
trainer = SFTTrainer(
    model = model,
    train_dataset = dataset,
    tokenizer = tokenizer,
    # その他の学習パラメータ
)
trainer.train()

性能ベンチマークテスト

学習効率の比較

モデル メモリ Unsloth速度 メモリ削減 文脈長 Hugging Face + FA2
Llama 3.3 (70B) 80GB 2倍 >75% 13倍長い 1倍
Llama 3.1 (8B) 80GB 2倍 >70% 12倍長い 1倍

長文脈サポート

同じハードウェア条件下で、Unsloth がサポートする文脈長は従来の方法をはるかに上回ります。

  • 8GB GPU: Unsloth は 2,972 トークンをサポート、従来の方法では OOM
  • 24GB GPU: Unsloth は 78,475 トークンをサポート、従来の方法ではわずか 5,789 トークン
  • 80GB GPU: Unsloth は 342,733 トークンをサポート、従来の方法ではわずか 28,454 トークン

最新機能アップデート

近期の重要なアップデート

  1. Llama 4 サポート: Meta の最新の Scout および Maverick モデル
  2. 全面サポート: FFT、すべてのモデル (Mixtral、MOE、Cohere、Mamba) およびすべての学習アルゴリズム
  3. 視覚モデル: Llama 3.2 Vision、Qwen 2.5 VL、Pixtral などをサポート
  4. 推論最適化: 2倍高速な推論速度

特色機能

  • チャットインターフェース: インタラクティブなチャットインターフェースを提供
  • 勾配累積修正: 勾配累積のバグを発見して修正
  • Cut Cross Entropy: Apple と協力して追加された最適化技術
  • 多言語継続事前学習: 韓国語などの他の言語をサポート

コミュニティとエコシステム

ドキュメントとサポート

  • 公式ドキュメント: docs.unsloth.ai
  • GitHub リポジトリ: アクティブなオープンソースコミュニティ
  • ソーシャルメディア: Twitter/X 公式アカウント
  • コミュニティフォーラム: Reddit ページでの交流

学習リソース

  • 初心者向けの Colab ノートブック
  • 詳細なインストールと使用ガイド
  • Kaggle コンペティション専用ノートブック
  • 完全な API ドキュメント

まとめ

Unsloth は、現在最も優れたオープンソース LLM ファインチューニングツールの1つであり、革新的な最適化技術により、学習速度とメモリ効率の大幅な向上を実現しています。研究者であろうと産業界の開発者であろうと、Unsloth の効率的な学習能力から恩恵を受けることができます。プロジェクトの継続的な更新と活発なコミュニティサポートにより、LLM ファインチューニング分野における重要な選択肢となっています。