Reame CPU Inference Server – Faster Over Time with Persistent KV Cache

Reame CPU Inference Server – Faster Over Time with Persistent KV Cache

Reame speeds up as it runs by persisting KV cache on disk

Reameは、transformerのkey-value (KV) cacheを永続ストレージに保存することで、使用時間が長くなるほど高速化するCPUのみの推論サーバーです。この設計により、後続のリクエストが以前に計算されたattention statesを再利用できるようになり、CPUが繰り返さなければならない作業量が削減されます。

Persistent KV cache is the core performance trick

サーバーは各リクエストの後にKV cacheをファイルに書き込み、将来のクエリのためにそれを再ロードします。以前のレイヤーの再計算を避けることで、コンテキストを共有するワークロード(例:チャット履歴や繰り返されるプロンプト)において、レイテンシが顕著に低下します。このアプローチは、一部のユーザーが指摘しているように、2コアと12GB RAMを備えた無料のOracle Cloud ARMインスタンスのような、控えめなハードウェアで大規模言語モデルを実行する場合に特に有用です。

CPU‑only deployment lowers cost and complexity

ReameはGPUを必要としないため、 inexpensive cloud VMsやオンプレミスサーバーで実行できます。ユーザーはモデルファイルを models ディレクトリに配置し、reame.conf でパスを設定できます。あるコメント投稿者は、TinyLlamaをロードしようとした際に「No such file or directory」エラーを報告しており、これは、モデルファイルの適切な配置と正しい設定が不可欠であることを示しています。

Model selection is manual via configuration

Reameは自動モデル選択機能を提供していません。ユーザーは reame.conf を編集して、目的のモデルファイルを指すようにする必要があります。この手動ステップにより、提供されるモデルを完全に制御できますが、同時に注意深いファイル管理が必要となります。コミュニティメンバーの一人は、モデルをReameフォルダ内に保持することで追跡が容易になると提案し、一方で /opt に配置するとファイルを見失う可能性があると述べています。

Community observations and questions

"The persistent KV cache is interesting; I’d love to see how much of the speedup remains when requests share less structure." – ohadkr

このコメントは、重要な研究課題を浮き彫りにしています。キャッシュベースの高速化は、連続するプロンプト間の重なりに依存します。後続のリクエストが大きく異なる場合、そのメリットは減少する可能性があります。

"Why qwen 2.5 everywhere? Why not 3.5?" – tyzoid

リポジトリは現在、Qwen-2.5モデルを使用した例を提供していますが、これはおそらくCPU推論においてサイズとパフォーマンスのバランスが取れているためです。ユーザーは、メモリ制約に適合する限り、Qwen-3.5のような他の互換性のあるモデルに置き換えることができます。

"Sick that you can get 2 arm cores and 12 GB ram for free at Oracle cloud, did not know that" – K0IN

無料ティアのクラウドインスタンスを使用することで、Reameの低コスト、CPUのみの推論アプローチは、実験や小規模なデプロイメントにおいて実用的になります。

Documentation appears AI‑generated

あるコメント投稿者は、リポジトリとREADMEがAIによって生成されたように見えると指摘しており、これは、ドキュメントが深みに欠けていたり、不正確な内容を含んでいたりする可能性があることを示唆しています。ユーザーは、本番環境のワークロードに対して依存する前に、設定ステップを検証し、サーバーを管理された環境でテストすることをお勧めします。

Getting started with Reame

  1. Clone the repository: git clone https://github.com/swellweb/reame.
  2. Place a compatible model file (e.g., TinyLlama, Qwen-2.5) in the models directory.
  3. Edit reame.conf to set model_path = ./models/<model_file>.
  4. Run the server: ./reame.
  5. Send inference requests to the exposed HTTP endpoint.

Limitations and open questions

  • Cache effectiveness: プロンプトの類似性に応じて高速化が実現されます。入力が非常に変動しやすいワークロードでは、効果が限定的になる可能性があります。
  • Disk I/O overhead: 大きなKV cacheを永続化することは、特に低速なストレージでは、読み取り/書き込みのレイテンシが導入される可能性があります。
  • Memory footprint: 長いコンテキストのKV statesを保存することは、かなりのRAMを消費し、無料のクラウドティアの控えめなリクションに達する可能性があります。

Conclusion

Reameは、transformerのKV cachesを永続化することで、CPUのみの推論をより効率的にできることを示しています。これは、アイドル状態のストレージをパフォーマンスのアクセラレータに変えるものです。このアプローチは、低コストのハードウェア上で、反復的またはコンテキストに富んだワークロードに対して優れた性能を発揮しますが、そのメリットはプロンプトの重なり合いに依存します。

Sources