Unsloth(アンスロス)は、LLMのファインチューニングを少ないGPUメモリで速く回すためのオープンソースです。2026年9月時点では、デスクトップアプリの「Unsloth Desktop」、ブラウザで操作する「Unsloth Studio」、Pythonから呼ぶ「Unsloth Core」の3形態で提供されています。この記事では、読み方と開発元、3形態の選び方、必要なVRAM、GUIとコードそれぞれの使い方、メモリ不足の対処までを、公式ドキュメントとPyPI上のソースコード(unsloth 2026.9.12)で確かめた内容で整理します。
まとめ:Unslothの要点
- 読み方は「アンスロス」。開発元は米サンフランシスコのUnsloth AI(2023年創業・Y Combinator 2024年夏期)です。
- 料金は無料。本体はApache-2.0、Studio UIなど一部のコンポーネントはAGPL-3.0のデュアルライセンスです。
- 形態は3つ。コードを書かずに学習するならDesktop、サーバーに入れてブラウザから使うならStudio、学習を自動化するならCoreです。
- 公称値は「2倍速・VRAM 70%削減・精度低下なし」。ただしモデルごとに1.5倍・50%削減など幅があり、いずれも開発元の計測です。
- VRAMの目安は、QLoRA(4bit)で8Bモデルが6GB、70Bモデルが41GB(公式の最小値)です。
- 学習データの形式や件数はファインチューニング用データセットの作り方、手法の比較はPEFTとLoRAの違いで扱っています。
Unslothの読み方・開発元・ライセンス
読み方「アンスロス」と名前の由来
Unslothは「アンスロス」と読みます。sloth(ナマケモノ、怠惰)に否定の接頭辞un-を付けた造語で、ロゴとドキュメントのアイコンにもナマケモノが使われています。「遅い学習を速くする」という製品の狙いがそのまま名前になっています。公式リポジトリを探すときは、unslothai/unslothで検索すると確実です。
開発元Unsloth AIの概要
開発元はUnsloth AIです。Y Combinatorの企業ページでは、創業2023年、バッチはSummer 2024、所在地はサンフランシスコ、チーム12名と記載されています。創業者はDaniel HanとMichael Hanの兄弟で、Daniel HanはNVIDIAでアルゴリズムの高速化に携わっていた経歴を公開しています。2026年9月29日時点で、GitHubリポジトリのスターは約7.7万、Hugging Faceのunsloth組織が公開するモデルは1,460件です。量子化済みのモデルを大量に配布している組織でもあるため、Unslothを使わない人もHugging Face上でこの名前を目にします。
料金とライセンス:本体はApache-2.0、Studio UIはAGPL-3.0
Unslothは無料で使えます。GitHubのREADMEでは「Apache 2.0とAGPL-3.0のデュアルライセンス」と説明されており、PyPIで配布される本体パッケージはApache-2.0、Unsloth Studio UIなど一部のオプションコンポーネントはAGPL-3.0です。Core(ライブラリ)を社内の学習パイプラインに組み込むだけならApache-2.0の条件で扱えます。AGPL-3.0の対象部分を改変してネットワーク経由で利用させる場合は、利用者に対応するソースを提供する義務を確認してください。この条件は社外への提供に限定されません。
Unsloth Desktop・Studio・Coreの違いと選び方
2026年3月17日にWeb UIのStudio(ベータ)、8月11日にネイティブアプリのDesktopが公開され、従来のPythonライブラリはCoreと呼ばれるようになりました。3つとも同じGitHubリポジトリで開発されています。
| 形態 | 操作 | 導入方法 | 向いている用途 |
|---|---|---|---|
| Desktop | アプリのGUI | OS別インストーラー | 個人PCで試す |
| Studio | ブラウザのGUI | install.sh / Docker | GPUサーバーを共用する |
| Core | Pythonコード | pip / uv | 学習の自動化・CI |
DesktopはmacOS・Windows・Linux(x64とARM64のdeb、AppImage)向けに配布され、Windows ARM64版もあります。Studioはunsloth studioコマンドでローカルにWebサーバーを立て、--secureを付けるとCloudflareトンネル経由のHTTPSで外部から開けます。Dockerイメージはunsloth/unsloth、AMD GPU向けはunsloth/unsloth-rocmです。
選び方ははっきりしています。初めて触るならDesktop、研究室や部署でGPUサーバー1台を共有するならStudio、学習を再現可能なスクリプトとしてGitで管理したいならCoreです。DesktopとStudioは2026年9月時点でもリリース名に-betaが付き、9月だけで10回以上更新されています。本番の定期学習ジョブはCoreでパッケージのバージョンを固定して組み、GUIは実験と確認に使う分担が安全です。
Unslothが速く省メモリな理由と公称値の読み方
Tritonカーネルと手書きの逆伝播
Unslothは、Transformerの主要な演算をOpenAIのTriton言語で書き直しています。unsloth 2026.9.12のソースを見ると、unsloth/kernels/にRMSNorm、RoPE、SwiGLU、GeGLU、クロスエントロピー損失などの実装が並び、@triton.jit付きの関数が18個あります。LoRAを適用したMLPやQKV射影はtorch.autograd.Functionを継承したクラスで、逆伝播(backward)を自動微分に任せず手で書いています。中間テンソルを保存しない分だけメモリが減り、近似を使わないため精度が落ちないというのが開発元の説明です。
もう1つの柱が、use_gradient_checkpointing = "unsloth"で有効になる独自の勾配チェックポイントです。公式ノートブックのコメントでは「VRAMを30%減らし、2倍大きいバッチが入る」とされています。4bit量子化したベースモデルにLoRAを載せるQLoRAの仕組みそのものはQLoRAの仕組みとVRAM目安で解説しています。
モデル別の公称速度・VRAM削減率と計測条件
READMEは「2倍速・VRAM 70%削減・精度低下なし」をうたっていますが、同じREADMEの無料ノートブック一覧を見ると数字はモデルごとに違います。
| ノートブック | 速度 | メモリ削減 |
|---|---|---|
| gpt-oss (20B) | 2倍 | 70% |
| gpt-oss (20B) GRPO | 2倍 | 80% |
| Llama 3.1 (8B) | 2倍 | 70% |
| Qwen3.5 (4B) Vision | 1.5倍 | 60% |
| Gemma 4 (E2B) Vision | 1.5倍 | 50% |
| EmbeddingGemma (300M) | 2倍 | 20% |
計測したのは開発元です。公式のベンチマークページでは比較対象を「Hugging Face+Flash Attention 2」とし、H100でAlpacaデータ、バッチサイズ2、rank 32のQLoRAという条件を明記しています。速度とは別条件(バッチサイズ1・rank 32で全線形層にQLoRA)の系列長ベンチマークでは、Llama 3.1(8B)を16GBのGPUで学習した場合、最大コンテキスト長はUnslothが40,724トークン、比較対象が2,551トークンです。差がいちばん大きく出るのは速度より扱える系列長です。一方、速度やメモリ削減率はモデルと学習条件で変わり、上の表の20%削減はEmbeddingGemma(300M)の公称値です。
自社のGPUで効果を確かめるなら、同じデータとバッチサイズで両方を回し、torch.cuda.max_memory_allocated()とステップあたりの秒数を比べます。公式ページは、torch.compileのウォームアップに5分前後かかるため、読み込みが終わった後のスループットで測るよう注意しています。
Unslothに必要な環境とVRAMの目安
OS・GPU・Pythonの要件
- Desktop・Studioでの学習:NVIDIA、AMD、Intel GPUとMac(MLX)に対応。PythonはStudioの手動導入で3.11以上3.14未満。GPUが無くてもチャットとData Recipes(データセット作成)は動きます。
- Coreでの学習:LinuxとWindows(WSL含む)。NVIDIAはCUDA Compute Capability 7.0以上(V100、T4、RTX 20以降、A100、H100など)。AMDとIntelは専用ガイドの手順で導入し、Apple Silicon(MLX)対応は「開発中」と明記されています。
- 依存ライブラリ:unsloth 2026.9.12は
torch2.4以上2.13未満、trl0.24.0以下、transformers5.5.0以下を要求します。既存環境に入れると版が動くので、専用の仮想環境を作ってください。
Macで学習したい場合はCoreではなくDesktopかStudioを選びます。手元にGPUが無ければ、公式の無料Colabノートブックか、RunpodなどのGPUクラウドで時間単位に借りる方法があります。
モデル規模ごとの必要VRAM
公式ドキュメント(Unsloth Requirements)が「絶対最小値」として示す値の抜粋です。バッチサイズや系列長を増やすとこれより多く必要になります。
| パラメータ数 | QLoRA(4bit) | LoRA(16bit) |
|---|---|---|
| 3B | 3.5GB | 8GB |
| 8B | 6GB | 22GB |
| 14B | 8.5GB | 33GB |
| 32B | 26GB | 76GB |
| 70B | 41GB | 164GB |
16GBのGPU(T4やRTX 4060 Ti 16GBなど)では8B〜14BのQLoRAが候補になります。系列長やモデル構造によっては8Bでも余裕がなくなるので、バッチサイズ1から始めて増やします。LoRA(16bit)の必要VRAMはこの表でQLoRAの約2.3〜4倍あり、3B程度ならコンシューマーGPUでもLoRAで学習できますが、8B以上を16GB前後のGPUで扱うならQLoRAを選びます。
Unslothの使い方1:Desktop・StudioのGUI学習手順
Studioのホーム画面はModel・Dataset・Parameters・Training/Configの4領域に分かれていて、上から順に埋めれば学習が始まります。
- 起動:Desktopはアプリを開くだけです。Studioは
curl -fsSL https://unsloth.ai/install.sh | sh(WindowsはPowerShellでinstall.ps1)で導入し、unsloth studio -H 0.0.0.0 -p 8888で起動して、初回にパスワードを設定します。 - モデルと手法:Text・Vision・Audio・Embeddingsから種類を選び、Hugging Faceのモデル名を検索して指定します。手法はQLoRA・LoRA・Full Fine-tuningの3択で、ハイパーパラメータには既定値が自動で入ります。GGUF形式のモデルは推論専用で、学習には使えません。
- データセット:Hugging Face Hubから検索するか、JSONL・JSON・CSV・Parquetのほか、PDFやDOCXをアップロードします。列の対応付けと学習・検証の分割も画面で設定できます。
- 学習と書き出し:実行中は損失の推移とGPU使用状況がライブで表示されます。終わったらExport画面でGGUFなどに変換し、同じアプリのチャット画面で試せます。
Llama系やGemma系のようなゲート付きモデルは、Hugging Faceのアクセストークンを入力しないと読み込めません。
Unslothの使い方2:Core(Python)のQLoRA学習手順
uvでのインストール
公式ドキュメントはuvでの導入を推奨しています。--torch-backend=autoを付けると、GPUに合ったPyTorchのビルドを選んで入れます。
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv unsloth_env --python 3.13
source unsloth_env/bin/activate
uv pip install "unsloth==2026.9.12" "trl==0.24.0" --torch-backend=auto
版は、この記事のコードを確認したunsloth 2026.9.12と、それが対応するTRLの上限0.24.0に固定しています。最新版を使うなら版指定を外します。uvを使わない場合はpip install unslothでも入ります。
モデルの読み込みとLoRAアダプタの設定
読み込みはFastLanguageModel.from_pretrained、アダプタの付与はFastLanguageModel.get_peft_modelで行います。引数名と既定値はunsloth 2026.9.12のソースで確認しました。
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Llama-3.1-8B",
max_seq_length = 2048,
load_in_4bit = True, # QLoRA。False にすると16bitのLoRA
)
model = FastLanguageModel.get_peft_model(
model,
r = 16,
lora_alpha = 16,
lora_dropout = 0, # 0 が最適化された経路
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj"],
use_gradient_checkpointing = "unsloth",
random_state = 3407,
)
from unsloth import ...はtrlやtransformersより先に書きます。Unslothは読み込み時にこれらのライブラリへパッチを当てるため、順序が逆だと最適化が効きません。rとlora_alphaの決め方はLoRAの仕組みと使い方で扱っています。
SFTTrainerでの学習と保存
学習ループはHugging FaceのTRLをそのまま使います。以下はTRL 0.24の引数名に合わせたコード例で、データセットはtext列に整形済みの文章が入っている前提です。実行前に、作業ディレクトリへtrain.jsonlを用意してください。各行は{"text": "学習させる文章"}というJSONオブジェクトです。
from datasets import load_dataset
from trl import SFTConfig, SFTTrainer
dataset = load_dataset("json", data_files = "train.jsonl", split = "train")
trainer = SFTTrainer(
model = model,
processing_class = tokenizer,
train_dataset = dataset,
args = SFTConfig(
dataset_text_field = "text",
max_length = 2048,
per_device_train_batch_size = 2,
gradient_accumulation_steps = 4,
max_steps = 60,
learning_rate = 2e-4,
optim = "adamw_8bit",
logging_steps = 1,
seed = 3407,
output_dir = "outputs",
report_to = "none",
),
)
trainer.train()
model.save_pretrained("lora_model") # LoRAアダプタだけを保存
tokenizer.save_pretrained("lora_model")
アダプタのファイルは数十〜数百MBで、元のモデルと組み合わせて読み込みます。
GGUF・マージ済みモデルへの書き出し
Ollamaやllama.cppで動かすならGGUF、vLLMで配信するならアダプタを統合した16bitモデルに書き出します。
# llama.cpp / Ollama 向け(q4_k_m は公式の推奨量子化)
model.save_pretrained_gguf("model_gguf", tokenizer, quantization_method = "q4_k_m")
# vLLM など向け:LoRA をベースモデルに統合して16bitで保存
model.save_pretrained_merged("model_merged", tokenizer, save_method = "merged_16bit")
save_methodには"lora"、"merged_16bit"、"merged_4bit"を指定できます。4bitでの統合は精度が落ちるため、ソース上でもmerged_4bit_forcedと明示しない限り止まる作りです。GGUFの量子化形式の違いはLLM量子化の仕組みとGGUFの違い、統合後の配信はvLLMの仕組みと使い方を参照してください。
Unslothで学習できるモデルと手法
READMEに挙がる学習手法は、LoRA、QLoRA、フルファインチューニング、事前学習、強化学習(GRPO、DPO)、FP8学習です。GRPOは報酬関数で推論能力を伸ばす手法で、仕組みはGRPOとはで解説しています。
無料ノートブックが用意されている学習対象は、gpt-oss(20B)、Qwen3・Qwen3.5、Gemma 4、Llama 3.1・3.2、EmbeddingGemma、Orpheus-TTSなどです。テキストのLLMに加えて、画像を扱う視覚言語モデル、埋め込みモデル、音声合成(TTS)、画像・動画の拡散モデルも学習できます。READMEのニュース欄に並ぶDeepSeek-V4やGLM-5.2のように、配布されたGGUFを「動かす」ことが主目的の大型モデルもあるため、学習できるかどうかは対象モデルのノートブックかドキュメントの有無で確かめてください。一覧は公式のUnsloth Notebooksにまとまっています。
メモリ不足(OOM)と導入時のトラブル対処
- 学習中のOOM:公式ドキュメントが最初に挙げる原因はバッチサイズの過大です。
per_device_train_batch_sizeを1〜2に下げ、減らした分はgradient_accumulation_stepsで補います。それでも足りなければmax_seq_lengthを短くし、load_in_4bit = Trueにします。 - 評価ループでのOOM:
SFTConfigにfp16_full_eval = True(bf16対応GPUならbf16_full_eval = True)を指定すると、評価時のメモリがおよそ半分になります。 - 保存時のOOM:
save_pretrained_mergedのmaximum_memory_usage(既定0.75)を0.5などに下げます。 - インストール後に既存環境が壊れた:
pip install unslothはtorchやtransformersの版を入れ替えます。プロジェクトごとに仮想環境を分け、Dockerイメージunsloth/unslothを使うと依存の衝突を避けられます。 - Studioを外部公開したい:
--secureや-H 0.0.0.0で公開するとサーバー側のツール実行も有効なままです。READMEは強いパスワードの設定と、必要に応じた--disable-toolsを勧めています。
Unslothを選ばないほうがよい場面
次の条件に当てはまるなら、Unslothを入れる前に別の手段を検討してください。
- 社内文書を答えさせたいだけ:知識の追加が目的ならファインチューニングよりRAGのほうが更新も検証も安く済みます。判断基準はRAGとファインチューニングの違いと使い分けにまとめています。
- MacでCoreを使った学習パイプラインを組みたい:CoreのApple Silicon対応は開発中です。MacではDesktop・Studio経由の学習に限られます。
- Studioを改変して社外向けのサービスにしたい:Studio UIはAGPL-3.0です。ソース開示を避けたいなら、Apache-2.0のCoreだけで自前のUIを作ります。
- GGUFしか手元にないモデルを学習したい:Unsloth StudioはGGUFを推論専用として扱い、学習の対象から外しています。Unslothで学習するならsafetensors形式などの元の重みを入手してください。なお、Transformersには対応アーキテクチャのGGUFを逆量子化して通常のモデルとして読み込む機能があります。
逆に、単一のコンシューマーGPUやColabの無料枠で7B〜14BクラスのモデルをQLoRAで学習するなら、UnslothはTRL単体より先に試す価値のある選択肢です。学習環境全体の組み方はファインチューニングの実行環境と実装で解説しています。
Unslothに関するよくある質問
Unslothの読み方は?
「アンスロス」です。sloth(ナマケモノ)に否定のun-を付けた造語で、学習を速くするという製品の目的を表しています。
Unslothは無料ですか?
無料です。本体はApache-2.0、Studio UIなど一部のコンポーネントはAGPL-3.0のオープンソースで、DesktopもGitHub Releasesから無料で入手できます。GPUを借りる場合はクラウドの利用料が別にかかります。
Unsloth Studioとは何ですか?
コードを書かずにモデルの学習・チャット・書き出しを行える、ローカルで動くWeb UIです。2026年3月にベータ公開されました。同じ機能をネイティブアプリにしたものがUnsloth Desktopです。
UnslothはMacで使えますか?
DesktopとStudioは、macOS 12以降のMacで学習とMLX・GGUFでの推論に対応しています。Python版のCoreは、2026年9月時点でApple Silicon対応が開発中です。
Unslothには何GBのVRAMが必要ですか?
公式の最小値は、QLoRA(4bit)で8Bモデルが6GB、14Bモデルが8.5GB、70Bモデルが41GBです。16bitのLoRAでは8Bモデルでも22GBが必要です。