Apple Siliconにおける長い会話のためのKVキャッシュ再利用により、200倍の高速化を実現

概要
ある開発者が、Apple Silicon上でMLXフレームワークを使用したローカルLLM推論のためのセッションベースKV(キー・バリュー)キャッシュ再利用の実験結果を共有しました。目標は、各ターンでコンテキスト全体を再処理する必要をなくすことで、長い会話(10万トークン以上)を実用的にすることでした。
主な発見とベンチマーク
基本的なアプローチは、会話のターン間でKVキャッシュをメモリに保持し、新しいトークンのみを処理することでした。このシンプルなアイデアが劇的な性能向上をもたらしました:
- 10万コンテキストでの200倍のTTFT改善: キャッシュなし:126秒。キャッシュあり:0.5秒。これは処理されるトークン数の99.9%削減を意味します。
- 実世界のセッション数値: M3 Ultra 512GB Mac StudioでのQwen3.5-397Bモデルを使用した266メッセージのOpenClawエージェントセッションでのテスト結果:
- キャッシュヒット率:93.8%
- キャッシュヒット時のTTFT(<500新規トークン):1.0-1.3秒
- 完全なキャッシュミス時のTTFT(124Kトークン):528秒(8.8分)
うまくいかなかったこと
開発者は、失敗したか性能を低下させたいくつかの最適化の試みをテストしました:
- 思考トークンのトリミング: モデルの内部推論トークンをキャッシュから削除してスペースを節約しようと試みましたが、病的な動作を引き起こしました。応答は31%長くなり、品質が低下しました。これはモデルがターン間で過去の推論を参照するためです。
- KVキャッシュのローテーション(8192トークン): これは最高のトークン毎秒(TPS)レートを提供しましたが、モデルが以前のコンテキストを失う原因となり、想起能力が大幅に低下しました(8項目中4項目)。
- KV 8ビット量子化: これによりTPSが16.5%低下しました。計算オーバーヘッドがメモリ帯域幅の節約を上回ったためです。
実装とハードウェア
この実装は、MITライセンスの下でGitHubで公開されているオープンソースの個人プロジェクト「SoloHeaven」の一部です: https://github.com/joongom/mlx-soloheaven。READMEには完全なベンチマークテーブルが含まれています。
テストは、512GB RAMと4TBストレージを搭載したMac Studio M3 Ultraで実施され、MLX用に変換された以下のモデルが使用されました:
- Qwen3.5-122B-A10B-bf16
- Qwen3.5-397B-A17B-MLX-8bit
📖 Read the full source: r/LocalLLaMA
👀 See Also

スキルウェアは、ローカルモデルのファインチューニングのためのエントロピースコアリング付き合成データジェネレーターを追加しました。
Skillwareは、モデルの崩壊を防ぐためにzlib圧縮率のヒューリスティックを用いて出力の多様性をスコアリングする新しい合成データ生成スキルをリリースしました。このツールはOllamaとすぐに連携でき、高度な推論バッチにはGemini/Anthropicをサポートし、.jsonlファインチューニングパイプライン用のJSONバッチを出力します。
Claude Code vs Codex:36ファイル対28ファイル、2.50ドル対2.04ドル、無限ループを捕捉——実世界比較
ある開発者がClaude CodeとCodex(Cursor)で同じ2つのタスク(PRトリアージボットとリアルタイムコードレビューUI)を実行。結果:36ファイル対28ファイル、コスト$2.50対$2.04、Claudeの方がTypeScriptエラーが少なく、Codexでは無限Reactループが発生。
Hax:用C语言编写的极简终端原生编码代理
HaxはC言語で書かれたミニマルなターミナルネイティブのコーディングエージェントです。単一のネイティブバイナリとして配布され、依存関係が少なく、即座に起動し、RAMを数MBしか使用しません。ローカルLLMのためのメモリを残します。

Rails-AI-Context Gemは、MCPを介してClaude Codeに完全なRailsアプリモデルを提供します。
rails-ai-context gemは、Railsアプリケーションを自動的にイントロスペクションし、MCP経由で39のツールを公開することで、Claude Codeがスキーマ(暗号化されたカラムを含む)、モデル関連付け、ルーティング、Stimulusの配線、Turboマッピングなど、アプリの詳細を個別にクエリできるようにします。これにより、ファイル全体を読む必要がなくなります。