RTX 4070でQwen 35Bを2.8倍速くする ― Ollamaの12.2 tok/sを34.6 tok/sに引き上げた実測ノート

-- 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

▼著者
ken imoto / kenimoto.dev / @kenimo49

profile-image

Propel-Lab代表。WebRTC・音声AIのエンジニアをやりながら、LLMを仕事の戦力にするための設計を研究しています。中心テーマは「ハーネス・エンジニアリング」——AIの成果はモデルそのものより、その外側の環境(制約・フィードバック・ツール)で決まる、という考え方です。これとContext Engineering、AIコードレビューの自動化などをZennとKindleで本にしてきました。ここには各本の要点をスライドにまとめて置いていきます。詳しくは kenimoto.dev へ。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

LOCAL LLM ON RTX 4070 RTX 4070で Qwen 35Bを 2.8倍速くする 実測 12.2 → 34.6 tok/s の記録 ken imoto エンジニア / Propel-lab LOCAL LLM ON RTX 4070 12GB RTX 4070 12GB 12 34.6 tok/s 12.2 → 34.6 tok/s すべて手元のRTX 4070で実測 RTX 4070で Qwen 35Bを 2.8倍 高速化 実測ガイド 自分の数字を疑え。 掲載データはすべてRTX 4070で実測。 Qwen 35B-A3B llama.cpp RTX 4070 12GB 実測データ 一次情報 100% Ken Imoto WebRTC × Voice AI × LLMO 全10章 + 付録 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev

2.

3部で実測を積み上げる。 第1部 速く動かす → 第2部 世代を測る → 第3部 働かせる 本書の地図 — 3部で積み上げる 家庭用GPUで35Bを「速く・賢く・働かせる」までを、一本の流れで測る。 I 第1部 速く動かす 勝ち構成 --cpu-moeで2.8倍(第2章) / KV量子化で文脈と余白(第3章) II 第2部 速さと賢さ、世代を測る 計測の作法(第4章) / 標準7問の品質(第5章) / 3.5 vs 3.6(第6章、第7章) III 第3部 働かせる ローカル35Bをエージェント化(第8章) / 2エージェントCLI比較(第9章) / Qwen Codeを使いこなす(第10章) 借り物のベンチマークではなく、この1枚のRTX 4070で測った実測だけを積み上げる。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 02 / 12

3.

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

4.

帯域は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

5.

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

6.

速度ほぼ据え置きで、文脈8倍。 重みだけでなくKVキャッシュも量子化する。エージェント用途では常に得。 -ctk q8_0 -ctv q8_0 4096 → 32768 KV量子化のトレードオフ — 速度を落とさず文脈を伸ばす 重みだけでなくKVキャッシュも量子化する。エージェント用途では、ほぼ常に得な交換。 項目 既定 f16 -ctk q8_0 -ctv q8_0 KV型 16bit 8bit KVのVRAM まるごと1x およそ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

7.

自分の数字も、借り物と同じだけ疑う。 共用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

8.

半速の犯人は、モデルでなく環境。 同じ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

9.

エージェント領域だけ、大きく伸びた。 Qwen 3.5 → 3.6の伸び幅は、単発の知識問題ではなく道具を使う仕事に集中。 WebBench +43% Terminal +27% 世代差は「エージェント領域」に出た Qwen3.5 → 3.6の伸び幅。単発の知識問題ではなく、道具を使う仕事で大きい。 QwenWebBench フロントエンド生成 Terminal-Bench 2.0 ターミナル操作 SWE-bench Pro リポジトリ規模の課題 LiveCodeBench v6 競プロ寄りコード SWE-bench Verified 検証済みの実issue AIME 26 単発の数学 GPQA 単発の知識 978 → 1,397 +43% 40.5 → 51.5 +27% 44.6 → 49.5 +11% 74.6 → 80.4 +8% 70.0 → 73.4 +5% 91.0 → 92.7 +2% 84.2 → 86.0 +2% 伸びはエージェント領域に偏る。単発の知識問題では2%止まり。 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 09 / 12

10.

疎通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

11.

自走重視なら、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

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 Author ken imoto / kenimoto.dev / @kenimo49 LOCAL LLM ON RTX 4070 12GB RTX 4070 12GB 12 34.6 tok/s 12.2 → 34.6 tok/s すべて手元のRTX 4070で実測 RTX 4070で Qwen 35Bを 2.8倍 高速化 実測ガイド 自分の数字を疑え。 掲載データはすべてRTX 4070で実測。 Qwen 35B-A3B llama.cpp RTX 4070 12GB 実測データ 一次情報 100% Ken Imoto WebRTC × Voice AI × LLMO 全10章 + 付録 RTX 4070でQwen 35Bを2.8倍速くする kenimoto.dev 12 / 12