# Qwen3 - 実行とファインチューニングの方法

Qwenの新しいQwen3モデルは、推論、指示追従、エージェント能力、そして多言語サポートにおいて最先端の進化を提供します。

{% hint style="success" %}
**新登場！** Qwen3は2025年7月に更新されました。最新モデルを実行＆ファインチューニング： [**Qwen-2507**](https://unsloth.ai/docs/jp/moderu/tutorials/qwen3-next)
{% endhint %}

すべてのアップロードはUnslothを使用 [Dynamic 2.0](https://unsloth.ai/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs) SOTAの5-shot MMLUおよびKLダイバージェンス性能向け。つまり、量子化されたQwen LLMを精度損失を最小限に抑えて実行＆ファインチューニングできます。

また、ネイティブ128Kコンテキスト長のQwen3もアップロードしました。QwenはYaRNを使って元の40Kウィンドウを128Kまで拡張することでこれを実現しています。

[Unsloth](https://github.com/unslothai/unsloth) は現在、ファインチューニングと [強化学習 (RL)](https://unsloth.ai/docs/jp/meru/reinforcement-learning-rl-guide) Qwen3およびQwen3 MOEモデルの——2倍高速、VRAM 70%削減、コンテキスト長8倍拡張——にも対応しています。以下の [Colabノートブック](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_\(14B\)-Reasoning-Conversational.ipynb)

<a href="#running-qwen3" class="button primary">Qwen3実行チュートリアル</a> <a href="#fine-tuning-qwen3-with-unsloth" class="button secondary">Qwen3のファインチューニング</a>

#### **Qwen3 - Unsloth Dynamic 2.0** を最適な設定で：

| Dynamic 2.0 GGUF（実行用）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 128KコンテキストGGUF                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Dynamic 4-bit Safetensor（ファインチューニング/デプロイ用）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <ul><li><a href="https://huggingface.co/unsloth/Qwen3-0.6B-GGUF">0.6B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-1.7B-GGUF">1.7B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-4B-GGUF">4B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-8B-GGUF">8B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-14B-GGUF">14B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-30B-A3B-GGUF">30B-A3B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-32B-GGUF">32B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-235B-A22B-GGUF">235B-A22B</a></li></ul> | <ul><li><a href="https://huggingface.co/unsloth/Qwen3-4B-128K-GGUF">4B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-8B-128K-GGUF">8B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-14B-128K-GGUF">14B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-30B-A3B-128K-GGUF">30B-A3B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-32B-128K-GGUF">32B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-235B-A22B-128K-GGUF">235B-A22B</a></li></ul> | <ul><li><a href="https://huggingface.co/unsloth/Qwen3-0.6B-unsloth-bnb-4bit">0.6B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-1.7B-unsloth-bnb-4bit">1.7B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-4B-unsloth-bnb-4bit">4B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-8B-unsloth-bnb-4bit">8B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-14B-unsloth-bnb-4bit">14B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-30B-A3B-bnb-4bit">30B-A3B</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-32B-unsloth-bnb-4bit">32B</a></li></ul> |

## 🖥️ **Qwen3の実行**

1秒あたり6トークン以上の推論速度を達成するには、利用可能なメモリが使用するモデルのサイズ以上であることを推奨します。たとえば、30GBの1-bit量子化モデルには少なくとも150GBのメモリが必要です。180GBのQ2\_K\_XL量子化モデルには、少なくとも **180GBの統合メモリ** （VRAM + RAM）または **180GBのRAM** が最適な性能のために必要です。

**注：** モデルサイズより **少ない総メモリ** でモデルを実行することは可能です（つまり、VRAMが少ない、RAMが少ない、または合計が少ない場合）。ただし、その場合は推論速度が低下します。十分なメモリが必要なのは、スループットを最大化して最速の推論時間を達成したい場合のみです。

### :gear: 公式推奨設定

Qwenによると、推論に推奨される設定は以下のとおりです：

| Non-Thinkingモード設定：                                                | Thinkingモード設定：                                                    |
| ----------------------------------------------------------------- | ----------------------------------------------------------------- |
| <mark style="background-color:blue;">**Temperature = 0.7**</mark> | <mark style="background-color:blue;">**Temperature = 0.6**</mark> |
| Min\_P = 0.0（任意ですが、0.01でもよく機能します。llama.cppのデフォルトは0.1です）           | Min\_P = 0.0                                                      |
| Top\_P = 0.8                                                      | Top\_P = 0.95                                                     |
| TopK = 20                                                         | TopK = 20                                                         |

**チャットテンプレート/プロンプト形式：**

{% code overflow="wrap" %}

```
<|im_start|>user\n2+2は？<|im_end|>\n<|im_start|>assistant\n
```

{% endcode %}

{% hint style="success" %}
NON thinkingモードでは、\<think>と\</think>の中を意図的に空にします：
{% endhint %}

{% code overflow="wrap" %}

```
<|im_start|>user\n2+2は？<|im_end|>\n<|im_start|>assistant\n<think>\n\n</think>\n\n
```

{% endcode %}

{% hint style="warning" %}
**Thinkingモードでは、greedy decodingを使用しないでください**。性能低下や無限反復につながる可能性があります。
{% endhint %}

### ThinkingモードとNon-Thinkingモードの切り替え

Qwen3モデルには、推論を強化し応答品質を改善するための組み込み「thinking mode」があります。これは、 [QwQ-32B](https://unsloth.ai/docs/jp/moderu/tutorials/qwq-32b-how-to-run-effectively) が動作していた方法に似ています。切り替え方法は使用する推論エンジンによって異なるため、必ず正しい手順を使ってください。

#### llama.cpp と Ollama 用の手順：

ユーザープロンプトやシステムメッセージに `/think` と `/no_think` を追加することで、ターンごとにモデルのthinking modeを切り替えられます。モデルはマルチターン会話では最も新しい指示に従います。

以下はマルチターン会話の例です：

```
> あなたは誰ですか /no_think

<think>

</think>

私はQwenで、Alibaba Cloudによって開発された大規模言語モデルです。[...]

> strawberrys の中に 'r' は何個ありますか？ /think

<think>
さて、見てみましょう。ユーザーは、単語「strawberries」の中に文字 'r' が何回現れるかを尋ねています。[...]
</think>

strawberries には文字 r が 3 個含まれています。[...]
```

#### transformers と vLLM 用の手順：

**Thinkingモード：**

`enable_thinking=True`

デフォルトでは、Qwen3はthinkingが有効です。 `tokenizer.apply_chat_template`を呼び出すと、 **手動で何も設定する必要はありません。**

```python
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
    enable_thinking=True  # デフォルトはTrue
)
```

Thinkingモードでは、モデルは最終回答の前に追加の `<think>...</think>` ブロックを生成します。これにより、「計画」を立て、応答を洗練できます。

**Non-thinkingモード：**

`enable_thinking=False`

non-thinkingを有効にすると、Qwen3はすべてのthinkingステップをスキップし、通常のLLMのように動作します。

```python
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
    enable_thinking=False  # thinkingモードを無効化
)
```

このモードでは最終応答が直接返されます—— `<think>` ブロックも、chain-of-thoughtもありません。

### 🦙 Ollama: Qwen3実行チュートリアル

1. インストール `ollama` まだの場合はインストールしてください！実行できるモデルは最大32Bまでです。フルの235B-A22Bモデルを実行するには、 [こちらを参照](#running-qwen3-235b-a22b).

```bash
apt-get update
apt-get install pciutils -y
curl -fsSL https://ollama.com/install.sh | sh
```

2. モデルを実行しましょう！必要なら `ollama serve`を別のターミナルで呼び出せます。失敗した場合に備えて！修正内容や推奨パラメータ（temperatureなど）はすべて `params` に含まれており、Hugging Faceへのアップロードに入っています！

```bash
ollama run hf.co/unsloth/Qwen3-8B-GGUF:UD-Q4_K_XL
```

3. thinkingを無効化するには、次を使います（またはシステムプロンプトに設定できます）：

```
>>> ここにプロンプトを書いてください /nothink
```

{% hint style="warning" %}
ループが発生する場合、Ollamaがコンテキスト長ウィンドウを2,048程度に設定している可能性があります。その場合は32,000に引き上げて、問題がまだ続くか確認してください。
{% endhint %}

### 📖 Llama.cpp: Qwen3実行チュートリアル

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. （インストール後に）モデルをダウンロードします `pip install huggingface_hub hf_transfer` ）。Q4\_K\_Mや他の量子化版を選べます。

```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/Qwen3-14B-GGUF",
    local_dir = "unsloth/Qwen3-14B-GGUF",
    allow_patterns = ["*UD-Q4_K_XL*"],
)
```

3. モデルを実行し、任意のプロンプトを試してください。

```bash
./llama.cpp/llama-cli \
    --model unsloth/Qwen3-14B-GGUF/Qwen3-14B-UD-Q2_K_XL.gguf \
    --ctx-size 16384 \
    --n-gpu-layers 99 \
    -ot ".ffn_.*_exps.=CPU" \
    --seed 3407 \
    --prio 3 \
    --temp 0.6 \
    --min-p 0.0 \
    --top-p 0.95 \
    --top-k 20 \
    -no-cnv
```

thinkingを無効化するには、次を使います（またはシステムプロンプトに設定できます）：

```
>>> ここにプロンプトを書いてください /nothink
```

### Qwen3-235B-A22Bの実行

Qwen3-235B-A22Bでは、最適化された推論と豊富なオプションのために、特にLlama.cppを使用します。

1. 上と同様の手順に従いますが、今回はモデルが非常に大きいため、追加の手順も必要になります。
2. （インストール後に）モデルをダウンロードします `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"] = "1"
   from huggingface_hub import snapshot_download
   snapshot_download(
       repo_id = "unsloth/Qwen3-235B-A22B-GGUF",
       local_dir = "unsloth/Qwen3-235B-A22B-GGUF",
       allow_patterns = ["*UD-Q2_K_XL*"],
   )
   ```
3. モデルを実行し、任意のプロンプトを試してください。
4. 編集 `--threads 32` CPUスレッド数に合わせて `--ctx-size 16384` コンテキスト長に合わせて、 `--n-gpu-layers 99` 何層をGPUにオフロードするかに合わせて設定します。GPUのメモリ不足になった場合は調整してみてください。CPUのみ推論の場合はこれも削除してください。

{% hint style="success" %}
使って `-ot ".ffn_.*_exps.=CPU"` すべてのMoE層をCPUへオフロードします！これにより、実質的にMoE以外の全層を1枚のGPUに収めることができ、生成速度が向上します。GPU容量がもっとある場合は、正規表現をカスタマイズしてさらに多くの層を収めることもできます。
{% endhint %}

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/Qwen3-235B-A22B-GGUF/Qwen3-235B-A22B-UD-Q2_K_XL.gguf \
    --ctx-size 16384 \
    --n-gpu-layers 99 \
    -ot ".ffn_.*_exps.=CPU" \
    --seed 3407 \
    --prio 3 \
    --temp 0.6 \
    --min-p 0.0 \
    --top-p 0.95 \
    --top-k 20 \
    -no-cnv \
    --prompt "<|im_start|>user\nPythonでFlappy Birdゲームを作成してください。次の要素を必ず含めてください：\n1. pygameを使うこと。\n2. 背景色はランダムに選び、明るい色にする。最初は薄い青色にする。\n3. SPACEキーを複数回押すと鳥が加速すること。\n4. 鳥の形は四角、円、三角形のいずれかをランダムに選ぶこと。色は暗い色をランダムに選ぶこと。\n5. 下部に、ランダムに選ばれた濃い茶色または黄色の地面を配置すること。\n6. 右上にスコアを表示すること。パイプを通過して当たらなければスコアを加算すること。\n7. 十分な間隔を空けたパイプをランダムに配置すること。色は濃い緑、薄茶、または濃い灰色のいずれかをランダムにすること。\n8. 負けたらベストスコアを表示すること。テキストは画面内に収めること。qまたはEscでゲームを終了すること。再開はSPACEをもう一度押すこと。\n最終的なゲームはPythonのMarkdownセクション内に収めてください。最終的なMarkdownセクションの前に、コードのエラーを確認して修正してください。<|im_end|>\n<|im_start|>assistant\n"
```

{% endcode %}

## 🦥 UnslothでQwen3をファインチューニング

Unslothを使うとQwen3のファインチューニングは2倍高速になり、VRAM使用量を70%削減し、8倍長いコンテキスト長をサポートします。Qwen3（14B）は、Google Colabの16GB VRAM Tesla T4 GPUに余裕で収まります。

Qwen3は推論あり／なしの両方をサポートするため、非推論データセットでファインチューニングできますが、推論能力に影響する可能性があります。推論能力を維持したい場合（任意）、直接回答とChain-of-Thoughtの例を組み合わせて使えます。 <mark style="background-color:green;">75%の推論</mark> と <mark style="background-color:green;">25%の非推論</mark> をデータセットに含めることで、モデルの推論能力を保持できます。

私たちの会話用ノートブックでは、NVIDIAのオープン数学推論データセット75%とMaximeのFineTomeデータセット25%（非推論）を組み合わせて使用しています。Qwen3をファインチューニングするための無料のUnsloth Colabノートブックはこちらです：

* [Qwen3（14B）推論 + 会話ノートブック](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_\(14B\)-Reasoning-Conversational.ipynb) （推奨）
* [**Qwen3（4B）**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_\(4B\)-GRPO.ipynb) **- 高度なGRPO LoRA**
* [Qwen3（14B）Alpacaノートブック](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_\(14B\)-Alpaca.ipynb) （ベースモデル向け）

Unslothの古いバージョンを使っている場合、またはローカルでファインチューニングする場合は、最新バージョンのUnslothをインストールしてください：

```
pip install --upgrade --force-reinstall --no-cache-dir unsloth unsloth_zoo
```

### Qwen3 MOEモデルのファインチューニング

ファインチューニング対応には、2026年の新しい [Faster MOE ](https://unsloth.ai/docs/jp/ji-ben/faster-moe)アップデートも含まれます：30B-A3Bと235B-A22Bです。Qwen3-30B-A3BはUnslothでわずか17.5GBのVRAMで動作します。MoEのファインチューニングでは、ルーター層をファインチューニングするのはおそらく良い考えではないため、デフォルトで無効化しています。

30B-A3Bは17.5GBのVRAMに収まりますが、QLoRAファインチューニングのためにフルの16-bitモデルをダウンロードしてその場で4-bitに変換する必要があるため、RAMまたはディスク容量が不足する可能性があります。これは4-bit BnB MOEモデルを直接インポートする際の問題によるものです。これはMOEモデルにのみ影響します。

```python
from unsloth import FastModel
import torch
model, tokenizer = FastModel.from_pretrained(
    model_name = "unsloth/Qwen3-30B-A3B",
    max_seq_length = 2048, # 長いコンテキストなら任意に選択可能！
    load_in_4bit = True,  # メモリ削減のため4bit量子化
    load_in_8bit = False, # [新登場！] 少し高精度、メモリは2倍使用
    full_finetuning = False, # [新登場！] いまはフルファインチューニングも可能です！
    # token = "hf_...", # ゲート付きモデルを使う場合は指定
)
```

### ノートブックガイド：

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

ノートブックを使うには、RuntimeをクリックしてからRun allを押すだけです。設定はノートブック内でお好みに変更できます。初期設定は自動で行われています。モデル名はHugging Face上の名前に合わせて、例えば 'unsloth/Qwen3-8B' や 'unsloth/Qwen3-0.6B-unsloth-bnb-4bit' のように変更してください。

切り替え可能な他の設定もあります：

* **`max_seq_length = 2048`** – コンテキスト長を制御します。Qwen3は40960をサポートしていますが、テストには2048を推奨します。Unslothは8倍長いコンテキストでのファインチューニングを有効にします。
* **`load_in_4bit = True`** – 4-bit量子化を有効にし、16GB GPUでのファインチューニング時のメモリ使用量を4分の1に削減します。
* フル **ファインチューニング** の場合は `full_finetuning = True` と **8-bitファインチューニング** の場合は `load_in_8bit = True`

Unslothノートブックを使ったファインチューニングの完全なエンドツーエンドガイドを読みたい場合、またはファインチューニングや作成方法を学びたい場合は、 [データセット](https://unsloth.ai/docs/jp/meru/fine-tuning-llms-guide/datasets-guide) などについて、 [こちらの完全ガイドをご覧ください](https://unsloth.ai/docs/jp/meru/fine-tuning-llms-guide):

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

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

### Qwen3でのGRPO

Qwen3をファインチューニングするための新しい高度なGRPOノートブックを作成しました。新しい近接ベースの報酬関数（より近い回答ほど報酬が高い）と、Hugging FaceのOpen-R1数学データセットの使い方を学べます。Unslothはさらに評価が改善され、最新バージョンのvLLMを使用しています。

[**Qwen3（4B）**](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_\(4B\)-GRPO.ipynb) **ノートブック - 高度なGRPO LoRA**

学べること：

* Qwen3（Base）で推論を有効にし、特定のタスクを実行するよう誘導する方法
* GRPOが書式を学習しがちな傾向を回避するための事前ファインチューニング
* 新しい正規表現マッチングによる評価精度の改善
* 'think' だけでなく、\<start\_working\_out>\</end\_working\_out> などのカスタムGRPOテンプレート
* 近接ベースのスコアリング：より良い回答ほど多くのポイントを獲得し（例：答えが10のときに9と予測するなど）、外れ値は減点されます

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