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 のバイナリに何が入っていて、何が入っていないのか、そしてライブラリ版との関係とライセンス構成を実測で確かめます。

Unsloth Desktopの構成図。45MBのdmgに含まれるのはTauri製の起動役バイナリとinstall.shで、PyTorchやllama.cppなどの実行環境は初回起動時にネットワークから取得することを示す。
Unsloth Desktop(v0.1.803-beta)の実測構成。配布物に含まれるのは起動役とインストーラで、MLスタックは初回起動時に取得する。

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.shPyTorch は入っていない
何をする:初回起動時に uv・Python仮想環境・PyTorch・llama.cpp などを取得して、localhost:8888 起点の Studio を立てる
置き換えではない:PyPI のライブラリ版は 2026.8.21 が 2026-08-25 に公開され現役。両者は併存
ライセンスが分かれる:リポジトリ直下は Apache-2.0studio/ 配下は 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 を回すためのライブラリという認識が定着しています。

今回の変化は、このライブラリの上に GUI が乗ったことではなく、配布の入口そのものがアプリに置き換わったことです。README の一番上にあるのは 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の作業台」へ的が広がっているのが読み取れます。

読者の3つの問いへの答え
何ができる:ローカルでモデルを実行し、さらに学習(ファインチューニング)まで 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 の主要項目は次のとおりです。

CFBundleIdentifierai.unsloth.studio(アプリの内部名は “studio”)
CFBundleShortVersionString / CFBundleVersion0.1.803-beta
LSMinimumSystemVersion10.13
CFBundleExecutableunsloth-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=4RAD85856Pflags=0x10000(runtime)(Hardened Runtime 有効)で、spctl の判定は acceptedsource=Notarized Developer IDorigin=Developer ID Application: Unsloth AI Inc. (4RAD85856P) でした。Apple の公証を通っており、Gatekeeper の回避操作なしに起動できます。ベータ版とはいえ配布の作法は整っています。

起動してみると「まだ何も入っていない」

Unsloth Desktopの初回起動フロー図。アプリ起動、preflightでNotInstalled判定、install.sh実行、localhost:8888でStudio起動の流れ。
起動しただけでは実行環境は入らない。tauri.log の実出力に基づく(初回セットアップ自体は未実行)。

実際に起動して挙動を見ました。プロセスは立ち上がり、メニューバーが 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 ——つまりアプリは起動直後に「実行環境がまだ入っていない」と判定し、サーバーを立てていません。この時点で待ち受けポートは存在しませんでした。

45MB のインストーラは本体ではなく入口です。実際の ML スタックは初回起動時にネットワーク越しに取得されます。「ダウンロードが軽いから手軽」ではなく、重い部分が初回起動に後ろ倒しされていると理解するのが正確です。

同梱の 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-torchsh 自身のオプションとして解釈されてしまうためです。ローカルに落として実行する場合は --no-torch などのフラグが使えます。

UNSLOTH_TORCH_INDEX_URL で PyTorch の取得先を差し替えられる点は、閉じたネットワークで運用する場合の突破口になります。ただし本記事では実際にミラーを指して通したわけではないので、成否は未検証です。

ライセンスが2つに分かれている

Unslothのライセンス分離図。リポジトリ直下のLICENSEはApache-2.0、studio配下のLICENSE.AGPL-3.0はAGPL-3.0-onlyであることを示す。
同一リポジトリ内でライセンスが2系統に分かれている。GitHub の表示はリポジトリ直下だけを見ている。

配布物を読んでいて見つけた、判断に影響する事実です。同梱の 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.0LICENSE・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 で完結させたい

配布サイズが示す設計思想の違い(実測)

macOS版インストーラの配布サイズ比較の棒グラフ。Unsloth Desktopが43.2MB、Ollamaが180.2MB、LM Studioが524.5MB。
各配布URLへ curl -sIL してヘッダの Content-Length を実測(2026-08-26 時点)。

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 同梱
Unsloth Desktop は LM Studio の 約12分の1、Ollama の約4分の1の配布サイズです。これは「軽い」のではなく、重い部分をいつ払うかの違い——ダウンロード時か、初回起動時か。学習まで含むと同梱すべきものが桁違いに大きくなるため、後者を選ぶのは合理的です。

ただし利用者から見ると、初回起動時にネットワークが要る取得サイズが事前に読めない社内プロキシ環境で詰まりやすいという副作用があります。オフライン環境での導入を前提にしている場合、この方式は相性が悪い点に注意してください(オフライン導入の可否は本記事では未検証)。

flowchart TD A["ローカルでモデルを扱いたい"] --> B{"学習(ファインチューニング)も
やるか?"} 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 群