> 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が「**gpt-oss-120b」** と「**gpt-oss-20b」**&#x3092;リリースしました。Apache 2.0ライセンスの下で提供される、最先端（SOTA）のオープン言語モデル2種です。どちらの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公式モデルにアップストリームとして反映されました。 [参照](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="/files/ff4dbcd3ead29927af54cc945d34a00fa7f9f4f2" alt="" width="563"><figcaption></figcaption></figure></div>

また、必要に応じてjinjaチャットテンプレートなしでOpenAIのHarmonyライブラリを直接使用できる関数も作成しました。以下のように通常の会話をそのまま解析できます：

```python
messages = [
    {"role" : "user", "content" : "What is 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="/files/9b9b337c928a49c2d0021eee79680174b6f60cea" alt="" width="563"><figcaption></figcaption></figure></div>

### :1234: 精度の問題

モデルがBF16を使用してトレーニングされているため、主にTesla T4およびfloat16環境で複数の精度問題を見つけました。外れ値とオーバーフローが存在していたためです。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` 要素型へアップキャストされ、ドット演算が実行されます。
{% endhint %}

混合精度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" %}
2ビットを含むF16未満のあらゆる量子化では、精度低下は最小限です。これは、一部（例：アテンション層）のみが低ビットであり、大半はフル精度のままだからです。そのためサイズはF16モデルに近く、たとえば2ビット版（11.5 GB）はフル16ビット版（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|>You are ChatGPT, a large language model trained by OpenAI.\nKnowledge cutoff: 2024-06\nCurrent date: 2025-08-05\n\nReasoning: medium\n\n# Valid channels: analysis, commentary, final. Channel must be included for every message.<|end|><|start|>user<|message|>Hello<|end|><|start|>assistant<|channel|>final<|message|>Hi there!<|end|><|start|>user<|message|>What is 1+1?<|end|><|start|>assistant
```

文末／生成トークン：EOSは `<|return|>`

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

<figure><img src="/files/72ec44538912320e468b879a63b4eeb5fe2becc6" alt=""><figcaption></figcaption></figure>

Dynamic 4ビット量子化で毎秒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でモデルを実行できます。以下を参照してください：

> **当社の** [**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) + **ウェブ検索**
* [**コード実行**](/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="/files/c32867f999db074387ac16732ce548485cc593de" 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="/files/698ae7636b7c9b8a8122c6fbdabc1bd2273fdb2c" 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="/files/867539e80b7ed6f42bcc2aa0d07d97f3a05ac666" 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="/files/44d9105dd956eac31f9586bcf01055a289b0ef3e" 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-ben/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="/files/bed3242a09b6573f5cf0c572b39a640e1ce0bb6f" alt=""><figcaption></figcaption></figure>

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) + **ウェブ検索**
* [**コード実行**](/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="/files/c32867f999db074387ac16732ce548485cc593de" 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 のセットアップ（1回のみ）

セットアップにより、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="/files/698ae7636b7c9b8a8122c6fbdabc1bd2273fdb2c" 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="/files/6c61fc191993d8f0f039658b71a338bc6924cbac" 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="/files/44d9105dd956eac31f9586bcf01055a289b0ef3e" 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プロジェクションのMoEレイヤーがオフロードされます。

以下を試してください `-ot ".ffn_(up)_exps.=CPU"` 。さらにGPUメモリがある場合に使用できます。upプロジェクションのMoEレイヤーのみをオフロードします。

正規表現をカスタマイズすることもできます。たとえば、 `-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キャッシュを4ビットに量子化** して、たとえば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倍超に拡張**, **VRAM使用量を50%超削減** と **トレーニングを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モデルのファインチューニング後、次の **単一コマンド**:

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

で16ビット形式にマージできるようになりました。代わりにモデルをマージしてhugging-face hubへ直接プッシュしたい場合は、以下を使用できます：

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

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

MXFP4は非常に効率的ですが、gpt-ossでのトレーニングをネイティブにはサポートしていないことがわかりました。この制限を克服するため、 `Bitsandbytes` のNF4量子化で模倣することにより、MXFP4レイヤー専用のカスタムトレーニング関数を実装しました。

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;">**になります。他のすべてのトレーニング方法では20bモデルのトレーニングに最低65GBのVRAMが必要ですが、Unslothは14GBのVRAM（-80%）しか必要としません。**</mark>

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

を有効にするため、 `BitsandBytes` 量子化とメモリ効率の高いファインチューニングのため、これらのパラメータを `nn.Linear` レイヤーに変換しました。これにより演算はわずかに遅くなりますが、メモリが限られたGPUでのファインチューニングが可能になるため、価値のあるトレードオフです。

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

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

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

<figure><img src="/files/85604823aa1f28a8993bc020cdafa74cde873986" 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
