Apple Silicon上のTurboQuant:Mac Mini M4 16GBとM3 Max 48GBでの実測ベンチマーク

Reddit r/LocalLLaMA / 2026/4/6

💬 オピニオンSignals & Early TrendsTools & Practical UsageModels & Research

要点

  • TurboQuantはKVキャッシュのみを削減します(モデル重みは削減しません)。そのため、長いコンテキストでの推論中に数GB規模のメモリ使用量を大きく抑えつつ、スループットは比較的同程度に保てます。
  • M4のMac Mini(16GB)でQwen3-14Bを8Kコンテキストで動かした場合、KVキャッシュは1280 MiBから465 MiBへ低下します(約3倍)。速度は大きくは変わらず、9.95 t/sから9.25 t/sへとわずかに低下する程度です。
  • M3 Max(48GB)でQwen3.5 35Bを128Kコンテキストで動かした場合、KVキャッシュは2560 MiBから930 MiBへ低下します(約3倍)。スループットの低下はより小さく、45.34 t/sから42.88 t/sへとわずかです。
  • 記述されている非対称な圧縮設定では、Keysはq8_0のままにし、Valuesはturbo3(約3ビット)に圧縮します。これは、著者の見解として、値の精度よりもキーの精度のほうが注意(attention)のルーティングにより直接的に影響するためです。
  • ベンチマークではコミュニティフォーク(TheTom)を使用し、Apple Silicon向けのMetalカーネルを採用しています。これは現時点でllama.cppのメインラインにはまだ入っていませんが、著者はオープンPRへの言及と有効化のためのビルド手順を提示しています。
TurboQuant on Apple Silicon: real benchmarks on Mac Mini M4 16GB and M3 Max 48GB

今週、2台のマシンでTurboQuantをテストしていて、実際の数値を共有したいと思いました。

なぜ重要か: TurboQuantはモデル重みではなくKVキャッシュを圧縮します。長いコンテキストではKVキャッシュが数GBのメモリを占有することがあるため、スループットが似たままでも、削減できれば大きな違いになりえます。

私が試したセットアップでは、Kはq8_0のままで、Vはturbo3(~3-bit)にしています。この非対称なトレードオフには意味があります。キーの誤りは注意のルーティングにより直接的に影響しやすい一方で、値(values)はより重い圧縮に対して許容度が高いことが多いからです。

ベンチマーク1: Mac Mini M4 16GB — Qwen3-14B Q4_K_M を8Kコンテキストで

→ TurboQuantなし: KVキャッシュ 1280 MiB、K(f16): 640 MiB、V(f16): 640 MiB — 9.95 t/s

→ TurboQuantあり: KVキャッシュ 465 MiB、K(q8_0): 340 MiB、V(turbo3): 125 MiB — 9.25 t/s

ほぼ3倍の圧縮で、速度もかなり近いです。

ベンチマーク2: M3 Max 48GB — Qwen3.5 35B A3B Q6 を128Kコンテキストで

→ TurboQuantなし: KVキャッシュ 2560 MiB、K(f16): 1280 MiB、V(f16): 1280 MiB — 45.34 t/s

→ TurboQuantあり: KVキャッシュ 930 MiB、K(q8_0): 680 MiB、V(turbo3): 250 MiB — 42.88 t/s

同じ約3倍の圧縮率ですが、絶対的なメモリ削減はずっと大きいです。どちらの構成も128Kで起動します。つまり、単に「収まるかどうか」だけでなく、他のプロセスのためにどれだけメモリを空けられるか、より長いコンテキスト、あるいは複数のエージェントを並行で動かすための余裕も変わってくる、ということです。

使い方

これはTheTomによるコミュニティフォークを使用しています。Apple Silicon向けのMetalカーネルが含まれています。まだmainlineのllama.cppには入っていませんが、PRは開かれています。

# TurboQuantフォークをクローン(まだmainline llama.cppには入っていません)

git clone https://github.com/TheTom/llama-cpp-turboquant.git

cd llama-cpp-turboquant

git checkout feature/turboquant-kv-cache

# Metalで設定(Apple Silicon GPU)

cmake -B build -DGGML_METAL=ON -DGGML_METAL_EMBED_LIBRARY=ON -DCMAKE_BUILD_TYPE=Release

# CPUの全コアでコンパイル

cmake --build build -j$(sysctl -n hw.ncpu)

# TurboQuantで実行: キーはq8_0、値はturbo3で圧縮

./build/bin/llama-server
-m ./models/your-model.gguf
-ctk q8_0 -ctv turbo3
-c 131072 -fa on -ngl 99
--port 8080

YouTubeで詳細な手順を近日公開します。

submitted by /u/Expensive-String8854
[link] [comments]