ロングコンテキストとは
Long Context / Long-Context LLM
非常に長い入力を一度に処理し、その内容を精度良く活用できるLLMの能力、およびそれを実現するための技術群
ひとことで言うと
とても長い文章やコード全体を一度に読み込ませても、内容をきちんと理解して答えられるAIの性能のこと。
概要
ロングコンテキストとは、数十万〜数百万トークン規模という大きなコンテキストウィンドウを持ち、かつその範囲内の情報を精度良く参照・活用できるLLMの能力、およびそれを実現するための技術群を指す。 コンテキストウィンドウの数値上の上限そのものはモデルの仕様として決まるが、ウィンドウを単に大きくするだけでは、入力中の関連情報を見落とす「Lost in the Middle」のような現象が起き、実用上の性能を伴わないことがある。 ロングコンテキストという語は、こうした上限の拡大だけでなく、拡大したウィンドウの中身を実際に精度良く使いこなせるかという実効性能まで含めて評価・議論される文脈で使われる。 長大な文書の要約、大規模なコードベース全体の解析、多数の会話履歴やドキュメントを検索なしにそのまま入力する用途などで活用が進んでいる。
背景
LLMの活用が進むにつれ、長文書の全体把握や大規模コードベースの横断的な解析など、コンテキストウィンドウの上限を超えやすいタスクへのニーズが高まった。 一方でウィンドウを拡大しても、モデルが入力中のどの情報を重視するかは別問題であり、上限の拡大と実効性能の両立が技術的な課題として意識されるようになった。
アーキテクチャ
位置エンコーディングの外挿・スケーリング(RoPEのスケーリング等)、スパースアテンションやスライディングウィンドウアテンションによる計算量の削減、KVキャッシュの圧縮といった技術が、コンテキストウィンドウの拡大を支える要素として組み合わされる。
利点
- 検索(RAG)を介さず、関連文書や会話履歴をそのまま入力に含めて扱える
- 文書全体やコードベース全体を一度に参照させることで、断片化による文脈の欠落を避けられる
- マルチターンの会話や複数ドキュメントを毎回要約・圧縮せずに保持でき、長時間のセッションでも文脈を維持しやすい
欠点
- 入力トークン数の増加に応じて推論コスト・レイテンシが増える
- ウィンドウを拡大しても入力中の重要な情報を見落とす現象は起きうるため、上限の大きさは実効性能を保証しない
- 長大な入力を評価するベンチマーク(Needle in a Haystack等)の結果と、実際のタスクでの性能が一致するとは限らない
比較
- コンテキストウィンドウ — コンテキストウィンドウはLLMが一度に処理できるトークン量の上限そのものを指すのに対し、ロングコンテキストはその上限を拡大し、拡大した範囲を実際に精度良く活用できるかという能力・技術を指す
- RAG — RAGは必要な情報を都度検索して限られた入力に絞り込むのに対し、ロングコンテキストは関連しうる情報をまとめて入力に含めてしまうアプローチを取る
関連用語
よくある質問
ロングコンテキストがあればRAGは不要?
一概には言えない。ロングコンテキストは検索なしに関連情報をまとめて入力できる利点があるが、入力トークン数に応じてコスト・レイテンシが増え、情報量が多いほど重要箇所を見落とすリスクもある。扱う文書量やコスト要件に応じて、RAGとの使い分け・併用が検討される。
コンテキストウィンドウが大きいモデルほど性能が良いのか?
必ずしもそうとは限らない。仕様上のウィンドウが大きくても、入力の中盤に埋もれた情報を見落とす現象が知られており、実際の性能はNeedle in a Haystackのようなベンチマークで実効的に評価する必要がある。