西川和久の不定期コラム

ちょい古ゲーミングPCで「Qwen3.8-Flash-Next」を動せる「Strata」を試してみた!

 10月に入ってからAI界隈が何やら賑やかになっている。総パラメータ125B(1,250億)、アクティブパラメータ6B(60億)の「Qwen3.8-Flash-Next」が、VRAM 12GBのビデオカードで動く!との情報が駆け巡ったからだ。

 その真意を確かめるべく、以前ご紹介し、今は予備機で眠っていたCore i9-12900/64GB(DDR4)/1TB/GeForce RTX 3060(12GB)のPCを久々に引っ張り出して試してみることにした。

Qwen3.8-Flash-Nextとは?

 本論に入る前にまず、Qwen3.8-Flash-Nextの話をしたい。これはAlibaba(Qwenチーム)が公開したモデルだ。Hugging Faceのモデルカードでは「Image-Text-to-Text」、つまりテキストと画像(および動画)を入力できるマルチモーダルモデルとなっている。主な特徴は以下の通り。

Qwen3.8-Flash-Nextの主な特徴
総パラメータ125B(別にn-gram埋め込み51B、MTP 4B)
トークンごとに計算する分(アクティブ)6B
層構成48層。「3×(Gated DeltaNet→MoE)+1×(QSA→MoE)」を12回繰り返す
MoE512エキスパート(10ルーテッド+1共有)、中間次元640
アテンションGated DeltaNet(線形)とQwen Sparse Attention(QSA)の組み合わせ
コンテキスト長ネイティブ262,144トークン(最大1,000,000まで拡張可能と記載)
入力テキスト、画像、動画
推測デコードMTP
ライセンスqwen-community-1.0

 サイズ的に近いMoEモデルは、gpt-oss-120b(アクティブ5.1B)があるが、Qwen3.8-Flash-Nextはこれより少し大きい感じとなる。

 また同社は下位モデルとしてQwen3.8-27Bも公開している。125B(アクティブ6B) vs 27B(dense)。普通に考えれば家庭用GPUには後者の方が乗りやすい。性能差は、

評価項目Qwen3.8-Flash-NextQwen3.8-27B
SWE-bench Pro62.561.7
SWE-bench Multilingual81.073.8
DeepSWE 1.158.742.2
LiveCodeBench v691.990.3
GPQA Diamond91.789.2
IFBench81.379.5

 と、項目によってはあまり差がないといえばないし、逆にそれなりにあるといえばあるといった感じで、結構微妙なところだろうか。

 いずれにしても27Bより性能が良さそうなQwen3.8-Flash-Next、総パラメータ125B/MoEでアクティブパラメータ6Bもあるのに、どうやってVRAM 12GBで動かすのか?それが今回のお題となる。

推論エンジンStrata登場!

 一般的にGPUでLLMを動かすには、まずモデルをすべてVRAMに乗せることがスタートライン。従って少なくともVRAM容量>ファイルサイズとならない限り動かない。加えて、KVキャッシュなどが別途必要になるので、さらに多くのVRAMが不可欠だ。オフロードして多少VRAMからはみ出しても動くには動くが、その分、速度が犠牲となる。

 そこから逆算すると、Qwen3.8-Flash-Nextの125Bは、Q2に量子化しても40GB弱の容量。GeForce RTX 5090の32GBでさえどうにもならないのだ。

 そこへGPU/RAM/SSDの3層に役割を分けてモデルを置く推論エンジン「Strata」がリリースされた。分け方は、

StrataのMoEの分け方
GPU(VRAM)頻用部分+よく選ばれる「ホットな」エキスパートのキャッシュ(GPUで計算)
RAM全エキスパート(CPUが並列で計算)
SSDn-gramルックアップテーブル/約29GB(必要な行だけ読む)

 となっている。n-gramルックアップテーブル(約51B)は、Qwen3.8-Flash-Nextの特徴の1つ。直前の数トークンの並びから表を引いてくるだけの仕組みで、行列積には使われない。ただの辞書引きなので、VRAMやRAMに常駐させなくても動かすことができ、Strataがこの表をSSDに置くのだ。

 Strataの動作要件、VRAM的には、

  • NVIDIA GeForce RTX 20/30/40/50シリーズ、または対応するAMD GPU。
  • 12GB VRAM以上(8GBでも動くが、遅い)

 と、容量以外は結構緩い。メモリに関してStrataがおすすめするモデルは以下の通り。

搭載RAMおすすめ理由
32GBCoder32GBに収まりコード向け(24GBのGPUがあれば、Q2_0とIQ2_XSも動く)
48GBIQ2_XS(最速はQ2_0)これより大きいサイズは入らない
64GBIQ2_XS(推奨)、またはIQ3_XXS / IQ3_S全サイズが入る。IQ3_Sが最高品質で、最も遅い
96GB以上IQ3_S、またはUnslothの4bit(実験的)最大のサイズを、ほかのアプリを開いたまま使える余裕がある

 この中で、Coderだけはちょっと例外的で、エキスパートを半分に減らしたコード向けのバージョン。作者曰く、フルモデルのSWE-bench Verifiedスコアの91%で、メモリ32GBに収まるという。ただしコード以外は弱く、中国語を含むCJK(日本語もここに入る)のテキストも弱いとされ、チャット系には向かない感じだ。従って、通常利用の最低ラインは48GBと見た方がいいだろう。

Core i9-12900/64GB(DDR4)/1TB/GeForce RTX 3060(12GB)のPCで試してみる

 それでは、実際にVRAM 12GBのPCで試してみよう。使うのは、予備機で眠っていたCore i9-12900/メモリ64GB(DDR4)/GeForce RTX 3060(12GB)のPCだ。Strata作者が標準とする「VRAM 12GB+メモリ64GB」の、ほぼ最低ラインの構成になる。

項目内容
GPURTX 3060(VRAM 12GB)
CPUCore i9-12900(AVX-512なし)
RAM64GB(DDR4-2667、16GB×4、理論帯域 約43GB/s)
SSDNVMe 1TB(Cドライブ)
OSWindows 11
量子化IQ2_XS(39.2GB、作者の推奨)
Strataのエンジン0.1.38

 メモリ+VRAMの合計は約76GBなので、IQ3_S(54.8GB)も入るが、64GBの行で推奨されているIQ2_XSをピックアップ。

 セットアップ、いちばん簡単なのは、StrataのフォルダにあるSTART-HERE.batをダブルクリックして、表示される質問(モデル、サイズ、コンテキスト長、画像を読むか……など)に答える方法だ。Pythonも、エンジンも、モデルのダウンロードも、自動で進む。

 筆者は既にPythonの環境があり、手順を細かく制御したかったので、コマンドから実行した。

  • リポジトリを取得: git clone https://github.com/Niko1221/Strata.git
  • Pythonの環境を作る: minicondaでPython 3.12の専用環境
  • セットアップを実行:
python setup.py --setup --family qwen --model IQ2_XS --context 262144 --vision yes --gpu 0 --yes

 モデル(約72GB)のダウンロードから、MTPの下書き層の取得、起動用のbatの作成まで、これで終わる。

 起動は次のコマンドでオプションを足している。

python serve\server.py --engine strata --config strata-iq2_xs.json --host 0.0.0.0 --port 8080 --fit-max-tokens

 起動には、約30秒。準備ができたら、ブラウザが開く(http://127.0.0.1:8080。もしくはほかのPCからhttp://<PCのIPアドレス>:8080)。

 気になる思考レベルは、reasoning_effort: none/low/medium/highでリクエストごとに指定。サーバー既定はhighなので、コード用途では既定をnoneに書き換えて使っている。

 そうそう、モデルは必ずNVMeに置くことに注意したい。筆者は最初、容量が空いてるDドライブにセットアップしたものの、起動時エキスパートの読み込み(約33GB)が3分経っても終わらなかった。あ!SATA接続だった!忘れてた(笑)……となり、NVMeのCドライブに移したところ起動は約30秒に。

 Strataが便利なのは、推論エンジンだけでなく、Web UIも標準で付いていることだろうか。モデルを起動するとブラウザで3つの機能が使用可能となる。

  • Chat: モデルと会話できるチャット画面
  • Monitor: モデルの状態と、GPU/CPU/RAMの使用状況をライブで表示する画面
  • About(System): 設定やアドレスの一覧
Strata / Chat
Strata / Monitor
Strata / About

 APIだけを提供するvLLMのサーバーなどとは違い、チャットができ、tok/sなどが見られるモニタリング機能など、非常に良くできている。

 ほかのアプリなどから指定するエンドポイントは、

  • OpenAI互換API: http://<PCのIPアドレス>:8080/v1、チャット補完は/v1/chat/completions、モデル一覧は/v1/models
  • Anthropic互換API: http://<PCのIPアドレス>:8080/v1/messages
  • ヘルスチェック: http://<PCのIPアドレス>:8080/health

 モデルidは、qwen3.8-flash-next-iq2_xs、qwen3.8-flash-next-iq3_sなどとなる。

 ベンチマークテストは、Sonnet 5.5に考えてもらい実行したところ(いつもほかのLLMを試すときも同じ内容)、デコードは34~44tok/sで、十分実用範囲で動作した。なおStrataはまだアップデートのサイクルが短く以降の数値は0.1.38で測定したものとなる。

カテゴリ速度(3回平均、思考なし)
コード43.9tok/s
論理パズル37.3tok/s
文章生成33.7tok/s
日本語38.5tok/s
項目結果
prefill(約5.9kトークン)約850~880tok/s(最初の文字まで約7秒)
prefill(約23kトークン)約930tok/s(最初の文字まで25秒ほど)
GPU上のエキスパート数3,031個(約4GiB)
キャッシュのヒット率約72%

 測定は、コード生成、論理パズル、文章生成、日本語の4カテゴリ。max_tokensは指定せず、自然終了した生成だけを採用した。

 余談になるが、Sonnet 5.5に限らずDeepSeek-V4-Flashなどでベンチマークテストをさせると、勝手に短いmax_tokensを指定し失敗、大きくして再測定といった無駄なことをやる癖がある。誰に習ったのだろうか?(笑)。

 単発だとMTPの採用率で±20%ほどブレるため、3回連続の平均を見ている。思考lowにしても、tok/sの差はノイズの範囲内だった。

 ただデコードは実用的だが、プリフィルが遅い。約6kトークンのプロンプトで、最初の文字が出るまで約7秒、約23kトークンなら25秒ほどかかる。ファイルやログを大量に読ませるコーディングエージェントのような用途では、この待ち時間で遅く感じる。この辺りは2世代前のRTX 3060なので仕方ないところか。一方、短い質問をやり取りする使い方なら、かなり快適に使える。

 GPU上に乗るエキスパートは3,031個で、キャッシュのヒット率は約72%。ヒットしなかったエキスパートはRAMからCPUが計算するので、ここでDDR4のメモリ帯域と、AVX-512のないCPUが速度低下に影響する。

 クオリティは、画像や日本語、ツール呼び出しでは、IQ2_XSでもおおむね保たれていた。一方、コード生成は、IQ3_Sより一段落ちる(後述のGeForce RTX 4090機との比較を参照)。

 さてここで、この結果の意味を整理しておきたい。GeForce RTX 3060は2021年登場のAmpere世代、RTX 40、50シリーズを経た2世代前のGPUだ。しかもエントリークラスで、VRAMは12GBしかない。Qwen3.8-Flash-Nextは、量子化しても本体が約39GBあるので、VRAM 12GBでは、通常のGPU推論(全部をGPUに載せる方式)ではそもそも起動できない。

 それが、StrataのRAMとSSDまで使い切る設計のおかげで、34~44tok/sで動いた。しかも条件が悪く、メモリはDDR4-2667、CPUはAVX-512なしで、量子化も粗いIQ2_XS。それでも、筆者が手元で測ったDGX Spark(vLLM、本体FP8ベース)の文章生成/日本語(約37tok/s)と、ほぼ同等の水準に届いている(文章生成33.7tok/s、日本語38.5tok/s)。ただしコードでは、DGX Sparkの約6割(44対72tok/s)。利点もあるが欠点もあるというところ。

 とはいえ、2世代前のエントリークラスのGPUで、本来動かないはずのモデルが実用速度で動くという事実は、十分に意味がある。ゲーミングPCを持っている人が、ローカルLLMに興味を持ち、新しいGPUを買わなくても試せるのは魅力的だ。

 いずれにしても予想以上の性能でビックリ!というのが感想。あまりにも調子いいので、後述するWeb検索機能を付け常設し使い始めている(笑)。

 参考までにIQ3_Sで同じベンチマークテストを実行すると(コンテキスト長はStrata推奨の128Kにした)、

カテゴリ速度(3回平均、思考なし)
コード31.8tok/s
論理パズル27.3tok/s
文章生成24.8tok/s
日本語29.0tok/s
項目結果
prefill(約5.9kトークン)約440~460tok/s(最初の文字まで約13秒)
prefill(約23kトークン)約475tok/s(最初の文字まで約49秒)
GPU上のエキスパート数1,104個(約2.1GiB)
キャッシュのヒット率約56%

 IQ2_XSの値と比べると、デコードは約0.72~0.75倍、プリフィルは約半分。意外と?あまり遅くならなかった。メモリはOSも含め54GB程度を使用。ほぼ専用機(ほかにRAMを使わない)で、クオリティを取るならこちらを常用していいかもしれない。

Core i9-13900HK/128GB(DDR5)/2TB/RTX 4090(48GB改)のPCで試してみる

 比較のために、普段LM Studioで使っているGeForce RTX 4090のPCにもインストールした。ただしこの4090は、VRAMを48GBに改造した個体(市販品は24GB)なので、一般的な構成ではない点に注意。また、フルパワーだとファンがうるさいため、250Wに制限して駆動している(通常450W)。

項目内容
GPURTX 4090(VRAM 48GB改/250W駆動)。このPCはRTX 4080 SUPERもあるが別用途のため、4090のみ(--gpu 0)で使う
CPUCore i9-13900HK
RAM128GB(DDR5-5200、64GB×2、理論帯域 約83GB/s)
SSDNVMe 2TB(Dドライブ)
OSWindows 11
量子化IQ3_S(54.8GB、最高品質)
Strataのエンジン0.1.38

 セットアップは、RTX 3060機と同じ手順で、量子化だけ--model IQ3_Sにした(ダウンロードは約90GB)。RAMが128GBあるので「96GB以上」の行のIQ3_Sを選択。

 ベンチマーク測定は、コード生成、論理パズル、文章生成、日本語の4カテゴリと先のRTX 3060と同じ。

Strata / Monitor。ピークではtok/sが130を超え、prefillも速い
カテゴリ速度(3回平均、思考なし)
コード128.5tok/s
論理パズル113.3tok/s
文章生成86.6tok/s
日本語101.5tok/s

 当然だが、RTX 3060(12GB)と比較して速度がかなり向上。というか、DGX Sparkも含め筆者がこれまで手元で見たQwen3.8-Flash-Nextの中では最速だ。

 3.5bitの量子化なので気になる品質の確認は、簡単ではあるが次のテストをした。

テスト結果
論理パズル(羊9匹、バットとボール)正解
「9.11と9.9はどちらが大きい?」6/6正解
コード実行テスト(LRUキャッシュ・区間マージ・再帰下降パーサ、各8回×思考none/low)46/48合格(思考none 24/24、思考low 22/24。失敗は、lowの再帰下降パーサの2回)
日本語クリーン(中国語の混入なし)
画像(図形3種+文字入り)完全に正確
tool call(バグ4件入りのコードを直す)成功(4ターン、約10秒)

 今回の範囲では、IQ3_Sの量子化による大きな劣化は確認できていない。ただし、長い日本語文書や大規模なコード生成といった厳しい条件は試していないので実運用するとどうなるかは不明だ。

 ちなみに、筆者的に試したものの外した機能がある。StrataにはESP(experimental speed projection)という、拒否方向を射影して「断り」を減らす実験機能がある(つまり無検閲に近いもの)。有効にすると速度はほぼ変わらなかったが、コードの質は下がってしまった。この環境はコード専用で使いたいのでESPはオフに戻している。

DeepSeek HarnessでStrataのIQ3_Sを使用中
DeepSeek Harnessで「3Dのインベーダーゲーム作って!」の結果

チャットにWeb検索を足す(MCP)

 StrataのWebアプリ(ブラウザのチャット)は、MCP(Model Context Protocol)に対応しており、設定ファイルにMCPサーバーを書くだけで、チャットからWeb検索などが使用可能になる。

 特にモデルの知識は、学習のカットオフという限界があり、検索が使えれば、新しいリポジトリや最新のニュースも扱えるので、チャットの実用度がぐっと向上する。

 Web検索は手元の(グレーだが)SearXNG(自前で立てているメタ検索エンジン)に接続するMCPサーバーmcp-searxngを使用。手順は次の通り。

  • Node.jsを入れる(mcp-searxngはNode 22以上が必要)。Windowsならwinget install OpenJS.NodeJS.LTSでよい
  • MCPサーバーを入れる: npm install -g mcp-searxng
  • Strataの設定ファイル(strata-<モデル名>.json)に、mcp_serversを足す
"mcp_servers": {
  "searxng": {
    "command": "npx",
    "args": ["-y", "mcp-searxng"],
    "env": {"SEARXNG_URL": "http://192.168.11.50:8888"}
  }
},
"mcp": {"timeout_s": 60, "max_result_chars": 20000, "max_rounds": 8}

 Strataを再起動。サーバーのログにMCP server 'searxng': 4 toolsと出て、http://<PCのIP>:8080/mcpにsearxng readyと表示されれば成功。チャット画面を開き、設定の「Use tools from MCP servers」(既定でオン)を確認、普通にチャットするだけでよい。

Web検索で「推論エンジンStrataについて調べて」

 なおWeb検索以外のことはChatをMCPで拡張するより、ハーネス(エージェント)のendpointをStrataにした方が使い勝手も良く、MCPに関してはこれだけとした。


 以上、Strataは、VRAMに乗らない巨大モデルをRAMとSSDまで含めて使い切るという発想で、手持ちのゲーミングPC、そしてローカルLLMの可能性を一気に広げるものだ。できればQwen3.8-Flash-Nextだけでなく、仕掛け的に可能なら対応モデルが増えてほしいところ。

 GPU界隈では、この吉報でにわかにショップの12GB搭載GPUが売れ出したとか。本当か!? (笑)。ハイエンドはもう手の届かない価格になってしまったが、12GBならまだ何とかなる範囲。これを機会に1枚いかがだろうか?