# チュートリアル: gpt-ossをファインチューニングする方法

このガイドでは、スクリーンショット付きで、独自のカスタム gpt-oss モデルを次のいずれかでファインチューニングする方法を学びます。 [ローカルで](#local-gpt-oss-fine-tuning) お使いのマシン上で [Unsloth](https://github.com/unslothai/unsloth) または無料で [Google Colab](#colab-gpt-oss-fine-tuning)。セットアップから、学習済みモデルの実行と保存まで、全工程を順を追って説明します。

{% hint style="success" %}
[**8月28日更新**](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune/long-context-gpt-oss-training.md#introducing-unsloth-flex-attention-support)**:** 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 %}

> **クイックスタート:** gpt-oss-20b を無料でファインチューニングするには、こちらをご利用ください: [Colab ノートブック](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/gpt-oss-\(20B\)-Fine-tuning.ipynb)

Unsloth による gpt-oss のファインチューニングは、他のすべての FA2 実装と比較して、1.5倍高速な学習、VRAM 使用量を 70% 削減、コンテキスト長を 10 倍にし、しかも精度低下はありません。

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

<a href="#local-gpt-oss-fine-tuning" class="button secondary">ローカルガイド</a><a href="#colab-gpt-oss-fine-tuning" class="button secondary">Colab ガイド</a>

## 🌐 Colab gpt-oss ファインチューニング

このセクションでは、Google Colab の [ノートブック](/docs/jp/meru/unsloth-notebooks.md)を使用した gpt-oss のファインチューニングを扱います。また、gpt-oss ノートブックを保存してお好みのコードエディタで使い、私たちの [ローカル gpt-oss ガイド](#local-gpt-oss-fine-tuning).

{% stepper %}
{% step %}

#### Unsloth をインストールする（Colab 内）

Colab では、セルを **上から下へ**に似ています。使用 **すべて実行** して最初のパスを行ってください。最初のセルは Unsloth（および関連依存関係）をインストールし、GPU/メモリ情報を表示します。セルでエラーが出た場合は、単に再実行してください。

<figure><img src="/files/3c9202cc19db0b30a40c9c1fa73ec964e1dc8687" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/555ca9fd81ae4363259f687ce8c5fc79f6148884" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### gpt-oss と Reasoning Effort の設定

次に、 **`gpt-oss-20b`** を Unsloth の [線形化バージョン](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune.md#making-efficient-gpt-oss-fine-tuning-work) を使って読み込みます（他のバージョンは動作しないため）。

以下のパラメータを設定してください:

* `max_seq_length = 1024`
  * 素早いテストや初期実験に推奨されます。
* `load_in_4bit = True`
  * 使用 `False` LoRA 学習用（注: これを `False` に設定すると少なくとも 43GB の VRAM が必要になります）。また、 ***必ず*** 次も設定してください **`model_name = "unsloth/gpt-oss-20b-BF16"`**

<figure><img src="/files/887cf187a12d4ef84bbb9fcf6a5cc56b45e03ebe" alt=""><figcaption></figcaption></figure>

以下の例のような出力が表示されるはずです。注: 正しい学習動作を確保するため、明示的に `dtype` を `float32` に変更しています。

<figure><img src="/files/e1ef4a21c084f56e58f22cb5d60b96dc9c835fbb" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### ファインチューニング用ハイパーパラメータ（LoRA）

次は学習ハイパーパラメータを調整する時間です。どのように、いつ、何を調整するかについてより詳しく知りたい場合は、私たちの [詳細なハイパーパラメータガイド](/docs/jp/meru/fine-tuning-llms-guide/lora-hyperparameters-guide.md).

{% hint style="info" %}
を避けるために [過学習](/docs/jp/meru/fine-tuning-llms-guide/lora-hyperparameters-guide.md#avoiding-overfitting-and-underfitting)、学習損失を監視し、これらの値を高くしすぎないようにしてください。
{% endhint %}

このステップでは、パラメータ効率の高いファインチューニングのために LoRA アダプタを追加します。学習されるのはモデル全体の約 1% のパラメータのみであり、そのためこのプロセスは大幅に効率化されます。

<figure><img src="/files/5f81a0fa72d8c08d99a88a9dcf7bb38612e111b8" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### 推論を試す

ノートブックには、 *"Reasoning Effort"* というセクションがあり、Colab 上で gpt-oss の推論を実行する例を示しています。この手順はスキップできますが、ファインチューニング完了後には、後でモデルを実行する必要があります。

<figure><img src="/files/d68f11775d41bd847a102f98781c4e2d2cd24bc5" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### データ準備

この例では、 [`HuggingFaceH4/Multilingual-Thinking`](https://huggingface.co/datasets/HuggingFaceH4/Multilingual-Thinking)を使用します。このデータセットには、英語からさらに 4 つの言語へ翻訳されたユーザー質問に基づく chain-of-thought 推論例が含まれています。

これは OpenAI の fine-tuning cookbook で参照されているのと同じデータセットです。

多言語データセットを使う目的は、モデルが複数言語にまたがる推論パターンを学習し、一般化できるようにすることです。

<figure><img src="/files/c067e768fbd25ca6750f2b5f8ad9e3d26373f8fe" alt=""><figcaption></figcaption></figure>

gpt-oss では、モデルがどれだけ推論を行うかを制御する reasoning effort システムが導入されています。デフォルトでは reasoning effort は `low`に設定されていますが、 `reasoning_effort` パラメータを `low`, `medium` または `high`.

例:

```python
tokenizer.apply_chat_template(
    text, 
    tokenize = False, 
    add_generation_prompt = False,
    reasoning_effort = "medium",
)
```

データセットを整形するために、gpt-oss プロンプトのカスタマイズ版を適用します:

```python
from unsloth.chat_templates import standardize_sharegpt
dataset = standardize_sharegpt(dataset)
dataset = dataset.map(formatting_prompts_func, batched = True,)
```

最初の例を表示して、データセットを確認してみましょう:

```notebook-python
print(dataset[0]['text'])
```

<figure><img src="/files/9303eb1fb1d92abeaff10f737acc2b534eaeeabb" alt=""><figcaption></figcaption></figure>

gpt-oss のユニークな特徴の 1 つは、 [**OpenAI Harmony 形式**](https://github.com/openai/harmony)**,** を使用していることで、これは構造化された会話、推論出力、ツール呼び出しをサポートします。この形式には、次のようなタグが含まれます。 `<|start|>` , `<|message|>` 、および `<|return|>` .

{% hint style="info" %}
🦥 Unsloth はチャットテンプレートを修正し、正しくなるようにしています。この [ツイート](https://x.com/danielhanchen/status/1953901104150065544) で、私たちのテンプレート修正に関する技術的詳細を確認できます。
{% endhint %}

プロンプトや構造は、あなた自身のデータセットやユースケースに合わせて自由に調整してください。詳しい案内については、私たちの [データセットガイド](/docs/jp/meru/fine-tuning-llms-guide/datasets-guide.md).
{% endstep %}

{% step %}

#### モデルを学習させる

最適な結果が得られるよう、学習ハイパーパラメータはあらかじめ選定されています。ただし、特定のユースケースに応じて変更できます。私たちの [ハイパーパラメータガイド](/docs/jp/meru/fine-tuning-llms-guide/lora-hyperparameters-guide.md).

この例では、処理を速くするために 60 ステップだけ学習します。完全な学習を行うには、 `num_train_epochs=1` に設定し、さらに `max_steps=None`.

<figure><img src="/files/ca6d9d22bee19141908cbc007f4055328e88cadf" alt=""><figcaption></figcaption></figure>

学習中は、損失が時間とともに減少していることを確認してください。これは学習プロセスが正しく機能していることを示します。

<figure><img src="/files/d17cb42cd761eac9e338ef4070ca7e707ad32bc1" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### 推論: 学習済みモデルを実行する

次は、ファインチューニングしたモデルで推論を実行する時間です。instruction と input は変更できますが、output は空白のままにしてください。

この例では、データセットで使用したのと同じ構造に従って、システムプロンプトに特定の指示を追加し、モデルがフランス語で推論できるかをテストします。

<figure><img src="/files/3feeabfb8a7fb84e202e017bbf3abf1e65661e2f" alt=""><figcaption></figcaption></figure>

以下のような出力になるはずです:

<figure><img src="/files/b24bd0061dd549ff75169eb8362098675af9b848" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### モデルを保存/エクスポートする

ファインチューニングしたモデルを保存するには、次の両方でエクスポートできます。 **bf16 形式、** 私たちの **MXFP4 のオンデマンド逆量子化** ベースモデルを使い、 `save_method="merged_16bit"`またはネイティブな **MXFP4** Safetensors 形式で、次を使用します `save_method="mxfp4"` .

この **MXFP4** ネイティブマージ形式は、 **bf16 形式**と比較して大きな性能向上を提供します。ディスク容量を最大 75% 節約し、VRAM 消費を 50% 削減し、マージを 5〜10 倍高速化し、さらに **GGUF** 形式への変換を大幅に高速化します。

{% hint style="success" %}
新機能: QLoRA でファインチューニングしたモデルの GGUF への保存またはマージが、他のフレームワーク（例: Hugging Face、GGUF を用いる llama.cpp）で使えるようになりました。
{% endhint %}

gpt-oss モデルのファインチューニング後、それを **MXFP4** 形式に次のようにマージできます:

```python
model.save_pretrained_merged(save_directory, tokenizer, save_method="mxfp4)
```

モデルをマージして hugging-face hub に直接プッシュしたい場合:

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

#### :sparkles: Llama.cpp への保存

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. 次を変換します **MXFP4** マージ済みモデル:

   ```bash
   python3 llama.cpp/convert_hf_to_gguf.py gpt-oss-finetuned-merged/ --outfile gpt-oss-finetuned-mxfp4.gguf
   ```
3. 量子化済みモデルで推論を実行する:

   ```bash
   llama.cpp/llama-cli --model gpt-oss-finetuned-mxfp4.gguf \
       --jinja -ngl 99 --threads -1 --ctx-size 16384 \
       --temp 1.0 --top-p 1.0 --top-k 0 \
        -p "人生と宇宙の意味は"
   ```

<figure><img src="/files/dbaeaf8bbe976549074a1edf96b1b9a941480b4e" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## 🖥️ ローカル gpt-oss ファインチューニング

この章では、ローカルデバイスで gpt-oss をファインチューニングする方法を扱います。 **gpt-oss-20b** ファインチューニングは 14GB の VRAM でも動作可能ですが、安定した信頼性のある学習実行を確保するために、少なくとも 16GB の VRAM が利用可能であることを推奨します。

{% hint style="info" %}
Colab の [ノートブック](/docs/jp/meru/unsloth-notebooks.md) をダウンロードするか、その要素をローカル環境に取り込んで使いやすくすることをおすすめします。
{% endhint %}

{% stepper %}
{% step %}

#### Unsloth をローカルにインストールする

お使いのデバイスが [Unsloth 対応](/docs/jp/meru/fine-tuning-for-beginners/unsloth-requirements.md) であることを確認し、詳細な [インストールガイド](/docs/jp/meru/install.md).

**私たちの** [**Docker イメージ**](https://unsloth.ai/docs/models/qwen3-coder-next)**.**

なお、 `pip install unsloth` はこのセットアップでは動作しません。最新の PyTorch、Triton、および関連パッケージを使用する必要があるためです。次の特定のコマンドで Unsloth をインストールしてください:

```python
# 最新の Torch、Triton、OpenAI の Triton カーネル、Transformers、そして Unsloth をインストールします！
!pip install --upgrade -qqq uv
try: import numpy; install_numpy = f"numpy=={numpy.__version__}"
except: install_numpy = "numpy"
!uv pip install -qqq \
    "torch>=2.8.0" "triton>=3.4.0" {install_numpy} \
    "unsloth_zoo[base] @ git+https://github.com/unslothai/unsloth-zoo" \
    "unsloth[base] @ git+https://github.com/unslothai/unsloth" \
    torchvision bitsandbytes \
    git+https://github.com/huggingface/transformers \
    git+https://github.com/triton-lang/triton.git@05b2c186c1b6c9a08375389d5efe9cb4c401c075#subdirectory=python/triton_kernels
```

{% endstep %}

{% step %}

#### gpt-oss と Reasoning Effort の設定

次に、 **`gpt-oss-20b`** を Unsloth の [線形化バージョン](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune.md#making-efficient-gpt-oss-fine-tuning-work) （QLoRA ファインチューニングでは他のバージョンは動作しないため）。以下のパラメータを設定してください:

* `max_seq_length = 2048`
  * 素早いテストや初期実験に推奨されます。
* `load_in_4bit = True`
  * 使用 `False` LoRA 学習用（注: これを `False` に設定すると少なくとも 43GB の VRAM が必要になります）。また、 ***必ず*** 次も設定してください **`model_name = "unsloth/gpt-oss-20b-BF16"`**

<pre class="language-python"><code class="lang-python">from unsloth import FastLanguageModel
import torch
max_seq_length = 1024
dtype = None

# 4倍高速なダウンロード + OOM なしのために対応している 4bit 事前量子化モデル。
fourbit_models = [
    "unsloth/gpt-oss-20b-unsloth-bnb-4bit", # bitsandbytes 4bit 量子化を使う 20B モデル
<strong>    "unsloth/gpt-oss-120b-unsloth-bnb-4bit",
</strong>    "unsloth/gpt-oss-20b", # MXFP4 形式を使う 20B モデル
    "unsloth/gpt-oss-120b",
] # その他のモデルは https://huggingface.co/unsloth

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/gpt-oss-20b",
    dtype = dtype, # 自動検出の場合は None
    max_seq_length = max_seq_length, # 長いコンテキスト用に任意の値を選択！
    load_in_4bit = True,  # メモリ削減のための 4 ビット量子化
    full_finetuning = False, # [NEW!] フルファインチューニングに対応しました！
    # token = "hf_...", # gated モデルを使う場合はこれを使用
)
</code></pre>

以下の例のような出力が表示されるはずです。注: 正しい学習動作を確保するため、明示的に `dtype` を `float32` に変更しています。
{% endstep %}

{% step %}

#### ファインチューニング用ハイパーパラメータ（LoRA）

次は学習ハイパーパラメータを調整する時間です。どのように、いつ、何を調整するかについてより詳しく知りたい場合は、私たちの [詳細なハイパーパラメータガイド](/docs/jp/meru/fine-tuning-llms-guide/lora-hyperparameters-guide.md).

{% hint style="info" %}
を避けるために [過学習](/docs/jp/meru/fine-tuning-llms-guide/lora-hyperparameters-guide.md#avoiding-overfitting-and-underfitting)、学習損失を監視し、これらの値を高くしすぎないようにしてください。
{% endhint %}

このステップでは、パラメータ効率の高いファインチューニングのために LoRA アダプタを追加します。学習されるのはモデル全体の約 1% のパラメータのみであり、そのためこのプロセスは大幅に効率化されます。

```python
model = FastLanguageModel.get_peft_model(
    model,
    r = 8, # 0 より大きい任意の数を選択！推奨 8, 16, 32, 64, 128
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
                      "gate_proj", "up_proj", "down_proj",],
    lora_alpha = 16,
    lora_dropout = 0, # 任意に対応しますが、= 0 が最適化されています
    bias = "none",    # 任意に対応しますが、= "none" が最適化されています
    # [NEW] "unsloth" は VRAM を 30% 少なく使い、2倍大きいバッチサイズが入ります！
    use_gradient_checkpointing = "unsloth", # 非常に長いコンテキストには True または "unsloth"
    random_state = 3407,
    use_rslora = False,  # rank stabilized LoRA をサポートしています
    loftq_config = None, # そして LoftQ
)
```

{% endstep %}

{% step %}

#### データ準備

この例では、 [`HuggingFaceH4/Multilingual-Thinking`](https://huggingface.co/datasets/HuggingFaceH4/Multilingual-Thinking)を使用します。このデータセットには、英語からさらに 4 つの言語へ翻訳されたユーザー質問に基づく chain-of-thought 推論例が含まれています。

これは OpenAI の fine-tuning cookbook で参照されているのと同じデータセットです。多言語データセットを使う目的は、モデルが複数言語にまたがる推論パターンを学習し、一般化できるようにすることです。

```python
def formatting_prompts_func(examples):
    convos = examples["messages"]
    texts = [tokenizer.apply_chat_template(convo, tokenize = False, add_generation_prompt = False) for convo in convos]
    return { "text" : texts, }
pass

from datasets import load_dataset

dataset = load_dataset("HuggingFaceH4/Multilingual-Thinking", split="train")
dataset
```

gpt-oss では、モデルがどれだけ推論を行うかを制御する reasoning effort システムが導入されています。デフォルトでは reasoning effort は `low`に設定されていますが、 `reasoning_effort` パラメータを `low`, `medium` または `high`.

例:

```python
tokenizer.apply_chat_template(
    text, 
    tokenize = False, 
    add_generation_prompt = False,
    reasoning_effort = "medium",
)
```

データセットを整形するために、gpt-oss プロンプトのカスタマイズ版を適用します:

```python
from unsloth.chat_templates import standardize_sharegpt
dataset = standardize_sharegpt(dataset)
dataset = dataset.map(formatting_prompts_func, batched = True,)
```

最初の例を表示して、データセットを確認してみましょう:

```notebook-python
print(dataset[0]['text'])
```

<figure><img src="/files/843244c5fbdffc4f8a8727093aa1cf1a97799e5e" alt="" width="563"><figcaption></figcaption></figure>

gpt-oss のユニークな特徴の 1 つは、 [**OpenAI Harmony 形式**](https://github.com/openai/harmony)**,** を使用していることで、これは構造化された会話、推論出力、ツール呼び出しをサポートします。この形式には、次のようなタグが含まれます。 `<|start|>` , `<|message|>` 、および `<|return|>` .

{% hint style="info" %}
🦥 Unsloth はチャットテンプレートを修正し、正しくなるようにしています。この [ツイート](https://x.com/danielhanchen/status/1953901104150065544) で、私たちのテンプレート修正に関する技術的詳細を確認できます。
{% endhint %}

プロンプトや構造は、あなた自身のデータセットやユースケースに合わせて自由に調整してください。詳しい案内については、私たちの [データセットガイド](/docs/jp/meru/fine-tuning-llms-guide/datasets-guide.md).
{% endstep %}

{% step %}

#### モデルを学習させる

最適な結果が得られるよう、学習ハイパーパラメータはあらかじめ選定されています。ただし、特定のユースケースに応じて変更できます。私たちの [ハイパーパラメータガイド](/docs/jp/meru/fine-tuning-llms-guide/lora-hyperparameters-guide.md).

この例では、処理を速くするために 60 ステップだけ学習します。完全な学習を行うには、 `num_train_epochs=1` に設定し、さらに `max_steps=None`.

```python
from trl import SFTConfig, SFTTrainer
trainer = SFTTrainer(
    model = model,
    tokenizer = tokenizer,
    train_dataset = dataset,
    args = SFTConfig(
        per_device_train_batch_size = 1,
        gradient_accumulation_steps = 4,
        warmup_steps = 5,
        # num_train_epochs = 1, # 完全な学習を 1 回行うにはこれを設定。
        max_steps = 30,
        learning_rate = 2e-4,
        logging_steps = 1,
        optim = "adamw_8bit",
        weight_decay = 0.01,
        lr_scheduler_type = "linear",
        seed = 3407,
        output_dir = "outputs",
        report_to = "none", # WandB などを使う場合はこれを使用
    ),
)
```

学習中は、損失が時間とともに減少していることを確認してください。これは学習プロセスが正しく機能していることを示します。

<figure><img src="/files/d17cb42cd761eac9e338ef4070ca7e707ad32bc1" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### 推論: 学習済みモデルを実行する

次は、ファインチューニングしたモデルで推論を実行する時間です。instruction と input は変更できますが、output は空白のままにしてください。

この例では、データセットで使用したのと同じ構造に従って、システムプロンプトに特定の指示を追加し、モデルがフランス語で推論できるかをテストします。

```python
messages = [
    {"role": "system", "content": "推論言語: フランス語\n\nあなたは数学の問題を解ける有能なアシスタントです。"},
    {"role": "user", "content": "x^5 + 3x^4 - 10 = 3 を解いてください。"},
]
inputs = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt = True,
    return_tensors = "pt",
    return_dict = True,
    reasoning_effort = "medium",
).to(model.device)
from transformers import TextStreamer
_ = model.generate(**inputs, max_new_tokens = 2048, streamer = TextStreamer(tokenizer))
```

以下のような出力になるはずです:

<figure><img src="/files/ffe620a36331bb5ec338751b24b85b757dcf19d1" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### モデルを保存してエクスポートする

ファインチューニングしたモデルを保存するには、私たちの新しい **MXFP4 のオンデマンド逆量子化** LoRA マージ処理中にベースモデル（gpt-oss など）を使用することで、Safetensors 形式でエクスポートできます。これにより、 **ファインチューニングしたモデルを bf16 形式でエクスポートする**.

{% hint style="success" %}
新機能: QLoRA でファインチューニングしたモデルの GGUF への保存またはマージが、他のフレームワーク（例: Hugging Face、GGUF を用いる llama.cpp）で使えるようになりました。
{% endhint %}

gpt-oss モデルのファインチューニング後、それを 16-bit 形式に次のようにマージできます:

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

モデルをマージして hugging-face hub に直接プッシュしたい場合:

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

#### :sparkles: Llama.cpp への保存

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.cp
   ```
2. マージ済みモデルを変換して量子化する:

   ```bash
   python3 llama.cpp/convert_hf_to_gguf.py gpt-oss-finetuned-merged/ --outfile gpt-oss-finetuned.gguf
   llama.cpp/llama-quantize gpt-oss-finetuned.gguf  gpt-oss-finetuned-Q8_0.gguf Q8_0
   ```
3. 量子化済みモデルで推論を実行する:

   ```bash
   llama.cpp/llama-cli --model gpt-oss-finetuned-Q8_0.gguf \
       --jinja -ngl 99 --threads -1 --ctx-size 16384 \
       --temp 1.0 --top-p 1.0 --top-k 0 \
        -p "人生と宇宙の意味は"
   ```

{% endstep %}
{% endstepper %}

### 🏁 以上です！

これで Unsloth を使って gpt-oss をファインチューニングできました。現在、RL と GRPO の実装、およびより良いモデル保存と実行方法に取り組んでいるので、今後の更新をお楽しみに。

いつものように、必要であればぜひ私たちの [Discord](https://discord.com/invite/unsloth) または [Reddit](https://www.reddit.com/r/unsloth/) にお立ち寄りください。お手伝いします。

## ❓FAQ（よくある質問）

#### 1. 後で Hugging Face、llama.cpp GGUF、または vLLM で使えるように、自分のモデルをエクスポートできますか？

はい、今では [gpt-oss をファインチューニングした](/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) モデルを、Unsloth の新しいアップデートで保存/エクスポートできます！

#### 2. gpt-oss で fp4 または MXFP4 学習はできますか？

いいえ、現在のところ fp4 または MXFP4 学習をサポートするフレームワークはありません。ただし Unsloth は、このモデルに対して QLoRA 4-bit ファインチューニングをサポートする唯一のフレームワークであり、VRAM 使用量を 4 倍以上削減できます。

#### 3. 学習後にモデルを MXFP4 形式へエクスポートできますか？

いいえ、現在これをサポートするライブラリやフレームワークはありません。

#### 4. gpt-oss で強化学習（RL）や GRPO はできますか？

はい！Unsloth は現在、GRPO/GSPO による gpt-oss の RL をサポートしています。私たちはこれを無料の Kaggle ノートブックで動作させ、RL における最速の推論を達成しました。 [詳細はこちら](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune/gpt-oss-reinforcement-learning.md)

***

***謝辞:** 心より感謝します* [*Eyera*](https://huggingface.co/Orenguteng) *このガイドへの貢献に！*


---

# Agent Instructions: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
