# Qwen3-Coder: ローカル実行方法

Qwen3-Coderは、Qwenの新しいコーディングエージェントモデル群で、30B（**Qwen3-Coder-Flash**）および480Bパラメータで利用できます。 **Qwen3-480B-A35B-Instruct** は、Claude Sonnet-4、GPT-4.1、 [Kimi K2](/docs/jp/moderu/tutorials/kimi-k2-thinking-how-to-run-locally.md)に匹敵するSOTAのコーディング性能を達成し、Aider Polygotで61.8%を記録し、256K（1Mまで拡張可能）のトークンコンテキストをサポートします。

また、Qwen3-Coderのネイティブ <mark style="background-color:purple;">**1Mコンテキスト長**</mark> をYaRNで拡張したものと、フル精度の8bitおよび16bit版もアップロードしました。 [Unsloth](https://github.com/unslothai/unsloth) さらに、ファインチューニングと [RL](/docs/jp/meru/reinforcement-learning-rl-guide.md) にも対応しました。

{% hint style="success" %}
[**更新：** Qwen3-Coderのツール呼び出しを修正しました！ ](#tool-calling-fixes)これで llama.cpp、Ollama、LMStudio、Open WebUI、Jan などでツール呼び出しをシームレスに使えます。この問題は全体的なもので、（Unslothだけでなく）すべてのアップロードに影響していました。修正についてQwenチームと連絡を取っています！ [続きを読む](#tool-calling-fixes)
{% endhint %}

<a href="#run-qwen3-coder-30b-a3b-instruct" class="button primary">30B-A3Bを実行</a><a href="#run-qwen3-coder-480b-a35b-instruct" class="button secondary">480B-A35Bを実行</a>

{% hint style="success" %}
**Unsloth Dynamic Quantsは** [**Unsloth Dynamic Quants**](/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs.md) **動作しますか？** はい、しかも非常によく動作します。Aider Polyglotベンチマークでの第三者テストでは、 **UD-Q4\_K\_XL（276GB）** の動的量子化は **フルbf16（960GB）** のQwen3-coderモデルにほぼ匹敵し、60.9%対61.8%という結果でした。 [詳細はこちら。](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/discussions/8)
{% endhint %}

#### **Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs**:

| Dynamic 2.0 GGUF（実行用）                                                                                                                                                                                                         | 1Mコンテキスト Dynamic 2.0 GGUF                                                                                                                                                                                                           |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <ul><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF">30B-A3B-Instruct</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF">480B-A35B-Instruct</a></li></ul> | <ul><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-1M-GGUF">30B-A3B-Instruct</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-1M-GGUF">480B-A35B-Instruct</a></li></ul> |

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

以下は [**30B-A3B**](#run-qwen3-coder-30b-a3b-instruct) および [**480B-A35B**](#run-qwen3-coder-480b-a35b-instruct) モデルの派生版。

### :gear: 推奨設定

Qwenは、両モデルに対して以下の推論設定を推奨しています：

`temperature=0.7`, `top_p=0.8`, `top_k=20`, `repetition_penalty=1.05`

* <mark style="background-color:green;">**温度 0.7**</mark>
* Top\_K 20
* Min\_P 0.00（任意ですが、0.01 でもうまく動作します。llama.cpp のデフォルトは 0.1 です）
* Top\_P 0.8
* <mark style="background-color:green;">**繰り返しペナルティ 1.05**</mark>
* チャットテンプレート：

  ```
  <|im_start|>user
  やあ！<|im_end|>
  <|im_start|>assistant
  1+1は？<|im_end|>
  <|im_start|>user
  2<|im_end|>
  <|im_start|>assistant
  ```
* 推奨コンテキスト出力：65,536トークン（増やすことも可能）。詳細はこちら。

**改行がレンダリングされないチャットテンプレート/プロンプト形式**

{% code overflow="wrap" %}

```
<|im_start|>user\nやあ！<|im_end|>\n<|im_start|>assistant\n1+1は？<|im_end|>\n<|im_start|>user\n2<|im_end|>\n<|im_start|>assistant\n
```

{% endcode %}

<mark style="background-color:yellow;">**ツール呼び出し用チャットテンプレート**</mark> （サンフランシスコの現在気温を取得）。ツール呼び出しのフォーマット方法の詳細はこちら。

```
<|im_start|>user
サンフランシスコの今の気温は？明日はどう？<|im_end|>
<|im_start|>assistant
<tool_call>\n<function=get_current_temperature>\n<parameter=location>\n米国カリフォルニア州サンフランシスコ
</parameter>\n</function>\n</tool_call><|im_end|>
<|im_start|>user
<tool_response>
{"temperature": 26.1, "location": "San Francisco, CA, USA", "unit": "celsius"}
</tool_response>\n<|im_end|>
```

{% hint style="info" %}
このモデルは非思考モードのみをサポートし、出力に `<think></think>` ブロックを生成しません。また、 `enable_thinking=False` を指定する必要はなくなりました。
{% endhint %}

### Qwen3-Coder-30B-A3B-Instructを実行：

Dynamic 4-bit量子化で毎秒6トークン以上の推論速度を達成するには、少なくとも **18GBの統合メモリ** （VRAMとRAMの合計）または **18GBのシステムRAM** 単体が必要です。目安として、利用可能なメモリは使用するモデルのサイズ以上であるべきです。たとえば、UD\_Q8\_K\_XL量子化（フル精度）は32.5GBなので、少なくとも **33GBの統合メモリ** （VRAM + RAM）または **33GBのRAM** が最適性能のために必要です。

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

これは非思考モデルなので、 `thinking=False` を設定する必要はなく、モデルは `<think> </think>` ブロックを生成しません。

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

#### 🦙 Ollama: Qwen3-Coder-30B-A3B-Instruct 実行チュートリアル

1. インストール `ollama` まだであれば！32Bまでのサイズのモデルしか実行できません。

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

2. モデルを実行します！失敗した場合は `ollama serve`を別の端末で呼び出せることに注意してください。修正内容と推奨パラメータ（temperature など）はすべて、Hugging Face のアップロード内の `params` に含まれています！

```bash
ollama run hf.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:UD-Q4_K_XL
```

#### :sparkles: Llama.cpp: Qwen3-Coder-30B-A3B-Instruct 実行チュートリアル

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. HuggingFace から次の方法で直接取得できます:

   ```bash
   ./llama.cpp/llama-cli \\
       -hf unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:Q4_K_XL \\
       --jinja -ngl 99 --ctx-size 32768 \\
       --temp 0.7 --min-p 0.0 --top-p 0.80 --top-k 20 --repeat-penalty 1.05
   ```
3. モデルのダウンロード（ `pip install huggingface_hub hf_transfer` ）。UD\_Q4\_K\_XLや他の量子化版を選べます。ダウンロードが止まる場合は、 [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/Qwen3-Coder-30B-A3B-Instruct-GGUF",
    local_dir = "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF",
    allow_patterns = ["*UD-Q4_K_XL*"],
)
```

### Qwen3-Coder-480B-A35B-Instructを実行：

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

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

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

#### 📖 Llama.cpp: Qwen3-Coder-480B-A35B-Instruct 実行チュートリアル

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

{% hint style="success" %}
もし **フル精度の非量子化版**が欲しいなら、 `Q8_K_XL、Q8_0` または `BF16` 版を使ってください！
{% 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/Qwen3-Coder-480B-A35B-Instruct-GGUF:Q2_K_XL \\
       --ctx-size 16384 \\
       --n-gpu-layers 99 \\
       -ot ".ffn_.*_exps.=CPU" \
       --temp 0.7 \\
       --min-p 0.0 \\
       --top-p 0.8 \\
       --top-k 20 \\
       --repeat-penalty 1.05
   ```
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/Qwen3-Coder-480B-A35B-Instruct-GGUF",
       local_dir = "unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF",
       allow_patterns = ["*UD-Q2_K_XL*"],
   )
   ```
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/Qwen3-Coder-480B-A35B-Instruct-GGUF/UD-Q2_K_XL/Qwen3-Coder-480B-A35B-Instruct-UD-Q2_K_XL-00001-of-00004.gguf \\
    --ctx-size 16384 \\
    --n-gpu-layers 99 \\
    -ot ".ffn_.*_exps.=CPU" \
    --temp 0.7 \\
    --min-p 0.0 \\
    --top-p 0.8 \\
    --top-k 20 \\
    --repeat-penalty 1.05
```

{% endcode %}

{% hint style="success" %}
新しいQwen3アップデートも忘れずに。 [**Qwen3-235B-A22B-Instruct-2507**](/docs/jp/moderu/tutorials/qwen3-next.md) をllama.cppでローカル実行しましょう。
{% endhint %}

#### :tools: 生成速度の改善

VRAM がさらにある場合は、より多くの MoE レイヤーをオフロードするか、レイヤー全体をオフロードすることができます。

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

GPU メモリがもう少し多い場合は、試してみてください `-ot ".ffn_(up|down)_exps.=CPU"` これにより、アップ投影とダウン投影の MoE レイヤーがオフロードされます。

試してみてください `-ot ".ffn_(up)_exps.=CPU"` GPU メモリがさらに多い場合は、これを使ってください。これにより、アップ投影の MoE レイヤーのみがオフロードされます。

これは最も少ない VRAM を使用します。 `正規表現をカスタマイズすることもできます。例えば` -ot "\\.(6|7|8|9|\[0-9]\[0-9]|\[0-9]\[0-9]\[0-9])\\.ffn\_(gate|up|down)\_exps.=CPU"

この [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 間の移動を減らし、生成処理をさらに高速化できます。

#### :triangular\_ruler:長いコンテキスト（256K〜1M）を収める方法

より長いコンテキストを収めるには、 <mark style="background-color:green;">**KV キャッシュ量子化**</mark> を使って K と V のキャッシュをより低いビットに量子化できます。これにより、RAM / VRAM のデータ移動が減るため、生成速度も向上します。K の量子化で許可されるオプション（デフォルトは `f16`）は以下を含みます。

`--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1`

多少の精度向上のために `_1` 版を使うべきですが、少し遅くなります。例： `q4_1, q5_1`

V キャッシュも量子化できますが、 <mark style="background-color:yellow;">**Flash Attention サポート付きで llama.cpp をコンパイルする必要があります**</mark> を `-DGGML_CUDA_FA_ALL_QUANTS=ON`で有効化し、 `--flash-attn` を有効にします。

YaRNスケーリングによる100万コンテキスト長のGGUFもアップロードしました [こちら](https://unsloth.ai/docs/jp/).

## :toolbox: ツール呼び出しの修正

ツール呼び出しを次で修正できました： `llama.cpp --jinja` を使って、特に次で配信するために `llama-server`！30B-A3Bの量子化版をダウンロードする場合は、これらには既に修正が含まれているので心配不要です。480B-A35Bモデルについては、次を行ってください：

1. UD-Q2\_K\_XL用に <https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/tree/main/UD-Q2\\_K\\_XL> の最初のファイルをダウンロードし、現在のファイルを置き換えてください
2. 使用 `snapshot_download` は通常どおり <https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial> の手順で行うと、古いファイルが自動で上書きされます
3. 新しいチャットテンプレートを次で使用してください `--chat-template-file`。参照： [GGUFチャットテンプレート](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF?chat_template=default) または [chat\_template.jinja](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct/raw/main/chat_template.jinja)
4. おまけとして、Ollamaでも動作する単一の150GB UD-IQ1\_Mファイルも <https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/blob/main/Qwen3-Coder-480B-A35B-Instruct-UD-IQ1\\_M.gguf> に用意しました

これで次のような問題が解決するはずです： <https://github.com/ggml-org/llama.cpp/issues/14915>

### ツール呼び出しの使用

ツール呼び出し用のプロンプト形式を示すため、例を使って説明します。

私は次のPython関数を作成しました： `get_current_temperature` これは、ある場所の現在の気温を取得するための関数です。今は、常に摂氏21.6度を返すプレースホルダー関数を作成しました。これを本物の関数に変更してください！！

{% code overflow="wrap" %}

```python
def get_current_temperature(location: str, unit: str = "celsius"):
    """ある場所の現在の気温を取得する。

    引数：
        location: 気温を取得する場所。形式は「都市, 州, 国」。
        unit: 気温を返す単位。デフォルトは「celsius」。（選択肢: ["celsius", "fahrenheit"]）

    戻り値：
        温度、場所、単位を含むdict
    """
    return {
        "temperature": 26.1, # PRE_CONFIGURED -> ここを変更してください！
        "location": location,
        "unit": unit,
    }
```

{% endcode %}

次に、トークナイザーを使ってプロンプト全体を作成します：

{% code overflow="wrap" %}

```python
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("unsloth/Qwen3-Coder-480B-A35B-Instruct")

messages = [
    {'role': 'user', 'content': "サンフランシスコの今の気温は？明日はどう？"},
    {'content': "", 'role': 'assistant', 'function_call': None, 'tool_calls': [
        {'id': 'ID', 'function': {'arguments': {"location": "San Francisco, CA, USA"}, 'name': 'get_current_temperature'}, 'type': 'function'},
    ]},
    {'role': 'tool', 'content': '{"temperature": 26.1, "location": "San Francisco, CA, USA", "unit": "celsius"}', 'tool_call_id': 'ID'},
]

prompt = tokenizer.apply_chat_template(messages, tokenize = False)
```

{% endcode %}

## :bulb:性能ベンチマーク

{% hint style="info" %}
これらの公式ベンチマークはフルBF16チェックポイントのものです。これを使うには、単に以下を使用してください `Q8_K_XL、Q8_0、BF16` アップロード済みのチェックポイントを使ってください。これらの版でも、MoEオフロードのようなテクニックを引き続き使えます！
{% endhint %}

480Bモデルのベンチマークは次のとおりです：

#### エージェント型コーディング

<table data-full-width="true"><thead><tr><th>ベンチマーク</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3-0324</th><th>Claude 4 Sonnet</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>Terminal‑Bench</td><td><strong>37.5</strong></td><td>30.0</td><td>2.5</td><td>35.5</td><td>25.3</td></tr><tr><td>SWE‑bench Verified w/ OpenHands （500ターン）</td><td><strong>69.6</strong></td><td>–</td><td>–</td><td>70.4</td><td>–</td></tr><tr><td>SWE‑bench Verified w/ OpenHands （100ターン）</td><td><strong>67.0</strong></td><td>65.4</td><td>38.8</td><td>68.0</td><td>48.6</td></tr><tr><td>SWE‑bench Verified w/ Private Scaffolding</td><td>–</td><td>65.8</td><td>–</td><td>72.7</td><td>63.8</td></tr><tr><td>SWE‑bench Live</td><td><strong>26.3</strong></td><td>22.3</td><td>13.0</td><td>27.7</td><td>–</td></tr><tr><td>SWE‑bench Multilingual</td><td><strong>54.7</strong></td><td>47.3</td><td>13.0</td><td>53.3</td><td>31.5</td></tr><tr><td>Multi‑SWE‑bench mini</td><td><strong>25.8</strong></td><td>19.8</td><td>7.5</td><td>24.8</td><td>–</td></tr><tr><td>Multi‑SWE‑bench flash</td><td><strong>27.0</strong></td><td>20.7</td><td>–</td><td>25.0</td><td>–</td></tr><tr><td>Aider‑Polyglot</td><td><strong>61.8</strong></td><td>60.0</td><td>56.9</td><td>56.4</td><td>52.4</td></tr><tr><td>Spider2</td><td><strong>31.1</strong></td><td>25.2</td><td>12.8</td><td>31.1</td><td>16.5</td></tr></tbody></table>

#### エージェント型ブラウザ使用

<table data-full-width="true"><thead><tr><th>ベンチマーク</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3 0324</th><th>Claude Sonnet‑4</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>WebArena</td><td><strong>49.9</strong></td><td>47.4</td><td>40.0</td><td>51.1</td><td>44.3</td></tr><tr><td>Mind2Web</td><td><strong>55.8</strong></td><td>42.7</td><td>36.0</td><td>47.4</td><td>49.6</td></tr></tbody></table>

#### エージェント型ツール使用

<table data-full-width="true"><thead><tr><th>ベンチマーク</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3 0324</th><th>Claude Sonnet‑4</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>BFCL‑v3</td><td><strong>68.7</strong></td><td>65.2</td><td>56.9</td><td>73.3</td><td>62.9</td></tr><tr><td>TAU‑Bench Retail</td><td><strong>77.5</strong></td><td>70.7</td><td>59.1</td><td>80.5</td><td>–</td></tr><tr><td>TAU‑Bench Airline</td><td><strong>60.0</strong></td><td>53.5</td><td>40.0</td><td>60.0</td><td>–</td></tr></tbody></table>


---

# 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/tutorials/qwen3-coder-how-to-run-locally.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.
