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

ローカルLLMを使ってみました!

2
Posted at

最近話題の国産LLM「llm-jp-4-32b-a3b」をローカル環境で動かしてみました。このモデルはMoE(Mixture of Experts)という構造のおかげで、非常に高速かつ高性能です。
今回は、私のPC環境で「GPUオフロード(--gpu-layers)」の設定値を変えることで、生成速度(tok/s)がどう変化するのかを検証しました。

環境

  • OS: Microsoft Windows 11 Home (x64)
  • CPU: Intel Core Ultra 7 265F
  • GPU: NVIDIA GeForce RTX 5070 Ti (VRAM 16GB)
  • RAM: DDR5 32GB 5600 MT/s
  • モデル: llm-jp-4-32b-a3b-thinking-Q4_K_M.gguf

なぜGPUレイヤー設定が重要なのか?

llama.cppの --gpu-layers オプションは、モデルの計算処理を「CPUで行うか、GPUで行うか」を決定します。

  • 少ない場合: CPUがメインで計算するため、メモリ帯域に依存し、速度が伸び悩む(またはCPU負荷が激増する)
  • 最適値: GPUにモデルを載せることで、GPUの高速な演算器とメモリ帯域をフル活用し、速度が劇的に向上する

検証方法

以下のコマンドで、GPUレイヤーの数値を 10, 20, 30 と変更して比較しました。

.\llama-server.exe -m [モデルパス] -c 4096 --gpu-layers [数値]

※計測は、出力されたログの eval rate = XX tok/s を採用しました。

プロンプトはすべて同じものを使用します。

検証結果

GPUレイヤー数 生成速度 (tok/s) 備考
10 27.78 速い
20 45.88 GPUの恩恵が出た
30 6.98 遅くなった!

私の環境では20が最適でしたが、この数値はモデルの量子化サイズやモデル自体のパラメータ数に依存します。

学びと気づき

今回の検証で分かったことは以下の通りです:

  1. 「専用メモリ」と「共有メモリ」の壁
    GPUのレイヤー数が多ければ多いほどVRAMの消費量が増えて、結果的に共有メモリまで侵食していました。その結果、速度の低下が起きたようです。
    ハードウェアの限界(VRAM容量)と、処理のオーバーヘッド(メモリ転送コスト)の境界線を見極めることがとても重要だとわかりました。

  2. CPUとGPUをどっちも使う
    私の環境では、GPUにすべてを任せるのではなくCPUとGPUを一緒に推論させることでよい結果を得ることができました。

まとめ

もしあなたがローカルLLMを動かしていて『遅いな』と感じたら、単にモデルを小さくするのではなく、ぜひ --gpu-layers を少しずつ調整し、自分のPCのVRAM容量と相談してみてください。あなたの環境にとっての『黄金比』を見つけた瞬間、ローカルLLMの世界がもっと面白く開けるはずです!

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