Ollamaで動かすgemma4:26b-a4b-it-qatをRTX 4060Ti 8GBでできるだけ速く動かしたい。モデルが16GBくらいあって8GBには収まりませんが、Modelfileでnum_gpuを設定すると速くなりました。
素の状態でテスト
エージェント用途を想定して、コンテキスト長は最大値の256kを設定しています。
> ollama run gemma4:26b-a4b-it-qat --think=false --verbose "分子動力学法について500文字程度で説明して。"
中略
total duration: 20.2095167s
load duration: 400.2925ms
prompt eval count: 27 token(s)
prompt eval duration: 900.484ms
prompt eval rate: 29.98 tokens/s
eval count: 251 token(s)
eval duration: 18.90476s
eval rate: 13.28 tokens/s
出力速度は13.28 tokens/sでした。VRAMは8GBあるのですが、タスクマネージャで見る限り、8GBをフル活用しているようには見えませんでした。
Modelfileでnum_gpuを指定する
次のようなテキストファイルをModelfileというファイル名で保存します。
FROM gemma4:26b-a4b-it-qat
PARAMETER num_gpu 11
このファイルをカレントディレクトリに置いて、
ollama create gemma4:26b-a4b-it-qat_new -f ./Modelfile
を実行してください。「gemma4:26b-a4b-it-qat_new」の部分は任意の名前。
この場合はnum_gpuに11を指定していますが、環境に合わせていろいろ変えてみてください。
num_gpuを変えた場合の結果は次の通り。
| num_gpu | CPU : GPU | Eval rate [tokens/s] |
|---|---|---|
| 未指定 | 84 : 16 | 13.28 |
| 10 | 64 : 36 | 16.59 |
| 11 | 61 : 39 | 19.25 |
| 12 | 58 : 42 | 17.55 |
最速は11の時の19.25 tokens/sでした。
GPU比率が高ければいいというわけではなく、処理がRAMとVRAMに分かれることを前提にしてGPUの処理レイヤー数を適切な数にすることで、最適なnum_gpuを使うことで最も速い速度になります。
なお、この状態でVRAMはほぼフル活用していました。未指定では余らせいてもったいなかったので、num_gpuを適切に指定することでそれを活用できました。
コメント