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

Qwen3-Coder-30B-A3B-Instructおよび480B-A35BをUnslothのダイナミック量子化でローカル実行しましょう。

Qwen3-CoderはQwenの新しいコーディングエージェントモデルシリーズで、30B(Qwen3-Coder-Flash)および480Bパラメータで利用可能です。 Qwen3-480B-A35B-Instruct はClaude Sonnet-4、GPT-4.1、そして Kimi K2に匹敵する最先端のコーディング性能を達成しており、Aider Polyglotで61.8%のスコアを記録し、256K(最大1Mまで拡張可能)のトークンコンテキストをサポートします。

またネイティブでの 1Mコンテキスト長 をYaRNで拡張したものや、フルプレシジョンの8bitおよび16bitバージョンとしてQwen3-Coderもアップロードしました。 Unslotharrow-up-right はまた現在ファインチューニングと 強化学習(RL) をQwen3-Coderでサポートします。

circle-check

30B-A3Bを実行480B-A35Bを実行

circle-check

Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs:

🖥️ Qwen3-Coderの実行

以下はモデルの 30B-A3B および 480B-A35B バリアントのガイドです。

⚙️ 推奨設定

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

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

  • 温度(Temperature)0.7

  • Top_K 20

  • Min_P 0.00(任意、ただし0.01が良好に機能します。llama.cppのデフォルトは0.1)

  • Top_P 0.8

  • Repetition Penalty(反復ペナルティ)1.05

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

    {% code overflow="wrap" %}

    <|im_start|>user
    こんにちは!<|im_end|>
    <|im_start|>assistant
    1+1はいくつですか?<|im_end|>
    <|im_start|>user
    2<|im_end|>
    <|im_start|>assistant

    {% endcode %}

  • 推奨コンテキスト出力:65,536トークン(増加可能)。詳細はこちら。

改行がそのままのチャットテンプレート/プロンプト形式

ツールコール用のチャットテンプレート (サンフランシスコの現在の気温を取得する)。ツール呼び出しのフォーマット方法の詳細はこちら。

circle-info

このモデルは非思考モードのみをサポートしており、出力に <think></think> ブロックを生成しないことに注意してください。一方で、 enable_thinking=False の指定はもはや必要ありません。

Qwen3-Coder-30B-A3B-Instructを実行:

Dynamic 4ビット量子化で秒間6トークン以上の推論速度を達成するには、少なくとも 18GBの統合メモリ (VRAMとRAMの合計)または 単独で18GBのシステムRAM が必要です。目安として、利用可能なメモリは使用しているモデルのサイズと同等かそれ以上であるべきです。例えば、UD_Q8_K_XL量子化(フルプレシジョン)は32.5GBで、少なくとも 33GBの統合メモリ (VRAM + RAM)または 33GBのRAM が最適な性能のために必要になります。

注意: モデルは総サイズより少ないメモリでも動作しますが、推論は遅くなります。最高速度を出すには最大メモリが必要です。

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

circle-info

上記の ベストプラクティスに従ってください。これらは480Bモデルと同じです。

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

  1. をインストール ollama まだの場合は!32Bまでのモデルのみ実行できます。

  1. モデルを実行!失敗した場合は別の端末で ollama serveを呼び出せることに注意してください!私たちは全ての修正や推奨パラメータ(温度など)を params にHugging Faceのアップロードで含めています!

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

  1. 最新の llama.cppGitHubで入手してください。arrow-up-right以下のビルド手順に従うこともできます。 -DGGML_CUDA=ON-DGGML_CUDA=OFF に変更してください(GPUがない場合やCPU推論のみを行いたい場合)。

  1. HuggingFaceから直接プルできます:

  2. モデルをダウンロード(以下をインストール後): pip install huggingface_hub hf_transfer )。UD_Q4_K_XLや他の量子化バージョンを選択できます。ダウンロードが止まる場合は、参照してください: Hugging Face Hub、XETデバッグ

Qwen3-Coder-480B-A35B-Instructを実行:

1ビット量子化で秒間6トークン以上の推論速度を達成するには、少なくとも 150GBの統合メモリ (VRAMとRAMの合計)または 単独で150GBのシステムRAM が必要です。目安として、利用可能なメモリは使用しているモデルのサイズと同等かそれ以上であるべきです。例えば、Q2_K_XL量子化は180GBで、少なくとも 180GBの統合メモリ (VRAM + RAM)または 180GBのRAM が最適な性能のために必要になります。

注意: モデルは総サイズより少ないメモリでも動作しますが、推論は遅くなります。最高速度を出すには最大メモリが必要です。

circle-info

上記の ベストプラクティスに従ってくださいが必要になります。これらは30Bモデルと同じです。

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

Coder-480B-A35Bについては、最適化された推論と多数のオプションのために特にLlama.cppを使用します。

circle-check
  1. 最新の llama.cppGitHubで入手してください。arrow-up-right以下のビルド手順に従うこともできます。 -DGGML_CUDA=ON-DGGML_CUDA=OFF に変更してください(GPUがない場合やCPU推論のみを行いたい場合)。

  2. llama.cppを直接使用してモデルをダウンロードできますが、通常は huggingface_hub を使うことを推奨します。llama.cppを直接使用するには、以下を実行してください:

    {% code overflow="wrap" %}

    {% endcode %}

  3. あるいは、(以下をインストール後)モデルをダウンロードしてください: pip install huggingface_hub hf_transfer )。UD-Q2_K_XLまたは他の量子化バージョンを選択できます。

  4. モデルを会話モードで実行し、任意のプロンプトを試してください。

  5. 編集 --threads -1 でCPUスレッド数を、 --ctx-size 262114をコンテキスト長に、 --n-gpu-layers 99 でGPUオフロードするレイヤー数を設定します。GPUがメモリ不足になった場合は調整してみてください。CPUのみの推論の場合はこれを外してください。

circle-check
circle-check

🛠️ 生成速度の改善

もしVRAMが多ければ、さらに多くのMoEレイヤーをオフロードするか、レイヤー自体をオフロードすることを試してください。

通常、 -ot ".ffn_.*_exps.=CPU" はすべてのMoEレイヤーをCPUにオフロードします!これにより非MoEレイヤーを1つのGPUに収めることができ、生成速度が向上します。GPU容量が多ければ正規表現をカスタマイズしてさらに多くのレイヤーを適合させることができます。

もしGPUメモリが少し多ければ、次を試してください: -ot ".ffn_(up|down)_exps.=CPU" これはupおよびdownプロジェクションのMoEレイヤーをオフロードします。

さらにGPUメモリがある場合は、次を試してください: -ot ".ffn_(up)_exps.=CPU" これは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のリリースarrow-up-right は高スループットモードも導入しています。 llama-parallelを使用してください。詳細はこちら。 こちらarrow-up-rightまた、 KVキャッシュを4ビットに量子化する などで、VRAM / RAM移動を削減し、生成プロセスを高速化できる場合があります。

📐長いコンテキスト(256K〜1M)に適合させる方法

長いコンテキストに適合させるには、 KVキャッシュの量子化 を使用して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キャッシュも量子化できますが、その場合は llama.cppをFlash Attentionサポートでコンパイルする 必要があります。 -DGGML_CUDA_FA_ALL_QUANTS=ONを用いて、 --flash-attn で有効にします。

またYaRNスケーリングを通じて1百万トークンのコンテキスト長GGUFもアップロードしました。 こちら.

🧰 ツールコールの修正

私たちはツールコールを修正することに成功しました: 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チャットテンプレートarrow-up-right または chat_template.jinjaarrow-up-right

  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度セルシウスを返すプレースホルダ関数を作成しています。実際の関数に変更してください!!

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

💡パフォーマンスベンチマーク

circle-info

これらの公式ベンチマークはフルBF16チェックポイントのものです。これを使用するには、単に私たちがアップロードした Q8_K_XL、Q8_0、BF16 チェックポイントを使用してください — これらのバージョンでもMoEオフロードなどのトリックを使用できます!

以下は480Bモデルのベンチマークです:

エージェニックコーディング

ベンチマーク
Qwen3‑Coder 480B‑A35B‑Instruct
Kimi‑K2
DeepSeek‑V3-0324
Claude Sonnet‑4
GPT‑4.1

Terminal‑Bench

37.5

30.0

2.5

35.5

25.3

SWE‑bench Verified w/ OpenHands (500 turns)

69.6

70.4

SWE‑bench Verified w/ OpenHands (100 turns)

67.0

65.4

38.8

68.0

48.6

SWE‑bench Verified w/ Private Scaffolding

65.8

72.7

63.8

SWE‑bench Live

26.3

22.3

13.0

27.7

SWE‑bench Multilingual

54.7

47.3

13.0

53.3

31.5

Multi‑SWE‑bench mini

25.8

19.8

7.5

24.8

Multi‑SWE‑bench flash

27.0

20.7

25.0

Aider‑Polyglot

61.8

60.0

56.9

56.4

52.4

Spider2

31.1

25.2

12.8

31.1

16.5

エージェニックブラウザ利用

ベンチマーク
Qwen3‑Coder 480B‑A35B‑Instruct
Kimi‑K2
DeepSeek‑V3 0324
Claude Sonnet‑4
GPT‑4.1

WebArena

49.9

47.4

40.0

51.1

44.3

Mind2Web

55.8

42.7

36.0

47.4

49.6

エージェニックツール利用

ベンチマーク
Qwen3‑Coder 480B‑A35B‑Instruct
Kimi‑K2
DeepSeek‑V3 0324
Claude Sonnet‑4
GPT‑4.1

BFCL‑v3

68.7

65.2

56.9

73.3

62.9

TAU‑Bench Retail

77.5

70.7

59.1

80.5

TAU‑Bench Airline

60.0

53.5

40.0

60.0

最終更新

役に立ちましたか?