unsloth は「pip で入れる高速 LLM ファインチューニングライブラリ」として知られてきました。それが 2026年8月11日、ネイティブのデスクトップアプリとして配布を始めています。現在の README 冒頭は “Unsloth is the first desktop app to run and train models.” で、Windows / macOS / Linux 向けのインストーラが並びます。本記事では macOS 版の dmg(45MB)を実際に取得・展開・起動し、60MB のバイナリに何が入っていて、何が入っていないのか、そしてライブラリ版との関係とライセンス構成を実測で確かめます。
30秒でわかる Unsloth Desktop(2026年8月26日時点・実測)
・正体:★74,716 の高速ファインチューニングライブラリ Unsloth が出したネイティブデスクトップアプリ。2026-08-11 の v0.1.70-beta で登場
・中身:dmg は 45,287,769 バイト。展開すると Tauri 製の単一バイナリ(60.8MB)と 6,044行の install.sh。PyTorch は入っていない
・何をする:初回起動時に uv・Python仮想環境・PyTorch・llama.cpp などを取得して、localhost:8888 起点の Studio を立てる
・置き換えではない:PyPI のライブラリ版は 2026.8.21 が 2026-08-25 に公開され現役。両者は併存
・ライセンスが分かれる:リポジトリ直下は Apache-2.0、studio/ 配下は AGPL-3.0-only
・署名:Developer ID(Unsloth AI Inc.)で公証済み。spctl は accepted
ローカルでモデルを動かす手段の全体像は ローカルLLMを動かす方法|最新オープンウェイトモデル・ランタイム比較・VRAM要件の総まとめ にまとまっています。本記事はそのうち「学習まで含めて GUI で完結させにきた Unsloth」に絞った解説です。
unsloth とは:2〜5倍速の学習ライブラリから始まった
Unsloth(unslothai/unsloth)は、LLM のファインチューニングを省メモリ・高速に行うための Python ライブラリとして広まりました。GitHub 実測で ★74,716・fork 6,763、直近 push は 2026-08-25 です。PyPI 側のパッケージ説明は現在も “2-5X faster training, reinforcement learning & finetuning” で、この看板は降ろされていません。
日本語圏でも「Unsloth でお手軽に LLM の学習を高速化」「Unsloth×TRL GRPO で 7GB VRAM から」といった記事が蓄積しており、LoRA / QLoRA を回すためのライブラリという認識が定着しています。
pip install ではなく、OS別のインストーラのダウンロード表になりました。現在の README が掲げる対応モデルには Qwen3.8、Kimi K3、MiniMax-H3、Gemma 4、DeepSeek 系などが並び、LLM だけでなく拡散モデル(diffusion models)も対象に含まれています。リポジトリの説明文自体も “Local UI to run and train LLMs and diffusion models” に更新されており、「学習ライブラリ」から「ローカルAIの作業台」へ的が広がっているのが読み取れます。
① 何ができる:ローカルでモデルを実行し、さらに学習(ファインチューニング)まで GUI で回せる。② 何を解決する:CUDA・Python環境・学習ライブラリの構築という、最初の断絶を肩代わりする。③ 何を代替できる:推論だけなら LM Studio や Ollama と重なるが、学習まで含む点が両者との違い。
デスクトップアプリ化の時系列
GitHub Releases API の実測値です。
| 日付 | タグ | 内容 |
|---|---|---|
| 2026-08-04 | v0.1.526-beta | DSpark + DeepSeek-V4 Flash 0731 |
| 2026-08-10 | v0.1.60/61-beta | Meta Muse Glimmer |
| 2026-08-11 | v0.1.70-beta / v0.1.701-beta | 「Introducing Unsloth Desktop 🦥」 |
| 2026-08-14 | v0.1.800-beta | Qwen3.8-27B 対応 |
| 2026-08-20 | v0.1.801-beta | Auto compaction(preview)+ LAN Remote Access |
| 2026-08-25 | v0.1.802/803-beta | Bug Fixes + 上記の継続 |
| 2026-08-26 | — | 本記事の検証時点(★74,716 を実測) |
2026-08-11 の登場から2週間ほどで、ベータ版が繰り返し出ています。直近は 8月25日、つまり検証の前日にもリリースがありました。バージョン番号が 0.1.x-beta であることも含め、まだ動きの速い段階だと理解しておくのが妥当です。
同じ期間、PyPI のライブラリ版も止まっていません。unsloth の最新は 2026.8.21(アップロードは 2026-08-25、requires_python は <3.15,>=3.9)で、こちらも並行して更新されています。デスクトップ版の登場はライブラリ版の終了を意味しません。
unsloth の 45MB dmg を展開して分かったこと
macOS 版のインストーラを実際に取得しました。
# 配布物を取得してサイズとハッシュを確認
curl -sL -o unsloth.dmg \
"https://github.com/unslothai/unsloth/releases/download/v0.1.803-beta/Unsloth-Desktop-0_1_803_beta-MacOS.dmg"
shasum -a 256 unsloth.dmg
# 読み取り専用でマウントして中身を見る
hdiutil attach unsloth.dmg -nobrowse -readonly -mountpoint ./mnt
ls -la ./mnt
取得できた dmg は 45,287,769 バイト、SHA-256 は 185fc982…8c9fb6e でした。マウントすると Unsloth.app と /Applications へのシンボリックリンクという、標準的な構成です。
アプリバンドルの中身を見ると、構成は極めて単純でした。
| 場所 | 実体 | サイズ |
|---|---|---|
Contents/MacOS/unsloth-studio |
Mach-O 64-bit executable arm64 | 60,810,752 バイト |
Contents/Resources/install.sh |
シェルスクリプト(6,044行) | 約296KB |
Contents/Resources/icon.icns |
アイコン | 約308KB |
| バンドル全体 | — | 約59MB |
Info.plist の主要項目は次のとおりです。
・CFBundleIdentifier:ai.unsloth.studio(アプリの内部名は “studio”)
・CFBundleShortVersionString / CFBundleVersion:0.1.803-beta
・LSMinimumSystemVersion:10.13
・CFBundleExecutable:unsloth-studio
Electron ではなく Tauri
60MB という単一バイナリのサイズと、Contents/ に Frameworks ディレクトリが無いことから、Electron ではないと当たりを付けて実行ファイルの文字列を数えました。
# バイナリ内の文字列出現数でフレームワークを判定する
BIN="./mnt/Unsloth.app/Contents/MacOS/unsloth-studio"
for k in Tauri tauri wry Electron electron WKWebView; do
printf "%-12s %s\n" "$k" "$(strings -a "$BIN" | grep -c "$k")"
done
結果は tauri 120、Tauri 39、wry 33 に対して Electron / electron はいずれも 2、WKWebView が 6 でした。Tauri 製(wry は Tauri のウェブビュー層)と判断できます。Electron のように Chromium を同梱せず OS のウェブビューを使うため、配布サイズが小さく収まっています。
文字列カウントは状況証拠であり、バンドラの設定次第で出現数は変わります。ここで言えるのは「Tauri 由来の文字列が支配的で、Electron 由来はほぼ無い」ことまでです。公式に Tauri と明記された記述は確認していません(未検証)。
署名と公証は通っている
配布物としての信頼性も確認しました。
# 署名者と公証状態を確認する
codesign -dv ./mnt/Unsloth.app 2>&1 | grep -E "Identifier|TeamIdentifier|flags"
spctl -a -vvv -t install ./mnt/Unsloth.app
TeamIdentifier=4RAD85856P、flags=0x10000(runtime)(Hardened Runtime 有効)で、spctl の判定は accepted、source=Notarized Developer ID、origin=Developer ID Application: Unsloth AI Inc. (4RAD85856P) でした。Apple の公証を通っており、Gatekeeper の回避操作なしに起動できます。ベータ版とはいえ配布の作法は整っています。
起動してみると「まだ何も入っていない」
実際に起動して挙動を見ました。プロセスは立ち上がり、メニューバーが Unsloth に切り替わります。同時に ~/.unsloth/studio/ が作られ、ログが残りました。
20:55:51 [INFO] Unsloth desktop app starting
20:55:53 [INFO] Managed preflight: install probe result Missing in 0ms
20:55:53 [INFO] desktop_preflight completed disposition=NotInstalled port=None in 1ms
disposition=NotInstalled / port=None ——つまりアプリは起動直後に「実行環境がまだ入っていない」と判定し、サーバーを立てていません。この時点で待ち受けポートは存在しませんでした。
同梱の install.sh を読むと、何を取りに行くかが具体的に分かります。6,044行のうち、外部URLの出現を数えると次のような分布でした。
| 取得先 | 出現回数 | 何のため |
|---|---|---|
github.com/unslothai/unsloth-zoo |
6 | Unsloth のモデル/ユーティリティ群 |
unsloth.ai/install.sh |
5 | インストーラ自身の配布元 |
astral-sh/uv releases |
2 | uv(Python パッケージマネージャ)の取得 |
download.pytorch.org/whl |
2 | PyTorch のホイール |
repo.amd.com/rocm/whl ほか |
5 | AMD ROCm 環境向け |
さらにスクリプト内のキーワード出現数は、torch 444、uv 308、venv 242、python 171、pip 81、cuda 45、llama.cpp 37、mlx 10、metal 3 でした。Python 仮想環境を uv で作り、PyTorch を入れ、llama.cpp を用意するという流れが読み取れます。BASE_PORT=8888 の定義もあり、Studio は localhost:8888 を起点に(使用中なら最大20個ずらして)待ち受ける設計です。
リポジトリの studio/ ディレクトリを見ると、このブートストラップの実体がさらに分かります。
・install_python_stack.py(約251KB)
・install_llama_prebuilt.py(約353KB)
・install_whisper_prebuilt.py(約64KB)
・install_sd_cpp_prebuilt.py(約54KB)
・install_node_prebuilt.py(約36KB)
・MCP.md
llama.cpp(テキスト生成)・whisper.cpp(音声認識)・stable-diffusion.cpp(画像生成)・Node まで用意する構成で、「ファインチューニングツール」というより「ローカルAIの作業台」に近い設計です。MCP.md があることから MCP 連携も想定されています。
初回セットアップは環境変数で制御できる
「初回起動時に勝手に大量ダウンロードされる」構成は、社内ネットワークや検証環境では扱いにくいものです。ただし同梱の install.sh は、挙動を外から制御する口を持っています。
アプリに同梱されたものと同じスクリプトが公式サイトでも配布されており(https://unsloth.ai/install.sh・実測 302,405 バイト)、中身を確認すると次の環境変数とフラグが定義されていました。出現回数の多い順です。
| 環境変数 / フラグ | 役割 |
|---|---|
UNSLOTH_STUDIO_HOME |
インストール先。優先順位は UNSLOTH_STUDIO_HOME > STUDIO_HOME > $HOME/.unsloth/studio |
UNSLOTH_NO_TORCH / --no-torch |
PyTorch の取得を行わない(既存環境を使う/サイズを抑える) |
UNSLOTH_PYTHON / --python |
使用する Python を明示指定 |
UNSLOTH_SKIP_AUTOSTART |
インストール後の自動起動を抑止 |
UNSLOTH_TORCH_INDEX_URL / UNSLOTH_TORCH_OVERRIDES |
PyTorch の取得先を差し替える(社内ミラー等) |
UNSLOTH_INSTALL_RETRIES / UNSLOTH_INSTALL_RETRY_DELAY |
取得失敗時のリトライ回数・待ち時間 |
UNSLOTH_UV_BIN_DIR |
uv の配置先 |
UNSLOTH_ROCM_GFX_ARCH |
AMD ROCm 環境向けのアーキテクチャ指定 |
スクリプトのヘッダには、パイプ実行時はフラグではなく環境変数で渡す必要があるという注意も明記されています。curl … | sh の形では --no-torch が sh 自身のオプションとして解釈されてしまうためです。ローカルに落として実行する場合は --no-torch などのフラグが使えます。
UNSLOTH_TORCH_INDEX_URL で PyTorch の取得先を差し替えられる点は、閉じたネットワークで運用する場合の突破口になります。ただし本記事では実際にミラーを指して通したわけではないので、成否は未検証です。ライセンスが2つに分かれている
配布物を読んでいて見つけた、判断に影響する事実です。同梱の install.sh のヘッダにはこう書かれています。
# SPDX-License-Identifier: AGPL-3.0-only
# Copyright 2026-present the Unsloth AI Inc. team. All rights reserved.
# See /studio/LICENSE.AGPL-3.0
一方、GitHub API が返すリポジトリのライセンスは Apache-2.0(LICENSE・11,550バイト)です。リポジトリ直下を確認すると、両方が存在していました。
| 対象 | ファイル | ライセンス |
|---|---|---|
| Unsloth ライブラリ本体 | LICENSE(リポジトリ直下) |
Apache-2.0 |
| Unsloth Studio / デスクトップ | studio/LICENSE.AGPL-3.0 |
AGPL-3.0-only |
Apache-2.0 と AGPL-3.0 では、とくにネットワーク越しにサービス提供する場合の義務が大きく異なります。AGPL-3.0 は改変してネットワーク経由で提供する場合にソース開示義務が生じます。「Unsloth は Apache-2.0 だから安心」という理解のまま Studio 側を組み込むと前提が崩れます。GitHub の言語別ライセンス表示(Apache-2.0)はリポジトリ直下の LICENSE を見ているだけで、この分離を反映しません。
ライブラリ版とデスクトップ版、どちらを使うか
両者は併存しているので、選ぶ基準を整理します。
| 観点 | ライブラリ版(pip install unsloth) |
デスクトップ版(Unsloth Desktop) |
|---|---|---|
| 入口 | PyPI(最新 2026.8.21・2026-08-25 公開) | GitHub Releases の OS 別インストーラ |
| ライセンス | Apache-2.0 | AGPL-3.0-only(studio/ 配下) |
| 環境構築 | 自分で Python / CUDA を用意 | 初回起動時に uv + venv + PyTorch を自動取得 |
| 操作 | Python スクリプト / ノートブック | GUI(localhost:8888 の Studio) |
| 自動化 | スクリプトに組み込みやすい | GUI 前提。CI 等には向かない |
| 成熟度 | 長期間の実績 | 0.1.x-beta(2026-08-11 登場) |
| 向く用途 | 学習パイプラインの組み込み、再現性が要る実験 | 手元で試す、GUI で完結させたい |
配布サイズが示す設計思想の違い(実測)
Unsloth Desktop の 45MB という数字は、同じ「ローカルでモデルを動かす GUI アプリ」と比べると際立ちます。各配布物に curl -sIL でヘッダだけを投げ、Content-Length を実測しました。
| アプリ | macOS 版インストーラ | 配布サイズ | 実行エンジンの扱い |
|---|---|---|---|
| Unsloth Desktop | Unsloth-Desktop-…-MacOS.dmg |
43.2 MB | 初回起動時に取得(uv + venv + PyTorch) |
| Ollama | Ollama.dmg |
180.2 MB | 同梱 |
| LM Studio | LM-Studio-…-arm64.dmg |
524.5 MB | 同梱 |
ただし利用者から見ると、初回起動時にネットワークが要る・取得サイズが事前に読めない・社内プロキシ環境で詰まりやすいという副作用があります。オフライン環境での導入を前提にしている場合、この方式は相性が悪い点に注意してください(オフライン導入の可否は本記事では未検証)。
やるか?"} B -- "推論だけ" --> C["LM Studio / Ollama
成熟した選択肢がある"] B -- "学習もやる" --> D{"スクリプトに
組み込むか?"} D -- "組み込む・再現性重視" --> E["Unsloth ライブラリ版
Apache-2.0"] D -- "GUI で完結させたい" --> F["Unsloth Desktop
AGPL-3.0・0.1.x-beta"]
推論だけが目的なら、LM Studioとは|使い方・MCP連携・Ollamaとの違いまでローカルLLMをGUIで動かす完全ガイド で扱っている LM Studio のほうが成熟しています。また Unsloth Studio が内部で llama.cpp を取得することからも分かるとおり、実行エンジンの選択そのものは Ollamaとllama.cppの違い2026|ローカルLLMはどちらで動かすべきか徹底比較 の議論と地続きです。Unsloth Desktop の独自性は「学習まで GUI に入れた」点にあります。
macOS(Apple Silicon / arm64)。Unsloth Desktop v0.1.803-beta の macOS 版 dmg を GitHub Releases から取得し、
hdiutil でマウントして構成を確認、codesign / spctl で署名と公証を確認、実際に起動して ~/.unsloth/studio/tauri.log を読みました。初回セットアップ(PyTorch 等の取得)は実行していないため、学習・推論の動作と速度は未検証です。検証後はアプリを終了し、生成物と dmg を削除しています。
まとめ
実測で分かったこと
・Unsloth は 2026-08-11 にデスクトップアプリを追加した。ライブラリ版の置き換えではなく併存(PyPI は 2026-08-25 にも更新)
・dmg は 45MB、中身は Tauri 製の起動役(60.8MB バイナリ)と 6,044行のインストーラ。PyTorch は含まれない
・起動すると disposition=NotInstalled を記録して停止。実環境は初回起動時に uv + venv + PyTorch で構築される
・llama.cpp / whisper.cpp / stable-diffusion.cpp / Node まで用意する「ローカルAIの作業台」設計
・ライセンスが2系統:ライブラリは Apache-2.0、studio/ 配下は AGPL-3.0-only
・署名・公証は正規(Unsloth AI Inc.)。ただしバージョンは 0.1.x-beta で変化が速い
日本語圏の Unsloth 記事は、検索した限りいずれもライブラリ版を前提としており、デスクトップアプリ化に触れたものは見当たりませんでした(2026-08-26 時点)。まだ beta であることを踏まえつつ、「学習まで GUI で完結する」方向がどこまで実用に耐えるかは、初回セットアップを通した実測で改めて確かめる価値があります。
参照ソース
・unslothai/unsloth(公式リポジトリ・README) — ★数・説明文・README 冒頭の位置づけ
・Unsloth Releases — 「Introducing Unsloth Desktop」を含むリリース時系列
・unsloth — PyPI — ライブラリ版が現役で更新されていることの確認
・studio/LICENSE.AGPL-3.0 — Studio 側のライセンスと install_*.py 群