*当ブログではアフィリエイト広告を利用しています。

AI実装ノート

Ollama自動設定と手動GPU配置を実機比較|GPT-OSS 20B・12GB GPU

Ollama自動設定と手動GPU配置をGPT-OSS 20Bと12GB GPUで比較した実機検証
ルミィ

GPUへ多く載せれば、ローカルAIは必ず速くなるのでしょうか。RTX 4070 Ti 12GBとgpt-oss:20bで、CPUのみ、GPU 16層、20層、24層、Ollama自動設定を同じ条件で比較しました。

先に結論を言うと、今回の環境ではOllama自動設定が32.60 token/sで最速でした。GPUへ最も多く載せた24層固定は10.69 token/sで、自動設定の約3分の1です。

ルミィ
ルミィ

GPUメモリを埋めることと、回答が最速になることは同じではありません。まず自動で動かして、必要な時だけ測り比べるのが分かりやすいです。

先に結果:自動設定が最速だった

動画で約8分で確認したい方はこちら

条件GPU側CPU側生成速度の中央値回答全体の平均時間
CPUのみ0%100%5.26 token/s25.44秒
GPU 16層固定61.9%38.1%12.23 token/s11.05秒
GPU 20層固定75.2%24.8%20.43 token/s6.97秒
GPU 24層固定88.5%11.5%10.69 token/s12.74秒
Ollama自動73.5%26.5%32.60 token/s4.58秒

自動設定はCPUのみの約6.2倍、24層固定の約3.05倍でした。20層から24層へ増やすと、GPU側の割合は上がったのに速度は47.7%低下しています。

今回使ったPCとモデル

項目内容
GPUNVIDIA GeForce RTX 4070 Ti
物理VRAM12,282 MiB
CPUIntel Core i7-13700F(16コア/24スレッド)
RAM64GB
Ollama0.32.0
モデルgpt-oss:20b(Ollama配布版・MXFP4)

OpenAIの公式ページでは、gpt-ossはローカル環境でも動かせるオープンウェイトモデルとして案内されています。今回はOllama配布版のgpt-oss:20bを使いました。

比較条件をそろえた

  • 同じPC、同じOllama、同じモデル
  • 同じ日本語プロンプト
  • contextは4K
  • 出力上限は128 token
  • temperatureは0、seedは42
  • reasoningはlow
  • 各条件で最初の1回と、続けて3回を実行
  • 比較値は続けて3回実行した速度の中央値

測定中は0.5秒ごとにGPU使用量、GPU使用率、電力、RAM使用量も記録しました。通常のデスクトップ利用に近づけるため、常駐アプリをすべて終了する操作はしていません。

「GPU層」とは何か

ここでいうGPU層は、モデルの処理をどこまでGPUへ任せるかを決める区切りです。0層ならCPU側、数を増やすほどGPU側の担当が増えます。

直感では「GPUへ入るだけ多く載せるほど速い」と考えたくなります。実際、0層から16層、20層までは5.26、12.23、20.43 token/sと順番に速くなりました。

しかし24層へ増やすと10.69 token/sまで低下しました。入ることと、速く処理できることは別だと分かります。

自動設定はVRAMを限界まで埋めなかった

自動設定のGPU側配置は73.5%で、20層固定の75.2%に近い値でした。それでも速度は20.43から32.60 token/sへ上がっています。

条件GPU使用ピークGPU側配置生成速度
20層固定11,814 MiB75.2%20.43 token/s
24層固定11,761 MiB88.5%10.69 token/s
Ollama自動11,420 MiB73.5%32.60 token/s

今回の結果から分かるのは、VRAM使用量やGPU側の割合だけでは速度を決められないことです。Ollamaが選んだ配置と処理方法を含めて、実際の速度を見る必要があります。

測り直しても順位は変わらなかった

条件続けて3回の範囲追加確認
Ollama自動32.10~32.92 token/s34.78 token/s
20層固定20.03~20.69 token/s21.50 token/s
24層固定10.58~10.89 token/s11.56 token/s

追加実行でも、自動、20層、24層の順番は変わりませんでした。1回だけ起きた偶然ではなく、同じ条件で繰り返し確認できた差です。

共有GPUメモリだけでは説明できない

Windowsの共有GPUメモリも確認しました。

条件実行後の共有使用量実行後の専用使用量追加実行速度
Ollama自動3,650.8 MiB11,437.2 MiB34.78 token/s
20層固定3,570.8 MiB11,795.3 MiB21.50 token/s
24層固定3,606.0 MiB11,780.0 MiB11.56 token/s

3条件とも共有使用量は約3.6GBですが、速度は約35、22、12 token/sと大きく違います。そのため、今回の低速化を「共有GPUメモリを使ったから」だけで説明することはできません。

contextを増やすと少し遅くなった

入力文は124 tokenのまま、予約するcontextだけを4Kから32Kへ変えました。

contextGPU側CPU側生成速度の中央値4K比
4K73.5%26.5%32.60 token/s100%
8K72.5%27.5%31.57 token/s96.8%
16K71.4%28.6%29.07 token/s89.2%
32K68.4%31.6%26.66 token/s81.8%

普段の短い相談なら、最初から大きなcontextを予約する必要はありません。4K程度から始め、長い資料を読ませる時だけ増やす方が扱いやすいです。

初心者向け:設定はこの順番で確認する

  1. まずGPU層を指定せず、Ollama自動設定で起動する
  2. ollama psでCPU/GPUの割合を見る
  3. 普段使う質問を1つ実行し、生成速度と回答までの時間を記録する

Ollama公式FAQでは、ollama psPROCESSOR欄で、モデルがCPUとGPUへどの割合で読み込まれたか確認できます。

ollama ps

遅い時だけcontextやモデルサイズを見直し、手動のGPU層は最後に比較します。最初から全部の設定を触る必要はありません。

ルミィ
ルミィ

見る数字は「生成速度」「CPU/GPU割合」「答えが出るまでの時間」の3つです。VRAM使用量だけで決めないのがポイントです。

12GB GPUでgpt-oss:20bは使える?

今回の環境では動作し、自動設定で約33 token/sでした。CPU側へ一部配置されても、短い日本語出力なら実用的な速さです。

ただしGPU、Ollamaの版、モデル形式、context、入力の長さが変われば結果も変わります。最後は自分が普段使う質問で測り、待てる速さかどうかで決めてください。

検証データ

全実行のJSON、集計CSV、共有GPUメモリの確認結果、実行スクリプトをまとめています。

まとめ

  • RTX 4070 Ti 12GBでもgpt-oss:20bは動いた
  • CPUのみは5.26、20層は20.43、24層は10.69 token/s
  • Ollama自動設定は32.60 token/sで最速
  • GPUへ最大限載せても、最速になるとは限らない
  • 最初は自動設定で動かし、必要な時だけ同じ質問で比較する

公式資料

ABOUT ME
記事URLをコピーしました