Unsloth Desktop で最初の1回を回す順番 ─ 既定が30ステップなので、触るのは2周目から
学習画面を開くと、モデル、データセット、パラメーター、構成が並ぶ。パラメーターを開けば学習率もランクも勾配累積も出てくる。ここで手が止まる、というのは自分もよく分かる。
止まらなくていい理由が、公式ドキュメントと同梱ソースを読んで分かった。モデルを選んだ瞬間に、そのモデル用の既定値が流し込まれる。中身は「30ステップだけ回す」設定で、ほぼ全モデルがそうだ。
だから最初の1回は、モデルとデータセットを選んで Start Training を押すだけでいい。触るのは通ったあとの2周目から。以下は自分がこれから確かめる順番。まだ実行していないので所要時間も loss も出てこない。数字は公式の記載と実物の設定ファイルから拾った。
バージョンの話を先に片付けておく。changelog でタグが付いた最新は v0.1.51-beta(2026年7月29日)、実際に同梱されている Studio は v0.1.701-beta。今朝の記事で 0.1.61-beta と書いたのは古かった。
画面は5つに割れている
日本語UIのステップ名はモデル、データセット、パラメーター、構成の4つ。内部の定義は Model Type / Model / Dataset / Parameters / Summary の5段階で、モデル選びが種類とモデルの2つに割れている。実画面が4表示か5表示かはコードだけでは断定できなかった。
種類を決めて、モデルと手法を決めて、データを選んで、パラメーターを見て、確認して開始する。既定値が流し込まれるのは2番目、モデルを確定した瞬間だ。

モデルは表よりバッジで決める
公式の VRAM 表はある。QLoRA(4bit)なら 3B で 3.5GB、7B で 5GB、8B で 6GB、70B でも 41GB。LoRA(16bit)側は跳ね上がり、3B で 8GB、70B で 164GB。
ただしこの表、最小行が 3B だ。1B も 2B も 4B も載っていない。しかも「絶対最小値」と前置きされている。
実用的なのは画面のほうだ。モデル選択リストの各モデルに `Needs ~XGB VRAM (GPU: YGB)` というバッジが出て、危ないものには `Tight`、載らないものには `OOM` が付く。手元のGPUを見たうえでの推定なので、表より早い。
(スクショ1: モデル選択画面のリスト。各モデルの `Needs ~XGB VRAM (GPU: YGB)` バッジと、`Tight` や `OOM` のバッジが同時に見える状態で。表を見ずにここだけで選べる、というのが伝わるように)

手法は4つある。ドキュメントには3つしか無い
Training Method は QLoRA、LoRA、Full fine-tune、Continued pretraining の4つ。公式ドキュメントの表は最初の3つしか書いていないが、実装には CPT が入っている。
QLoRA は4bit量子化で VRAM 最少、LoRA は16bitアダプタでバランス型、フルは全重み更新で最も食う。最初の1回は QLoRA でいい。悩む要素がない。
(スクショ2: Model Type(Text / Vision / Audio / Embeddings)と Training Method の選択画面。QLoRA / LoRA / Full fine-tune / Continued pretraining の4つが並んで見える状態で。公式ドキュメントに書かれていない4つ目があることを見せたい)
データセットは同梱の組み合わせが最短
公式ドキュメントに最小構成のチュートリアルは無い。代わりに、そのまま動く設定 YAML が2本同梱されている。中身は `unsloth/Qwen2.5-0.5B` と `tatsu-lab/alpaca` の組み合わせだ。
Hub の検索欄を空のまま開くとキュレーション済みのリストが出る。先頭は `unsloth/alpaca-cleaned`。迷ったらこれでいい。
自前のデータなら形式は3つ。alpaca は `instruction` と `output` が必須で `input` は任意、sharegpt は `conversations` で `from` と `value` が human と gpt を往復する形、chatml は `messages` で `role` と `content` が user と assistant を往復する形。JSONL の1行に潰すとこうなる。
{"instruction": "...", "input": "", "output": "..."}ただしこの1行の形そのものは公式には例示が無い。載っているのは整形済みの JSON 断片で、上の形はそれと実装のカラム要件から自分が組み立てたものだ。カラムマッピングのダイアログが「Looks good」を出すかで答え合わせすることになる。
件数は最低100行、できれば1000行以上が公式の線。PDF や DOCX は学習タブに直接投げられず、Data Recipes を通せと言われる。

パラメーターは触らなくていい
ここが今回いちばん言いたいところ。公式ドキュメント自身が「モデルを選ぶと設定がバックエンドから取得され、全ハイパーパラメータに妥当な既定値が事前入力される」と書いている。
その実体が `model_defaults/` の YAML 群だ。全78ファイル中75ファイルが `max_steps: 30` と `num_epochs: 0`。残りは 50 が2件、60 が1件。どのモデルを選んでも、まず30ステップだけ回る設定が入る。
最大ステップ数とエポック数は排他で、片方を0にすると相手に譲る。エポック数のツールチップも「0 に設定すると最大ステップ数に基づいて実行されます」と書いてある。既定はステップ側に倒れている。
もうひとつ、パラメーター画面には「シンプル」と「詳細」の切り替えがある。既定はシンプルなので、項目が最初から全部見えるわけではない。全部を確かめたいときは詳細に切り替える。
(スクショ3: パラメーター画面。「シンプル」と「詳細」の切り替えが写っていて、最大ステップ数が 30 になっているところが読める状態で。何も触っていないのに30が入っている、という一枚)

それでも中身は見ておく
押す前に一度は見ておきたい既定値。default.yaml の値で、モデルによっては上書きされる。
コンテキスト長 2048
学習率 2e-4(CPT は 5e-5、フルは 2e-5 が推奨値として画面に書いてある)
Rank 16、Alpha 16(ツールチップは「通常は rank の2倍」と言っている)
バッチサイズ 2、勾配累積 4
オプティマイザー AdamW 8-bit、シード値 3407
勾配チェックポイント unsloth
落とし穴がひとつ。評価ステップ間隔(Eval Steps)はステップ数ではなく、総ステップに対する 0〜1 の割合だ。ツールチップに「0.01 = ステップの 1% ごとに評価を実行」と例まである。ここに 100 と入れたら意図と違うことが起きる。
以前 Train on Completions と呼ばれた項目は「アシスタントの応答のみ学習」に改名されている。旧名で探すと見つからない。W&B や TensorBoard の値は残っているが、Logging タブが現行UIに出ているかは確認できなかった。
Start Training の前に Run preview を見る
開始ボタンの手前に Run preview というカードがある。総ステップ数、Batch、Context、LR、Hardware が並び、GPU が見つからないときは "No GPU detected" になる。
確かめるのは総ステップ数だけでいい。30 と出ていれば狙いどおり短いランだ。
「何分で終わる」という公式の目安は、探した範囲ではどこにも無かった。ステップ数と、進捗画面に出る「ステップ/秒」から自分で見積もるしかない。
(スクショ4: Start Training の直前の Run preview カード。総ステップ数、Batch、Context、LR、Hardware が全部読める状態で。押す前に確認するのはこの一枚だけでいい、と分かるように)
走っている間と、止め方が2つある
学習が始まると、進捗、Loss、LR、Grad Norm、経過時間、残り時間(ETA)が並ぶ。右の GPU モニターは使用率、温度、VRAM、電力が数秒ごとに動く。
チャートは4種類。トレーニング Loss、学習率、勾配ノルム、そして評価用分割を設定したときだけ出る評価 Loss。未設定だと「Set eval dataset & eval_steps to track eval loss」と出るだけだ。
止め方の違いは覚えておいたほうがいい。「停止して保存」は後で再開できるチェックポイントを書き、保存せずに止めると再開できない。History タブの再開が効くのも、チェックポイントが残っているランだけ。
(スクショ5: 学習中の画面全体。GPU モニターの使用率・温度・VRAM・電力と、4つのライブチャートが同時に入る状態で。Stop & Save と Cancel のボタンも画面内に収める)
OOM が出たら、まずバッチサイズ
公式が順序を明示しているのは1点だけ。「OOM の原因はバッチサイズが高すぎること。1、2、3 のどれかにすれば VRAM が減る」とある。
下げたぶんは勾配累積を上げて埋める。実効バッチサイズを保ったまま VRAM を減らす狙いで、これも公式の指示だ。勾配チェックポイントは `unsloth` が推奨の既定なので、外さない。
「コンテキストを下げる」も効くはずだが、これを OOM 対処として明示した公式の記述は見つからなかった。一般論として区別しておく。
書き出しは3方式
Merged Model はアダプタをベース重みにマージした16bitモデルで、vLLM や TGI にそのまま載せたいとき向け。LoRA Only はアダプタだけの ~100 MB 前後で、ベースモデルと組み合わせて使う。GGUF / Llama.cpp は llama.cpp、Ollama、LM Studio 用。
GGUF を選ぶと Quantization Levels が出る。量子化は12種類で、`Q4_K_M` に推奨マーク。複数選ぶとその数だけファイルが出る。IQ 系の低ビットを選ぶと imatrix トグルが強制的に入り、通常の量子化でも品質改善に使える。
Merged 側にも精度の選択肢があり、16-bit のほか FP8 や INT4 系が並ぶ。多くは NVIDIA 環境かつ vLLM 向けだ。書き出したファイルの落ちる先は文書に明記が無く、Export の途中で保存先を選ぶ形になっている。
(スクショ6: Export 画面。Merged Model / LoRA Only / GGUF の3方式と、Quantization Levels の一覧(Q4_K_M の推奨マーク)、imatrix のトグルが入る状態で。出口が3つあることと、量子化を複数選べることを見せたい)

効いたかどうかは Chat で並べる
学習が終わるとトーストが出る。「次のステップ: ベースモデルとファインチューニング後の出力を比較します」と言われ、そのまま「チャットで比較」ボタンが付く。
Chat の Model Arena は2つのモデルに同じプロンプトを投げて並べる機能で、公式は学習前後の比較にこれを使えと書いている。Export のガイドの最終ステップも「Chat で出力を比較してテストする」。自動でスコアを出す機能は見当たらず、目視で並べるのが公式の答えということになる。
(スクショ7: 学習完了時のトースト。「チャットで比較」ボタンが写っている状態で。学習が終わった直後の導線がここだと分かるように)
いちばん多いトラブルはチャットテンプレート
Unsloth の中ではまともに動くのに、書き出して他の環境に持っていくと結果が崩れる。症状は文字化け、終わらない生成、同じ出力の繰り返し。公式が挙げる原因は4つ。
学習時と違うチャットテンプレートを当てている。eos token が正しくない。推論エンジンが余計な開始トークンを足している、あるいは逆に足していない。会話用のノートブックでテンプレートを強制すればたいてい直る、とも書いてある。
回避策としていちばん現実的なのは `unsloth/` 名前空間のモデルを使うことだと思う。オリジナルのアップロード時点で `chat_template` に誤りが含まれることがあり、Unsloth は量子化版を上げるたびに検査・修正していると書いている。推奨モデルが全部 `unsloth/` 始まりなのとも辻褄が合う。
Mac、CPU、AMD/Intel の現在地
今朝の記事で「Apple Silicon は公式内で記述が食い違う」と書いた。あれは対象の違いだった。要件ページは Mac について「学習、MLX、GGUF 推論のすべてに対応」と書いている。開発中とされているのは `pip install` するコード版のほうだ。
MLX 側の制限はある。ストリーミングは未対応、一部の LoRA バリアントも Apple Silicon では使えない。
CPU のみでできるのは Chat と Data Recipes まで。学習は列挙に入っていない。AMD と Intel は v0.1.51-beta(2026年7月29日)で、Studio 上の学習が正式にサポートされた。
1回通ったら、2周目に変えること
最初の30ステップは、学習の質を見るためのものではないと思っている。ダウンロードが通るか、マッピングが当たるか、VRAM が足りるか、書き出しまで行けるか。通り道の確認。
2周目は、最大ステップ数を0にしてエポック数へ切り替えるところから。評価用分割を足して評価 Loss を出し、バッチサイズと勾配累積を手元のGPUに合わせる。Rank と Alpha はそのあと。
聞いてみたいのは、既定の30ステップで何か変化を感じ取れた人がいるかどうか。何行あたりから既定のままでは足りなくなるのかも知りたい。詰まったなら、どのステップで折れたかをコメントで教えてください。
#Unsloth #UnslothDesktop #ファインチューニング #LoRA #QLoRA #ローカルLLM #LLM #GGUF #llamacpp #機械学習 #AI
いいなと思ったら応援しよう!
サーバー代とコーヒー代になります☕ 役に立ったら応援よろしくお願いします!