はじめに
AIは日々、より多くの情報を扱えるように進化し続けています。 扱える情報が多ければ多いほど、AIの精度は上がるように思いますよね。しかし、必ずしもそうとは限らないのです。
この記事では「コンテキストの腐敗」という現象について、なるべく難解な用語や言い回しを避けてまとめたいと思います。
コンテキストの腐敗(context rot)とは?
コンテキストの腐敗とは、コンテキストウィンドウに不要な情報や関連性の低い情報が蓄積し、AIのパフォーマンスが下がる現象のことです。
「コンテキストウィンドウ」という言葉自体がピンと来にくい人もいるかと思うので、更に掘り下げてみます。
コンテキストウィンドウとは、AIが一度に考慮することの出来る情報の量のことです。人間で例えると短期記憶に当たるものになります。 コンテキストウィンドウのスペースを占める情報としては、チャットでの会話内容の他に、モデルの動作やふるまいを制御するシステムプロンプトなども含まれます。
つまり「コンテキストウィンドウのサイズが大きくなる」と、AIはより長い会話内容を記憶し、多くの情報を参照した上で回答が出来るようになるということになります。
しかし、良質な情報によってAIの精度が向上する一方で、質の低い情報でコンテキストウィンドウが占められてしまうと、AIが重要な情報を見失いやすくなってしまいます。 これがコンテキストの腐敗です。
モデルによってパフォーマンスの低下が緩やかな場合もありますが、コンテキストの腐敗は全てのモデルに共通して現れると言われています(Anthropic)。
補足: コンテキストの腐敗に強いモデルの見分け方は?
AIが大量のテキストの中から必要な情報を正確に見つけられるかを測る、MRCR v2というベンチマークが存在します。
LLMを評価する際は、扱えるコンテキストウィンドウの大きさだけでなく、このスコアも同時に確認すると良いでしょう。
AIのパフォーマンス低下を防ぐには
AIの性能を最大限に引き出すには、情報の「量」ではなく「質」が重要です。
この項では、コンテキストの腐敗への対策となる技術や手法を3つご紹介します。
RAG(検索拡張生成)
RAG(検索拡張生成)とは、回答を生成する前に外部のデータベースから情報を参照し、出力を最適化する仕組みのことです。
RAGを用いることにより、AIはより関連性の高い情報に注意を向けることができます。また、学習済みの情報ではなく外部から最新の情報を参照することで、誤った回答を行う可能性を低減させることも期待できます。このようなRAGの働きにより、コンテキストの質を保つことにつながるのです。
コンパクション(compaction)
コンパクション(compaction)とは、会話履歴を要約することでコンテキストウィンドウを圧縮する手法のことです。
会話を行う上でコンテキストウィンドウの制限に近づいた際、コンパクションが行われることでパフォーマンスの低下を最小限に抑えながら会話を継続することが出来ます。
プルーニング(pruning)
プルーニング(pruning)とは、コンテキストウィンドウに入れる情報から不要な部分を切り捨てる処理のことです。 正しく行われることで、推論速度の向上・出力品質の安定化が期待できます。
コンパクションが『既に蓄積した情報を圧縮・要約する』手法だとすれば、プルーニングは『不要な情報を事前に除外する/途中で削除する』アプローチといえます。
おわりに
この記事では、AIの抱える弱点の一つである「コンテキストの腐敗」という用語について解説してきました。業務におけるAI活用の一助となれば幸いです。
平易な言葉で解説するよう心がけたため、あまり厳密でない表現も含まれているかと思います。より詳細に知りたい方はぜひ参考文献に挙げている記事も参照してみてください。
参考にしたもの
- Effective context engineering for AI agents \ Anthropic
- コンテキスト・ウィンドウとは? | IBM
- コンテキストの腐敗、AIの精度を脅かす静かな脅威 | Box
- MRCR v2 Leaderboard
- RAG(検索拡張生成)とは?意味・定義 | IT用語集 | NTT docomo Business Watch | NTTドコモビジネス 法人のお客さま
- RAG とは何ですか? – 検索拡張生成 AI の説明 – AWS
- LLM Context Pruning: Improving RAG and Agentic AI Systems – Milvus Blog
坂本彩乃