Context Rot
コンテキスト劣化とは、LLMが処理可能な量を超えるコンテキストを受け取った際に信頼性が低下し、事実を見落としたり、古い指示に従ったりする現象です。抑制方法を解説します。
コンテキスト劣化とは、AIモデルが有効に活用できる量を超えるコンテキストを受け取ったときに、信頼性が徐々に低下する現象です。公称のコンテキストウィンドウに数十万トークンを技術的に格納できても、大規模言語モデルは入力が増えるにつれて、関連する事実を見落としたり、古い指示に従ったり、推論の精度が低下したりする可能性があります。2025年のChromaによるコンテキスト劣化の研究では、18個のモデルと複数の制御されたタスクで、性能が一様に変化しないことが観察されました。
コンテキスト劣化が起こる仕組み#
長い入力は、モデルのアテンション機構への負荷を高めます。重要な根拠は、繰り返される指示、無関係な文書、ツールの出力、以前の会話内容と競合します。コンテキスト内の位置、意味的な類似性、矛盾する事実、タスクの複雑さは、モデルが何を利用するかに影響します。
2024年のRULER長文脈ベンチマークでは、単純な検索で優れた性能を示すモデルでも、シーケンス長とタスクの複雑さが増すと性能が低下することが分かりました。2025年のNoLiMaベンチマークでは、同一の単語を照合するのではなく意味的な推論によって回答を見つける必要がある場合、性能の低下がより大きくなることが明らかになりました。したがって、Geminiモデルも含め、コンテキスト劣化が始まる普遍的なトークン数はありません。しきい値はモデル、プロンプトの構造、タスクによって異なります。
実世界での例#
- カスタマーサポートアシスタント: 数年分のチケットを与えられたチャットボットは、古いポリシーを優先したり、最近のアカウント更新を見落としたりする可能性があります。LongMemEvalの対話メモリとマルチモーダルなLoCoMoベンチマークを用いた研究では、長い対話履歴から情報を抽出、更新、推論することが依然として難しいと示されています。
- 目視検査エージェント: 工場を監視するビジョン・言語モデルでは、すべてのフレーム、検出結果、メンテナンス記録を1つのプロンプトに含めると、信頼性が低下する可能性があります。より良いワークフローでは、Ultralytics YOLO26を使って簡潔な視覚情報を抽出してから、言語モデルで推論します。
- コーディングエージェント: リポジトリ全体、すべてのツール定義、完全なターミナル履歴を読み込むと、現在の目的が見えにくくなることがあります。Anthropicのコンテキストエンジニアリングに関するガイダンスではコンテキストの選別を推奨しており、Agent Skillsのアプローチでは、必要なときに限って詳細なリソースを読み込みます。
このYOLOの予測ワークフローでは、生の検出結果を簡潔で構造化されたコンテキストに変換する方法を示します。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
result = model("https://ultralytics.com/images/bus.jpg")[0]
labels = [model.names[int(cls)] for cls in result.boxes.cls]
context = {"frame": 1, "objects": sorted(set(labels))}
print(context)コンテキスト劣化を抑える方法#
- 関連する根拠だけを取得する: 利用可能なすべての文書を送信するのではなく、セマンティックチャンキングとリランカーを使用します。
- 古い情報を圧縮する: 長い履歴を、検証済みの要約、決定事項、未解決のタスクに置き換えます。入力が長くなると、情報の検索に成功した後でも性能が低下する可能性があると、研究で示唆されています。
- 安定したプレフィックスを維持する: OpenAIのプロンプトキャッシュとGeminiのコンテキストキャッシュは、繰り返し処理のコストを削減できますが、キャッシュだけでコンテキストの品質が向上するわけではありません。
- スライディングウィンドウを使用する: Googleは、長時間のライブセッション向けコンテキストウィンドウ圧縮を推奨しています。新しい情報を保持しながら、古いトークンを削除します。
- 現実的な長さで評価する: モデル監視を適用し、オープンなコンテキスト劣化ツールキットを使って統制されたテストを再現します。
コンテキスト劣化は、根拠のない出力であるハルシネーション、トレーニング中にモデルの知識が変化する破滅的忘却、本番環境の入力変化を示すデータドリフトとは異なります。コンテキスト劣化は主に、推論時のコンテキスト選択と推論の失敗であるため、効果的なコンテキストエンジニアリングが主な対策となります。










