0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VRAM超過RAM未満サイズのLLMは何とか動くのか

0
Posted at

はじめに

LLMの一般的な解説を読むと、モデルのサイズがVRAM容量を超えていても、VRAMとメモリ容量の合計値以内に収まっていれば何とか動くと書いてあります。これが本当なのか実際に試したいと思います。

実験方法

以下の3種類のモデルを使用し、ollama runコマンドをverboseオプション付きで実行して、出力結果を確認することにします。なおLLMに投げる文章は1種類で固定し、モデル毎に3回ずつ計測することにします。

モデルの初回ロードは時間を要するので、記録からは除外します。

C:\>ollama list
NAME                    ID              SIZE      MODIFIED
gemma4:e2b              7fbdbf8f5e45    7.2 GB    2 minutes ago
gemma3:4b               a2af6cc3eb7f    3.3 GB    22 minutes ago
qwen3.5:2b              324d162be6ca    2.7 GB    27 hours ago
ollama run gemma3:4b --verbose "宇宙について教えて"

例によってPC環境は以下の通りです。Ivy Bridgeおじさん代表として頑張ります。念のためですが、ユニファイドメモリではありません。この環境においては、サイズが18GB以下のLLMであれば、何とか動くのでしょうか…

  • グラフィックボード: NVIDIA GeForce GT 1030 GDDR5 2GB
  • メモリ: 16GB DDR3
  • CPU: Core i7-3770
  • OS: Windows 11 Pro 24H2
  • Ollama: 0.32.13
  • NVIDIAドライバ: 582.66

結果

qwen3.5:2b

C:\>ollama ps
NAME          ID              SIZE      PROCESSOR         CONTEXT    UNTIL
qwen3.5:2b    324d162be6ca    2.4 GB    98%/2% CPU/GPU    4096       4 minutes from now
項目 1回目 2回目 3回目
total duration 3m30.0777386s 3m46.4948889s 3m34.1237653s
load duration 621.9995ms 631.7303ms 600.4876ms
prompt eval count 13 token(s) 13 token(s) 13 token(s)
prompt eval duration 263.473ms 232.282ms 250.814ms
prompt eval rate 49.34 tokens/s 55.97 tokens/s 51.83 tokens/s
eval count 1856 token(s) 1995 token(s) 1898 token(s)
eval duration 3m29.162912s 3m45.596551s 3m33.237677s
eval rate 8.87 tokens/s 8.84 tokens/s 8.90 tokens/s

中では一番サイズが小さいモデルなので期待しておりましたが、処理時間の合計(total duration)が3分を超えてしまいました。何とか動きましたが、ウルトラの戦士的にはアウトですかね。

gemma3:4b

C:\>ollama ps
NAME         ID              SIZE      PROCESSOR         CONTEXT    UNTIL
gemma3:4b    a2af6cc3eb7f    2.9 GB    96%/4% CPU/GPU    4096       4 minutes from now
項目 1回目 2回目 3回目
total duration 2m31.768312s 2m34.3317396s 1m57.9302277s
load duration 806.3109ms 803.6214ms 805.8013ms
prompt eval count 13 token(s) 13 token(s) 13 token(s)
prompt eval duration 430.024ms 429.965ms 451.729ms
prompt eval rate 30.23 tokens/s 30.24 tokens/s 28.78 tokens/s
eval count 1074 token(s) 1100 token(s) 849 token(s)
eval duration 2m30.46718s 2m33.039913s 1m56.603727s
eval rate 7.14 tokens/s 7.19 tokens/s 7.28 tokens/s

理由は不明ですが、モデルのサイズが大きい程、処理時間の合計(total duration)も増える訳ではないようです。類似のプロンプトであれば、こちらはカップ麺が出来上がる前に、回答が得られそうです。

gemma4:e2b

C:\>ollama ps
NAME          ID              SIZE      PROCESSOR         CONTEXT    UNTIL
gemma4:e2b    7fbdbf8f5e45    6.8 GB    98%/2% CPU/GPU    4096       4 minutes from now
項目 1回目 2回目 3回目
total duration 2m25.7712258s 2m30.198907s 2m36.6299708s
load duration 1.0642298s 792.7418ms 810.2477ms
prompt eval count 19 token(s) 19 token(s) 19 token(s)
prompt eval duration 346.318ms 358.122ms 345.214ms
prompt eval rate 54.86 tokens/s 53.05 tokens/s 55.04 tokens/s
eval count 1371 token(s) 1406 token(s) 1463 token(s)
eval duration 2m24.340609s 2m29.033488s 2m35.461284s
eval rate 9.50 tokens/s 9.43 tokens/s 9.41 tokens/s

中では一番サイズが大きそうなモデルですが、処理時間の合計(total duration)は、2番手(gemma3:4b)と変わらないような印象です。また同じプロンプトを投げたのですが、なぜかトークン数(prompt eval count)は13から19に増えています。

まとめ

実運用には程遠いですが、確かに何とか動くようです。例えば学習用に数回試してみるだけであれば、グラボのVRAMが足りないからと早々に諦める必要はないかもしれません。また繰り返しになりますが、よりサイズが大きいモデルを選択しても、なぜか合計処理時間は減るケースもありましたので、色々と試してみるのが良さそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?