コンテキストウィンドウとは?AIが一度に読める量の上限

AIとの会話が長くなると、最初のほうで伝えた条件を忘れたような答えが返ってきた経験はないでしょうか。原因の1つは、AIが一度に読める量に上限があることです。
この上限は、コンテキストウィンドウと呼ばれています。本記事では、AIの開発元の公式ドキュメントをもとに、コンテキストウィンドウの仕組みと付き合い方を解説していきましょう。
コンテキストウィンドウとは
コンテキストウィンドウは、LLMが答えを作るときに参照できる文章のすべてと、その上限を指す言葉です。
Claudeのドキュメントは、これを学習に使った大量のデータとは別の「作業用の記憶」と説明しています。Googleのドキュメントのたとえは、人の短期記憶です。学習した知識が長い年月で身に付けた教養だとすれば、コンテキストウィンドウは、いま机の上に広げている資料にあたります。
数えるものは、利用者の質問だけではありません。アプリが最初に渡す指示(プロンプト)やツールの説明、それまでの会話、貼り付けた資料や画像、AIが作る答えまでが、同じ枠に入ります。量はトークンという単位で数えるのが一般的です。
会話が長くなると埋まっていく
チャットのAIは、前のやりとりを覚えているように見えます。実際には、毎回それまでの会話をまとめて読み直しているのです。
1回目のやりとりでは、質問と答えだけが枠に入ります。2回目には、1回目の質問と答えに新しい質問が加わり、さらに答えが足されるでしょう。会話が進むほど枠は埋まり、いずれ上限に近づきます。
上限を超えたときの扱いは、アプリによってさまざまです。開発者向けのAPIでは、入力だけで上限を超えるとエラーが返ります。チャットの画面では、古いやりとりから順に外す運用もあると、Claudeのドキュメントは注記していました。最初のほうの条件をAIが忘れたように見えるのは、こうした場合です。
上限に近づいたときの工夫
長い作業を続けるAIでは、上限に近づいたときに中身を整理する工夫が使われています。
代表的なのが、古いやりとりを要約して短く詰める方法(compaction)です。最近のやりとりはそのまま残し、古い部分は要点だけにすれば、作業を続けながら空きを作れます。Anthropicの技術記事は、ほかに、進み具合のメモを枠の外のファイルに書いておく方法や、調べものを別のAIに任せて結果の要約だけを受け取る方法も挙げていました。
大きければ良いとは限らない
コンテキストウィンドウは年々大きくなり、いまでは100万トークンを扱えるモデルもあります。Claudeのドキュメントによれば、100万トークンはおよそ250万文字分です。文字数の目安は、言語によって変わります。Googleのドキュメントは、平均的な長さの英語の小説8冊ほどと説明していました。
ただし、たくさん入れるほど良い答えになるわけではありません。Claudeのドキュメントは、トークンが増えるほど正確さと思い出す力が落ちる現象を「context rot」と呼び、何を入れるかを選ぶことは、空きの大きさと同じくらい大切だとしています。Googleのドキュメントも、探したい情報が複数あると正確さが落ちると書いていました。
利用者の立場では、次のような使い方が役に立ちます。
- 話題が変わったら、新しい会話を始める
- 長い資料を渡すときは、資料を先に、質問を最後に置く
- 大事な条件は、会話の途中でも改めて伝える
資料を置く順番については、Googleも、質問をプロンプトの最後に置くと性能が上がると説明しています。
製品での使われ方
コンテキストウィンドウの大きさは、モデルごとの決まりです。Claudeの現行のモデルの多くは100万トークン、Geminiも100万トークンに対応しており、モデルの紹介ページで確かめられます。
資料が多すぎて枠に入りきらないときは、関係する部分だけを検索して渡すRAGという方法が使えるでしょう。長い作業を続けるAIエージェントでは、枠の中身を整理する仕事を、外側の仕組みであるハーネスが受け持っています。