2GB VRAM(MX150モバイルGPU)で1bit Bonsai 8Bを動かす

Reddit r/LocalLLaMA / 2026/4/4

💬 オピニオンTools & Practical UsageModels & Research

要点

  • 著者は、CUDAサポート付きでコンパイルしたllama.cpp(PrismML)フォークを使用し、2018年製の古いノートPCで、NVIDIA MX150モバイルGPUの2GB VRAMのみを使って「1-bit Bonsai 8B」LLMを正常に動作させたと報告している。
  • llama-server のCLI設定をVRAM制約に収めるよう調整する。具体的には、-fitオプションを無効化し、q8_0 に量子化したKVキャッシュを用い、-np 1 を設定したうえで、ウォームアップと約1000トークンのプロンプト実行でベンチマークを行っている。
  • 最大で安定して使えるコンテキスト長は、GPUメモリと安定性により非常に厳しく制限されており、ubatch=512で5632トークンまで到達する。ただし、ubatch値を大きくすると利用可能なコンテキストは減り、例えば ubatch=1024 では1024トークンにとどまる。
  • スループットは制限され、熱面でも制約を受ける。生成トークンレートは開始時におよそ7〜9 tpsだが、GPUが発熱してサーマルスロットリングを始めると30〜40%低下する。PP(多分処理性能)は、ubatchに応じて約48〜52 tps。
  • ベンチマーク中のシステム消費電力は約45〜50Wで、約8 tpsの場合に生成1トークンあたりおよそ6ジュールとなり、このワークロードではエネルギー効率が低いことを示している。

~2018年頃の古いノートPCがあって、Asus Zenbook UX430Uです。当時としてはかなり強力で、i7-8550U CPU @ 1.80GHz(物理コア4基とIntelのiGPU)、16GBのRAM、そして追加のNVIDIA MX150 GPU(VRAM 2GB)を搭載しています。GPUはCADアプリケーションやPhotoshopのフィルターのような用途を想定していたものだと思います。これは明らかにゲーミングノートPCではありません。私はiGPUのみを使う形で、CinnamonデスクトップのLinux Mintを利用しており、MX150は他の用途に空けています。

このマシンでLLMを動かすことになるとは思ってもいませんでしたが、時々MX150 GPUを使って小さなPyTorchやTensorFlowのモデルを学習させていました。CPUだけで使うより多分3倍速いです。ただ、1-bit Bonsai 8Bモデルがリリースされたときは、このGPUで動かせるか試さずにはいられませんでした。

そこでPrismMLのllama.cppフォークを取り、CUDA対応でコンパイルしていろいろ試しました。VRAMがこれだけ限られているので-fitオプションはあまり役に立たないとすぐ判断し、オフにすることにしました。代わりにCLIパラメータを手動で最適化しました。q8_0の量子化KVキャッシュを使い、少しでもVRAMを節約するために-np 1を選びました。llama-benchがうまく協力してくれなかったので、llama-serverを使いました。私のテスト手順は、まずllama-serverを起動し、小さなウォームアップ用クエリを送り、その後に約1000トークンのプロンプトを持つベンチマーク用クエリを投げる、というものです。ベンチマークを正確に行うのは難しかったです。というのもGPUがすぐに約80℃まで熱くなりサーマルスロットリングが始まるためで、性能が30〜40%低下します。各ランの間にマシンを少し冷まして数回試し、最も高い数値を報告しました。

デフォルトのubatchサイズ512の場合、クラッシュせずに収められた最大コンテキストは5632でした。PPで52 tpsを得られます。TGは最初は9 tpsですが、GPUが熱くなりすぎるとすぐに7〜8、場合によってはそれ以下まで落ちます。

以下が私のllama-serverコマンドです:llama-server -m Bonsai-8B.gguf -ctk q8_0 -ctv q8_0 -np 1 -fit off -ub 512 -c 5632

さらに他のubatchサイズも試し、収められる最大コンテキストを最適化しました。以下は要約です:

ubatch ctx pp tg comments 1024 1024 54 9 Only generated a few tokens before running out of context. 512 5632 52 8 256 7680 48 8 128 8704 41 8 

PPの速度は、少なくとも256以上の値では、ubatchサイズの影響があまり大きくないように見えます。ubatchの“おいしいところ”と言えるのであれば、だいたい256〜512です。TGの速度は、サーマルスロットリングが効き始めるまでは常に約8 tpsです。ubatchサイズが1024だと、最大コンテキスト長は1024で、かなり役に立ちません。

ノートPCのバッテリーを満充電にした状態で、ベンチマーク実行中の消費電力もコンセント側から測りました。おおよそ45〜50Wでした。これはGPU、CPU、ディスプレイ、そしてマシンのその他すべての電力使用を含みます。つまりTGの速度が8 tpsなら、エネルギー使用量はトークンあたり約6ジュールです。これは特に効率が良いとは言えません。

これって何か筋が通っていますか?そうは思いません。2GBのVRAMだけで8BパラメータのLLMを動かせるのはちょっと面白いですが、少なくともこのMX150 GPUはLLM推論には適していません。「可能だからやってみよう」以外に、使うための良い理由を思いつきません。この手の速度なら、たぶんCPUだけを使ったほうが良いでしょう。おまけに、システムRAMにはさらにずっと長いコンテキストを収められる可能性があります。

これは私のr/LocalLLaMAでの最初の投稿でした。楽しんでいただけたなら幸いです。この投稿を書く間に、AIは傷ついていませんし、そもそも相談もされていません。

submitted by /u/OsmanthusBloom
[link] [comments]