LLMのコンテキストウィンドウとRAGの仕組み
DEV.to
2026年7月23日 (木)
- •コンテキストウィンドウはLLMが一度に処理できるプロンプト、履歴、応答のトークン総容量である。
- •モデルはセッションが長引くとコンテキストウィンドウ外のデータにアクセスできず、記憶の欠落が生じる。
- •検索拡張生成 (RAG) は必要な情報のみを外部から取得することで、コンテキストの制限を回避し性能を高める手法である。
コンテキストウィンドウは、大規模言語モデル (LLM) が単一セッションで情報を処理するために使用する入力および出力トークンの総容量を指す。この共有プールにはユーザーのプロンプト、会話履歴、モデルが生成する応答が含まれる。モデルは長期的な永続メモリを備えていないため、認識範囲はこのワーキングメモリバッファ内の情報に限定される。会話が拡大するにつれ、古い情報はスライディングウィンドウプロセスによって押し出され、結果としてモデルは初期の情報を追跡できなくなる。
モデルはこのウィンドウサイズに対して、長大なシーケンス処理に必要な計算負荷とメモリコストによる制約を受ける。さらに、モデルはしばしば「ミドル消失」現象を示し、長いコンテキストの中央部に配置された情報に対して、先頭や末尾と比較して精度が低下する傾向がある。また、ウィンドウを拡大するとノイズが増加し、モデルが本質的な情報よりも無関係あるいは競合するデータを優先してしまう可能性が高まる。
検索拡張生成 (RAG) は、必要な時のみ関連情報を動的に提供することでこれらの制約を回避する専門的な手法である。膨大なデータでコンテキストウィンドウを飽和させる代わりに、RAGシステムは外部ソースから具体的かつ適切な事実を取得し、それをモデルのプロンプトに統合する。このアプローチは物理的な容量制限を回避するだけでなく、学習データに含まれていない最新あるいはプライベートな情報を提供することを可能にする。RAGの有効性は初期の検索ステップの精度に根本的に依存しており、提供される情報の質がモデルの出力結果を左右する。