LLMのGPUメモリサイズ
LLMで推論時に一度に乗るメモリのサイズについてのメモ。
量子化すると小規模〜中規模のモデルであればMシリーズのMac上でも十分に動作する。
モデルサイズ | 16bit(量子化なし) | 4bit量子化 |
---|---|---|
3B | 6GB | 1.5GB |
7B | 14GB | 3.5GB |
13B | 26GB | 6.5GB |
30B | 60GB | 15GB |
70B | 140GB | 35GB |
8x7B | 96GB | 30GB |
モデルサイズとメモリの簡易計算として、 \(メモリサイズ = モデルサイズ \times 2\) がおおよその目安となる。 また、量子化なしのモデルは16bitであるので、4bit量子化すると4分の1になるため、メモリサイズも4分の1になる。
最後のモデルはいわゆるMoEモデルの参考として記載した。 4bit量子化モデルであれば、64GBメモリのMacでも十分利用できそうではある。
感覚として、ユースケースによるとは思うが、LLMに必要なメモリの倍ぐらいのメモリがあれば他のアプリも立ち上げながら快適な作業ができると思う。
コンシューマ向けのNvidiaのGPUでもメモリサイズは最大でも24GBなので、大きなモデルを動かすには2枚刺しにする必要がある。そう考えると、MシリーズのチップはユニファイドメモリなのでLLMを動かすには相性がよいと思う。
今回量子化サイズとして4bitを選んだが、数値上ではあまり劣化されないそうだ。ただ、動かしてみると応答が壊れやすくなっているように感じる。
iPhone 15 Proのメモリサイズは8GBなので、動かせても7B量子化モデルが限界である。 で、7B量子化モデルが使えるかというと、ChatGPTやGeminiみたいな大型モデルと比べると、全然使い物にはならない。 なので、ローカルLLMは相当タスクを絞って使うしかないのではと思う。 また、推論中は大量の行列計算をするため、バッテリの消耗のことも考えると常用するにはまだまだハードルがあるように感じる。