6月29日、データインフラ系スタートアップQuesmaが「Qwen 3.6 27B is the sweet spot for local development」と題した記事を公開した。ローカル実行に最適なLLMとしてQwen 3.6 27Bを推す理由と、MacBookで実際に動かすまでの手順を詳しく紹介している。
記事の書き手は長らくローカルモデルに失望してきたと言う。しかしQwen 3.6 27Bを試して、「汎用AIとして実際に意味をなす初めてのローカルモデル」と評した。クラウドAPIへの依存を下げたい開発者にとって、これは見逃せない評価だ。
なぜ今ローカルモデルなのか
クラウドAPIへの依存にはリスクがある。記事では現実的な懸念として以下を挙げている。
- プロプライエタリなモデルは突然サービス終了することがある
- 現在の月額$100課金は実コストより大幅に割り引かれており、いつ価格が是正されるかわからない
- ローカルモデルはプロプライエタリデータや医療データを外部サーバーに送らずに使える
こうした背景から、「ローカルで動かせるモデルの品質が実用水準に達したか」は開発者にとって切実な問いになっている。Qwen 3.6 27Bはその問いに対する、現時点での一つの回答として位置づけられる。
「ローカルモデルに失望してきた」著者が推す一本
Qwen 3.6には2つのバリアントがある。
- **Qwen 3.6 35B A3B**:Mixture-of-Experts(MoE)構造。全パラメータのうち一部だけを選択的に使うことで推論を高速化する設計
- **Qwen 3.6 27B**:Denseモデル(全パラメータを毎回使う通常の構造)。やや遅いが品質が高い
記事ではMoEの35B A3Bより、Dense構造の27Bを推奨している。実際に六角形マインスイーパーの生成を両モデルで試したところ、35B A3Bは単一のindex.htmlで実装したのに対し、27Bは「pnpmパッケージとして作れ」という指示を正確に守り、1プロンプト・1回でNode.jsパッケージとして動くものを生成した。命令追従性の差が出た形だ。
実際のパフォーマンスはどのくらいか
MacBook Max M5 128GB(128GBユニファイドメモリを搭載した高スペック構成)で計測した結果、llama.cppで約30トークン/秒が出た。これはGPT-4oクラスのAPIが返す典型的なスループットと同等の水準だ。GPU使用率は95%で、Apple Siliconのリソースをほぼ使い切っている。
Artificial Analysisのベンチマークによると、Qwen 3.6 27Bの品質スコアはGPT-5 / Claude Sonnet 4.5クラス(2025年中頃のフロンティアモデル水準)に位置する。一方、ローカルコーディングのデフォルトとして広く使われるGemma 4 31Bはo1 / Claude 3.5 Sonnet相当(2024年末水準)とされており、Qwen 3.6 27Bが品質面で大きくリードしている。
NvidiaのRTX系でも動作する。Hacker Newsには以下のコメントが寄せられている。
I set this up today on my 5090 at Q6_K quantization and Q4_0 KV, got 50 tokens/s consistently at 123k context, using ~28/32gb vram through LM Studio.
— gfosco、Hacker News
RTX 5090ならQ6_K量子化で50トークン/秒、123kコンテキストでも安定して動作している。Hacker Newsでは「サイズの割に強い(punches above its weight)」という評価が多く見られ、Will it Mythos?といった独自検証記事も出ている。
なお、Apple Silicon向けに最適化されたmlx-lmより、汎用のllama.cppの方が速かったとのことだ。
llama.cppでの起動手順
記事ではOllamaを使わず、llama.cppを直接使うことを推奨している。Ollamaはセットアップが簡単な反面、モデルの動作に関する透明性や設定の制御性に限界があり、記事でもその点を理由に推奨しないと明記している(参考)。
量子化モデルはunslothやbartowskiがHugging Faceで配布している。推奨はQ8_0(8bit量子化)で、BF16の半分のサイズでありながら品質の劣化がほとんどない。さらに圧縮した量子化との比較はこのRedditスレッドが参考になる。
サーバー起動コマンドは以下。
llama-server -hf unsloth/Qwen3.6-27B-MTP-GGUF:Q8_0 \
--spec-type draft-mtp -ngl 999 -fa on -c 65536 --jinja --port 8080
主なオプションの意味:
--spec-type draft-mtp:MTP(Multi-Token Prediction)による投機的デコード(次のトークンを先読みして生成を高速化する手法)-ngl 999:全レイヤーをGPUに載せる-fa on:Flash Attentionを有効化-c 65536:コンテキストを64kトークンに設定(Qwen 3.6 27Bのネイティブコンテキストは256k)--jinja:ツールコール(関数呼び出し機能)を有効化
http://127.0.0.1:8080を開けばそのままチャットできる。AIコーディングツールのOpenCode(自然言語でコードを生成・編集するいわゆる「vibe coding」ツール)と接続する設定は以下。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"llama": {
"name": "llama.cpp (local)",
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "http://127.0.0.1:8080/v1",
"apiKey": "local"
},
"models": {
"qwen3.6-27b": { "name": "Qwen3.6-27B Q8 +MTP" }
}
}
},
"model": "llama/qwen3.6-27b"
}
ベンチマーク結果と手順の詳細はbenching-local-llms-on-apple-siliconのGitHubリポジトリにもまとめられている。
詳細はQwen 3.6 27B is the sweet spot for local developmentを参照していただきたい。