> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune.md).

# gpt-oss: 実行ガイド

OpenAIの新しいオープンソースモデルを実行・ファインチューニングしましょう！

OpenAI が「**gpt-oss-120b」を** と「**gpt-oss-20b」を**」をリリースしました。Apache 2.0 ライセンスのもとで公開された、2 つの SOTA オープン言語モデルです。どちらの 128k コンテキストモデルも、同規模のオープンモデルよりも、推論、ツール使用、エージェント的タスクで優れています。今なら Unsloth を使ってローカルで実行・ファインチューニングできます！

<a href="#run-gpt-oss-20b" class="button secondary">gpt-oss-20b を実行</a><a href="#run-gpt-oss-120b" class="button secondary">gpt-oss-120b を実行</a><a href="#fine-tuning-gpt-oss-with-unsloth" class="button primary">gpt-oss をファインチューニング</a>

> [**ファインチューニング**](#fine-tuning-gpt-oss-with-unsloth) **gpt-oss-20b を無料で、当社の** [**Colabノートブック**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/gpt-oss-\(20B\)-Fine-tuning.ipynb)

学習に使用 [RL](/docs/jp/meru/reinforcement-learning-rl-guide.md), **gpt-oss-120b** o4-mini と **gpt-oss-20b** o3-mini に匹敵します。どちらも関数呼び出しと CoT 推論に優れ、o1 と GPT-4o を上回ります。

最適な性能を得るには、ダウンロードする量子化済みモデルファイルのサイズより、利用可能な総メモリ（統合メモリ + VRAM + システム RAM）が大きいことを確認してください。これを満たさなくても、llama.cpp は SSD/HDD オフロード経由で実行できますが、推論は遅くなります。

#### **gpt-oss - Unsloth GGUF:**

{% hint style="success" %}
**Unsloth の** [**チャットテンプレートの修正**](#unsloth-fixes-for-gpt-oss)**。最良の結果を得るには、当社のアップロード版を使い、Unsloth で学習してください！**
{% endhint %}

* 20B: [gpt-oss-**20B**](https://huggingface.co/unsloth/gpt-oss-20b-GGUF)
* 120B: [gpt-oss-**120B**](https://huggingface.co/unsloth/gpt-oss-120b-GGUF)

## :scroll:gpt-oss 向けの Unsloth 修正

{% hint style="info" %}
いくつかの修正は、Hugging Face 上の OpenAI 公式モデルへ upstream に反映されました。 [こちらを参照](https://huggingface.co/openai/gpt-oss-20b/discussions/94/files)
{% endhint %}

OpenAI は、次の独立した解析・トークナイズ用ライブラリを公開しました: [Harmony](https://github.com/openai/harmony) これにより、会話を gpt-oss 向けの OpenAI 推奨形式にトークナイズできます。

推論エンジンは通常、Harmony パッケージではなく jinja のチャットテンプレートを使用します。Harmony と直接比較したところ、いくつか問題を見つけました。以下をご覧のとおり、上部が Harmony による正しいレンダリング形式です。下部は現在の jinja チャットテンプレートでレンダリングされたものです。かなり多くの違いがあります！

<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%2Fgit-blob-9b377044965ac55a125d6c703ec1c50555157266%2FScreenshot%202025-08-08%20at%2008-19-49%20Untitled151.ipynb%20-%20Colab.png?alt=media" alt="" width="563"><figcaption></figcaption></figure></div>

また、必要であれば、jinja のチャットテンプレートを使わずに OpenAI の Harmony ライブラリを直接使えるようにする関数もいくつか作成しました。以下のような通常の会話をそのまま解析できます:

```python
messages = [
    {"role" : "user", "content" : "1+1は何ですか？"},
    {"role" : "assistant", "content" : "2"},
    {"role": "user",  "content": "サンフランシスコの今の気温は？ 明日はどうですか？ 今日の日付は2024-09-30です。"},
    {"role": "assistant",  "content": "ユーザーは『サンフランシスコの天気は？』と尋ねています。get_current_temperature ツールを使用する必要があります。", "thinking" : ""},
    {"role": "assistant", "content": "", "tool_calls": [{"name": "get_current_temperature", "arguments": '{"location": "San Francisco, California, United States", "unit": "celsius"}'}]},
    {"role": "tool", "name": "get_current_temperature", "content": '{"temperature": 19.9, "location": "San Francisco, California, United States", "unit": "celsius"}'},
]
```

その後、次の `encode_conversations_with_harmony` Unsloth の関数を使います:

```python
from unsloth_zoo import encode_conversations_with_harmony

def encode_conversations_with_harmony(
    messages,
    reasoning_effort = "medium",
    add_generation_prompt = True,
    tool_calls = None,
    developer_instructions = None,
    model_identity = "You are ChatGPT, a large language model trained by OpenAI.",
)
```

Harmony 形式には、いくつか興味深い要素があります:

1. `reasoning_effort = "medium"` low、medium、high を選べます。これにより gpt-oss の推論予算が変わり、一般的には高いほどモデルの精度が良くなります。
2. `developer_instructions` は追加できるシステムプロンプトのようなものです。
3. `model_identity` はそのままにしておくのが最善です。編集はできますが、カスタム版が機能するかは不明です。

現在の jinja チャットテンプレートには複数の問題が見つかりました（エコシステム全体に複数の実装が存在します）:

1. 関数呼び出しとツール呼び出しは `tojson`でレンダリングされます。dict なら問題ありませんが、文字列の場合は引用符やその他の **記号にバックスラッシュが付きます**.
2. いくつかの **余分な改行** が jinja テンプレートのいくつかの境界で発生します。
3. モデルのツール呼び出しに関する思考には **`analysis` タグが必要で、 `final` タグではありません。**.
4. 他のチャットテンプレートでは `<|channel|>final` をまったく使っていないようです。これは最終アシスタントメッセージに使うべきです。思考のトレースやツール呼び出しにこれを使ってはいけません。

GGUF、BnB、BF16 のアップロード版およびすべてのバージョン向けのチャットテンプレートは修正済みです！たとえば、私たちの形式と Harmony の形式を比較しても、文字の違いはありません:

<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%2Fgit-blob-4c42f3d83194ea2fbe436670a550e1b6f148f4cd%2FScreenshot%202025-08-08%20at%2008-20-00%20Untitled151.ipynb%20-%20Colab.png?alt=media" alt="" width="563"><figcaption></figcaption></figure></div>

### :1234: 精度の問題

Tesla T4 と float16 のマシンでは、主にモデルが BF16 で学習されていたため、複数の精度問題が見つかりました。そのため、外れ値とオーバーフローが存在していました。MXFP4 は Ampere 以前の GPU では実際にはサポートされていないため、Triton は `tl.dot_scaled` を MXFP4 の行列乗算に提供します。内部でオンザフライに行列を BF16 へアップキャストします。

私たちは [MXFP4 推論ノートブック](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/GPT_OSS_MXFP4_\(20B\)-Inference.ipynb) も、Tesla T4 の Colab で作成しました！

{% hint style="info" %}
[ソフトウェアエミュレーション](https://triton-lang.org/main/python-api/generated/triton.language.dot_scaled.html) ネイティブのマイクロスケーリング演算サポートのないハードウェアアーキテクチャを対象にできます。現在はそのような場合、マイクロスケール化された lhs/rhs は事前に `bf16` 要素型へアップキャストされ、dot 計算に使われます。
{% endhint %}

mixed precision autocast のデータ型として float16 を使うと、しばらくすると無限大が発生することがわかりました。これを防ぐため、MoE は bfloat16 で実行し、その後 bfloat16 か float32 のどちらかの精度のままにしておく方法が有効でした。古い GPU で bfloat16 をサポートしていない場合（T4 など）は、float32 を使います。

また、float16 マシンではルーターのような演算の精度もすべて float32 に変更します。

## 🖥️ **gpt-oss を実行**

以下は、 [20B](#run-gpt-oss-20b) そして [120B](#run-gpt-oss-120b) モデルのバリエーション。

{% hint style="info" %}
F16 より小さいあらゆる量子化、2-bit を含めても精度低下は最小限です。というのも、一部の部分（例: attention 層）だけが低ビットで、ほとんどはフル精度のままだからです。そのためサイズは F16 モデルに近くなります。たとえば 2-bit（11.5 GB）版は、フル 16-bit（14 GB）版とほぼ同じ性能です。llama.cpp がこれらのモデル向けにより良い量子化をサポートしたら、すぐにアップロードします。
{% endhint %}

その `gpt-oss` OpenAI のモデルには、モデルの「推論努力」を調整できる機能があります。これにより、モデルの性能と応答速度（レイテンシー）のトレードオフを、モデルが思考に使うトークン数で制御できます。

その `gpt-oss` モデルには、選択できる 3 つの異なる推論努力レベルがあります:

* **低**: きわめて高速な応答が必要で、複雑な多段推論を必要としないタスク向けに最適化されています。
* **中**: 性能と速度のバランスです。
* **高**: 必要なタスクに対して最も強力な推論性能を提供しますが、その分レイテンシーは高くなります。

### :gear: 推奨設定

OpenAI は、両モデルに対して次の推論設定を推奨しています:

`temperature=1.0`, `top_p=1.0`, `top_k=0`

* <mark style="background-color:green;">**温度 1.0**</mark>
* Top\_K = 0（または 100 で試して、より良い結果が得られるか確認してください）
* Top\_P = 1.0
* 推奨最小コンテキスト: 16,384
* 最大コンテキスト長ウィンドウ: 131,072

**チャットテンプレート:**

```
<|start|>system<|message|>あなたは ChatGPT です。OpenAI によって学習された大規模言語モデルです。\n知識のカットオフ: 2024-06\n現在の日付: 2025-08-05\n\n推論: medium\n\n# 有効なチャネル: analysis, commentary, final. すべてのメッセージにはチャネルを含める必要があります。<|end|><|start|>user<|message|>こんにちは<|end|><|start|>assistant<|channel|>final<|message|>こんにちは！<|end|><|start|>user<|message|>1+1 はいくつですか？<|end|><|start|>assistant
```

文の終了/生成トークン: EOS は `<|return|>`

### gpt-oss-20B を実行

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-920b641670a166258845bbe8152999983b1e68af%2Fgpt-oss-20b.svg?alt=media" alt=""><figcaption></figcaption></figure>

当社の Dynamic 4-bit 量子化で 1 秒あたり 6 トークン以上の推論速度を達成するには、少なくとも **14GB の統合メモリ** (VRAM と RAM の合計) または **単体で 14GB のシステム RAM** が必要です。目安として、利用可能なメモリは使用するモデルのサイズと同等以上であるべきです。GGUF リンク: [unsloth/gpt-oss-20b-GGUF](https://huggingface.co/unsloth/gpt-oss-20b-GGUF)

**注:** モデルは総サイズより少ないメモリでも動作できますが、その場合推論は遅くなります。最大メモリが必要なのは最速の速度を得る場合のみです。

{% hint style="info" %}
上記の [**ベストプラクティスに従ってください**](#recommended-settings)。これは 120B モデルと同じです。
{% endhint %}

今のところ、モデルは Google Colab、Docker、LM Studio、または llama.cpp で実行できます。以下をご覧ください:

> **gpt-oss-20b を無料で、当社の** [**Google Colab ノートブック**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/GPT_OSS_MXFP4_\(20B\)-Inference.ipynb)

#### 🦥 Unsloth Studio ガイド

このチュートリアルでは、 [Unsloth Studio](/docs/jp/shii/studio.md)。これはLLMの実行と学習のための新しいWeb UIです。Unsloth Studioを使えば、モデルをローカルで次の環境で実行できます **Mac、Windows**、Linux 上で入力でき、さらに:

{% columns %}
{% column %}

* 検索、ダウンロード、 [GGUFを実行](/docs/jp/shii/studio.md#run-models-locally) およびsafetensorモデル
* **比較** モデル **を並べて**
* [**自己修復** ツール呼び出し](/docs/jp/shii/studio.md#execute-code--heal-tool-calling) + **web search**
* [**コード実行**](/docs/jp/shii/studio.md#run-models-locally) （Python、Bash）
* [自動推論](https://unsloth.ai/docs/desktop#feature-deep-dive) パラメータ調整（temp、top-pなど）
* [LLMを学習](/docs/jp/shii/studio.md#no-code-training) VRAMを70%削減して2倍高速
  {% 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%2FFeQ0UUlnjXkDdqhcWglh%2Fskinny%20studio%20chat.png?alt=media&amp;token=c2ee045f-c243-4024-a8e4-bb4dbe7bae79" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% stepper %}
{% step %}

#### Unslothをインストール

ターミナルで次を実行してください:

**MacOS、Linux、WSL:**

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

**Windows PowerShell:**

```bash
irm https://unsloth.ai/install.ps1 | iex
```

{% endstep %}

{% step %}

#### Unsloth を起動

**MacOS、Linux、WSL、Windows:**

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

<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%2Fd1yMMNa65Ccz50Ke0E7r%2FScreenshot%202026-03-17%20at%2012.32.38%E2%80%AFAM.png?alt=media&amp;token=9369cfe7-35b1-4955-b8cb-42f7ecb43780" alt="" width="375"><figcaption></figcaption></figure></div>

**その後、 `http://localhost:8888` をブラウザで開いてください。**
{% endstep %}

{% step %}

#### gpt-oss-20b を検索してダウンロード

初回起動時には、アカウントを保護するためのパスワードを作成し、後で再度サインインする必要があります。その後、モデル、データセット、基本設定を選ぶ簡単なオンボーディングウィザードが表示されます。いつでもスキップできます。

それから [Unsloth Chat](/docs/jp/shii/studio/chat.md) タブを開き、検索バーで gpt-oss を検索して、希望するモデルと量子化版をダウンロードしてください。

<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%2F24OqTOq1fYvW3oZ5WlNG%2FScreenshot%202026-03-20%20at%201.35.19%E2%80%AFAM.png?alt=media&amp;token=b1e463ee-33a2-4e77-b725-d715b03f5d28" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

#### gpt-oss-20b を実行

Unsloth Studio を使用すると推論パラメータは自動設定されるはずですが、手動で変更することもできます。コンテキスト長、チャットテンプレート、その他の設定も編集できます。

詳細については、次を参照してください。 [Unsloth Studio 推論ガイド](/docs/jp/shii/studio/chat.md).

<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%2FXPQGEEr1YoKofrTatAKK%2Ftoolcallingif.gif?alt=media&amp;token=25d68698-fb13-4c46-99b2-d39fb025df08" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

#### 🐋 Docker: gpt-oss-20b 実行チュートリアル

すでに Docker Desktop をお持ちなら、以下のコマンドを実行するだけで完了です:

```bash
docker model run hf.co/unsloth/gpt-oss-20b-GGUF:F16
```

#### :sparkles: Llama.cpp: gpt-oss-20b 実行チュートリアル

1. 最新の `llama.cpp` を [GitHubこちら](https://github.com/ggml-org/llama.cpp)。以下のビルド手順に従うこともできます。変更してください `-DGGML_CUDA=ON` を `-DGGML_CUDA=OFF` GPUがない場合、またはCPU推論のみを使いたい場合は。 **Apple Mac / Metalデバイスの場合**、次を設定します `-DGGML_CUDA=OFF` その後は通常どおり続けてください。Metalサポートはデフォルトで有効です。

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

2. Hugging Faceから直接以下で取得できます:

   ```bash
   ./llama.cpp/llama-cli \
       -hf unsloth/gpt-oss-20b-GGUF:F16 \
       --jinja -ngl 99 --ctx-size 16384 \\
       --temp 1.0 --top-p 1.0 --top-k 0
   ```
3. 以下をインストールした後、( `pip install huggingface_hub hf_transfer` ）。ダウンロードが止まる場合は、 [Hugging Face Hub、XET のデバッグ](/docs/jp/ji-chu/troubleshooting-and-faqs/hugging-face-hub-xet-debugging.md)

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/gpt-oss-20b-GGUF",
    local_dir = "unsloth/gpt-oss-20b-GGUF",
    allow_patterns = ["*F16*"],
)
```

### gpt-oss-120b を実行:

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-4f6fc3b98363be32b7c7cf07c713947cb1bd9444%2Fgpt-oss-120b.svg?alt=media" alt=""><figcaption></figcaption></figure>

当社の 1-bit 量子化で 1 秒あたり 6 トークン以上の推論速度を達成するには、少なくとも **66GB の統合メモリ** (VRAM と RAM の合計) または **66GB のシステム RAM** が必要です。目安として、利用可能なメモリは使用するモデルのサイズと同等以上であるべきです。GGUF リンク: [unsloth/gpt-oss-120b-GGUF](https://huggingface.co/unsloth/gpt-oss-120b-GGUF)

**注:** モデルは総サイズより少ないメモリでも動作できますが、その場合推論は遅くなります。最大メモリが必要なのは最速の速度を得る場合のみです。

{% hint style="info" %}
上記の [**ベストプラクティスに従ってください**](#recommended-settings)。これは 20B モデルと同じです。
{% endhint %}

#### 🦥 Unsloth Studio ガイド

このチュートリアルでは、 [Unsloth Studio](/docs/jp/shii/studio.md)。これはLLMの実行と学習のための新しいWeb UIです。Unsloth Studioを使えば、モデルをローカルで次の環境で実行できます **Mac、Windows**、Linux 上で入力でき、さらに:

{% columns %}
{% column %}

* 検索、ダウンロード、 [GGUFを実行](/docs/jp/shii/studio.md#run-models-locally) およびsafetensorモデル
* **比較** モデル **を並べて**
* [**自己修復** ツール呼び出し](/docs/jp/shii/studio.md#execute-code--heal-tool-calling) + **web search**
* [**コード実行**](/docs/jp/shii/studio.md#run-models-locally) （Python、Bash）
* [自動推論](https://unsloth.ai/docs/desktop#feature-deep-dive) パラメータ調整（temp、top-pなど）
* [LLMを学習](/docs/jp/shii/studio.md#no-code-training) VRAMを70%削減して2倍高速
  {% 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%2FFeQ0UUlnjXkDdqhcWglh%2Fskinny%20studio%20chat.png?alt=media&amp;token=c2ee045f-c243-4024-a8e4-bb4dbe7bae79" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% stepper %}
{% step %}

#### Unslothをインストール

**MacOS、Linux、WSL:**

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

**Windows PowerShell:**

```bash
irm https://unsloth.ai/install.ps1 | iex
```

{% endstep %}

{% step %}

#### Unsloth Studio をセットアップする（一度だけ）

セットアップでは自動的に Node.js（nvm 経由）をインストールし、フロントエンドをビルドし、すべての Python 依存関係をインストールし、CUDA 対応で llama.cpp をビルドします。

{% hint style="info" %}
**WSL ユーザー:** ビルド依存関係（ `sudo` ）をインストールするための`cmake`, `git`, `libcurl4-openssl-dev`).
{% endhint %}
{% endstep %}

{% step %}

#### Unsloth を起動

**MacOS、Linux、WSL:**

```bash
source unsloth_studio/bin/activate
unsloth studio -H 0.0.0.0 -p 8888
```

**Windows Powershell:**

```bash
& .\unsloth_studio\Scripts\unsloth.exe studio -H 0.0.0.0 -p 8888
```

<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%2Fd1yMMNa65Ccz50Ke0E7r%2FScreenshot%202026-03-17%20at%2012.32.38%E2%80%AFAM.png?alt=media&amp;token=9369cfe7-35b1-4955-b8cb-42f7ecb43780" alt="" width="375"><figcaption></figcaption></figure></div>

**その後、 `http://localhost:8888` をブラウザで開いてください。**
{% endstep %}

{% step %}

#### gpt-oss-120b を検索してダウンロード

初回起動時には、アカウントを保護するためのパスワードを作成し、後で再度サインインする必要があります。その後、モデル、データセット、基本設定を選ぶ簡単なオンボーディングウィザードが表示されます。いつでもスキップできます。

それから [Unsloth Chat](/docs/jp/shii/studio/chat.md) タブを開き、検索バーで gpt-oss を検索して、希望するモデルと量子化版をダウンロードしてください。

<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%2FgKxB8OhIRVgT29vCGFEg%2FScreenshot%202026-03-20%20at%201.34.07%E2%80%AFAM.png?alt=media&amp;token=9950d667-4ff1-463e-b017-601d5e8e38a5" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

#### gpt-oss-120b を実行

Unsloth Studio を使用すると推論パラメータは自動設定されるはずですが、手動で変更することもできます。コンテキスト長、チャットテンプレート、その他の設定も編集できます。

詳細については、次を参照してください。 [Unsloth Studio 推論ガイド](/docs/jp/shii/studio/chat.md).

<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%2FXPQGEEr1YoKofrTatAKK%2Ftoolcallingif.gif?alt=media&amp;token=25d68698-fb13-4c46-99b2-d39fb025df08" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

#### 📖 Llama.cpp: gpt-oss-120b 実行チュートリアル

gpt-oss-120b では、最適化された推論のために特に Llama.cpp を使用します。

{% hint style="success" %}
もし **フル精度の非量子化版**が欲しいなら、当社の `F16` 版をご利用ください！
{% endhint %}

1. 最新の `llama.cpp` を [GitHubこちら](https://github.com/ggml-org/llama.cpp)。以下のビルド手順に従うこともできます。変更してください `-DGGML_CUDA=ON` を `-DGGML_CUDA=OFF` GPUがない場合、またはCPU推論のみを使いたい場合は。

   ```bash
   apt-get update
   apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
   git clone https://github.com/ggml-org/llama.cpp
   cmake llama.cpp -B llama.cpp/build \
       -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
   cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
   cp llama.cpp/build/bin/llama-* llama.cpp
   ```
2. モデルのダウンロードには llama.cpp を直接使うこともできますが、通常は `huggingface_hub` llama.cpp を直接使うには、以下を実行します:

   ```bash
   ./llama.cpp/llama-cli \
       -hf unsloth/gpt-oss-120b-GGUF:F16 \
       --ctx-size 16384 \\
       --n-gpu-layers 99 \\
       -ot ".ffn_.*_exps.=CPU" \\
       --temp 1.0 \\
       --min-p 0.0 \\
       --top-p 1.0 \\
       --top-k 0 \
   ```
3. または、次をインストールした後にモデルをダウンロードします: `pip install huggingface_hub hf_transfer` )。UD-Q2\_K\_XL やその他の量子化版を選べます。

   ```python
   # !pip install huggingface_hub hf_transfer
   import os
   os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0" # 時々レート制限が発生することがあるため、無効にするには 0 に設定します
   from huggingface_hub import snapshot_download
   snapshot_download(
       repo_id = "unsloth/gpt-oss-120b-GGUF",
       local_dir = "unsloth/gpt-oss-120b-GGUF",
       allow_patterns = ["*F16*"],
   )
   ```
4. 会話モードでモデルを実行し、任意のプロンプトを試してください。
5. 編集 `--threads -1` CPUスレッド数は `--ctx-size` コンテキスト長には 262114、 `--n-gpu-layers 99` GPUオフロードする層数です。GPUがメモリ不足になったら調整してみてください。CPUのみで推論する場合は削除してください。

{% hint style="success" %}
次を使います: `-ot ".ffn_.*_exps.=CPU"` すべての MoE 層を CPU にオフロードできます！これにより、MoE 以外の層を 1 枚の GPU に収められるようになり、生成速度が向上します。GPU の余力があれば、正規表現を調整してより多くの層を収めることもできます。その他のオプションについては [ここ](#improving-generation-speed).
{% endhint %}

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/gpt-oss-120b-GGUF/gpt-oss-120b-F16.gguf \
    --ctx-size 16384 \\
    --n-gpu-layers 99 \\
    -ot ".ffn_.*_exps.=CPU" \\
    --temp 1.0 \\
    --min-p 0.0 \\
    --top-p 1.0 \\
    --top-k 0 \
```

{% endcode %}

### :tools: 生成速度の向上

VRAM がさらにあれば、より多くの MoE 層、または層全体のオフロードを試せます。

通常は、 `-ot ".ffn_.*_exps.=CPU"` すべての MoE 層を CPU にオフロードします！これにより、非MoE層すべてを1枚のGPUに収められるようになり、生成速度が向上します。GPU容量がさらにあれば、正規表現を調整してより多くの層を収めることもできます。

GPU メモリがもう少し多ければ、 `-ot ".ffn_(up|down)_exps.=CPU"` を試してください。これは up と down の projection MoE 層をオフロードします。

試してみてください `-ot ".ffn_(up)_exps.=CPU"` GPU メモリがさらに多い場合はこちら。これは up projection の MoE 層のみをオフロードします。

これは最も少ない VRAM を使用します。 `-ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU"` は、6層目以降から gate、up、down の MoE 層をオフロードすることを意味します。

その [最新のllama.cppリリース](https://github.com/ggml-org/llama.cpp/pull/14363) には高スループットモードも導入されています。 `llama-parallel`を使用してください。 [ここ](https://github.com/ggml-org/llama.cpp/tree/master/examples/parallel)について詳しくはこちらを読む **KV キャッシュを 4bit に量子化する** ことで、VRAM / RAM の移動を減らし、生成処理をさらに高速化できます。

## 🦥 Unsloth で gpt-oss をファインチューニング

{% hint style="success" %}
[**8月28日更新**](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune/long-context-gpt-oss-training.md#new-saving-to-gguf-vllm-after-gpt-oss-training)**:** QLoRAでファインチューニングした gpt-oss モデルを、llama.cpp、vLLM、HF などへエクスポート/保存できるようになりました。

また、以下も導入しました [Unsloth Flex Attention](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune/long-context-gpt-oss-training.md#introducing-unsloth-flex-attention-support) これにより可能になるのは **>8×長いコンテキスト長**, **>50%少ないVRAM使用量** そして **>1.5×高速な学習** すべての実装と比較して。 [詳しくはこちら](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune/long-context-gpt-oss-training.md#introducing-unsloth-flex-attention-support)
{% endhint %}

Unsloth による gpt-oss のファインチューニングは 1.5 倍高速で、VRAM 使用量は 70% 少なく、10 倍長いコンテキスト長をサポートします。gpt-oss-20b の QLoRA 学習は 14GB VRAM に収まり、gpt-oss-120b は 65GB VRAM で動作します。

* **QLoRAの要件:** gpt-oss-20b = 14GB VRAM • gpt-oss-120b = 65GB VRAM.
* **BF16 LoRAの要件:** gpt-oss-20b = 44GB VRAM • gpt-oss-120b = 210GB VRAM.

gpt-oss のファインチューニングに関するステップバイステップのチュートリアルをお読みください:

{% content-ref url="/pages/9dc29758d13fc58c1ce64028cb44358ca432b625" %}
[チュートリアル: gpt-ossをファインチューニングする方法](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune/tutorial-how-to-fine-tune-gpt-oss.md)
{% endcontent-ref %}

{% hint style="success" %}
QLoRAでファインチューニングした gpt-oss モデルを、llama.cpp、vLLM、HF などへエクスポート/保存できるようになりました。
{% endhint %}

gpt-oss をファインチューニングするための無料の Unsloth ノートブック:

* gpt-oss-20b [推論 + 会話ノートブック](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/gpt-oss-\(20B\)-Fine-tuning.ipynb)

### 強化学習 (GRPO)

Unsloth は現在、gpt-oss の RL をサポートしています！ 2 つのノートブックを作成しました。詳細は、gpt-oss RL に関する専用ブログをご覧ください: [gpt-oss RL](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune/gpt-oss-reinforcement-learning.md)

| [2048ノートブック](https://colab.research.google.com/github/openai/gpt-oss/blob/main/examples/reinforcement-fine-tuning.ipynb) （OpenAI公式の例） | [カーネル生成ノートブック](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/gpt-oss-\(20B\)-GRPO.ipynb) |
| ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |

### 💾**新機能: gpt-oss 学習後に GGUF、vLLM へ保存**

現在、gpt-oss を QLoRA でファインチューニングし、モデルを直接保存、エクスポート、またはマージして **llama.cpp**, **vLLM**、または **HF** に出力できます。Unsloth だけに限りません。無料ノートブックも近日公開予定です。

以前は、QLoRA でファインチューニングした gpt-oss モデルは Unsloth 内でのみ実行可能でした。私たちは **MXFP4 のオンデマンド逆量子化** LoRA のマージプロセス中に、gpt-oss のようなベースモデルを使います。これにより **bf16 形式でファインチューニング済みモデルをエクスポートできます**.

gpt-oss モデルのファインチューニング後、 **1 回のコマンド**:

```python
model.save_pretrained_merged(save_directory, tokenizer)
```

で 16 ビット形式にマージできるようになりました。

```python
model.push_to_hub_merged(repo_name, tokenizer=tokenizer, token=hf_token)
```

### 💡効率的な gpt-oss ファインチューニングを実現する

MXFP4 は非常に効率的ですが、gpt-oss でのトレーニングをネイティブにはサポートしていないことがわかりました。この制限を克服するため、私たちは `Bitsandbytes` NF4 量子化。

MXFP4 推論を可能にするため、OpenAI の Triton Kernels ライブラリを直接利用しました。ただしファインチューニング / トレーニングについては、MXFP4 カーネルはまだトレーニングをサポートしていません。というのも、逆伝播がまだ実装されていないためです。現在、Triton への実装に積極的に取り組んでいます！ 次のフラグがあります `W_TRANSPOSE` と前述した [ここ](https://github.com/triton-lang/triton/blob/main/python/triton_kernels/triton_kernels/matmul_ogs_details/_matmul_ogs.py#L39)ように、実装されるべきです。導関数は重み行列の転置によって計算できるため、転置操作を実装する必要があります。

Unsloth 以外のライブラリで gpt-oss を学習したい場合は、学習前に重みを bf16 にアップキャストする必要があります。ただしこの方法は、 **大幅に増加させます** VRAM 使用量と学習時間の両方を最大で **メモリ使用量が 300% 増加**! <mark style="background-color:green;">**します。Unsloth では 20b モデルの学習に 14GB VRAM で済むのに対し、他のすべての学習方法では最低でも 65GB VRAM が必要です (-80%)。**</mark>

両モデルは MoE アーキテクチャを使用しているため、20B モデルは 32 個のエキスパートから 4 個を選択し、120B モデルは 1 トークンごとに 128 個中 4 個を選択します。学習およびリリース時には、重みは MXFP4 形式で `nn.Parameter` オブジェクトとして保存され、 `nn.Linear` 層としてではありません。これにより量子化が複雑になり、特に MoE/MLP エキスパートが 20B パラメータのうち約 19B を占めているためです。

有効にするために `BitsandBytes` 量子化とメモリ効率の高いファインチューニングを実現するため、私たちはこれらのパラメータを `nn.Linear` 層に変換しました。これにより操作はわずかに遅くなりますが、限られたメモリの GPU でもファインチューニングできるようになり、十分に価値のあるトレードオフです。

### データセットのファインチューニングガイド

gpt-oss は推論専用ですが、推論を伴わない [dataset](/docs/jp/meru/fine-tuning-llms-guide/datasets-guide.md)ものでもファインチューニングできます。ただしこれは推論能力に影響する可能性があります。推論能力を維持したい場合（任意）、直接回答と chain-of-thought の例を組み合わせて使えます。少なくとも <mark style="background-color:green;">推論75%</mark> そして <mark style="background-color:green;">非推論25%</mark> をデータセットに含めて、モデルに推論能力を保持させてください。

当社の gpt-oss-20b 会話ノートブックでは、OpenAI の例として Hugging Face の Multilingual-Thinking データセットを使用しています。このデータセットを使う目的は、モデルがこの 4 つの異なる言語で推論能力を学習し、発展させられるようにすることです。

<figure><img src="https://735611837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fgit-blob-4d648159c0ba6d62d5c9b5cd519767f764e5faab%2Fwider%20gptoss%20image.png?alt=media" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://unsloth.ai/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
