1
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にメモリは何GB必要か: 96GB積んだミニPCで実測した

1
Posted at

この記事は tk3.biz のブログ からの転載です。

はじめに

ローカル LLM 用に PC を買うとき、いちばん迷うのがメモリの量です。私は Ryzen AI 9 HX 370 のミニPCに 96GB 積みました。多いほうが安心だろう、という理由です。

では実際に何 GB 使っているのか。このシリーズで測ってきた数字から整理します。

結論を先に書くと、いま使っている 35B の MoE モデルなら 24〜28 GiB です。96GB の 3 割ほどで、64GB あれば十分、32GB は厳しいと見ています。ただし 32GB と 64GB の話は、この機体で測ったものではなく推定です。

実測: モデルが使うメモリ

使っているのは Qwen3.6-35B-A3B(Q4_K_XL、ファイル 21.27 GiB)。普段の設定(コンテキスト 64K、MTP 投機デコードあり、画像用の mmproj なし)で、llama-server の使用量を測りました。

状態 使用量
起動直後 23.97 GiB
32K トークンの文書を読ませた後 24.89 GiB

モデルのファイルが 21.27 GiB なので、それ以外(KV キャッシュ、MTP 用の領域、作業領域)が 3 GiB ほどです。

コンテキストを伸ばすと、どれだけ増えるか

コンテキスト長を変えたときの増え方は、別の条件(MTP なし・mmproj あり)で測っています。

コンテキスト 使用量 64K からの増分
8K 22.55 GiB −1.21 GiB
64K 23.76 GiB —
128K 25.14 GiB +1.38 GiB
256K(モデルの上限) 27.89 GiB +4.13 GiB

この増分を普段の設定の値に足すと、128K で約 25.3 GiB、256K で約 28.1 GiB になります(推定)。

llama-serverが使うメモリ。既定の64Kで24.0 GiB(実測)、128Kで25.3 GiB、上限の256Kで28.1 GiB(推定)。大半はモデル本体の21.27 GiBで、KVやMTPの分は小さい。32GB、64GB、96GBの線と比べると、96GBの3割に収まる

上限の 256K まで伸ばしても 28 GiB。 思ったより増えません。

KV キャッシュが小さいのは、このモデルの特徴

コンテキストを伸ばすと KV キャッシュが増えるのは一般的な話です。このモデルでは、1 トークンあたり約 22 KB(f16)しか増えませんでした。

理由はモデルの構造にあります。Qwen3.6-35B-A3B は SSM とフルアテンションのハイブリッドで、KV キャッシュを持つのは 40 層のうち 10 層だけです。全層がフルアテンションのモデルなら、同じコンテキストで 4 倍前後になります。

ほかのモデルでは、長いコンテキストのメモリがずっと重くなる可能性があります。「256K でも 28 GiB」は、このモデルだからこその数字だと考えてください(128K の回)。

iGPU はメインメモリを使う

ミニPCの内蔵 GPU(Radeon 890M)は、専用のメモリをほとんど持っていません。

項目 値
iGPU 専用メモリ(BIOS の設定) 2 GiB
OS から見えるメモリ 93.6 GiB(96GB のうち)
llama-server 動作中の GPU 共有メモリの使用量 24.6 GiB
Vulkan が報告する使える量 76.9 GiB(78,739 MiB)

モデルは専用メモリではなく、メインメモリ(共有メモリ)にそのまま置かれています。だから、メモリの搭載量がそのまま「載せられるモデルの大きさ」になります。

ただし、搭載量の全部を iGPU が使えるわけではありません。この機体では 93.6 GiB のうち 76.9 GiB(約 8 割)が使えると報告されました。この割合がメモリの量やドライバの設定でどう変わるかは、確かめていません。

32GB / 64GB / 96GB で何ができるか

ここからは推定です。上の実測と、「OS とほかのアプリにも数 GB〜十数 GB 要る」という前提から考えています。

搭載量 このモデル(35B MoE・Q4) 見立て
32GB 動くかはぎりぎり モデルと KV で 24 GiB。OS とブラウザを足すと足りなくなりやすい。iGPU が使える量が 8 割なら約 25 GiB で、ほぼ上限。量子化をもっと強くする(小さいファイルにする)か、小さいモデルにする必要がありそう
64GB 余裕を持って動く 256K まで伸ばしても 28 GiB。OS やアプリと同時に使っても困らない
96GB 余る このモデルでは 3 割しか使わない。もっと大きいモデルは載るが、速くはならない(下記)

私の用途(この MoE モデルを普段使いし、ときどき長い文書を読ませる)なら、64GB で足りたことになります。

メモリを増やしても、速くはならない

最後に、いちばん大事なことです。メモリの量は「載るかどうか」を決めるだけで、速さは決めません。

iGPU の生成速度は、メモリから重みを読む速さ(帯域)でほぼ決まります。この機体は DDR5-5600・128bit で理論 89.6 GB/s、実効で 60 GB/s ほどでした。

1 トークン生成するたびに読む量で割ると、速度の見当がつきます。

モデル 1 トークンで読む量 生成速度(実測)
Qwen3.8-27B(密) 全体の 16.23 GiB 3.6 t/s
Qwen3.6-35B-A3B(MoE) 一部だけ(実効 3B 相当) 20.7 t/s

96GB あれば 70B 級の密モデルも載ります。でも、1 トークンごとに 40 GB 前後を読むことになるので、計算上は 毎秒 1〜2 トークンしか出ません。載っても、使える速さにはなりません。

速さを求めるなら、メモリを増やすより、1 トークンあたり読む量が少ないモデル(MoE)を選ぶほうが効きます(構築の回)。

まとめ

  • 35B の MoE モデル(Q4)で、使うメモリは 24 GiB。上限の 256K まで伸ばしても 約 28 GiB
  • 長いコンテキストで増えにくいのは、このモデルがハイブリッド構成だから。ほかのモデルでは重くなりうる
  • iGPU はメインメモリを使う。ただし全部ではなく、この機体では約 8 割
  • 見立てでは、64GB で十分、32GB はぎりぎり(推定)
  • メモリは「載るか」を決めるだけ。速さは帯域とモデルの構造で決まる
1
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
1
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?