ローカルLLM 6モデルサイズ別比較:gemma3 / qwen3 / gpt-oss をOllamaで実測
ローカルLLM 6モデルサイズ別比較:gemma3 / qwen3 / gpt-oss をOllamaで実測
Ollamaを使ってローカル環境で動かした3ファミリー・6サイズのLLMを、5つのユースケースカテゴリで定量的にベンチマークしました。「どのモデル・サイズを選ぶか」の判断材料として活用してください。
実験環境・設定
ハードウェア
| 項目 | 値 |
|---|---|
| GPU | NVIDIA GeForce RTX 4060(VRAM 8 GB) |
| CPU | Intel Core i5-13500(13th Gen) |
| RAM | 64 GB |
| OS | Windows 11 + WSL2(Linux kernel 6.6.87.2) |
| NVIDIA ドライバ | 591.74(Windows)/ CUDA 13.1 |
| Ollama | 0.20.2 |
| 実行形式 | Ollama をネイティブ実行(Docker なし) |
ベンチマーク設定
| 項目 | 値 |
|---|---|
| APIエンドポイント | http://localhost:11434/v1 |
| temperature | 0.2 |
| top_p | 0.9 |
| タイムアウト | 300秒 |
| 計測runs | 3回(ウォームアップ1回除外) |
| システムプロンプト | 「あなたは日本語で正確かつ実務的に回答するアシスタントです。」 |
対象モデル
| label | model | パラメータ数 | 量子化 | コンテキスト長 | max_tokens | VRAM推定 |
|---|---|---|---|---|---|---|
| gemma3-4b | gemma3:4b | 4.3B | Q4_K_M | 131,072 | 8192 | ≈ 2.4 GB |
| gemma3-12b | gemma3:12b | 12.2B | Q4_K_M | 131,072 | 4096 | ≈ 6.9 GB |
| qwen3-4b | qwen3:4b | 4.0B | Q4_K_M | 262,144 | 8192 | ≈ 2.3 GB |
| qwen3-8b | qwen3:8b | 8.2B | Q4_K_M | 40,960 | 4096 | ≈ 4.6 GB |
| qwen3-14b | qwen3:14b | 14.8B | Q4_K_M | 40,960 | 4096 | ≈ 8.3 GB |
| gpt-oss | gpt-oss:20b | 20.9B | MXFP4 | 131,072 | 2048 | ≈ 10.5 GB |
VRAM推定は Q4_K_M ≈ 4.5 bit/param、MXFP4 ≈ 4.0 bit/param として計算。qwen3-14b と gpt-oss は 8 GB VRAM に収まらず、CPU オフロードが発生している可能性が高い。
評価カテゴリ(prompts_hyouka.jsonl)
| カテゴリ | プロンプトID | 性質・内容 |
|---|---|---|
| japanese_summary | ja_summary_001 |
長文要約・構造化。約300字の業務文章を読み、300字以内の要約+重要論点3点を指定Markdownフォーマットで出力。 |
| technical_accuracy | tech_gpu_docker_001 |
複合技術診断。Docker + NVIDIA GPUの接続不良を7観点で診断し、表・番号付きリスト・注意点を含む多段階出力を要求。 |
| code_review | code_review_go_001 |
コードレビュー。エラーハンドリング未処理のGoコードを5観点でレビューし、問題点一覧表・改善コード・追加提案を出力。 |
| structured_output | json_extract_001 |
情報抽出JSON。自然文からdate/tasks/concernsを抽出。JSONのみ返却・日付フォーマット指定など、厳格な出力制約を課す。 |
| long_context_business_analysis | business_analysis_001 |
長文ビジネス分析。約1,200字の仕様メモを読み、未決事項・リスク・確認事項を複数の表と実務提案にまとめる。入出力ともに最大規模。 |
速度比較:全6モデル
ウォームアップ除外・3回計測の平均値です。
| モデル | avg_sec | avg tok/s | avg chr/s | 備考 |
|---|---|---|---|---|
| gemma3-4b | 8.3秒 | 74.6 | 156.5 | 全カテゴリ最速 |
| qwen3-8b | 23.4秒 | 44.9 | 43.2 | qwen3ファミリーの最速 |
| gemma3-12b | 58.0秒 | 12.5 | 25.9 | 4bの約7倍の時間 |
| qwen3-4b | 63.4秒 ※ | 67.6 | 16.0 ※ | 思考トークン過剰、business_analysis 2/3失敗 |
| qwen3-14b | 111.9秒 | 9.1 | 9.4 | — |
| gpt-oss | 119.4秒 | 12.6 | 11.9 | max_tokens=2048 で多くのタスクが途中切れ |
- avg_sec: 全5カテゴリの平均応答時間。qwen3-4bはbusiness_analysisの成功1runのみ含む
- avg_tok/s: APIが返す completion_tokens / 応答時間
- avg_chr/s: 実際の出力文字数 / 応答時間
- ※qwen3-4b: 思考トークン過多により chr/s が tok/s に対して極端に低い
速度は大きく2ティアに分かれます。GPU 完全搭載(VRAM 8 GB 以内) vs CPU オフロード(VRAM 超過) の境界が律速です。
VRAM使用量(推定) 0 2 4 6 8 GB
|--------|--------|--------|--------|
gemma3-4b (Q4_K_M) |████░░░░░░░░░░░░░░░░░░░░░░░░░░░░| 2.4 GB → GPU完全搭載
qwen3-4b (Q4_K_M) |████░░░░░░░░░░░░░░░░░░░░░░░░░░░░| 2.3 GB → GPU完全搭載
qwen3-8b (Q4_K_M) |█████████░░░░░░░░░░░░░░░░░░░░░░░| 4.6 GB → GPU完全搭載
gemma3-12b(Q4_K_M) |██████████████████░░░░░░░░░░░░░░| 6.9 GB → GPU(上限付近)
qwen3-14b (Q4_K_M) 8GB上限→ |████████████████████████| 8.3 GB → CPU オフロード
gpt-oss (MXFP4) 8GB上限→ |███████████████████████████| 10.5 GB → CPU オフロード
重要発見①:qwen3-4b の「思考トークン」問題
tok/s と chr/s の乖離
今回の実験で最も目立ったのが、qwen3-4b の tok/s と chr/s の極端な乖離です。
| モデル | avg tok/s | avg chr/s | 比率(chr/tok) |
|---|---|---|---|
| gemma3-4b | 74.6 | 156.5 | 高い(漢字の多バイト効率) |
| qwen3-8b | 44.9 | 43.2 | 概ね妥当 |
| qwen3-4b | 67.6 | 16.0 | 極端に低い(思考トークン過剰) |
json_extract_001 カテゴリで顕著に確認できます。
| モデル | completion tokens | 実際の出力文字数 | 思考トークン(推定) |
|---|---|---|---|
| gemma3-4b | 128 | 244 | ≈ 0 |
| qwen3-8b | 407〜517 | 229〜234 | ≈ 170〜280 |
| qwen3-4b | 2,583〜5,196 | 227〜240 | ≈ 2,350〜4,960 |
qwen3-4b は、JSONをわずか240文字出力するために最大5,000トークン近い内部思考(Chain-of-Thought)を生成します。qwen3-8b にも思考トークンは見られますが、4b よりはるかに少量です。
business_analysis での失敗
思考トークンの過剰生成は max_tokens=8192 の制限オーバーフローを引き起こします。
| run | completion tokens | 出力文字数 | 判定 |
|---|---|---|---|
| run1 | 4,290 | 1,569 | ✅ OK(66.3秒) |
| run2 | 8,192(上限到達) | 0 | ❌ NG(129.6秒) |
| run3 | 4,240 | 0 | ❌ NG(64.5秒) |
run2 は 8,192トークンの上限まで思考を続け、実際の出力を一切生成できませんでした。run3 は上限には達しなかったものの、思考のみで終了し出力文字数はゼロでした。qwen3-4b は長文ビジネス分析タスクで 3回中2回失敗します。
Ollama のパラメータで
think=falseを設定すれば思考トークンを無効化できますが、今回の実験はすべてデフォルト設定で計測しています。無効化すれば qwen3-4b の実効速度は大幅に改善する可能性があります。
重要発見②:モデルサイズと速度の関係
gemma3 ファミリー内比較
| モデル | avg tok/s | avg chr/s | avg_sec |
|---|---|---|---|
| gemma3-4b | 74.6 | 156.5 | 8.3秒 |
| gemma3-12b | 12.5 | 25.9 | 58.0秒 |
パラメータ数が3倍になると、応答時間は約7倍に伸びます。gemma3-12b の tok/s(12.5)は gpt-oss:20b(12.6)とほぼ同等です。大きなモデルを選ぶ場合は速度コストを覚悟する必要があります。
qwen3 ファミリー内比較
| モデル | avg tok/s | avg chr/s | avg_sec | 思考トークン量 |
|---|---|---|---|---|
| qwen3-4b | 67.6 | 16.0 | 63.4秒 ※ | 非常に多い |
| qwen3-8b | 44.9 | 43.2 | 23.4秒 | 少ない |
| qwen3-14b | 9.1 | 9.4 | 111.9秒 | 少ない |
tok/s は 4b > 8b >> 14b の順ですが、思考トークンのオーバーヘッドにより 4b の実効速度(chr/s)は 8b より低くなります。業務用途では qwen3-8b が最もバランスの取れた選択肢です。
カテゴリ別の詳細分析
structured_output(構造化出力・JSON抽出)
| モデル | avg_sec |
|---|---|
| gemma3-4b | 1.78秒 |
| gemma3-12b | 9.61秒 |
| qwen3-8b | 10.00秒 |
| gpt-oss | 28.31秒 |
| qwen3-14b | 46.68秒 |
| qwen3-4b | 58.36秒 |
JSONのみ返却という単純タスクにもかかわらず、qwen3-4b が最も遅い(58.4秒)のは思考トークンによるものです。gemma3-4b は 1.78秒で完了し、他の追随を許しません。qwen3-8b と gemma3-12b は同程度(10秒前後)で実用的です。gpt-oss は max_tokens=2048 に余裕があるため比較的速い(28秒)部類に入ります。
japanese_summary(日本語要約)
| モデル | avg_sec |
|---|---|
| gemma3-4b | 3.89秒 |
| qwen3-8b | 12.03秒 |
| gemma3-12b | 20.05秒 |
| qwen3-4b | 55.56秒 |
| qwen3-14b | 79.04秒 |
| gpt-oss | 88.29秒 |
約300字の業務文章を要約するタスクです。gemma3-4b の 3.9秒に対し、gpt-oss は 88秒と約23倍の時間を要します。
technical_accuracy(技術的正確性・GPU/Docker診断)
| モデル | avg_sec |
|---|---|
| gemma3-4b | 12.06秒 |
| qwen3-8b | 30.26秒 |
| qwen3-4b | 60.17秒 |
| gemma3-12b | 94.09秒 |
| qwen3-14b | 131.75秒 |
| gpt-oss | 165.78秒 |
複合的な技術診断タスクでは出力量が増えるため全モデルで最も遅いカテゴリの一つです。gpt-oss は3回すべてで completion_tokens=2048 の上限に達しており、出力が途中で切れています。
code_review(コードレビュー)
| モデル | avg_sec |
|---|---|
| gemma3-4b | 13.14秒 |
| qwen3-8b | 31.16秒 |
| qwen3-4b | 79.43秒 |
| gemma3-12b | 83.46秒 |
| gpt-oss | 152.41秒 |
| qwen3-14b | 156.64秒 |
Goコードのレビューはコード生成を伴うため出力が長くなります。gpt-oss は多くの run で max_tokens=2048 に達し、改善コードが途中で切れます。
long_context_business_analysis(長文ビジネス分析)
| モデル | avg_sec | 成功率 |
|---|---|---|
| gemma3-4b | 10.48秒 | 3/3 ✅ |
| qwen3-8b | 33.38秒 | 3/3 ✅ |
| gemma3-12b | 82.71秒 | 3/3 ✅ |
| qwen3-4b | 66.34秒 | 1/3 ❌ |
| qwen3-14b | 145.26秒 | 3/3 ✅ |
| gpt-oss | 162.43秒 | 3/3 ✅ ※ |
※ gpt-oss は HTTP 200 で全 run 成功判定ですが、max_tokens=2048 で出力が途中切れしており実質不完全
約1,200字の仕様メモを読んで複数の表を出力する最大規模タスクです。qwen3-4b は思考トークン起因の2回失敗(前述)。
出力品質比較(成功 run の比較)
| 評価軸 | gemma3-4b | qwen3-8b | gemma3-12b | qwen3-14b | gpt-oss |
|---|---|---|---|---|---|
| 全セクション完結 | ◎ | ◎ | ◎ | ◎ | △(max_tokens到達で途中切れ) |
| 未決事項の抽出数 | △(4項目) | ○(5項目) | ○(5項目) | ◎(6〜7項目) | ◎(6〜9項目、不完全) |
| フォーマット準拠 | ◎ | ○ | ○ | ○ | △(独自表記あり) |
| 3回間の一貫性 | ◎ | ○ | ◎ | ○ | △ |
大型モデル(qwen3-14b, gpt-oss)ほど抽出粒度は細かくなりますが、gpt-oss は max_tokens 制限で完結しません。完結した高品質出力という点では qwen3-14b が現実的な最上位候補です。
総合評価
| ユースケース | 推奨モデル | 理由 |
|---|---|---|
| 構造化出力(JSON生成) | gemma3-4b | 1.8秒で完了、圧倒的速度 |
| 日本語会話・要約 | gemma3-4b | chr/s が 156、全モデル最大 |
| 技術ドキュメント生成 | gemma3-4b | 全カテゴリ最速 |
| コードレビュー(速度優先) | gemma3-4b | 13秒で完了 |
| バランス重視の日常業務 | qwen3-8b | gemma3の次点、思考トークン過剰なし |
| 深い分析・長文処理 | qwen3-14b | 最も細粒度な抽出、全 run 完結 |
| バッチ処理(非同期・低優先度) | gemma3-12b | gpt-ossと同速だがモデルが軽量 |
| gpt-oss の利用 | 要再検討 | max_tokens=2048 では多くのタスクで途中切れ、かつ最低速 |
考察
gemma3-4b が全カテゴリで最速な理由
avg_tok/s が 74.6 に加え、avg_chr/s が 156.5 と他モデルの3〜17倍に達します。日本語出力において1トークンあたりの文字数が多い(漢字・かなのマルチバイト文字を効率的にトークン化)ことを示しています。また、思考トークンを生成しないため、生成したトークンがすべて実際の出力に直結します。
モデルサイズと速度の非線形関係
gemma3 の場合、4b → 12b(3倍のパラメータ)で tok/s は 74.6 → 12.5(約6分の1)に低下します。特筆すべきは gemma3-12b と gpt-oss:20b の tok/s がほぼ同じ(12.5 vs 12.6) という点です。Ollama 上での量子化設定やメモリ帯域幅の違いが影響している可能性があります。
VRAM容量と CPU オフロードが速度を決定する
今回の実験で観測された速度ティアは、VRAM 8 GB という制約に起因します。
| 推定動作形態 | モデル | avg tok/s |
|---|---|---|
| GPU 完全搭載 | gemma3-4b, qwen3-4b, qwen3-8b | 45〜75 |
| GPU 搭載(境界付近) | gemma3-12b | 12.5 |
| CPU オフロード | qwen3-14b, gpt-oss | 9〜13 |
qwen3-14b(推定 8.3 GB)と gpt-oss(推定 10.5 GB)は VRAM に収まりきらず、一部のレイヤーを CPU メモリで処理しています。CPU の帯域幅は GPU の数十分の1であるため、tok/s が急落します。gemma3-12b(推定 6.9 GB)は VRAM に収まるはずですが、KV キャッシュやシステム用途の数百 MB を加えると上限 8 GB に迫り、メモリ圧が遅延要因となっている可能性があります。
この観点からの実用指針:VRAM に収まるモデルを選べば GPU 推論速度(40+ tok/s)が得られる。VRAM に収まらない場合は問答無用で CPU 速度(10 tok/s 前後)に制限される。
qwen3 の思考トークン
qwen3 はモデルがデフォルトで内部推論(Chain-of-Thought)を生成する設計になっており、これが completion_tokens の大部分を占めます。特に qwen3-4b は 8b・14b に比べて思考量が過剰 で、単純な JSON タスクでも数千トークンの思考を生成します。Ollama の API では think=false パラメータで思考を無効化できますが、今回の実験はすべてデフォルト設定で計測しています。
gpt-oss の評価
gpt-oss:20b は 20B パラメータ級ですが、量子化方式が MXFP4(他モデルは Q4_K_M)である点が特徴的です。MXFP4 は 4 bit/param と Q4_K_M(≈4.5 bit/param)より少ないビット数で圧縮されており、推論品質への影響は別途検証が必要です。今回の設定(max_tokens=2048)では多くの複雑タスクで出力が途中で切れており、max_tokens を引き上げれば完成度は改善する見込みですが、CPU オフロードによる低速度(平均 119秒)は変わりません。
まとめ
- 速度最優先なら gemma3-4b 一択。全カテゴリ最速、chr/s は群を抜く
- qwen3-4b は思考トークン問題に注意。tok/s は高くても実効 chr/s は低く、長文タスクでは max_tokens 超過で失敗する(デフォルト設定時)
- qwen3-8b がバランス最良。平均 23.4秒、全 run 成功、思考トークン過剰なし
- 深い分析が必要なら qwen3-14b。最も細粒度な抽出、全 run 完結、112秒の応答時間を許容できるなら有力
- gpt-oss は現設定では非推奨。max_tokens=2048 が律速となり多くのタスクで不完全出力、かつ最低速
- gemma3-12b は gemma3-4b の代替にならない。tok/s が約6分の1になり、投入するリソースに見合わない
- 速度の根本的な律速は VRAM。8 GB に収まるモデル(〜8b 相当)は GPU 推論(45〜75 tok/s)、収まらないモデルは CPU 推論(9〜13 tok/s)に制限される。VRAM を増やせば qwen3-14b も劇的に改善する可能性がある
付録:カテゴリ × モデル別 応答時間詳細
| カテゴリ | gemma3-4b | gemma3-12b | qwen3-4b | qwen3-8b | qwen3-14b | gpt-oss |
|---|---|---|---|---|---|---|
| japanese_summary | 3.89秒 | 20.05秒 | 55.56秒 | 12.03秒 | 79.04秒 | 88.29秒 |
| technical_accuracy | 12.06秒 | 94.09秒 | 60.17秒 | 30.26秒 | 131.75秒 | 165.78秒 |
| code_review | 13.14秒 | 83.46秒 | 79.43秒 | 31.16秒 | 156.64秒 | 152.41秒 |
| structured_output | 1.78秒 | 9.61秒 | 58.36秒 | 10.00秒 | 46.68秒 | 28.31秒 |
| business_analysis | 10.48秒 | 82.71秒 | 66.34秒 ※ | 33.38秒 | 145.26秒 | 162.43秒 |
| 全体平均 | 8.27秒 | 57.98秒 | — | 23.37秒 | 111.87秒 | 119.44秒 |
※ qwen3-4b の business_analysis は 3run 中 1run のみ成功(run1: 66.34秒)。run2 は 129.6秒で出力文字数ゼロ(max_tokens=8192 上限到達)、run3 は 64.5秒で出力文字数ゼロ(思考のみで終了)。
平均トークン/秒・文字/秒
| モデル | avg tok/s | avg chr/s |
|---|---|---|
| gemma3-4b | 74.6 | 156.5 |
| gemma3-12b | 12.5 | 25.9 |
| qwen3-4b | 67.6 | 16.0 ※ |
| qwen3-8b | 44.9 | 43.2 |
| qwen3-14b | 9.1 | 9.4 |
| gpt-oss | 12.6 | 11.9 |
※ qwen3-4b は思考トークン過多により chr/s が tok/s に対して極端に低い(4カテゴリ成功分の平均)
Discussion