西川和久の不定期コラム

GPUモリモリVRAM 112GBで「DeepSeek-V4.1-Flash」を動かしてみた

イメージ

 10月に掲載した本コラムで、「さて今回はV100を1枚だけ使ったのだが……実は2つ購入したのだ(笑)」と書いたが、今回はその続き編だ。Tesla V100で合計容量64GB、そしてGeForce RTX 4090(48GB改)を加えて、VRAMが112GBに!さて、その結果はいかに!?

Tesla V100×2構成へ

 Tesla V100×1の状態でStrataを使い「qwen3.8-flash-next-iq3_s」を動かした場合、元々必要容量(VRAM+RAM合算)は54.8GBだ。V100×1の32GB VRAM分を引いた残り約22.8GBをRAM側(62GB中)に置けば十分な範囲となる。

 その状態での速度だが、実測はdecode noneで62.0/53.5/52.3/59.7tok/s、プリフィル 5.9k≒985・23k≒1,356tok/s。SSD層(固定29GBのn-gramルックアップテーブル、これは常にSSD常駐で別枠)への実エキスパート退避が起きず、速度低下をまねくことはなかった。

 従ってV100×2で意味あるのかな?と疑問を持ちながらもせっかく2つあるのだから付けてみよう……的な感じだ。

 GPUを2枚にするにはPCIeスロットが2基必要。残念ながら今回使用しているマザーボードには1つしかない。これでは接続できないのだが、幸いなことにPCIe x4仕様のM.2スロットが3つある。つまりOS用SSDで1つ使ってもまだ2つM.2が残っているのだ。

 そこで登場するのがOCuLinkだ。電源が別になってしまうものの、これならあと2基までGPUを追加できる。OCuLinkアダプタ自体は、以前から何度も記事でご紹介していることもあり、いくつか手元にあるのでそれを使うことにした。

OCuLinkアダプタを使ってTesla V100を搭載
PCIe x16にTesla V100、OCuLinkでTesla V100と計64GBへ

 早速Tesla V100×2でベンチマークテストしてみると効果てきめん!すべてがVRAMへ配置可能になり、RAM経由よりエキスパートアクセスが速いため速度が向上したのだ。

  • V100×1: decode none 62.0/53.5/52.3/59.7tok/s、プリフィル 5.9k≒985・23k≒1,356tok/s
  • V100×2: decode none 109.0/98.7/75.2/80.5tok/s(約1.3~1.85倍)、プリフィル 5.9k≒1,190・23k≒2,000tok/s(約1.2~1.5倍)

 つまり、ざっくり1.5倍の性能となった。これだけ出るとコーディング用途でも十分実用的な範囲。テストも兼ねてdsh(DeepSeek Harness)で使っていたがなかなか調子がいい。

Strata最新版v0.2.12
V100×2でqwen3.8-flash-next-iq3_sを動かしたときのtok/sとプリフィルほぼ最大値

 さて、ここで購入したTesla V100×2も無事動作、速度もOK……と、当初の目的を達成したので、やめておけばいいのに、そこは筆者の悪い癖、「ん?もう1つM.2あるな!」だ(笑)。

GeForce RTX 4090(48GB改)を加えてVRAM 112GBへ!

 筆者はComfyUIを主にGeForce RTX 5090で使っており、最近出番が減っているGeForce RTX 4090(48GB改)をこちらへ回すことにした。

 後付けで考えると、V100×1/PCIe x16、V100×1とRTX 4090(48GB改)はOCuLinkへとなるが、さすがにもったいなく、PCIe x16の方へRTX 4090(48GB改)を取り付け、OCuLink×2へV100と入れ替えた。

 こうしておけば、LLMを使わないときでもComfyUIやai-toolkitがRTX 5090とはいわないものの、それなりの速度で動き便利だからだ。ほかのAI系のテストにも利用できる。実際DGX Spark互換機でai-toolkitを動かすと4時間前後かかる学習が1時間程度で終わり、急ぐときにはパッとLoRAを作成可能だ。

 また今後Qwen4 27BやFlash Nextが出た場合、同じサイズならV100×2で収まり、RTX 4090はまるまる空き。LLMとComfyUIを同時起動もOKとなる。

RTX 4090をPCIe x16へ取り付け
V100をOCuLink×2(上と左側)として完成!

 いかがだろうか?先のV100×2より、かなりAIサーバーっぽくなった。このオープンなバラック感がなかなかいい(笑)。最終形のイメージがこれだったので天板が必要。オープンフレームのケースを2つ買った理由だったりする。

 余談になるが、GPU×3なのでシロッコファンも3つ。これが全部回り出すとさすがにうるさい。セッティング時は作業部屋に置いていたが、プリフィルが動き出すとかなりの爆音。たまらずほかの部屋に場所を移した。それでも隣の部屋なのでドアを開けっ放しだとそれなりの音が聞こえる。

 ファンの音=考え中なのが分かり、それはそれで便利なのだが……。また暖かい風も結構出る。これから冬。この点はしばらく暖房機代わりになるので良しとする。

Project MayaでDeepSeek-V4.1-Flashを動かす

 「Project Maya」はStrataの派生なのだが、「GLM-5.3-Flash」専用として始まり、現在では「DeepSeek-V4.1-Flash」にも対応してる。せっかくVRAM 112GBになったので、DeepSeek-V4.1-Flashを使ってみたい!ということで導入した。

 話は前後するが、VRAM 64GBや112GBではフルサイズの重みは動かず、(モデルによるが)IQ1~IQ4の範囲が使用可能。従って性能がフルより少し落ちる。その範囲内でClaude Codeを使いいろいろなベンチマークテストを動かしたところ、性能は、

DeepSeek-V4.1-Flash > GLM-5.3-Flash > Qwen3.8-Flash-Next

 という感じなのだ。もちろんThinkingの設定や量子化のパラメータなどで順番が変わることもあるので、ザックリ的な並びとなる。

 また以前ご紹介した筆者作のcore-agentでは、OpenCode GoのDeepSeek-V4.1-Flashを使っており(こちらはもちろんフル版)、印象も良く、量子化してるとはいえ、これがローカルで動くなら!と思った部分もある。

 ところで最近、この手のインストールは、全部Claude Code任せ。sshでアクセスできるようにして、リポジトリのURLを渡し、「セットアップして!」で終わり。何かトラブルが発生しても正常に動作するまでいろいろトライするので、筆者がゴソゴソ手でやるよりずっと正確で速い。

Project Maya最新版
DeepSeek-V4.1-Flash(Maya-XS) / DeepSeek-V4.1-Flash-1017-Maya-XS-v2-IQ1_Sを動かしたときのtok/sとプリフィルほぼ最大値

 今回使用したのはDeepSeek-V4.1-Flash(Maya-XS) / DeepSeek-V4.1-Flash-1017-Maya-XS-v2-IQ1_S。え、IQ1で大丈夫なの!? と思う人も多いだろう。(Claude Codeによると)技術的には、

  1. 「1bit」は平均値: IQ1_Sはllama.cpp/GGUF系の“importance quantization”(重要度行列ベース量子化)で、全weightを均等に1bitにするわけではない。キャリブレーションデータから計算した重要度スコアに基づき、重要な重みにはより多くのbitを、重要度の低い重みには少ないbitを割り当てる非均一な配分。IQ1_Sは平均で約1.56bit/ウェイトで、実際は小さなコードブック+per-blockスケール/符号係数の組み合わせとなる
  2. MoE(Mixture-of-Experts)構造の「過剰パラメータ」が緩衝材になる: DeepSeek-V4.1-Flashは巨大なMoEモデルで、全体パラメータ数は膨大でも1トークンあたり実際に使われるのはごく一部のエキスパートだけ。この手の超過剰パラメータ構成のモデルは、小さい密なモデル(7Bクラスなど)に比べて量子化ノイズに対する冗長性(耐性)が格段に高く、1bit級の量子化でも実用性を保てる土壌がある(小さいモデルで同じ量子化をすれば崩壊する)
  3. 重要な部分だけ高精度を残す「動的量子化」: Maya-XSのようなGGUF系IQ1レシピは、アテンション層・ルーター(どのエキスパートを選ぶか決める部分)・埋め込み層など「間違えると壊滅的に効く」コンポーネントは高bit(Q4~Q6やFP16相当)のまま残し、数が膨大で個々の重要度が低いMoEのFFN重み部分だけを1~2bitまで落とす、という選択的な配分(Unslothの“Dynamic Quants”と同じ発想)
  4. 実測で裏付け: Maya-XS v2はオリジナルモデルとの出力分布の差(KLD)を0.284→0.251まで詰めており、理論だけでなく実測指標でも検証されている。さらに実機での固定ベンチ(v1/v2/v3、実コードレビューでのバグ発見含む)を複数回再実行しても精度劣化は確認されず、理屈だけでなく挙動で裏が取れている。

 つまり「1bit」という数字だけ見ると驚くが、実態は「超巨大MoEの冗長性+重要度ベースの非均一割り当て」という組み合わせで成立している。

 ただし、コンテキスト長を最大の512K(524,288)にすると、既知のバグでVRAMオーバーフローが約15GB→約63GBに跳ね上がる「sentinel cliff」が発生するため(つまり速度が落ちる)、507,904(524,288-16,384、512Kの約96.9%)まで意図的に削って回避している。この程度の差ならdshで使っていても気付かないレベルだ。

 速度は55tok/s前後、プリフィル 1.5k前後。tok/sはできれば100近く出てほしいものの、55前後であれば実用レベルだ。

 またもう1ランク上、Maya-Sの実態はDeepSeek-V4.1-Flash-1017-Maya-S-IQ2_XXS(166GB)。これも試したところ、1/2~1/5まで速度が落ち(デコード、プリフィルとも)、その割にテストした範囲では精度(性能)が変わらなかったのでMaya-XSにした……という経緯がある。

 最近は安定しているが、当初大変だったのはStrataにしてもProject Mayaにしてもアップデートが日々数回あること。その度にベンチマーク結果も変わる。追っかけるだけでもそれなりに手間暇かかる。とはいえ、基本、良い状態になっていくので楽しみながらアップデートしていた。

 前回から2回ほど間が空いてしまったものの、その分、両プロダクトの完成度も上がっており、掲載タイミング的には今回の方が(結果的には)ベストだった。

さらにAIサーバーをパワーアップするには!?

 さて、ここまで動き出すと、もっと多くのRAM/VRAMを!と思うのが人情(笑)。去年(2025年)なら買えば済んだ話なのだが、昨今メモリやGPUが高騰していることもあり、基本新規での購入は予算的に不可能。手持ちパーツで何とかする必要がある。

手持ちパーツ一覧

  1. DIMM/DDR4 16GB×2、32GB×2
  2. SO-DIMM/DDR5 64GB×2
  3. GeForce RTX 4080 SUPER(32GB改)

 CPUやマザーボードはそれほど値上がってないので、これは購入するとして、考えられるのは、

  1. DIMM/DDR4で4スロット=96GB
  2. SO-DIMM/DDR5で2スロット=128GB

 ただし、M.2(PCIe x4)×4+PCIe x16、もしくはM.2(PCIe x4)×3+PCIe x16に加えx16/x8/x4何か1つ……の仕様を満たさないと、GPUをもう1つ追加できない(つまりSSD用のM.2以外に何らかのバスが4つ)。

 DIMM/DDR4に関してはいろいろマザーボードもあるので探せば済むのだが、さすがにSO-DIMM/DDR5でこの条件に合うものはない。唯一、MINISFORUM「AR900i」は、

  • Core i9-13900HX
  • DDR5-5600対応SO-DIMM×2
  • PCI Express 5.0 x16スロット
  • PCI Express 4.0 M.2スロットを4基!

 と該当するものの、とっくに生産終了、中古もまず流れてない。これを入手できれば、VRAM V100×2+RTX 4090(48GB改)+RTX 4080 SUPER(32GB改)の計144GB、メモリ128GBと、DGX Spark互換機を超え最強になるのだが……(笑)。

 とはいえ、DeepSeek-V4.1-Flash-1017-Maya-XS-v2-IQ1_Sを使ってる限り、現状のRAM 64GB+VRAM 112GBにすべて収まっており、SSDのアクセスはなし。これ以上リソースを増やしても無意味。今後、何か出たときに対応可能にしておきたい拡張だ。

 ただGPU 4基になると300W×2+450W+320Wの計1,370W。加えてCPUやメモリ、SSDなどのマザーボード。OCuLinkなので電源は別になってるとはいえ、同じコンセントから引くのはちょっと躊躇しそうな最大消費電力となる。


 以上のように、StrataやProject Mayaの登場により、これまで家庭用GPUでは絶対動かなかったそれなりのサイズのLLMが、RAM/VRAM/SSDと層を分けて載せることにより、うまく条件さえ揃えば十分なパフォーマンスを発揮できるようになった。

 そろそろQwen4が登場しそうで27Bの性能向上はもちろんFlash Nextもどうなるか?リリースされれば、別途レポートをお届けしたい。