# Unsloth Studioを始める

Unsloth Studio は、コードを一切書かずに LLM をファインチューニングできる、ローカルのブラウザベース GUI です。モデルの読み込み、データセットの整形、ハイパーパラメータの設定、ライブ学習の監視を処理する、すっきりしたインターフェースで学習パイプラインを包み込みます。

<a href="#studio-quickstart" class="button secondary" data-icon="bolt">Studio</a><a href="#data-recipes-quickstart" class="button secondary" data-icon="hat-chef">データレシピ</a><a href="#export-quickstart" class="button secondary" data-icon="box-isometric">エクスポート</a><a href="#chat-quickstart" class="button secondary" data-icon="comment-dots">チャット</a><a href="#video-tutorial" class="button secondary" data-icon="video">動画</a>

#### Unsloth Studio をセットアップ

まず、ローカルインストールまたはクラウドオプションのいずれかを使って Unsloth Studio を起動します。 [インストール手順](https://unsloth.ai/docs/jp/xin-gui/studio/install) をセットアップに合わせて確認するか、当社の [無料 Colab](https://unsloth.ai/docs/jp/xin-gui/studio/..#google-colab-notebook) ノートブックを使用してください。ローカルセットアップでは、次を実行します:

```bash
unsloth studio -H 0.0.0.0 -p 8888
```

次に `http://localhost:8888` をブラウザで開きます。

{% columns %}
{% column %}
初回起動時には、アカウントを保護し、後で再度サインインできるようにするためのパスワードを作成する必要があります。

その後、モデル、データセット、基本設定を選ぶための簡単なオンボーディングウィザードが表示されます。いつでもスキップして、すべてを手動で設定できます。
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FZPtRrwafzmVX54HhyyBD%2FScreenshot%202026-03-16%20at%2011.25.22%E2%80%AFPM.png?alt=media&#x26;token=9153c153-ec61-4fff-b1b9-db7f70ac2936" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

## <i class="fa-bolt">:bolt:</i> Studio - クイックスタート

Unsloth Studio のホームページには、4 つの主な領域があります: [モデル](#id-1.-select-model-and-method), [データセット](#id-2.-dataset), [パラメータ](#id-3.-hyperparameters)、および [学習/設定](#id-4.-training-and-config)

* **モデルとデータの簡単セットアップ** Hugging Face またはローカルファイルから
* **柔軟な学習オプション** QLoRA、LoRA、またはフルファインチューニングなど。デフォルト値もあらかじめ入力されています
* **便利な設定ツール** 分割、列マッピング、ハイパーパラメータ、YAML 設定用
* **優れた学習の可視性** ライブ進捗、GPU 統計、チャート、起動状況付き

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FxV1PO5DbF3ksB51nE2Tw%2Fmore%20cropped%20ui%20for%20homepage.png?alt=media&#x26;token=f75942c9-3d8d-4b59-8ba2-1a4a38de1b86" alt="" width="563"><figcaption></figcaption></figure></div>

### 1. モデルと手法を選択

#### **モデルタイプ**

ユースケースに合うモダリティを選択してください:

| タイプ      | ユースケース         |
| -------- | -------------- |
| **テキスト** | チャット、指示追従、補完   |
| **ビジョン** | 画像 + テキスト（VLM） |
| **音声**   | 音声 / オーディオ理解   |
| **埋め込み** | 文埋め込み、検索       |

#### **学習手法**

3 つの手法が利用可能で、ピル型セレクターで切り替えます:

| 手法               | 説明                          | VRAM |
| ---------------- | --------------------------- | ---- |
| **QLoRA**        | 4 ビット量子化ベースモデル + LoRA アダプター | 最小   |
| **LoRA**         | フル精度ベースモデル + LoRA アダプター     | 中    |
| **フルファインチューニング** | すべての重みを学習                   | 最大   |

任意の Hugging Face モデル名を入力するか、コンボボックスから Hub を直接検索してください。 `~/.unsloth/studio/models` に保存されたローカルモデルと、Hugging Face キャッシュも一覧に表示されます。

{% hint style="warning" %}
GGUF 形式のモデルは学習対象から除外されます - 推論専用です。
{% endhint %}

モデルを選択すると、Studio は自動的にバックエンドからその設定を取得し、すべてのハイパーパラメータに対して妥当なデフォルト値を事前入力します。

**HuggingFace トークン**

モデルが gated の場合（例: Llama、Gemma）は、ここに Hugging Face アクセストークンを貼り付けてください。トークンはリアルタイムで検証され、無効な場合はその場でエラーが表示されます。

### 2. データセット

{% columns %}
{% column %}
データの取得元を選ぶために、2 つのタブを切り替えます:

* **HuggingFace Hub** - Hub に対するライブ検索。各結果には最終更新日が表示されます。
* **ローカル** - ドラッグ＆ドロップするかクリックして、次のような非構造化または構造化ファイルをアップロードします: `PDF`, `DOCX`, `JSONL`, `JSON`, `CSV`、または `Parquet` 形式。以前にアップロードしたデータセットは、自動更新される一覧に表示されます。

詳細な [データセットガイドはこちら](https://unsloth.ai/docs/jp/meru/fine-tuning-llms-guide/datasets-guide).

Studio に、データをどのように解釈して整形するかを指示します:
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FCtWUm7GdHnKbe14fUQyT%2Fupdated_dataset.webp?alt=media&#x26;token=3fcefe8d-b6a4-44c2-be9b-6dc282166095" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

| 形式         | 使用する場面                               |
| ---------- | ------------------------------------ |
| `auto`     | Unsloth に形式を自動判定させる                  |
| `alpaca`   | `instruction` / `input` / `output` 列 |
| `chatml`   | OpenAI スタイル `messages` 配列            |
| `sharegpt` | ShareGPT スタイルの会話                     |

**分割とスライシング**

* **サブセット** - データセットカードから自動入力されます。
* **Train split / Eval split** - 使用する split を選択します。eval split を設定すると、 **Eval Loss** チャートが学習中に有効になります。
* **データセットスライス** - クイック実験のために、学習を行範囲（開始インデックス / 終了インデックス）に任意で制限します。

**列マッピング**

Studio がデータセット列を正しい役割に自動マッピングできない場合、 **データセットプレビューダイアログ** が開きます。サンプル行を表示し、各列を `instruction`, `input`, `output`, `image`などに割り当てることができます。可能な場合は推奨マッピングが事前入力されます。

### 3. ハイパーパラメータ

パラメータは折りたたみ可能なセクションにグループ化されています。詳細な [LoRA ハイパーパラメータガイド](https://unsloth.ai/docs/jp/meru/fine-tuning-llms-guide/lora-hyperparameters-guide) はこちら:

{% content-ref url="../../meru/fine-tuning-llms-guide/lora-hyperparameters-guide" %}
[lora-hyperparameters-guide](https://unsloth.ai/docs/jp/meru/fine-tuning-llms-guide/lora-hyperparameters-guide)
{% endcontent-ref %}

| パラメータ       | デフォルト  | 注記                              |
| ----------- | ------ | ------------------------------- |
| **最大ステップ数** | `0`    | `0` は、代わりに Epochs を使用することを意味します |
| **コンテキスト長** | `2048` | オプション: 512 → 32768              |
| **学習率**     | `2e-4` |                                 |

**LoRA 設定**

*（フルファインチューニングが選択されている場合は非表示）*

| パラメータ          | デフォルト  | 注記                                                                          |
| -------------- | ------ | --------------------------------------------------------------------------- |
| **ランク**        | `16`   | スライダー 4–128                                                                 |
| **Alpha**      | `32`   | スライダー 4–256                                                                 |
| **ドロップアウト**    | `0.05` |                                                                             |
| **LoRA バリアント** | `LoRA` | `LoRA` / `RS-LoRA` / `LoftQ`                                                |
| **対象モジュール**    | すべてオン  | `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj` |

対象が **ビジョン** 画像データセットを持つモデルの場合、追加で 4 つのチェックボックスが表示されます。ファインチューニング対象:

| Vision Layers | Language Layers | Attention Modules | MLP Modules |
| ------------- | --------------- | ----------------- | ----------- |

**学習ハイパーパラメータ**

3 つのタブに整理されています:

{% tabs %}
{% tab title="最適化" %}

| パラメータ   | デフォルト       |
| ------- | ----------- |
| Epochs  | 3           |
| バッチサイズ  | 4           |
| 勾配累積    | 8           |
| 重み減衰    | 0.01        |
| オプティマイザ | AdamW 8-bit |

{% endtab %}

{% tab title="スケジュール" %}

| パラメータ        | デフォルト   |
| ------------ | ------- |
| LR スケジューラ    | linear  |
| ウォームアップステップ  | 5       |
| 勾配チェックポイント   | unsloth |
| 乱数シード        | 3407    |
| 保存ステップ       | 0       |
| 評価ステップ       | 0       |
| Packing      | false   |
| 補完に対して学習     | false   |
| {% endtab %} |         |

{% tab title="ロギング" %}

| パラメータ              | デフォルト          |
| ------------------ | -------------- |
| W\&B を有効化          | false          |
| W\&B プロジェクト        | llm-finetuning |
| TensorBoard を有効化   | false          |
| TensorBoard ディレクトリ | runs           |
| ログ頻度               | 10             |
| {% endtab %}       |                |
| {% endtabs %}      |                |

{% hint style="info" %}
[**Unsloth Gradient Checkpointing**](https://unsloth.ai/docs/jp/burogu/500k-context-length-fine-tuning#unsloth-gradient-checkpointing-enhancements)**: `unsloth`** は、標準の PyTorch オプションと比べて VRAM 使用量を大幅に削減できる、Unsloth 独自のメモリ効率の高い実装を使用します。推奨されるデフォルトです。
{% endhint %}

### 4. 学習と設定

右下のカードには、3 つの設定管理ボタンと **学習開始** ボタンがあります。

| ボタン        | 操作                          |
| ---------- | --------------------------- |
| **アップロード** | 以前に保存した `.yaml` 設定ファイルを読み込む |
| **保存**     | 現在の設定を YAML にエクスポートする       |
| **リセット**   | すべてのパラメータをモデルのデフォルトに戻す      |

Start Training ボタンは、モデルとデータセットの両方が設定されるまで無効のままです。検証エラーはその場で表示されます - たとえば、eval split を選択せずに eval steps を設定した場合や、テキスト専用モデルに vision データセットを組み合わせた場合などです。

#### 読み込み画面

{% columns %}
{% column %}
クリックすると **学習開始**、バックエンドがすべてを準備している間、全画面オーバーレイが表示されます。

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FYtsUxHI0szGw8ZPxCHep%2Fimage.png?alt=media&#x26;token=1701f4af-ef35-48da-80e7-4aba4e80f4d4" alt="" width="375"><figcaption></figcaption></figure></div>
{% endcolumn %}

{% column %}
オーバーレイには、フェーズのライブ更新付きアニメーションターミナルが表示されます:

* 青: モデル / データセットをダウンロード中
* アンバー: モデル / データセットを読み込み中
* 青: 設定中
* 緑: 学習中

いつでも、隅にある **×** ボタンを使ってキャンセルできます。停止前には確認ダイアログが表示されます。
{% endcolumn %}
{% endcolumns %}

### 学習進捗と可観測性

最初の学習ステップが到達すると、オーバーレイは閉じられ、ライブ学習ビューが表示されます。進捗バーでステップが 100% に達すると、ファインチューニング処理は完了です。経過時間とトークン数を確認できます。&#x20;

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fah3G1rYgRaDNY8Ay6Uw7%2Fimage.png?alt=media&#x26;token=0528c15e-7a4b-4028-8070-95dc0871da5d" alt="" width="563"><figcaption></figcaption></figure></div>

{% columns %}
{% column %}

#### ステータスパネル

左列には次が表示されます:

* **Epoch** - 現在の小数付きエポック（例: `Epoch 1.23`)
* **進捗バー** - ステップベース、割合付き
* **主要メトリクス**:
  * **損失** - 小数点以下 4 桁の学習損失
  * **LR** - 科学表記法での現在の学習率
  * **Grad Norm** - 勾配ノルム
  * **モデル** - 学習中のモデル
  * **手法** - `QLoRA` / `LoRA` / `フル`
* **時間行** - 経過時間、ETA、1 秒あたりのステップ数、処理済み総トークン数
  {% endcolumn %}

{% column %}

#### GPU モニター

右列には、数秒ごとにポーリングされるライブ GPU 統計が表示されます:

* **使用率** - パーセンテージバー
* **温度** - °C バー
* **VRAM** - 使用済み / 合計 GB
* **電力** - 消費 / 上限（ワット）

#### 学習の停止

次を使用します **学習停止** 進捗カード右上のボタン。ダイアログで 2 つの選択肢が表示されます:

* **停止して保存** - 停止前にチェックポイントを保存します
* **キャンセル** - チェックポイントなしで直ちに停止します
  {% endcolumn %}
  {% endcolumns %}

{% columns %}
{% column %}

#### チャート

学習の進行に応じて 4 つのライブチャートが更新されます:

1. **学習損失** - 生の値に加え、EMA 平滑化ラインと移動平均参照ライン
2. **学習率** - LR スケジュール曲線
3. **勾配ノルム** - ステップごとの勾配ノルム
4. **Eval Loss** - eval split を設定した場合にのみ表示されます
   {% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FRgXfe3sobdQWxha8yslr%2Fimage.png?alt=media&#x26;token=b3aa9004-778b-4e3d-85b1-40a205ad0602" alt="" width="278"><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
各チャートには設定（歯車アイコン）があり、次を含みます:

| オプション           | デフォルト              |
| --------------- | ------------------ |
| 表示ウィンドウ         | 直近 N ステップ スライダー    |
| EMA 平滑化         | `0.6`              |
| 生データを表示         | オン                 |
| 平滑化を表示          | オン                 |
| 平均ラインを表示        | オン                 |
| スケール（系列ごと）      | 線形 / 対数            |
| 外れ値クリッピング       | クリップなし / p99 / p95 |
| {% endcolumn %} |                    |

{% column %}

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FFJtjQpAgOFaieyQCYhkq%2Fimage.png?alt=media&#x26;token=4da9cdc2-c088-4ab8-8d0d-40d8d392ee03" alt="" width="276"><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

#### 設定ファイル

{% columns %}
{% column %}
すべての学習設定は YAML ファイルとして保存・再読み込みできます。ファイル名は自動的に次の形式になります:

```
{model}_{method}_{dataset}_{timestamp}.yaml
```

{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FuGAKdGkANbh2wIENA9X7%2Fimage.png?alt=media&#x26;token=9553db5b-5c88-4556-be49-fe61035edf11" alt="" width="178"><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

YAML は 3 つのセクションに構成されています:

{% code expandable="true" %}

```yaml
training:
  max_steps: 0
  num_train_epochs: 3
  per_device_train_batch_size: 4
  ...

lora:
  r: 16
  lora_alpha: 32
  ...

logging:
  report_to: none
  ...
```

{% endcode %}

これにより、実行の再現、設定の共有、または実験のバージョン管理が容易になります。

## <i class="fa-hat-chef">:hat-chef:</i> データレシピ - クイックスタート

[Unsloth Data Recipes](https://unsloth.ai/docs/jp/xin-gui/studio/data-recipe) では、PDF や CSV ファイルなどのドキュメントをアップロードし、使用可能なデータセットに変換できます。グラフノードワークフローを通じて、視覚的にデータセットを作成・編集できます。

レシピページがメインの入口です。レシピはブラウザ内にローカル保存されるため、後で保存した作業に戻れます。ここから、空のレシピを作成することも、ガイド付き学習レシピを開くこともできます。

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FQ6e19jESrJg0VjHnX58c%2Fdata%20recipes%20final.png?alt=media&#x26;token=8d74e453-815d-4790-83d1-76d0bc80a3ce" alt="" width="563"><figcaption></figcaption></figure></div>

Data Recipes は同じ基本的な流れに従います。レシピページを開き、レシピを作成または選択し、エディターでワークフローを構築し、それを検証してプレビューを実行し、出力が正しく見えたら完全なデータセットを実行します。シードデータと生成ブロックを追加し、ワークフローを検証し、サンプル出力をプレビューしてから、完全なデータセット構築を実行します。Unsloth Data Recipes は NVIDIA の [DataDesigner](https://github.com/NVIDIA-NeMo/DataDesigner).

を搭載しています。一目で分かる通常のワークフローは次のようになります:

1. レシピページを開きます。
2. 新しいレシピを作成するか、既存のものを開きます。
3. データセットワークフローを定義するためにブロックを追加します。
4. クリック **検証** して設定の問題を早期に検出します。
5. プレビューを実行して、サンプル行をすばやく確認します。
6. レシピの準備ができたら、完全なデータセット構築を実行します。
7. 進捗と出力を、グラフまたは **Executions** ビューでライブ確認して、モードの詳細を確認します。
8. 結果のデータセットを **Studio** で選択し、モデルをファインチューニングします。

## <i class="fa-box-isometric">:box-isometric:</i> エクスポート - クイックスタート

Unsloth Studio の「Export」を使うと、デプロイ、共有、または Unsloth、llama.cpp、Ollama、vLLM などでのローカル推論のために、モデルを GGUF、Safetensors、または LoRA にエクスポート、保存、変換できます。学習済みチェックポイントをエクスポートすることも、既存モデルを変換することもできます。

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FrrFY8YczW3dDpfYi1k9f%2FScreenshot%202026-03-15%20at%209.28.19%E2%80%AFPM.png?alt=media&#x26;token=d2729e16-799f-48f0-8b07-0248b93fa599" alt="" width="563"><figcaption></figcaption></figure></div>

Unsloth Studio でのモデルのエクスポートに関する詳細なチュートリアル / ガイドはこちらでご覧いただけます:

{% content-ref url="export" %}
[export](https://unsloth.ai/docs/jp/xin-gui/studio/export)
{% endcontent-ref %}

## <i class="fa-comment-dots">:comment-dots:</i> チャット - クイックスタート

[Unsloth Studio Chat](https://unsloth.ai/docs/jp/xin-gui/studio/chat) では、コンピューター上で 100% オフラインでモデルを実行できます。Hugging Face またはローカルファイルから、GGUF や safetensors などのモデル形式を実行できます。

* **ダウンロード + 実行** GGUF、ファインチューニング済みアダプター、safetensors などの任意のモデル
* [**比較** 異なるモデルの](#model-arena) 出力を並べて表示
* **アップロード** プロンプト内で文書、画像、音声を使用
* [**調整** 推論](#generation-settings) 温度、top-p、top-k、システムプロンプトなどの設定

<div data-with-frame="true"><figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FRCnTAZ6Uh88DIlU3g0Ij%2Fmainpage%20unsloth.png?alt=media&#x26;token=837c96b6-bd09-4e81-bc76-fa50421e9bfb" alt="" width="563"><figcaption></figcaption></figure></div>

Unsloth Studio でのモデル実行に関する詳細なチュートリアル / ガイドはこちらでご覧いただけます:

{% content-ref url="chat" %}
[chat](https://unsloth.ai/docs/jp/xin-gui/studio/chat)
{% endcontent-ref %}

## <i class="fa-video">:video:</i> 動画チュートリアル

{% hint style="warning" %}
動画に表示されている Unsloth Studio のバージョンは古く、現在のバージョンを反映していません。
{% endhint %}

{% columns fullWidth="true" %}
{% column %}
{% embed url="<https://www.youtube.com/watch?v=mmbkP8NARH4>" %}

Studio を始めるために NVIDIA が作成した動画チュートリアルはこちらです:
{% endcolumn %}

{% column %}
{% embed url="<https://youtu.be/1lEDuRJWHh4?si=GHaS77ZZPOGjn3GJ>" %}

Unsloth Studio のインストール動画チュートリアル
{% endcolumn %}
{% endcolumns %}

## 高度な設定

### CLI コマンド

Unsloth CLI（`cli.py`）は、次のコマンドを提供します:

```
使用方法: cli.py [COMMAND]

コマンド:
  train             モデルをファインチューニング
  inference         学習済みモデルで推論を実行
  export            学習済みアダプターをエクスポート
  list-checkpoints  保存済みチェックポイントを一覧表示
  ui                Unsloth Studio の Web UI を起動
  studio            Studio を起動（エイリアス）
```

### プロジェクト構成

{% code expandable="true" %}

```
new-ui-prototype/
├── cli.py                     # CLI エントリポイント
├── cli/                       # Typer CLI コマンド
│   └── commands/
│       ├── train.py
│       ├── inference.py
│       ├── export.py
│       ├── ui.py
│       └── studio.py
├── setup.sh                   # ブートストラップスクリプト（Linux / WSL / Colab）
├── setup.ps1                  # ブートストラップスクリプト（Windows ネイティブ）
├── setup.bat                  # ダブルクリックで setup.ps1 を起動するラッパー
├── install_python_stack.py    # クロスプラットフォーム Python 依存関係インストーラー
└── studio/
    ├── backend/
    │   ├── main.py            # FastAPI アプリとミドルウェア
    │   ├── run.py             # サーバーランチャー（uvicorn）
    │   ├── auth/              # 認証ストレージと JWT ロジック
    │   ├── routes/            # API ルートハンドラー
    │   │   ├── training.py
    │   │   ├── models.py
    │   │   ├── inference.py
    │   │   ├── datasets.py
    │   │   └── auth.py
    │   ├── models/            # Pydantic のリクエスト/レスポンススキーマ
    │   ├── core/              # 学習エンジンと設定
    │   ├── utils/             # ハードウェア検出、ヘルパー
    │   └── requirements.txt
    ├── frontend/
    │   ├── src/
    │   │   ├── features/      # 機能モジュール
    │   │   │   ├── auth/      # ログイン / サインアップフロー
    │   │   │   ├── training/  # 学習設定と監視
    │   │   │   ├── studio/    # メイン Studio ワークスペース
    │   │   │   ├── chat/      # 推論チャット UI
    │   │   │   ├── export/    # モデルエクスポートフロー
    │   │   │   └── onboarding/# オンボーディングウィザード
    │   │   ├── components/    # 共有 UI コンポーネント（shadcn）
    │   │   ├── hooks/         # カスタム React フック
    │   │   ├── stores/        # Zustand 状態ストア
    │   │   └── types/         # TypeScript 型定義
    │   ├── package.json
    │   └── vite.config.ts
    └── tests/                 # バックエンドテストスイート
```

{% endcode %}

### API リファレンス

すべてのエンドポイントには有効な JWT が必要です `Authorization: Bearer <token>` ヘッダー（ただし `/api/auth/*` および `/api/health`).

| 手法     | エンドポイント               | 説明                           |
| ------ | --------------------- | ---------------------------- |
| `GET`  | `/api/health`         | ヘルスチェック                      |
| `GET`  | `/api/system`         | システム情報（GPU、CPU、メモリ）          |
| `POST` | `/api/auth/signup`    | アカウント作成（初回実行時はセットアップトークンが必要） |
| `POST` | `/api/auth/login`     | ログインして JWT トークンを受け取る         |
| `POST` | `/api/auth/refresh`   | 期限切れのアクセストークンを更新する           |
| `GET`  | `/api/auth/status`    | 認証が初期化されているか確認する             |
| `POST` | `/api/train/start`    | 学習ジョブを開始する                   |
| `POST` | `/api/train/stop`     | 実行中の学習ジョブを停止する               |
| `POST` | `/api/train/reset`    | 学習状態をリセット                    |
| `GET`  | `/api/train/status`   | 現在の学習ステータスを取得                |
| `GET`  | `/api/train/metrics`  | 学習メトリクス（損失、学習率、ステップ）を取得      |
| `GET`  | `/api/train/stream`   | リアルタイムの学習進捗のSSEストリーム         |
| `GET`  | `/api/models/`        | 利用可能なモデルを一覧表示                |
| `POST` | `/api/inference/chat` | 推論用のチャットメッセージを送信             |
| `GET`  | `/api/datasets/`      | データセットの一覧表示 / 管理             |
