2.3K Views
July 03, 26
スライド概要
12GBのVRAMに35Bクラスは載らない ― その常識を、家庭用GPU(RTX 4070)で覆した実測ノートです。Ollamaの自動設定で12.2 tok/sだったQwen 35B-A3Bを、-ngl 99 --cpu-moe の2つのフラグで34.6 tok/s(2.8倍)まで引き上げます。数字はすべて手元のRTX 4070(12GB)で私自身が測定した実測で、借り物のベンチマークは1本も入っていません。
本スライドは、Zenn Book「RTX 4070でQwen 35Bを2.8倍速くする」の入門編です。全10章のうち、勝ち構成の作り方、計測の作法、世代差の見方、ローカルQwenをエージェントとして動かす手順までを12枚で俯瞰します。
扱う論点:
- 12GBのGPUに35Bが載る理由(MoEの仕組み)
- 勝ち構成 --cpu-moe の役割分担(GPU=帯域が効く / CPU=疎な計算)
- KV量子化で文脈を8倍に伸ばすトレードオフ
- 計測の4作法(自分の数字を疑う)
- Qwen3.5 vs 3.6の世代差はどこに出るのか(公式ベンチとエージェント領域)
- claw-code と Qwen Code CLI の比較 ― 文脈13倍と自走の厚み
▼Zenn Book で全文(序章+第1章+第2章 無料公開)
https://zenn.dev/kenimo49/books/local-llm-qwen-4070
▼Kindle版(¥1,200)
https://www.amazon.co.jp/dp/B0HCH7MGW1
▼著者
ken imoto / kenimoto.dev / @kenimo49
LOCAL LLM ON RTX 4070 RTX 4070で Qwen 35Bを 2.8倍速くする 実測 12.2 → 34.6 tok/s の記録 ken imoto エンジニア / Propel-lab 12GBのVRAMに35Bクラスは載らない... その常識を、家庭用GPU 1枚で覆した。 RTX 4070 × Qwen 35B 12.2 → 34.6 tok/s 2.8× 高速化 llama.cppのフラグ2つ。すべて手元のRTX 4070で実測 Local LLM 高速化の実測ノート llama.cpp × RTX 4070 12GB × Qwen 35B ken imoto RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev
3部で実測を積み上げる。 第1部 速く動かす → 第2部 世代を測る → 第3部 働かせる 本書の地図 - 3部で積み上げる 家庭用GPUで35Bを「速く・賢く・働かせる」までを、一本の流れで測る。 第1部 速く動かす 勝ち構成 --cpu-moeで2.8倍 (第2章) / KV量子化で文脈と余白 (第3章) 第2部 速さと賢さ、世代を測る 計測の作法 (第4章) / 標準7問の品質 (第5章) / 3.5 vs 3.6 (第6章、第7章) 第3部 働かせる ローカル35Bをエージェント化 (第8章) / 2エージェントCLI比較 (第9章) / Qwen Codeを使いこな す (第10章) 借り物のベンチマークではなく、この1枚のRTX 4070で測った実測だけを積み上げる。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 02 / 12
35Bを抱えたまま、動くのは3Bだけ。 だから12GBのVRAMに35Bクラスが載る。 ■起きている(青) □寝ている(灰) Dense と MoE - 1トークンで動くのはどこか 同じ35Bでも、推論のたびに計算するパラメータの範囲が違う。 Dense 35B 1トークンごとに全パラメータを計算する。 活性パラメータ 35B / 35B (全部) MoE 35B-A3B 128個のエキスパートのうち、毎回8個だけ働く。 活性パラメータ 約3B / 35B (一部) 35Bを抱えたまま、毎回動くのは3Bぶんだけ。 だから12GBのVRAMで35Bが動く。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 03 / 12
帯域はGPU、疎な計算はCPU。 Attention = 毎回読む / KV cache = 全部覚える / Experts = 呼ばれた時だけ / Routing = 誰を呼ぶか決める 帯域と疎さ - どこに何を置くか GPU=帯域が効く重要部品、CPU=疎で軽い計算。役割分担が勝ち構成の正体。 GPU (RTX 4070) 帯域が効く部品を置く 1トークンごとに毎回動く、メモリ帯域律速の計算。 Attention 層の全出力を毎回計算。帯域が命。 KV cache 読んだトークン全部を保持。読み書きが頻繁。 メモリ帯域 数百 GB/s CPU (システムRAM) 疎な計算を逃がす 1トークンで128個中8個しか動かない、疎で軽い計算。 Experts --cpu-moeで全48層をCPUへ。計算は疎で軽い。 ルーティング どの専門家を呼ぶかは毎回変わる。 メモリ帯域 数十 GB/s -ngl 99 --cpu-moeで 12.2 → 34.6 tok/s (2.8倍) RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 04 / 12
48層すべてCPUへ逃がすと最速。 -ngl 99 --cpu-moe が勝ち構成。中途半端な配分より速い。 34.6 tok/s (Best) vs Ollama 12.2 = 2.8倍 エキスパートをCPUに逃がすほど速い -ngl 99 固定、CPUに置くエキスパート層数を変えたときの生成速度 (tok/s)。 生成速度 tok/s 34.6 27.2 16.9 15.3 14.1 12.9 11.7 Ollama自動 12.2 48 (全CPU) 44 40 36 32 28 24 全48層をCPUへ逃がしたときが最速の34.6 tok/s - 勝ち構成は --cpu-moe RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 05 / 12
速度ほぼ据え置きで、文脈8倍。 重みだけでなくKVキャッシュも量子化する。エージェント用途では常に得。 -ctk q8_0 -ctv q8_0 4096 → 32768 KV量子化のトレードオフ - 速度を落とさず文脈を伸ばす 重みだけでなくKVキャッシュも量子化する。エージェント用途では、ほぼ常に得な交換。 項目 既定 f16 -ctk q8_0 -ctv q8_0 KV型 16bit 8bit KVのVRAM まるごと 1× およそ 1/2 文脈長 4096が上限 勝ち構成の余白は600 MiB程度 32768 まで伸ばせる エージェントのシステム+tool定義に必要 生成速度 34.6 tok/s ほぼ据え置き 実測でも大差なし KVサイズ 1/2 文脈長 4096 → 32768 速度 ほぼ据え置き 速度をほとんど落とさず、文脈を8倍にできる。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 06 / 12
自分の数字も、借り物と同じだけ疑う。 共用PCで測るローカルLLMの数字は簡単に汚れる。4つの規律で守る。 計測の作法 - 数字を出す前に 共用PCで測るローカルLLMは、汚れやすい。4つの規律で「自分の数字」を疑う。 1 ウォームアップを挟む 最初の一回はロードとキャッシュに引きずられる。 llama-bench -r 3で複数試行の平均を見る。 2 ばらつきを一緒に見る 平均だけでは足りない。± 0.82のように標準偏差も記 録し、大きい試行は根拠にしない。 3 ベースラインを併走させる 既知の値が再現するか毎回チェックに使う。2つのモ デルが揃って落ちたら、環境が汚れている。 4 飽和した物差しを疑う 満点が並んだら差は測れていない。世代差を見るなら、 両方が転ぶ課題を選ぶ。 借り物のベンチと同じだけ、自分の出した数字も疑う。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 07 / 12
半速の犯人は、モデルでなく環境。 同じQwen3.6、同じRTX 4070。違うのはVRAMの状態だけ。 汚染: 12~19 tok/s クリーン: 38.76 tok/s 半速の犯人は、モデルではなかった 同じQwen3.6-35B-A3B、同じRTX 4070。違うのはVRAMの状態だけ。 汚染あり 他プロセスがVRAMを専有した状態。 12~19 tok/s 他プロセスのVRAM占有 9~11 GB 3.5も揃って低速化 環境が原因 クリーン 占有プロセスを解放した状態。 38.76 tok/s 他プロセスのVRAM占有 約 340 MiB 試行間ばらつき ± 0.82 既知の値が再現しないときは、モデルより先に計測環境を疑う。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 08 / 12
エージェント領域だけ、大きく伸びた。 Qwen 3.5 → 3.6の伸び幅は、単発の知識問題ではなく道具を使う仕事に集中。 WebBench +43% Terminal +27% 世代差は「エージェント領域」に出た Qwen3.5 → 3.6の伸び幅。単発の知識問題ではなく、道具を使う仕事で大きい。 QwenWebBench フロントエンド生成 978 → 1,397 +43% Terminal-Bench 2.0 ターミナル操作 40.5 → 51.5 +27% SWE-bench Pro リポジトリ規模の課題 44.6 → 49.5 +11% LiveCodeBench v6 競プロ寄りコード 74.6 → 80.4 +8% SWE-bench Verified 検証済みの実issue 70.8 → 73.4 +5% AIME 26 単発の数学 91.0 → 92.7 +2% GPQA 単発の知識 84.2 → 86.0 +2% 伸びはエージェント領域に偏る。単発の知識問題では2%止まり。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 09 / 12
疎通OK+動かないは、この3つを疑う。 ⊗ tool-call出ない / ☁ クラウド誤ルーティング / 🛡 安全弁で起動拒否 ⊗ --jinja ☁ openai/prefix 🛡 -C project-dir 3つの罠 - 疎通は通るのにエージェントが動かない claw-code に llama-server をつなぐとき、私が実際に踏んだ3つ。原因は見えにくい。 罠 1 tool callが出ない 素の質問には答えるのに、道具を呼ばず コードを文章で返してくる。既定のチャ ットテンプレートがtool-callを整形でき ない。 対処 --jinja llama-server 起動時に付けてテンプレートエ ンジンを有効化。 罠 2 クラウドに誤ルーティング --model qwen35 だと DashScope (ク ラウド版Qwen)を要求してくる。 OPENAI_API_KEYがある環境で起きる。 対処 --model openai/qwen35 プレフィックスでOpenAI互換ルートを明示 する。 罠 3 安全弁で起動拒否 広い作業ディレクトリだと running from a very broad directory で止 まる。エージェントに全部見せないため の当然の防御。 対処 -C ./myproject 作業対象を1つのプロジェクトに絞る。突破 フラグは使わない。 疎通OK+動かないときは、この3つから順に疑う。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 10 / 12
自走重視なら、Qwen Codeが有利。 ただし文脈はclaw-codeの13倍、-c 32768 と --jinja が前提。 claw: 1,453 tok Qwen Code: 19,374 tok (13倍) claw-code と Qwen Code CLI - 自走の厚みと文脈の重み 同じローカルQwenをつないで比べる。純正だから相性がいい、という予想は外れた。 観点 claw-code Qwen Code CLI 出自 ultraworkers / Rust QwenLM / Gemini CLI フォーク Ollamaでtool-call 動く 壊れる (--jinja必須) system+toolの文脈 消費 約1,453 トークン 約19,374 トークン 最小の -c 4,096で足りる 32,768が必須 自走の制御 権限モード + tool 制限 承認4モード / SubAgents / ヘッドレス実行 / Fork 文脈の重さ (system+tool) 1,453 vs 19,374 トークン Qwen Code は claw-code の約13倍。名乗るだけで一仕事。 自走の厚み Qwen Code に分がある 承認4モード+SubAgents+Fork。安全な自走の足回りが厚い。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 11 / 12
続きは、本書で。 序章+第1章+第2章はZenn Bookで無料公開中。 RTX 4070でQwen 35Bを 2.8倍速くする ✓ 実測 34.6 tok/s まで詰めた勝ち構成 ✓ 全 10章 +終章+付録 ✓ 一次情報 100% / 借り物ゼロ Zenn Book zenn.dev/kenimo49/books/local-llm-qwen-4070 Kindle amazon.co.jp/dp/B0HCH7MGW1 (¥1,200) Author ken imoto / kenimoto.dev / @kenimo49 12GBのVRAMに35Bクラスは載らない... その常識を、家庭用GPU 1枚で覆した。 RTX 4070 × Qwen 35B 12.2 → 34.6 tok/s 2.8× 高速化 llama.cppのフラグ2つ。すべて手元のRTX 4070で実測 Local LLM 高速化の実測ノート llama.cpp × RTX 4070 12GB × Qwen 35B ken imoto RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 12 / 12