「LLMを動かすにはGPUが必要」——これは半分本当で、半分ウソだ。確かに速さを求めるならGPUだけど、llama.cppを使えばCPUだけでLLMが動く。これがどれだけすごいか、初めて知ったときは椅子から転げ落ちそうになった。
llama.cppはGeorgi Gerganov氏が作ったC++のLLM推論エンジン。当初はLlamaモデルをMacで動かすためのツールだったけど、今ではほぼ全てのオープンソースLLMを、ほぼ全てのプラットフォームで動かせるようになってる。
なぜCPUだけで動くのか。秘密は量子化(Quantization)だ。通常のモデルは32bit浮動小数点(FP32)で計算する。llama.cppはこれを4bitや5bit、8bitに「圧縮」して計算する。精度はちょっと落ちるけど、メモリ使用量が激減する。
具体的に言うと:
- Llama 3 8B(FP32):約32GBのメモリが必要 → 普通のPCでは無理
- Llama 3 8B(Q4_K_M):約5GB → 普通のノートPCでも動く!
実際に僕のラップトップ(MacBook Air M1/16GB)でLlama 3 8B Q4_K_Mを動かしたとき、1秒に8〜10トークン出た。会話するには十分な速度。GPUなしでここまでできるとは思わなかった。
llama.cppのベンチマーク。同じモデルで比較すると:
- CPUのみ(M2 Ultra):30 tok/s
- GPU(RTX 4090):120 tok/s
- CPUのみ(Ryzen 7950X):15 tok/s
GPUには敵わないけど、「使えない」ほど遅くは全然ない。むしろ、GPUの初期投資がなくてLLMを動かせること自体が奇跡だ。