「12GBのVRAMで125Bのモデルが60〜95 tok/sで動く」——2026年9月末に公開された推論エンジンStrataが、ローカルLLM界隈で話題になっています。当サイトの手元にある4機材(RTX A6000 48GB・RTX 4060 Laptop 8GB・Jetson Orin NX Super 16GB・Raspberry Pi 5 8GB)で実際に動かし、どの機材で動くのか、公称どおり速いのか、素のllama.cppと何が違うから速いのか、日本語で使えるのかを実測で確かめました。計測日は2026年10月2日、Strataのエンジンは0.1.33です。
結論
- RTX A6000 48GBでは公称を上回る速度で動きました。推奨サイズのIQ2_XSで生成100.6 tok/s(4Kプロンプト・3回の中央値)、128Kの長文を読ませた後でも85.4 tok/s。プロンプトの読み込みは最大2,321 tok/sです。
- 同じGGUFを素のllama.cppで全層GPUに載せた場合と比べ、生成は1.74〜1.78倍、読み込みは1.65〜3.83倍でした。32Kプロンプトで最初の1文字が出るまでの時間は、Strata 14.2秒に対しllama.cpp 54.4秒です。
- 生成が速い理由は、ほぼ「先読み」でした。下書きが採用されない設定にしたStrataは61.0 tok/sで、llama.cpp(57.8〜61.9 tok/s)と同水準です。モデル内蔵のMTP層による先読みが、これを約1.65倍にしています。
- VRAMが足りない条件では、差がさらに開きました。同じA6000で使うVRAMだけを絞ると、24GB相当で生成約2.6倍・読み込み約6〜8倍、12GB相当で生成約2.2倍・読み込み約8〜10倍です。読み込みは絞るほど差が開き、生成は24GB相当で最大でした。48GBでの1.7倍は、差がいちばん小さく出る条件です。
- 48GBでも落とし穴がありました。最高品質のIQ3_Sは既定設定のままだとVRAMを使い切って生成28〜42 tok/sまで失速し、設定を1行足す(
--vram-reserve-mib 4096)と71〜80 tok/sに回復しました。 - RTX 4060 Laptop(VRAM 8GB・RAM 32GB)は「動くが遅い」。NVIDIAドライバを更新したうえで、半分のエキスパートを削ったCoder版だけが動き、生成は約11〜12 tok/s、4Kプロンプトの読み込みに18.6秒かかりました。
- Jetson Orin NX Super 16GBとRaspberry Pi 5は起動できませんでした。Strata自身の適合チェックで止まります。x86-64のCPUとNVIDIA RTX(または一部のRadeon)を前提にしたエンジンです。
- 日本語の文章生成はサイズで結果が分かれました。IQ3_Sは6出力すべて崩れなし、IQ2_XSは6出力中4出力に簡体字が混入、Coder版は6出力すべてが英語への切り替え・言語の混在・同じ文字の反復のいずれかで崩れました(1題材・各3回の小さな確認です)。
以下、根拠を順に示します。数値は特記のない限り当サイトの実測で、生ログに紐づいています。
Strataとは何か
Strataは、AlibabaのQwen3.8-Flash-Nextを家庭用GPUで動かすことに特化したオープンソースの推論エンジンです(MITライセンス。根拠: GitHub Niko1221/Strata)。リポジトリの作成は2026年9月24日で、当サイトが確認した2026年10月2日時点でスター4,794・フォーク425でした(GitHub API)。国内でもnpaka氏の解説やzephel01氏の導入記録、RTX 5080・5060 Tiでの実測記事などが出ています(いずれも第三者による報告で、当サイトの実測ではありません)。
対象モデルのQwen3.8-Flash-Nextは、公式モデルカードによれば「総125B・アクティブ6B、ほかにn-gram埋め込み51BとMTP 4B」という構成のMoE(混合エキスパート)モデルです。48層・1層あたり512エキスパートのうち、1トークンごとに10個+共有1個だけが動きます(根拠: Hugging Face 公式モデルカード)。
巨大MoEの「収まる」と「使える」を線引きした記事で書いたとおり、MoEが節約するのは計算量であって、重み全体の置き場所ではありません。Strataはこの置き場所を、PC全体に割り振ることで解決しています(根拠: Strata docs/DETAILS.md)。
- GPU(VRAM): 毎トークン必ず使う部分(アテンション・ルーターなど)と、よく使われるエキスパートのキャッシュ。
- RAM: 全エキスパート。GPUに無いエキスパートはCPUがその場で計算します。
- SSD: 28.8GBのn-gramテーブル。1トークンあたり数行だけ読みます。
- 先読み: モデル内蔵のMTP層が次の数トークンを下書きし、本体が1回の計算でまとめて検証します。
配布されている量子化は次の4サイズと、エキスパートを半分に削ったCoder版です。品質の数値は量子化を作成したISTA-DASLabの公表値で、当サイトは品質ベンチマークを計測していません。IQ3_Sが元のBF16を0.14ポイント上回っているのも公表値どおりで、同等と読むのが妥当です(根拠: ISTA-DASLab モデルカード)。
| サイズ | bit/重み | ファイル合計 | 公表タスク平均(BF16は93.12) | Strataの必要RAM目安 |
|---|---|---|---|---|
| Q2_0 | 2.40 | 66.4GB | 89.07 | 約48GB |
| IQ2_XS(推奨) | 2.50 | 68.0GB | 89.16 | 約48GB |
| IQ3_XXS | 3.00 | 75.8GB | 92.57 | 約60GB |
| IQ3_S | 3.50 | 83.6GB | 93.26 | 約62GB |
| Coder(IQ1_M) | — | 58.4GB | —(別指標) | 約32GB |
必要環境は「NVIDIA RTX 20/30/40/50系でVRAM 12GB以上(8GBは動くが遅い)、ドライバ580以上、AVX2対応のx86-64 CPU、Windows 10/11またはLinux」です。Radeonの一部はLinuxで実験的に対応しています(根拠: Strata README)。
検証した機材
| 機材 | 構成 | 結果 |
|---|---|---|
| RTX A6000 ワークステーション | VRAM 48GB・Core Ultra 9 285K・RAM 127GB・NVMe・Windows 11 | IQ2_XS/Coder/IQ3_Sを計測 |
| RTX 4060 Laptop | VRAM 8GB・Core i7-13700H・RAM 32GB・NVMe・Windows 11 | ドライバ更新後、Coderのみ計測 |
| Jetson Orin NX Super 16GB | Arm・統合メモリ16GB・L4T R36.4.3 | 適合チェックで停止 |
| Raspberry Pi 5 8GB | Arm・RAM 8GB | 適合チェックで停止 |
Mac mini M4とJetson Orin Nano Superは今回接続できず、未実施です。
計測方法は、Strataのリポジトリに収録されているコミュニティ報告(RTX 5090)のスクリプトを土台にしました。合成したPythonコードの説明を求めるプロンプトを目標トークン数(1K・4K・16K・32K・128K)に合わせ、毎回先頭の文字列を変えて前回分の再利用を防ぎます。生成はtemperature=0・思考オフ・最大256トークン。各条件3回の中央値を採り、表では[最小–最大]を併記します。ウォームアップ1回とモデルのロード時間は除外しています。
結果① RTX A6000 48GB:公称を上回る速度
- Strata IQ2_XS100.6
- Strata Coder(IQ1_M)83.2
- Strata IQ3_S(VRAM予約4GB)80.0
- llama.cpp IQ2_XS57.8
- Strata IQ3_S(既定設定)42.4
IQ3_Sは既定設定のままだとVRAMを使い切って失速する(後述)。llama.cppは同じIQ2_XSのGGUFを全層GPUに載せた値。
| モデル | GPUに載ったエキスパート | プロンプト | 読み込み tok/s | 生成 tok/s | 最初の1文字まで |
|---|---|---|---|---|---|
| IQ2_XS | 24,576/24,576 | 1K | 1,043 | 102.6 [102.4–103.9] | 1.0秒 |
| 4K | 1,868 | 100.6 [97.4–102.7] | 2.2秒 | ||
| 32K | 2,321 | 97.9 [93.5–103.8] | 14.2秒 | ||
| 128K | 2,282 | 85.4 [84.7–86.3] | 56.3秒 | ||
| Coder(IQ1_M) | 12,288/12,288 | 1K | 1,226 | 81.9 [79.7–87.5] | 0.9秒 |
| 4K | 2,085 | 83.2 [80.3–84.2] | 2.0秒 | ||
| 32K | 2,443 | 73.6 [67.7–75.7] | 13.5秒 | ||
| 128K | 2,443 | 73.2 [65.5–74.8] | 52.6秒 |
IQ2_XSでは、モデルの全24,576エキスパート(33.02GiB)がVRAMに収まりました。エンジンのログ上、生成中のエキスパートキャッシュのヒット率は100%で、CPUがエキスパートを計算する場面はありません。Strataの売りは「VRAMに載らない分をRAMとCPUで補う」ことですが、48GBあるとその仕組みはほぼ出番がなく、全部GPUに載せて回すエンジンとして動いたことになります。
公式READMEの値(RTX 5070 12GB・Ryzen 5 7600・RAM 64GB)はIQ2_XSで生成79 tok/s(短い会話)・63 tok/s(128K)です。当サイトのA6000は同じ順に100.6・85.4 tok/sで、約1.3〜1.4倍でした。ただし公式値はエンジン0.1.26・別のプロンプト・各1回の値で、条件は揃っていません。方向性の比較にとどめてください(根拠: Strata公式の速度計測)。
32Kと128Kの各長さの文章に、深さ10%・50%・90%の位置で合言葉を埋めて答えさせる想起テスト(Strata同梱のneedle_bench.py)は、IQ2_XSで6問中6問正解でした。
消費リソースは次のとおりです。いずれもシステム全体の値で、この機材では計測前からRAM約36GiB・VRAM約2.1GiBを他のプロセスが使っています。
| モデル | VRAMピーク | RAMピーク | GPU電力(リクエスト中の平均) | GPU温度の最大 |
|---|---|---|---|---|
| IQ2_XS | 40.8GiB | 78.0GiB | 261〜290W | 87℃ |
| Coder(IQ1_M) | 32.0GiB | 67.9GiB | 259〜290W | 87℃ |
| IQ3_S(VRAM予約4GB) | 44.1GiB | 88.6GiB | 255〜290W | 87℃ |
GPU電力はnvidia-smiの値でGPU単体のものです。CPUと壁コンセントの電力は計測していません。128Kを続けて読ませるとGPU温度は86〜87℃に達しました。
結果② 同じGGUFを素のllama.cppで動かすと
Strataが読むのは標準的なGGUFなので、同じファイルは素のllama.cppでも動きます。A6000なら全層をGPUに載せられるため、同じ機材・同じファイル・同じリクエスト本文で、エンジンだけを替えた比較ができます。llama.cppはビルドb11332、起動オプションは-lm mmap -lzm on -ngl all -c 40960 -np 1 --reasoning offです。
| プロンプト | 指標 | Strata 0.1.33 | llama.cpp b11332 | 倍率 |
|---|---|---|---|---|
| 1K | 生成 tok/s | 102.6 | 58.9 | 1.74倍 |
| 読み込み tok/s | 1,043 | 634 | 1.65倍 | |
| 4K | 生成 tok/s | 100.6 | 57.8 | 1.74倍 |
| 読み込み tok/s | 1,868 | 650 | 2.88倍 | |
| 32K | 生成 tok/s | 97.9 | 55.0 | 1.78倍 |
| 読み込み tok/s | 2,321 | 606 | 3.83倍 | |
| 最初の1文字まで | 14.2秒 | 54.4秒 | 3.84倍短い |
- Strata 1K1,043
- llama.cpp 1K634
- Strata 4K1,868
- llama.cpp 4K650
- Strata 32K2,321
- llama.cpp 32K606
32Kプロンプトの最初の1文字までの時間は、Strata 14.2秒・llama.cpp 54.4秒。
両エンジンが数えたプロンプトのトークン数は完全に一致し(1,023・4,096・32,768)、4Kプロンプトへの回答は書き出しが同じ文章でした。差が開くのは長いプロンプトの読み込みで、llama.cppが長さによらず600 tok/s台なのに対し、Strataは長いほど速くなります。この差がどこから来るのかは、次の章で分解します。
GPU電力はどちらも250〜290W程度でした。1リクエストあたりのGPU電力量を「平均電力×所要時間」で試算すると、4Kプロンプトで約1,263J対約2,755J、32Kプロンプトで約4,720J対約14,940Jとなり、Strataは同じ仕事を約2.2〜3.2分の1の電力量で終えています(中央値どうしの掛け算による試算)。
なお、この表のllama.cppは既定設定です。llama.cpp側を調整した場合の値は次の章に載せています。
分析:Strataだと何が違うのか
結果②の「1.7倍」は、何から来ているのでしょうか。Strataの機能を1つずつ止め、llama.cpp側も調整し、さらに使うVRAMを絞って、同じA6000・同じIQ2_XSのGGUF・同じリクエスト本文で比べました。プロンプトは4Kと32K、各3回の中央値です。
設計の違い
先に、2つのエンジンが同じファイルをどう扱うかを整理します。llama.cppの列は今回のビルド(b11332)のヘルプと起動ログ、Strataの列は公式ドキュメントと著者の論文、および今回のエンジンログによります。
| 観点 | 素のllama.cpp | Strata |
|---|---|---|
| 対象 | GGUFなら何でも動かす汎用エンジン | Qwen3.8-Flash-Nextとその派生の専用エンジン |
| 生成の進め方 | 1回の計算で1トークン | モデル内蔵のMTP層が下書きした数トークンを、1回の計算でまとめて検証 |
| プロンプトの読み方 | 既定は512トークンずつ(-ub) | 最大8,192トークンずつ(--prefill auto) |
| VRAMに載らないエキスパート | 層の単位で分ける。--fitは前の層から順にGPUへ載せ、残りの層のエキスパートはシステムメモリに置いてCPUで計算 | エキスパートの単位で分ける。よく使われる順にVRAMへ載せ、会話に合わせて入れ替える。残りはRAM上でCPUがGPUと同時に計算 |
| 長いプロンプトでのエキスパート | 置き場所のまま計算 | VRAMに無い分もPCIe経由でGPUへ流して計算 |
| KVキャッシュ | 既定は16bit | 8bit。64K以上は一部をRAMへ逃がす |
| 同時リクエスト | 複数スロットを持てる | 1つ |
| 動く環境 | CPU・各社GPU・Armなど幅広い | x86-64+NVIDIA RTX(一部Radeon) |
① 生成:速さの正体はほぼ「先読み」
Strataの下書きが1つも採用されない設定(--spec-min-p 1.1)にすると、1回の計算で1トークンしか進まなくなります。この状態の生成速度を測りました。
- llama.cpp57.8
- Strata 先読みなし61.0
- Strata 既定(先読みあり)100.6
「先読みなし」は下書きが1つも採用されない設定(--spec-min-p 1.1)。llama.cppは別セッションで57.8〜61.9の幅があり、先読みなしのStrataはその範囲に入る。
| 構成 | 4K 生成 tok/s | 32K 生成 tok/s |
|---|---|---|
| llama.cpp(既定) | 57.8 | 55.0 |
| llama.cpp(②でバッチ単位を変えた2セッション) | 60.5・61.9 | 58.0・59.6 |
| Strata 先読みなし | 61.0 [60.6–61.3] | 58.8 [58.7–59.1] |
| Strata 既定(先読みあり) | 100.6 [97.4–102.7] | 97.9 [93.5–103.8] |
先読みを止めたStrataは61.0 tok/sで、llama.cppの57.8〜61.9 tok/sと同じ水準でした。1トークンを素直に計算する速さは、全部がVRAMに載っている限り、2つのエンジンでほぼ変わりません。Strataの生成が速いのは先読みの分で、その効果は約1.65倍です(100.6÷61.0、32Kでは97.9÷58.8で約1.66倍)。著者の論文が報告している1.6〜1.8倍とも合います。
既定設定のログを見ると、256トークンの生成で下書きが151〜163個採用されていました。本体の計算は約100回で済んでおり、1回あたり約2.5トークン進んでいる計算です。進むトークンは2.5倍でも速度が1.65倍にとどまるのは、数トークンをまとめて検証する1回の計算が、1トークンだけの計算より重いためと考えられます(推測)。
結果⑥で触れる「日本語だと約1割遅い」も同じ仕組みで説明がつきます。英語の回答では下書きが150〜154個採用されたのに対し、日本語では106〜121個でした。下書きが当たりにくい文章ほど、Strataの優位は小さくなります。先読みを持たないllama.cppでは、英語と日本語の速度差はほぼありませんでした(58.5対57.6 tok/s)。
なお、今回のllama.cppのヘルプには、モデル内蔵のMTP層を使うオプションは見当たりませんでした。別の小さなモデルを下書き役にする機能(--spec-draft-*)はありますが、今回は試していません。
② 読み込み:まとめて読む単位と、その先
プロンプトの読み込みでは、1回にまとめて読むトークン数が効きます。Strataは--prefill、llama.cppは-bと-ubで、この単位を揃えて測りました。
- Strata 512866
- llama.cpp 512(既定)606
- Strata 2,0481,657
- llama.cpp 2,048829
- Strata 8,192(既定)2,321
- llama.cpp 8,192859
Strataは --prefill、llama.cppは -b と -ub を同じ値にして計測。同じ単位どうしでもStrataが1.4〜2.7倍速い。
| 1回に読む単位 | Strata 4K | llama.cpp 4K | Strata 32K | llama.cpp 32K | 32Kでの倍率 |
|---|---|---|---|---|---|
| 512 | 895 | 650(既定) | 866 | 606(既定) | 1.43倍 |
| 2,048 | 1,617 | 875 | 1,657 | 829 | 2.00倍 |
| 8,192 | 1,868(既定) | 906 | 2,321(既定) | 859 | 2.70倍 |
読み取れることは3つあります。
- llama.cppも単位を大きくすれば速くなります。既定の512から2,048にすると、32Kで606→829 tok/s(約1.4倍)です。結果②の「3.83倍」の一部は、llama.cppを既定設定のまま測ったことによる差でした。
- ただしllama.cppは900 tok/s前後で頭打ちになります。8,192にしても859〜906 tok/sで、2,048からほとんど伸びません。
- Strataは単位を大きくするほど伸び、同じ単位どうしでも1.4〜2.7倍速い。llama.cppを調整したあとでも、差は4Kで約2.1倍、32Kで約2.7倍残ります。
単位を揃えても残る差の理由は、今回の計測では切り分けていません。論文は、エキスパートの重みを展開せずに量子化のまま行列演算することや、次の層のエキスパートを先にGPUへ送っておくことを挙げています(著者の説明で、当サイトは個別に検証していません)。
③ VRAMが足りないとき:差はさらに開く
ここまでは、モデルが全部VRAMに載る48GBでの話です。Strataの本来の狙いは、載り切らないGPUで動かすことにあります。そこで、A6000の計算性能はそのままに、使うVRAMだけを絞って比べました。Strataは--expert-cacheでGPUに置くエキスパートの数を制限し、llama.cppは--fitに「空けておくVRAM」を指定しています。実際の12GB・24GBカードの値ではなく、置き場所の設計の違いだけを見るための模擬です。
- Strata 48GB(全部載る)100.6
- llama.cpp 48GB57.8
- Strata 24GB相当88.0
- llama.cpp 24GB相当33.7
- Strata 12GB相当63.7
- llama.cpp 12GB相当28.5
A6000の計算性能のまま、使うVRAMだけを絞った模擬(実際の12GB・24GBカードの値ではない)。Strataは --expert-cache、llama.cppは --fit の空き目標で制限。
| VRAM予算 | エンジン | 実際のVRAM使用 | 4K 生成 | 32K 生成 | 32K 読み込み | 32K 最初の1文字まで |
|---|---|---|---|---|---|---|
| 48GB(全部載る) | Strata | 40.7GiB | 100.6 | 97.9 | 2,321 | 14.2秒 |
| llama.cpp | 40.1GiB | 57.8 | 55.0 | 606 | 54.4秒 | |
| 24GB相当 | Strata | 25.2GiB | 88.0 | 92.4 | 2,288 | 14.4秒 |
| llama.cpp | 23.7GiB | 33.7 | 35.3 | 300 | 109.5秒 | |
| 12GB相当 | Strata | 13.1GiB | 63.7 | 63.0 | 2,229 | 14.8秒 |
| llama.cpp | 12.6GiB | 28.5 | 29.0 | 224 | 146.4秒 | |
| 8GB相当 | Strata | 8.8GiB | 37.0 | 32.3 | 628 | 52.2秒 |
VRAM使用は4Kプロンプト計測時のシステム全体の値で、デスクトップなどが使う分(各計測の前後で約1〜2GiB)を含みます。8GB相当のllama.cppは測っていません。
読み込みの差は、予算が小さいほど開きました。生成の差も48GBのときより大きくなりますが、最大は24GB相当で、12GB相当では少し縮みます。
| VRAM予算 | 生成の倍率(4K/32K) | 読み込みの倍率(4K/32K) |
|---|---|---|
| 48GB | 1.74倍/1.78倍 | 2.88倍/3.83倍 |
| 24GB相当 | 2.61倍/2.62倍 | 5.92倍/7.64倍 |
| 12GB相当 | 2.24倍/2.17倍 | 7.75倍/9.93倍 |
48GBで測った「1.7倍」は、Strataの差がいちばん小さく出る条件でした。違いを生んでいるのは、次の2点です。
1つ目は、何をVRAMに置くかの選び方です。Strataは24,576個のエキスパートを使用頻度の順に並べ、上位からVRAMに載せます。13,643個(全体の56%)を載せた24GB相当では、生成中に必要になったエキスパートの95.2〜99.3%がVRAMにありました。4,613個(19%)しか載らない12GB相当でも74.2〜82.4%です(どちらも6リクエストの幅で、いちばん低いのはロード直後の1回目)。エキスパートの使われ方に大きな偏りがあるため、約2割を載せるだけで出番の7〜8割をまかなえます。一方、今回のllama.cppの--fitは、密な重みを全層GPUに載せたうえで、エキスパートを前の層から順に層ごと載せていきました。起動ログでは、エキスパートまでGPUに載った層は24GB相当で49層中25層、12GB相当で8層です。載らなかった層では、毎トークン必ずCPUがエキスパートを計算することになります。
2つ目は、長いプロンプトの読み方です。Strataの読み込み速度は、VRAM予算を48GBから12GB相当まで絞っても2,321→2,229 tok/sとほとんど落ちません。VRAMに無いエキスパートもPCIe経由でGPUへ流し、計算はGPUで行うためです。llama.cppはシステムメモリに置いたエキスパートをCPUで計算するので、606→224 tok/sまで落ちます。32Kのプロンプトで最初の1文字が出るまでの時間は、12GB相当でStrata 14.8秒に対しllama.cpp 146.4秒でした。
Strataも無傷ではありません。生成は100.6→88.0→63.7→37.0 tok/sと下がりますし、エキスパートが205個しか載らない8GB相当では、読み込みの作業領域をキャッシュから借りられなくなり、読み込みも628 tok/sまで落ちます。これは結果④のノートPCで見た「動くが遅い」と同じ状況です。
変わらないもの、代わりに失うもの
- 出力の中身は変わりません。同じGGUFを読むので、モデルの賢さはエンジンでは変わりません。今回も4Kプロンプトへの回答は書き出しが一致し、日本語での簡体字の混入も両エンジンで同じ割合でした。
- 素の計算速度も変わりません。①のとおり、先読みを止めればllama.cppと同水準です。
- 汎用性を失います。速さの源である先読み・まとめ読み・頻度順のキャッシュは、どれもこのモデルの構造に合わせて作り込まれたものです。他のモデルは動かせず、同時に処理できるのは1リクエストで、Arm機やMacでは動きません。
- 自動調整が裏目に出ることがあります。VRAMを限界まで使おうとするため、結果③のような失速が起こります。
まとめると、Strataは「同じ計算を速くするエンジン」というより、このモデル専用に「計算の回数を減らす(先読み)」「まとめて計算する(まとめ読み)」「VRAMに置くものを選ぶ(頻度順キャッシュ)」を作り込んだエンジンです。VRAMが余っていれば効くのは最初の2つで、VRAMが足りないほど3つ目が効いてきます。
結果③ 48GBの落とし穴:IQ3_Sは既定設定で失速する
最高品質のIQ3_Sは、エキスパートが46.84GiBあります。48GBのVRAMには載り切らず、Strataは載るだけ載せて残りをCPUに回します。ここで問題が起きました。
- 既定 4K42.4
- 予約4GB 4K80.0
- 既定 32K34.5
- 予約4GB 32K75.1
- 既定 128K28.0
- 予約4GB 128K71.0
既定設定は全部ロード後のVRAM空きが338MiB、--vram-reserve-mib 4096 では3,713MiB。GPUに載るエキスパートは84%→77%に減るが速度は回復した。32Kの読み込みも410→2,286 tok/sに戻る。
| 設定 | GPUに載ったエキスパート | 全ロード後のVRAM空き | 4K 生成 | 32K 読み込み | 128K 生成 | 128K 最初の1文字まで |
|---|---|---|---|---|---|---|
| 既定 | 20,759(84%) | 338MiB | 42.4 tok/s | 410 tok/s | 28.0 tok/s | 312.7秒 |
--vram-reserve-mib 4096 | 19,035(77%) | 3,713MiB | 80.0 tok/s | 2,286 tok/s | 71.0 tok/s | 56.6秒 |
既定設定ではエンジンがVRAMをほぼ使い切り、空きが338MiBしか残りませんでした。このときGPU使用率は99%前後なのに電力は166〜199W(1K〜128Kの計測時)と低く、Strataのトラブルシューティング表にある「GPU 100%・低電力=VRAM不足」の症状と一致します(根拠: Strata docs/DETAILS.md Troubleshooting)。
strata-iq3_s.jsonのargsに"--vram-reserve-mib", "4096"を足して再計測すると、生成は約1.9〜2.5倍、32Kの読み込みは約5.6倍に回復しました。GPUに載るエキスパートは減っているのに速くなるので、原因は「載せすぎ」です。予約量は4096MiBの1点しか試していません。最適値は未検証です。
この機材ではモニター出力などでVRAMを約2.1GiB使っていることも影響していると考えられます(推測)。VRAMに載り切らないサイズを大きなGPUで使うときは、起動ログの... MiB of VRAM free with everything loadedを確認してください。数百MiBしか残っていなければ同じ状態です。
結果④ RTX 4060 Laptop:動くが、条件は厳しい
VRAM 8GB・RAM 32GBのノートPCでは、3段階の壁がありました。
1つ目はドライバです。導入済みのNVIDIAドライバは561.03で、Strataの適合チェックは次の表示で止まりました。
[X] the NVIDIA driver is too old (561.03; 580 or newer is needed)
NVIDIA公式の617.14に更新すると通過します。既存の計測環境でドライバを固定している場合は、ここで条件が変わる点に注意が必要です。
2つ目はRAMです。32GBでは通常の4サイズはどれも「収まらない」判定で、選べるのはCoder(IQ1_M)だけでした。
3つ目は、そのCoderも想定どおりには載らなかったことです。Strataは「GPUに載らないエキスパートをRAMに常駐させる」モードを選びましたが、起動時に次の警告が出ました。
WARNING: the resident RAM mode does not fit (FileExpertSource: resident complement
23.09 GiB exceeds available RAM (20.07 GiB) minus the 4 GiB safety headroom)
ブラウザなど常駐プロセスが7〜10GiBを使っていたため、空きRAMが足りなかったのです。エンジンは自動で「モデルファイルをOSのファイルキャッシュ経由で読む」モードに切り替わって動きました。GPUに載ったエキスパートは12,288個中172個(0.33GiB)、生成中のキャッシュヒット率は12.5〜19.4%(15リクエストの加重平均で約15%)です。
- RTX A6000 48GB83.2
- RTX 4060 Laptop 8GB12.1
当サイトの実用ラインの目安(10 tok/s前後)
Jetson Orin NX Super 16GBとRaspberry Pi 5はStrataの適合チェックで停止し、起動できなかったため棒がない。
| プロンプト | 読み込み tok/s | 生成 tok/s | 最初の1文字まで | A6000(同じCoder)の生成 |
|---|---|---|---|---|
| 1K | 84.5 [28.1–176.7] | 11.0 [8.9–11.8] | 12.3秒 [5.9–36.5] | 81.9 tok/s |
| 4K | 222.2 [178.7–222.5] | 12.1 [11.2–12.2] | 18.6秒 | 83.2 tok/s |
| 16K | 226.4 [218.0–228.1] | 11.2 [10.1–11.8] | 72.6秒 | 81.1 tok/s |
生成は約11〜12 tok/sで、当サイトが実用ラインの目安としている10 tok/s前後をかろうじて上回ります。一方で読み込みが遅く、4Kトークンの入力で最初の1文字まで18.6秒、16Kで72.6秒かかります。同じCoderをA6000で動かした場合と比べ、生成は約7分の1、読み込みは4K・16Kプロンプトで約9〜11分の1でした。1Kの1回目(28.1 tok/s)はロード直後の値で、同じ条件の3回目は176.7 tok/sまで上がっています。
使用メモリはVRAM 6.9GiB(搭載8.0GiB)・RAM 31.6GiB(搭載31.7GiB)で、ほぼ空きがありません。起動時のエンジンログには34 MiB of VRAM free with everything loaded - LOWという警告も出ています(nvidia-smiで見た空きは計測中ずっと約1.1GiBで、エンジンの表示とは一致しません。差の理由は確認していません)。他のアプリと同時に使う前提なら、8GB VRAM+32GB RAMは下限を割っていると見るのが妥当です。
結果⑤ Jetson Orin NX Super・Raspberry Pi 5:起動できない
どちらの機材でも、Strata自身の適合チェック(setup.py --check)は同じ表示で止まりました。
[X] no NVIDIA GPU found (nvidia-smi did not answer)
Raspberry Pi 5はNVIDIAのGPUを持たないので当然です。興味深いのはJetsonで、nvidia-smiコマンドは存在し、GPUのcompute capabilityも8.7と要件(7.5以上)を満たしています。それでも「GPUなし」と判定されるのは、Strataが使う問い合わせに対してJetsonが次のように返すためです。
0, Orin (nvgpu), [N/A], 8.7, 540.4.0
3番目のVRAM容量が[N/A]です。Jetsonは統合メモリのため専用VRAMの値を返さず、Strataのセットアップはこの行を数値として読めずに読み飛ばします。
仮にこの判定を回避しても、動かせない理由は3つ残ります。
- 配布エンジンがx86-64専用です。用意されているのは
strata-windows-x64.zipとstrata-linux-x64.zipだけで、Arm向けはありません。 - CPU側の計算がAVX2/AVX-512前提です。GPUに載らないエキスパートを計算するカーネルがx86の命令で書かれています。JetsonとRaspberry Pi 5のCPUが持つのはArmのASIMD(NEON)です。
- メモリが桁で足りません。最小のCoderでもRAM約32GBが必要です。統合メモリ16GB・RAM 8GBでは、RTX 4060 Laptop以上に厳しくなります。
リポジトリの説明文には「any consumer hardware」とありますが(2026年10月2日時点)、実態は「x86-64のPC+NVIDIA RTX(または一部のRadeon)」です。Orin NX Super 16GBの実測で書いたとおり、この機材の実用上限はQ4量子化で14Bクラスでした。125Bをエッジ機で動かす話にはなりません。エッジ機で現実的に動く規模の検証は、姉妹サイトのエッジAIラボにまとめています。
結果⑥ 日本語で使えるか
同じ題材(ハッシュテーブルの仕組みの説明)を英語と日本語で3回ずつ生成させ、速度と出力を比べました。
| 構成 | 英語 tok/s | 日本語 tok/s | 日本語の文章として成立 | 簡体字の混入 | 英語化・混在・反復 |
|---|---|---|---|---|---|
| IQ3_S(VRAM予約4GB) | 70.2 | 69.2 | 3/3 | 0/3 | 0/3 |
| IQ3_S(既定設定・失速状態) | 37.4 | 43.5 | 3/3 | 0/3 | 0/3 |
| IQ2_XS(Strata) | 95.9 | 85.3 | 3/3 | 2/3 | 0/3 |
| IQ2_XS(llama.cpp) | 58.5 | 57.6 | 3/3 | 2/3 | 0/3 |
| Coder(A6000+ノートPC) | — | — | 0/6 | 5/6 | 6/6 |
速度は英語とほぼ同じか、StrataのIQ2_XSで約1割落ちる程度でした(既定設定のIQ3_Sは結果③の失速状態で、回ごとのばらつきが大きい値です)。Strataはエンジン0.1.27以降、下書き層の語彙に日本語・中国語・韓国語のトークンを含めており、その効果とみられます(根拠: Strata docs/DETAILS.md)。
問題は出力のほうです。
- IQ3_Sは2つの設定を合わせた6出力とも自然な日本語で、日本語にない文字の混入はありませんでした。
- IQ2_XSは文章としては自然ですが、6出力中4出力で「時間复杂度」のように簡体字が混じりました。素のllama.cppでも同じ割合で起きているので、Strataではなくモデルと量子化の側の現象です。
- Coderは6出力すべてが崩れました。A6000では2出力が書き出しの直後に英語へ切り替わり、1出力が「は」を繰り返して止まりました。ノートPCでは1出力が同じ反復で止まり、2出力が日本語・中国語・英語の入り混じった文になりました。Coderは配布元が「コーディング以外は弱い」と明記している版で、日本語の文章生成には向きません。この表のCoderの速度欄を空にしているのは、出力が日本語になっていないためです。
RAM 32GBの機材で選べるのはCoderだけなので、「32GBのPCで日本語の125Bを」という使い方は、今回の確認の範囲では成立しませんでした。ただし1題材・各3回・思考オフ・temperature=0での確認です。日本語の品質を測るベンチマークではありません。
評価:誰に向くか
| 手元の環境 | 当サイトの評価 | 根拠 |
|---|---|---|
| VRAM 48GB級+RAM 64GB以上 | 試す価値が高い。速度重視はIQ2_XS、日本語重視はIQ3_S+VRAM予約 | 本記事の実測 |
| VRAM 12〜24GB+RAM 64GB | 有力。A6000上の模擬ではllama.cppの生成2.2〜2.6倍・読み込み6〜10倍。実機は当サイト未計測 | 本記事の分析③・公式README・第三者記事 |
| VRAM 8GB+RAM 32GB | 動作確認はできるが常用は厳しい。日本語用途は不可 | 本記事の実測 |
| Jetson・Raspberry Pi・Mac | 対象外 | 本記事の実測(Macは未実施・要件からの判断) |
48GB級を持っている人にとっての比較対象は、「VRAMに収まる中型モデルをそのまま動かす」ことです。当サイトの検証DBでは、同じA6000でQwen3.6 35B(Q4_K_M)が122.06 tok/sで動いています(20260612-a6000-qwen36-35b-q4km.yaml。ollama APIの標準プロトコルで、今回とは計測条件が異なります)。Strataを使えば、約3.6倍のパラメータ数のモデルを、その8割ほどの速度で回せる計算です。ただし「125Bを2.5bitまで圧縮したもの」と「35Bの4bit」のどちらが賢いかは、当サイトでは計測していません。
導入前に知っておくべき制約もあります。
- 動かせるのは実質1モデル系統です。Qwen3.8-Flash-Nextとその派生専用のエンジンで、他のモデルには使えません。
- 同時に処理できるのは1リクエストです。READMEに明記されています。
- ディスクを使います。今回3サイズを入れたA6000機では、モデルとエンジンで約155GBになりました。
- 更新が速く、数値はすぐ古くなります。計測当日にも0.1.34が公開されました。
- ライセンスは原文の確認が必要です。Strata本体はMITですが、Hugging Faceのメタデータ上、元モデルのライセンスは
qwen-community-1.0、量子化版のリポジトリにはapache-2.0のタグが付き「元モデルのライセンスを継承する」と書かれています。商用利用を考える場合は、元モデルのライセンス原文を確認してください。
お手元の機材でどのサイズのモデルが収まるかは動くか診断で、A6000の他モデルの実測はA6000のベンチ一覧で確認できます。
再現手順
A6000機で実行した手順です。モデルは1サイズあたり55〜68GBをダウンロードします。
git clone https://github.com/Niko1221/Strata.git
cd Strata
py -3 -m venv .venv
.venv\Scripts\python.exe setup.py --check
.venv\Scripts\python.exe setup.py --family qwen --model IQ2_XS --context 131072 --kv int8 --vision no --gpu 0 --low-ram off --yes --no-start --port 18080
.venv\Scripts\python.exe serve\server.py --engine strata --config strata-iq2_xs.json --host 127.0.0.1 --port 18080
サーバーが起動したら、別の端末から計測スクリプトを実行します。
.venv\Scripts\python.exe strata_bench.py --root . --pack ..\Strata-data\packs\iq2_xs --url http://127.0.0.1:18080 --out results\iq2_xs --targets 1024,4096,32768,128000 --runs 3
IQ3_SでVRAMを空ける場合は、strata-iq3_s.jsonのargsの末尾に次の2要素を追加します。
"--vram-reserve-mib", "4096"
自己レビュー(限界・要検証)
- 各機材1台・1セッション・3回の値です。個体差・室温・電源条件は統制していません。A6000は128Kの連続計測で86〜87℃に達しており、より長い連続運転での挙動は未確認です。
- バックグラウンドの負荷を除いていません。A6000機は計測前からRAM約36GiB・VRAM約2.1GiBを、ノートPCはRAM 7〜10GiBを他のプロセスが使っていました。ノートPCで常駐モードに入れなかったのはこの影響で、クリーンな状態なら結果が変わる可能性があります(未検証)。
- ノートPCはドライバ更新後に再起動していません。更新後のドライバで動作することは確認していますが、再起動後の再計測は行っていません。
- プロンプトは合成コードの説明1種類、出力は256トークンです。思考オン・長文出力・サンプリングあり・画像入力・ツール呼び出しは計測していません。生成速度は下書きの採用率に左右されるため、文章の内容で数%動きます。
- 品質は測っていません。量子化ごとのスコアは配布元の公表値です。日本語の確認は1題材・各3回で、簡体字の混入率などを一般化できる規模ではありません。
- llama.cppの調整は限定的です。試したのはバッチの単位(512・2,048・8,192)と
--fitによる配置だけで、コンテキストは40,960(Strataは131,072)です。--n-cpu-moeなどによる手動の配置、KVキャッシュの量子化、別モデルを使う下書き機能は試していません。128Kでの比較もしていません。llama.cppの生成速度はセッション間で57.8〜61.9 tok/s(4K)の幅がありました。 - VRAM予算の比較は模擬です。A6000(VRAM 48GB・24コアCPU・RAM 127GB)の上で使うVRAMだけを絞ったもので、実際の12GB・24GBカードとはGPUの計算性能もメモリ帯域も違います。2つのエンジンのVRAM使用量も厳密には揃っていません(差は0.5〜1.5GiB)。予算を絞ったllama.cppは既定のバッチ単位で測っています。
- 分解できたのは一部です。生成は「先読みの有無」、読み込みは「まとめ読みの単位」までで、単位を揃えても残る読み込みの差の内訳は切り分けていません。
- 電力はGPU単体です。
nvidia-smiの値で、CPU・壁コンセントの電力は含みません。CPUが多くの計算を担うノートPCでは、GPU電力は全体を表しません。 - VRAM予約は4096MiBの1点のみです。IQ3_Sの最適な予約量、他のサイズでの効果は未検証です。
- 公式値・第三者値との比較は条件が揃っていません。エンジンの版・OS・プロンプト・回数が異なります。
- 未計測のもの: Q2_0・IQ3_XXS・Swift 1.5・UD-Q4_K_XL、Mac mini M4、Jetson Orin Nano Super、Radeon(HIP)バックエンド、複数GPU構成。
- この結果は検証DBには未収録です。当サイトの標準プロトコル(ollama API・2回平均)と計測方法が異なるためです。
計測条件・出典
- 計測日: 2026年10月2日。Strata commit
aeb35be・エンジン0.1.33(配布バイナリ・CUDA 13.0)。llama.cpp b11332(commit869034b4b・win-cuda-13.4-x64)。 - モデル:
ISTA-DASLab/Qwen3.8-Flash-Next-GSQ-RCO-GGUF(IQ2_XS・IQ3_S)、ISTA-DASLab/Qwen3.8-Flash-Next-GSQ-RCO-Coder-GGUF(IQ1_M)。画像入力はオフ、KVキャッシュは8bit、MTPは--spec 4 --spec-min-p 0.5(セットアップの既定)。コンテキストはA6000が131,072、RTX 4060 Laptopがセットアップ推奨の32,768。 - A6000機: NVIDIA RTX A6000 48GB(ドライバ597.06)・Intel Core Ultra 9 285K(AVX-512なし)・RAM 127GB・NVMe SSD・Windows 11 Pro。RTX 4060 Laptop: GeForce RTX 4060 Laptop GPU 8GB(ドライバ617.14)・Core i7-13700H・RAM 31.7GB・NVMe SSD・Windows 11 Home。
- 速度はエンジン側の計時(Strataは
/metricsのprompt_ms・decode_ms、llama.cppは応答のtimings)。最初の1文字までの時間と合計時間はクライアント側の計時で、同一機材内のループバック通信を含みます。全リクエストで前回プロンプトの再利用は0トークンでした。 - VRAM・GPU電力・GPU温度は
nvidia-smiを1秒間隔で採取、RAMはシステム全体の使用量です。 - 分析の追加計測(IQ2_XS・4Kと32K・各3回・言語ペアなし): Strataは
strata-iq2_xs.jsonのargsを1項目ずつ変更しました。先読みなしは--spec 2 --spec-min-p 1.1 --suffix-draft 0、読み込み単位は--prefill 512と2048、VRAM予算は--expert-cache 13000・4400・200(実際に確保されたのは13,643・4,613・205個)です。llama.cppは-ngl all -b N -ub N(N=2048・8192)と、-fit on -fitt 24800(24GB相当)・-fitt 36300(12GB相当)です。Strataの既定設定は別セッションで再実行し、4Kで生成101.7 tok/s・読み込み1,938 tok/sと、初回(100.6・1,868)に近い値でした。 - 計測記録は
docs/measurements/20261002-strata-qwen38-flash-next.md、計測スクリプトはscripts/experiments/strata/に置いています。 - 外部の数値(公式README・コミュニティ報告・第三者記事・モデルカード)は本文中のリンク先によるもので、当サイトの実測ではありません。