Qwen3.6-35B-A3B をローカル展開:GGUF、llama.cpp、VRAM、API 検証

公式 Qwen3.6-35B-A3B ウェイトを基準に、GGUF の量子化選択、llama.cpp の起動パラメータ、VRAM の確認、画像投影ファイル、OpenAI 互換 API の検証手順を解説します。

Qwen3.6-35B-A3B は、オープンウェイトを備えた Qwen の公式マルチモーダル MoE モデルです。名前の 35B は合計パラメータ スケールで、A3B は各トークンが約 3B のパラメータをアクティブにすることを意味します。同じサイズの密なモデルよりも計算量は少なくなりますが、それでもロード時にすべてのエキスパートの重みに対応する必要があり、3B の小さなモデル推定メモリとみなすことはできません。

この記事では、公式の基本モデルとその GGUF 変換についてのみ説明します。サードパーティによって UncensoredAggressive、または「ジェイルブレイク バージョン」とマークされているウェイトは、Qwen によって正式にリリースされていません。トレーニング データ、調整の変更、および機能ステートメントは発行者によって個別に証明される必要があるため、展開ベンチマークとしては使用されません。 デプロイする前に 3 つのことを確認してください

モデルソース

正式なモデルIDは次のとおりです。

1
Qwen/Qwen3.6-35B-A3B

GGUF をダウンロードするときは、変換リポジトリが明確にマークされているかどうかも確認する必要があります。

  • 基本モデルのコミット。
  • llama.cpp 変換バージョン;
  • 定量的方法と断片化リスト。
  • モデルに一致する mmproj を提供するかどうか。
  • ファイルのチェックサムまたはハグフェイス LFS メタデータ。

倉庫名に Qwen3.6 が含まれているだけですが、これでは公式のウェイトと一致していることを証明するには不十分です。 使用可能なメモリ

GGUF ファイル サイズはウェイト ロードの下限に近く、最終的なVRAM使用量と等しくありません。実際の操作には、KV キャッシュ、計算バッファ、ビジュアル プロジェクション、およびランタイムのためのスペースも必要です。

24GB カード 1 枚の場合、通常は Q4 量子化がより合理的な開始点となります。 16 GB または 12 GB のVRAMでは、多くの場合、より低い量子化、CPU/RAM の段階的読み込み、またはより短いコンテキストが必要になります。これは技術的な推定値であり、各タイプのグラフィックス カードに関するこのサイトの実測結果ではありません。 推論バックエンド

「同じコマンドが異なるバージョンで一貫性なく動作する」ことを避けるために、最初にバージョンを記録しますが、見つけることができません。

1
2
.\llama-server.exe --version
nvidia-smi

保存する必要があるベースラインには、llama.cpp コミット、GPU モデルとドライバー、システム メモリ、GGUF ファイル名、コンテキストの長さ、KV キャッシュ タイプが含まれます。 量子化の選択方法

目標 まずは試してみる 主な費用
最初にロードできるかどうかを確認してください。 IQ2 / IQ3 長いタスクの出力品質と安定性が低下します。
品質と容量のトレードオフ Q4_K_M または同等の動的量子化 より多くのVRAMまたは部分的な CPU オフロードが必要です。
品質をさらに重視 Q5 / Q6 ファイル、VRAM、ロード時間は増加し続けています。
比較精度 Q8 / FP8 / BF16 通常、通常の単一GPUの快適範囲を超えています。

A3B は主に各トークンの計算負荷を軽減し、35B の総ウェイトを 3B に圧縮しません。量子化の選択は、合計ファイル サイズと実行時のレポートに基づいて行う必要があります。 Windows 上で llama-server を起動します

テキスト モード、短いコンテキスト、ネイティブ リスニングのみから始めます。 PowerShell の行継続文字はバックティックであり、CMD の ^ ではありません。

1
2
3
4
5
6
7
8
.\llama-server.exe `
  -m "D:\models\Qwen3.6-35B-A3B-Q4_K_M.gguf" `
  --host 127.0.0.1 `
  --port 8080 `
  -c 8192 `
  -n 2048 `
  -ngl 999 `
  --jinja

パラメータ関数:

  • -m: メインモデル GGUF。シャード モデルは最初のシャードを指す必要があります。
  • -c 8192: 最初に 8K コンテキスト検証を使用して、最初に KV キャッシュを 128K にプルすることを回避します。
  • -ngl 999: 可能な限り GPU に投入するようリクエストします。最終的にすべてのデータが GPU に入れられるかどうかは、ログによって異なります。
  • --jinja: モデル チャット テンプレートを使用して、メッセージを直接結合しないようにします。
  • --host 127.0.0.1: 認証されていないサービスがネットワークに公開されるのを防ぐために、ローカル アクセスのみを受け入れます。

起動に失敗した場合は、まず -ngl を下げて、VRAMが不足していないかどうかを確認します。それでも失敗する場合は、量子化を下げてブラインド テストを実行し続けるのではなく、モデル ファイル、バックエンド、ドライバーを確認してください。 起動ログから成功したかどうかを判断する

起動端末の出力を保持し、次の 3 種類の情報を確認します。

  1. モデルのメタデータとアーキテクチャが Qwen3.6 MoE として認識されるかどうか。
  2. GPU に組み込まれるレイヤーまたはテンソルの数。
  3. KV キャッシュと計算バッファーの占有率が想定内であるかどうか。

プロセスが直接終了し、メモリ割り当てが失敗した場合は、まず -c または GPU オフロードを減らします。小さなコンテキストをロードできない場合にのみ、重み自体が現在の組み合わせの容量を超えたことを意味します。 ローカル API を確認する

サービスが開始されたら、まず健全性ステータスを確認します。

1
Invoke-RestMethod http://127.0.0.1:8080/health

モデルのエンドポイントを再度確認します。

1
2
Invoke-RestMethod http://127.0.0.1:8080/v1/models |
  ConvertTo-Json -Depth 6

は最終的に最小限のチャット リクエストを発行しました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$body = @{
  model = "Qwen3.6-35B-A3B"
  messages = @(
    @{ role = "user"; content = "只回复 READY" }
  )
  temperature = 0
  max_tokens = 16
} | ConvertTo-Json -Depth 6

Invoke-RestMethod `
  -Uri http://127.0.0.1:8080/v1/chat/completions `
  -Method Post `
  -ContentType 'application/json' `
  -Body $body

の受け入れ基準は、READY がそのまま返される必要があるということではなく、HTTP リクエストが成功したこと、戻り構造にアシスタント メッセージがあること、端末にテンプレートがないこと、または解析エラーがあることです。 ビジュアル投影ファイルをロードする

テキスト リクエストが正常であることを確認した後、同じモデルに一致する mmproj を追加します。

1
2
3
4
5
6
7
8
.\llama-server.exe `
  -m "D:\models\Qwen3.6-35B-A3B-Q4_K_M.gguf" `
  --mmproj "D:\models\mmproj-Qwen3.6-35B-A3B.gguf" `
  --host 127.0.0.1 `
  --port 8080 `
  -c 8192 `
  -ngl 999 `
  --jinja

メイン モデルと mmproj が一致しない場合、一般的な結果は、起動時に寸法エラーが報告されるか、イメージ リクエストが失敗するか、モデルがイメージを完全に無視することです。視覚機能は個別に受け入れられるべきです。テキストチャットが普通になったからといって、マルチモダリティが効果を発揮していると考えないでください。 VRAMと速度を記録する方法

推論中に、別の端末を開いて 1 秒ごとに観察します。

1
2
nvidia-smi --query-gpu=name,memory.used,memory.total,utilization.gpu `
  --format=csv -l 1

は少なくとも 2 セットのデータを記録します。

  • モデルがロードされたばかりでまだ要求されていないときのVRAM。
  • 固定プロンプトと固定出力長を生成するときのピーク メモリと速度。

比較可能なレコードは次のように記述する必要があります。

1
2
3
4
5
6
7
8
9
GPU:具体型号与显存
后端:llama.cpp commit
模型:完整 GGUF 文件名
上下文:8192
KV cache:默认或具体量化
GPU offload:日志中的实际结果
提示词:固定测试文本
输出:固定上限
结果:加载显存、峰值显存、prompt tok/s、generation tok/s

これらの条件がなければ「24GB動作可能」「非常に速い」と書くだけでは再現できません。 一般的な障害と回復

スタートアップは OOM です

コンテキスト、同時実行性、GPU オフロードの順序で削減します。他の GPU を多用するプログラムを閉じます。それでも失敗する場合は、より小さい量子化に変更するか、より多くの重みがシステム メモリに入るようにします。 重複した出力と紛らわしい役割

必ず最新バージョンの llama.cpp を使用し、--jinja を保持し、GGUF に正しいチャット テンプレートが含まれていることを確認してください。クライアントとサーバーで同時にテンプレートを複製しないでください。

クライアント接続後 404

llama-server は、OpenAI 互換の Chat Completions インターフェイスを提供します。クライアントが応答 API のみをサポートしている場合は、base_url を変更することしかできません。プロトコル変換層が必要です。この問題は、モデルが正常にロードされたかどうかとは関係ありません。 終了とロールバック

サービス端末で Ctrl+C を押してプロセスを停止します。導入の初期段階ではスタートアップ サービスとして登録しないでください。まず、安定して起動できるベースライン コマンドを保存し、次にコンテキスト、ビジョン、およびリモート アクセスを 1 つずつ追加します。 セキュリティ境界

  • デフォルトでは、127.0.0.1 のみが監視されます。
  • 未認証の推論ポートをパブリック ネットワークに直接公開しないでください。
  • エージェントは、ファイル、シェル、またはブラウザにアクセスするときに最小限の権限と手動確認を使用します。
  • サードパーティによる重みの微調整には、ソース、ライセンス、データ、動作の違いを個別に検証する必要があります。

- ローカル実行はデータ転送パスの一部にのみ対処し、正しい出力やシステム セキュリティを自動的に保証しません。 結論

Qwen3.6-35B-A3B のローカル デプロイメントは、公式モデル ID、短いコンテキスト テキスト サービス、API 検証から開始し、その後、GPU オフロード、ビジュアル プロジェクション、エージェント アクセスを徐々に追加する必要があります。 MoE は計算量を削減できますが、マシンが安定して実行できるかどうかは、完全な重み、KV キャッシュ、実行時のオーバーヘッドによって決まります。 参考文献

【Qwen3.6-35B-A3B オフィシャルモデル】( https://huggingface.co/Qwen/Qwen3.6-35B-A3B )