LLMのコンテキストは「L1キャッシュ」だった — 需要ページングで無駄な文脈を削減するPichay
この論文は、いまの大規模言語モデル(LLM)が扱う「コンテキストウィンドウ」を本当の記憶ではなく、小さくて高価なL1キャッシュと同じものとみなす提案をしています。研究者は実運用データを調べ、857件のセッション(54,170回のAPI呼び出し、4.45 billionの有効入力ト
この論文は、いまの大規模言語モデル(LLM)が扱う「コンテキストウィンドウ」を本当の記憶ではなく、小さくて高価なL1キャッシュと同じものとみなす提案をしています。研究者は実運用データを調べ、857件のセッション(54,170回のAPI呼び出し、4.45 billionの有効入力トークンと記載)で合計21.8%のトークンが構造的な無駄だと報告しました。無駄の内訳は、使われないツール定義が11.0%、重複コンテンツが2.2%、古いツール結果が8.7%で、古い結果は中央値で84.4倍に再処理されていました。つまり、何でもコンテキストに積み上げ続ける今のやり方に体系的な問題があると示しています。
対処法として研究者たちはPichayという「需要ページング」システムを作りました。需要ページングとは、必要になったときだけ情報を読み戻す仕組みです。Pichayはクライアントと推論APIの間に置く透明なプロキシとして動きます。古くなった内容を退避(evict)し、モデルが退避済みの内容を再要求したときに「ページフォルト」(要求に応じて内容を読み戻すこと)を検出します。さらに、再要求の履歴に基づいて頻繁に使われるページを固定(pin)して再退避されにくくします。退避時には、モデルが理解できる短い要約(たとえば「読み戻す必要があれば再読を」)を残す仕組みも導入しています。
実験結果は有望です。オフラインの再生評価では、140万回のシミュレートされた退避でページフォルト率が0.0254%でした。実運用への導入でも効果が見え、681ターンの実セッションでコンテキスト消費を最大93%(5,038KBから339KBへ)削減しました。一方で、極端に持続する圧力下では既知のスラッシング(退避と読み戻しを繰り返して役に立たない動作になる)を示し、働き集合(モデルが同時に必要とする情報の集合)が常駐領域を超えると性能が落ちることが確認されました。
論文はさらに、従来の仮想記憶の考え方をそのままLLMの文脈管理に適用する四層のメモリ階層を提案します。L1は現在の生成で使うウィンドウ、L2は需要ページングで固定する作業集合、L3は会話履歴を圧縮して保持する層、L4はセッションを越えて残る永続的な記憶です。論文では最初の三層について、L1の退避とガベージコレクション、L2のフォルト駆動ピンニング、L3の協調的な会話圧縮(クリーンタッグ)は設計・一部実装済みで、L1とL2は評価されています。L4は設計と仕組みの提示にとどまっています。
重要な注意点も明示されています。まず、働き集合が常駐可能なサイズを超える場合はスラッシングが起き、システムが役に立たなくなる可能性があります。また、L3の大規模評価や、セッションを越えた永続記憶(L4)の実運用での効果はまだ十分には示されていません。さらに、Pichayの手法はモデルとプロキシの協調やモデルの再要求を前提にしており、すべての用途で万能というわけではありません。とはいえ、この研究は「文脈を大きくすれば解決する」という現在の方向に対して、OSの仮想記憶で解かれた古典的な解法を持ち込むことで実用的な改善を示した点で意義があります。