125BのQwen3.8-Flash-Nextがメモリ32GBのPCで毎秒60トークンに:Strata 0.2とGyro-Sで重みを全部メモリに収める

2週間前の記事「125BのQwen3.8-Flash-Nextを2bitに落としてRTX 3060で動かす」では、社内の検証マシン「DQN」(GeForce RTX 3060 12GB、メモリ32GB)で、125B(1,250億パラメータ)のQwen3.8-Flash-Nextを動かしました。メモリに入りきらない部分をSSDから読みながらの動作で、文章を書く速さ(生成)は毎秒約16トークンでした。
その後、推論エンジンのStrataが0.2になり、もっと小さな量子化版「Gyro-S」を選べるようになりました。同じDQNで試したところ、モデルの重みがVRAMとメモリに全部収まり、SSDからエキスパートを読まなくなりました。生成は毎秒40〜62トークン(26問のテストでの中央値は毎秒60.8トークン)で、前回の約3.7倍です。前回と同じ26問のテストの正解数は、25問で変わりませんでした。
検証日:2026年10月24日(日本時間)。公式情報の確認日は2026年10月25日です。
前回から変わったこと
Strata 0.2:インストーラーとコマンドで入れられるようになった
Strataは、Qwen3.8-Flash-Nextを家庭用のPCで動かすための推論エンジンです(MITライセンス)。前回は有志のフォークをソースからビルドしましたが、0.2.0(10月19日)から、デスクトップアプリ、ターミナルの strata コマンド、エンジンの3つに分かれ、ビルドしなくても入れられるようになりました。OpenAI互換とAnthropic互換のAPIを手元で提供するので、Claude CodeやCodex CLI、OpenCodeなどのコーディングエージェントからも使えます。
公式のREADMEには「RAMとVRAMの合計で32GBあれば始められる」と書かれています。合計32GBのPCに勧められているのが、次に紹介するGyro-Sです。
Gyro:agentionaiによる小さな量子化版
Gyroは、agentionaiが公開しているQwen3.8-Flash-Nextの量子化版です。エキスパートの重みを、回転(アダマール変換)をかけた基底で、トレリス符号化という方式で保存しています。ライセンス表記はQwen Community License 1.0です。この形式は、現時点では本家のllama.cppでは読み込めず、Strataなどの対応したエンジンが必要です。
| 版 | 必要なメモリ(RAM+VRAM) | ダウンロード | KLダイバージェンス |
|---|---|---|---|
| Gyro-S(今回) | 27.6GB | 58.5GB | 0.268 |
| Gyro-M | 35GB | 92.0GB | 0.159 |
| Q2_0(前回) | 37.6GB | 約66GB | 0.312 |
| IQ2_XS | 39.2GB | — | 0.236 |
必要なメモリとKLダイバージェンスは、Strataの資料(docs/GYRO.md、docs/MODELS.md)の値で、本稿では再現していません。KLダイバージェンスは元のモデルの出力とのずれで、小さいほど元に近いことを表します。Gyro-Sは、Q2_0よりファイルが小さいのに、この値ではQ2_0より元のモデルに近いとされています。ただし資料は、Gyro-Sを「ほかに何も収まらないPC向けの最小の選択肢で、2〜3bitの版より品質は低い」と説明しています。
ファイル(58.5GB)の約半分(28GB)は、n-gram埋め込みの表です。この表はメモリに載せず、1トークンごとにSSDから数行ずつ読みます。つまりGyro-Sでは、エキスパートを含む重みはRAMとVRAMに全部載り、SSDからは小さな表を少しずつ読むだけになります。前回は、エキスパートそのものの一部をSSDから読んでいました。
検証環境
| 項目 | DQN(前回と同じPC) |
|---|---|
| GPU | GeForce RTX 3060(VRAM 12GB)、ドライバー 580 |
| CPU | Core i5-12400(6コア12スレッド。AVX-512なし) |
| メモリ | DDR5 16GB×2=32GB(4800MT/s) |
| SSD | NVMe 1TB(Phison E27T) |
| OS | Ubuntu 24.04 |
| Strata | Terminal 0.2.4.2、エンジン 0.1.48(linux-x86_64-cuda13) |
| モデル | Gyro-S(Qwen3.8-Flash-Next-Gyro-S-TQ1_0.gguf、Strataが指定するリビジョン) |
| 設定 | コンテキスト32K、KVキャッシュ int8、MTPによる先読み(最大4トークン)、画像入力オフ。そのほかは既定のまま |
前回入れたQ2_0は、依頼を断る働きを取り除いた改造版(abliterated)でした。今回のGyro-Sは改造していない版です。元は同じQwen3.8-Flash-Nextですが、量子化の方式に加えて、この点も違います。
セットアップの手順
コマンドは2行です。インストーラーはホームディレクトリの中だけに入れるので、管理者権限は要りません。ダウンロードしたものはSHA-256と署名で確認されます。
curl -fsSL https://github.com/Niko1221/Strata/releases/latest/download/install.sh -o install.sh && sh install.sh
strata launch --model gyro-s --family gyro --context 32k --vision off --no-tui
1回目の strata launch では、次のものが順に用意されます。
- GPUに合ったエンジン(578MB)のダウンロード
- モデルファイル(58.5GB)のダウンロード。DQNの回線(毎秒約100MB)で約10分
- メモリの少ないPC向けに、エキスパートを1つのファイルにまとめる処理(1回だけ、約3分)
- MTP(先読み)用の層(約5GB)のダウンロード
全部で約20分かかり、ディスクは合計87GBを使いました。用意ができるとAPIサーバーが立ち上がり、 http://127.0.0.1:8080/v1 でOpenAI互換のAPIが使えるようになります。2回目からの起動は約1分です。
結果
重みの置き場所
起動時のエンジンのログによると、重みは次のように置かれました。
- VRAM:エキスパート以外の重み、KVキャッシュ、先読み用の層と、エキスパート5,197個(5.08GiB)
- メモリ:GPUに載らないエキスパート22.26GiBを全部、ページロックして常駐
- SSD:32Kトークンのプロンプトでも、エキスパートを読む量の見込みは「約0.0GB」
このとき、Strataが使えるメモリは約28GBありました。起動後のVRAMの空きは431MiBしかなく、エンジンは「512MiBを切ると、ドライバーがGPUのメモリをメインメモリへ追い出して遅くなることがある」と警告を出しました。今回の測定中に遅くなることはありませんでしたが、コンテキストを伸ばすなら、警告が勧める --vram-reserve-mib を足したほうがよさそうです。
速さ
思考なしで、プロンプトごとに1回ずつ測りました。先頭に毎回違う文字列を入れて、前のリクエストのキャッシュが効かないようにしています。
| プロンプト | 入力(トークン) | 読み込み | 生成 | SSDから読んだ量 |
|---|---|---|---|---|
| 短いSF小説を書く | 54 | — | 毎秒45.2トークン | 49MB |
| PythonでLRUキャッシュを書く | 53 | — | 毎秒54.5トークン | 30MB |
| 47都道府県の県庁所在地を挙げる | 55 | — | 毎秒61.7トークン | 27MB |
| 約4,700トークンの記録から質問 | 4,675 | 毎秒891トークン | 毎秒40.1トークン | 48MB |
| 約1万8,000トークンの記録から質問 | 18,448 | 毎秒963トークン | 毎秒52.2トークン | 24MB |
生成の速さは内容で変わりました。コードや県庁所在地の列挙のように先が読みやすい文章では、MTPの先読みがよく当たるので速く、小説は遅めです。1万8,000トークンのプロンプトの読み込みは約19秒でした。前回は、2万トークン級の読み込みに1分半から2分かかっていました。
Strataの資料には、RTX 3060 12GBとCore Ultra 7の組み合わせで、Gyro-Sの生成が毎秒62.5トークンという測定があります(エンジン0.2.2、docs/GYRO.md)。DQNのCPUはAVX-512のない6コアですが、短いプロンプトでの毎秒45〜62トークンは、それに近い値です。
前回との比較
前回のQ2_0でも、記事の公開前に同じ26問のテストをしていました。その記録と並べると、次のようになります。
| 前回:Q2_0(10月12日) | 今回:Gyro-S(10月24日) | |
|---|---|---|
| エキスパートの置き場所 | 一部をSSDから読む | 全部VRAMとメモリ |
| 生成の速さ(26問の中央値) | 毎秒16.3トークン | 毎秒60.8トークン |
| 約2万トークンの文書から探す問題 | 約100秒 | 約22秒 |
| 26問の合計時間 | 764秒 | 177秒 |
| 1問の中央値 | 20.2秒 | 4.3秒 |
前回の記事では、357トークンのコードを書かせる間にSSDから43.1GBを読んでいました。今回は、1回のリクエストでSSDから読むのは数十MBです。速くなった一番の理由は、エキスパートをSSDから読まなくなったことだと考えられます。
メモリをほかのプログラムと分け合うと
DQNでは、ふだんほかのサービスも動いています。そのサービスを動かしたまま起動したときと、止めて起動したときとで、同じプロンプトを比べました。Strataは、使えるメモリが足りないと、よく使うエキスパートから順にメモリに置き、残りをSSDから読むように自動で切り替えます。
| 起動時に使えたメモリ | メモリに置いたエキスパート | 生成(短い3問) | 約1万8,000トークンの読み込み | そのときSSDから読んだ量 |
|---|---|---|---|---|
| 28.1GiB | 22.26GiB(全部) | 毎秒45〜62トークン | 毎秒963トークン | 24MB |
| 23.0GiB | 17.89GiB | 毎秒41〜58トークン | 毎秒834トークン | 約10GB |
| 18.5GiB | 13.39GiB | 毎秒39〜61トークン | 毎秒559トークン | 約27GB |
短い質問の生成はそれほど落ちませんが、長いプロンプトの読み込みでは、メモリが減るほどSSDから読む量が増えて遅くなりました。Gyro-Sの速さを出すには、Strataだけで28GB前後のメモリを使える状態にしておくのがよさそうです。
回答の品質(26問)
前回と同じ26問(算数・論理、日本語・知識、決まった形式での出力、コード、長い文書からの検索)を、思考の量「low」、temperature 0.6で1回ずつ解かせました。コードの問題は、書かせたコードを実際に動かしてテストしています。
| 分類 | Q2_0(前回) | Gyro-S(今回) |
|---|---|---|
| 算数・論理(9問) | 9 | 9 |
| 日本語・知識(6問) | 5 | 5 |
| 形式・構造化(3問) | 3 | 3 |
| コード(5問) | 5 | 5 |
| 長い文書からの検索(3問) | 3 | 3 |
| 合計 | 25/26 | 25/26 |
| 間違えた問題 | 「相殺」の読み | オーストラリアの首都の表記 |
自動採点ではサイコロの確率の問題も不正解になっていましたが、答えは \frac{1}{6} の形で正しく、採点の書式の問題でした。前回も同じ扱いで正解にしています。
間違えたのは、オーストラリアの首都を聞いた問題です。
オーストラリアの首都は キャンバーラ(Canberra) です。
キャンバーラは、シドニーとメルボルンの間に位置し、1913年に首都として設計された計画都市です。
中身は合っていますが、「キャンベラ」を2回とも「キャンバーラ」と書いています。前回間違えた「相殺」は、今回は「そうさい」と正しく読めました。
ほかに目についた点です。
- 存在しない関数
itertools.smart_chunk()について聞くと、「存在しません」とはっきり否定し、近い機能としてitertools.batched()(Python 3.12以降)を案内しました - 「コードブロックは1つだけ」という指示は、コードの5問すべてで守りました
- 敬語の問題は「社長が明日いらっしゃると仰っていた」で正解でした。ただ、「仰って」は「おっしゃって」と書くほうが自然です
- 前回のQ2_0では、回答に中国語が混ざることがありました。今回の26問の回答では見つかりませんでした
この検証でわかること・わからないこと
- 速さは、5つのプロンプトを1回ずつ測った値と、26問のテストの記録です。何度も繰り返して平均を取ったベンチマークではありません
- 26問は各問1回だけの試行なので、1〜2問の差は誤差の範囲です。この程度の問題では、Q2_0とGyro-Sの品質の差は見えなかった、というところまでしか言えません。Strataの資料は、Gyro-Sは2〜3bitの版より品質が低いとしています
- 前回とは、量子化の方式のほか、改造版か通常版か、Strataの版、メモリに置けた量も違います。前回はほかのサービスのためにメモリに置く量を8GiBに絞っていました。速さの差のうち、どれがどれだけ効いたかは分けて測っていません
- Gyro-M(35GB)や、メモリを64GBに増やした場合は試していません
- 思考の量を増やしたときの品質、画像の入力、コーディングエージェントからの利用は、今回は試していません
まとめ
メモリ32GBとRTX 3060 12GBのPCで、125BのQwen3.8-Flash-Nextが毎秒約60トークンで動きました。前回の約3.7倍で、同じDQNで動かしているOrnith 1.5(35B、生成は毎秒約57トークン)と同じくらいの速さです。前回の記事では「大きなモデルの賢さを取るか、小さなモデルの速さを取るか」と書きましたが、この速さなら、125Bをふだん使いにすることも考えられます。
決め手は、重みを全部VRAMとメモリに収めて、SSDからエキスパートを読まなくしたことでした。そのぶん、Strataが28GB前後のメモリを使える状態が前提です。ほかのプログラムとメモリを分け合うと、長いプロンプトから遅くなります。導入もコマンド2行になったので、メモリ32GBとVRAM 12GBのPCがあれば、手軽に試せるようになりました。
参照資料
Strata(GitHub) / Strata docs/GYRO.md / Strata docs/MODELS.md / Strata リリースノート / agentionai/Qwen3.8-Flash-Next-Gyro-GGUF / Qwen3.8-Flash-Next 公式モデルカード。情報は2026年10月25日に確認。
