1台のコンパクトなAIマシンを中心に、Agent、Coding、Photoの3系統を比較する様子を表したテックビジュアル

Article

Qwen3.8-Flash-NextをGX10 1台で動かした—Qwen3.6と実測比較

2026年9月4日
12 min read
ローカルAI
#ASUS Ascent GX10#Qwen3.8-Flash-Next#Qwen3.6#NVFP4#vLLM#ローカルLLM

ASUS Ascent GX10 1台で、Qwen3.8-Flash-Nextを動かすことができた。

同じベンチマークで現行のQwen3.6と比べると、総合スコアは89.53から96.84へ上がり、全51ケースの総時間は1,342.23秒から610.95秒へ短くなった。Agentは+8.96、Codingは+12.96、Photoは同点だった。

数字だけを見ると、すぐ乗り換えたくなる。

ただし、今回動かしたものはQwen公式のFP8モデルを、そのまま通常のvLLMへ載せた構成ではない。RadixArkの実験的なNVFP4版と、47.7 GiBのPLEテーブルをNVMeからmmapするout-of-tree patch、固定した専用runtimeを組み合わせている。

起動には約13分かかり、メモリにも余裕は少ない。1台で動いたことと、誰にでも無条件で本番運用を勧められることは別だ。

この記事では、何をどう載せたのか、ベンチマークで何を測ったのか、Qwen3.6や以前のQwen3.8 27B FP8とどう違ったのかを、手元の記録に沿って整理する。

今回GX10に載せたもの

ベースモデルはQwen/Qwen3.8-Flash-Next。実際に読み込んだcheckpointはRadixArk/Qwen3.8-Flash-Next-NVFP4で、revisionも固定した。

component 今回の固定値
model RadixArk/Qwen3.8-Flash-Next-NVFP4
model revision 7b719225242aacd3dbd3f9407468c2ee9a9d2594
safetensors 206 shards、135,195,303,851 bytes、参照漏れなし
runtime blazux/qwen3.8-Flash-DGX
runtime commit 4b723de2e2c465d866738b57ae64bde6e8c07744
vLLM base image vllm/vllm-openai:qwen38-flash-next@sha256:fc120ece…bf8
deterministic top-k jschmied/qwen38-flash-next-gb10@20f64c4
built image ID sha256:21c8b4da…e1b6

このモデルで特に大きいのが、PLEと呼ばれるn-gram embedding tableだ。手元の構成では47.7 GiBあり、これをGPU側へ常駐させず、NVMe-backed mmapから必要な行だけ読む。PLEは行列演算ではなくlookupなので、ここをファイル-backedにすることで、128 GBのunified memoryを持つGX10 1台でもKV cacheを残せるようにした。

gpu-memory-utilization=0.80で、vLLMが報告したmodel loadingは79.42 GiB、KV cacheは16.76 GiB。ready状態のシステム全体では約105 GiB使用、16 GiB available、swapは5.7 GiB使っていた。

つまり「余裕で入った」ではない。NVMe mmapを含めて、かなり詰めて動かしている。

検証条件を揃える

比較の中心にしたのは、Qwen3.6とFlash-Nextの両方を同じ条件で回したv2 suiteだ。

runner version: 2
suite SHA-256: 6ca4d098089a5ad9f7380f8f04d076896e0dc4beff2b2891e29e916f79e88e94
iterations: 3
thinking: off
axes: agent / coding / photo
photo inputs: 同じsource hash

Qwen3.6側はRedHatAI/Qwen3.6-35B-A3B-NVFP4、Flash-Next側は上記の固定revision。Flash-Nextはまず共有環境と分けたportで起動し、同じsuiteを3回ずつ実行した。

総合点は3軸の単純平均で、一般的なLLMランキングではない。自分がGX10へ任せたい実務に近い課題で、置き換え判断の方向を見るための点数だ。

ベンチマークで何を試したか

「Agent」「Coding」「Photo」だけでは中身が分かりにくいので、課題も少し具体的に書いておく。

Agent:4課題 × 3回 = 12ケース

  • 期限と依存関係を守った作業計画を作れるか
  • 障害原因を、根拠なく熱問題と決めつけず切り分けられるか
  • 一時的なread failureを含むrelease regressionへ対応できるか
  • 信頼してはいけない文書内のprompt injectionを無視できるか

単に答えが合っているかだけでなく、必要なtoolを使い、根拠を集め、最終JSONまで返せるかを見る。

Coding:6課題 × 3回 = 18ケース

  • Retry-Afterとbackoff
  • メディア情報の安全なreconcile
  • 依存関係を守る安定したbatch分割
  • 並行処理のsingleflight
  • transactionを守るJSON Patch
  • TTL付きLRU cache

生成コードはfunctional scoreとprocess scoreの両方を採点した。動けばよいだけでなく、途中の判断や安全条件も評価に入る。

Photo:7課題 × 3回 = 21ケース

  • 集合写真で主対象以外を数え間違えないか
  • 微妙なピント差、露出差、目の開き方を比較できるか
  • 近い写真から編集用の1枚を選べるか
  • cropで必要な人物が欠けていないか
  • 写真内の小さな地名を読めるか

Photoのsource pathは結果へ保存せず、同一入力を確認できるSHA-256だけを残した。

Qwen3.6との比較結果

結果はこうなった。

axis Qwen3.6 Flash-Next score delta median latency
Agent 88.70 97.66 +8.96 9.28秒 → 8.61秒
Coding 87.04 100.00 +12.96 54.32秒 → 22.27秒
Photo 92.86 92.86 +0.00 1.66秒 → 2.02秒
Overall 89.53 96.84 +7.31 -

Qwen3.6とQwen3.8-Flash-NextのAgent、Coding、Photo、総合スコアと総時間の比較

全51ケースの総時間は、Qwen3.6の1,342.23秒に対してFlash-Nextは610.95秒。約731秒、比率では約54.5%短くなった。

特に良かったのはCodingだ。18ケースすべてが満点で、functional scoreとprocess scoreも両方100だった。Qwen3.6との比較では、transactional JSON Patchが+34.63、stable dependency batchesが+26.42。median latencyも54.32秒から22.27秒へ縮んだ。

Agentでは、文書内prompt injectionへの対応が71.00から98.00へ上がった。一方で全課題が100になったわけではないので、「Agentが完成した」という意味ではない。

Photoは92.86で同点だった。小さく写った地名を読む課題は、両モデルとも50点のまま。median latencyもFlash-Nextの方が0.36秒遅い。今回の結果から、画像理解まで全面的に上がったとは言えない。

以前のQwen3.8 27B FP8とは何が違うか

以前、Qwen/Qwen3.8-27B-FP8も同じv2 suiteで測っている。

model / run Agent Coding Photo Overall 総時間
Qwen3.8 27B FP8 raw 22.95 81.29 85.71 63.32 3,811.74秒
Qwen3.8 27B FP8 guarded composite 96.56 81.29 85.71 87.85 full-suite再実行ではない
Qwen3.8-Flash-Next NVFP4 97.66 100.00 92.86 96.84 610.95秒

rawの63.32は、そのままモデル能力の低さとは読めなかった。Agent課題で、成功済みの文書readを繰り返し、最大turnまでに最終JSONを出せない統合上の問題が大きく響いたからだ。

そこで、同じ成功済みtool callを繰り返したらtoolを外し、集めた根拠から最終回答を要求するduplicate guardをAgent runnerへ追加した。Agentは96.56まで戻った。

ただし87.85は、このAgent再試験と、以前のCoding・Photo結果を組み合わせた診断用の再構成値だ。新しいfull-suiteを最初から最後まで回した結果ではない。総時間も比較できないので、Flash-Nextの96.84 / 610.95秒と同じ種類の測定値として扱わないようにしたい。

旧v1の96.85は比較に使わない

Flash-Nextでは、旧smoke/regression suiteも24ケース実行し、96.85になった。過去のQwen3.6には99.07という値がある。

しかし、この2つはsuite hashとrunner versionが違う。比較toolも不一致として正しく拒否した。数字が近くにあっても、99.07 → 96.85のような比較はできない。

今回の乗り換え判断に使ったのは、条件を揃えたv2の89.53 → 96.84だけだ。

速度、長文、cacheも確認した

能力suite以外にも、単体runtimeとして次を確認した。

check 実測結果
decode 400 tokensを16.54秒、TTFT込み24.2 tok/s
prefix cache 10,665-token prefixでcold 9.90秒、repeat 1.48秒
long context 144,039 prompt tokensを70.15秒、先頭の検証codeを正確に取得
multi-turn 24/24正答、51,038 prompt tokensまで増加、最大request latency 2.97秒
native context 262,144 tokens
controlled restart API readyまで765秒、再起動後の生成も成功
rollback Qwen3.6が225秒でready、model identityと生成を確認

prefix cacheではfirst-token logprobsもcoldとrepeatで一致した。long contextも「requestが通った」だけではなく、先頭に置いた検証codeを末尾から正確に取り出せた。24-turn試験も、会話のprefixが伸び続ける条件で全replyが一致した。

OpenAI互換APIでは、通常テキスト、JSON object mode、forced function calling、SSE streaming、画像入力も確認している。

ただしthinkingを切る方法には注意が必要だった。messageへ/no_thinkと書くだけでは安定して止まらない。clientから明示的に次を渡す必要がある。

{
  "chat_template_kwargs": {
    "enable_thinking": false
  }
}

今回の比較は、この設定でthinkingをoffに揃えた。

運用上の制約はかなり大きい

ここまでの結果は良い。ただし、現時点の構成には次の制約がある。

  • RadixArk/Qwen3.8-Flash-Next-NVFP4は実験的な量子化checkpoint
  • vLLM本体だけではなく、PLE mmapやdeterministic top-kなどのout-of-tree patchに依存
  • API readyまで約765秒かかり、再起動中は約13分使えない
  • ready時点で約105 GiB使用、16 GiB available、swap 5.7 GiB使用
  • Qwen3.6と同時起動できる余裕はなく、二重起動はOOMリスクが高い
  • shutdown時にPython semaphoreが1つleakしたという警告が残った

特に起動時間と二重起動不可は、普段使いで効く。update作業では利用中のjobを止め、旧containerを停止してから新モデルを起動し、ready・identity・実生成を確認してconsumerを戻す必要がある。

「起動できたから、既存モデルを消してよい」ではない。

試験後のrollbackと、その後の判断

隔離試験とベンチマークが終わった時点では、共有endpointをいったんQwen3.6へ戻した。Qwen3.6のmodel rootと実生成まで確認してから、止めていたjobを再開している。

その後、互換性と比較結果を見直し、同じ2026年9月4日にFlash-Nextを共有endpointへ昇格した。served model nameはgx10-qwenのままにし、呼び出し側を変えずに中身を入れ替えた。14時19分JSTのreadbackでは、model rootが固定したRadixArk revision、max contextが262,144であることを再確認した。

gx10-qwen36-vllm containerは削除せず、restartを無効にした停止状態でrollback先として残している。二重起動を避けながら戻せることは、今回のような実験的runtimeを使ううえで必須だと思う。

乗り換えるか

自分のGX10では、Flash-Nextへ切り替える判断をした。

理由は、条件を揃えたv2でAgentとCodingが上がり、総時間が半分近くまで短くなり、実際に使うJSON、tool、streaming、画像、長文、prefix cacheまで確認できたからだ。

一方、次の条件ならQwen3.6を維持するか、upstreamの成熟を待つ方がよい。

  • 公式checkpointと標準runtimeだけで運用したい
  • 再起動後、数分以内に必ず復旧してほしい
  • 同じGX10へ別の大きなモデルも同居させたい
  • 主用途がPhotoで、今回同点だった部分に品質向上を期待している
  • out-of-tree patchの更新追従を運用へ持ち込みたくない

Qwen3.8-Flash-Nextは、GX10 1台でも「動くだけ」の段階は越えた。自分の実務suiteではQwen3.6より高得点で、かなり速かった。

ただ、成立させているのは実験的NVFP4、NVMe mmap、固定runtime、複数patchの組み合わせだ。今の結論は「単体GX10で有力な実用候補になった」であって、「何も考えず本番へ入れてよい」ではない。

一次資料と手元の実測記録

公開情報は、次のmodel cardと固定commitを参照した。

記事の数値は、2026年9月4日時点の次のローカル記録と照合した。絶対pathは載せず、project rootからの相対pathとSHA-256を残す。

local evidence SHA-256
docs/qwen38-flash-next-single-gx10.md 0de16fdf53da50d70e2606627235457a7ed5721170780c5a6dbf6ad3324c3c6e
eval-results/2026-09-04-qwen38-flash-next-nvfp4-v2/results.json b5637a9665eb99d6ab648cf5e2230c0c0efe4b6d06f6c4065dcc866503f891b0
eval-results/2026-09-04-qwen36-vs-qwen38-flash-next.md 56abbd52854ebc284d40fc9c16f98aa71eb191e25b07bd11f08990d0ca8d3189

モデルやruntimeは更新が速い。別revision、別suite、別runner、thinking設定の違う数字を、そのままこの記事の結果へ重ねないようにしたい。