解説
コンテキストウィンドウは、LLM(大規模言語モデル)が回答を生成するときに一度に参照できる情報の範囲です。範囲の大きさはトークンの数で表され、モデルごとに上限が決まっています。AnthropicはClaudeのドキュメントで、コンテキストウィンドウを、学習データとは異なるモデルの「作業記憶」にたとえています。Googleも、Geminiのドキュメントで、コンテキストウィンドウを短期記憶にたとえています。
仕組み
コンテキストウィンドウには、1回の処理でモデルに渡す情報と、モデルが生成する回答がすべて含まれます。たとえば、生成AIのチャットボットでは、次の情報がコンテキストウィンドウに入ります。
- システムプロンプト:ボットの役割や回答のルールを定めた指示です。
- 会話の履歴:直前までの顧客とボットのやり取りです。会話が続くほど、履歴の分量が増えます。
- 参照する資料:RAGで検索したFAQ記事やマニュアルの該当箇所です。
- ツールの定義:ボットが呼び出せる外部の機能の説明です。外部のシステムと連携するボットでは、定義の分量も上限に数えられます。
- 生成する回答:モデルが出力する文章も、上限の中に数えられます。
上限を超えた場合の扱いは、サービスによって異なります。古いやり取りから順に落とすもの、過去の会話を要約して短くするもの、エラーを返して処理を止めるものがあります。
実務での使われ方
サポート部門で生成AIを使う場合は、コンテキストウィンドウに何を入れるかを決めておきます。たとえば、長い応対履歴をまとめて要約させるときは、どの期間の履歴を渡すかを先に決めます。また、社内のFAQやマニュアルをすべて指示文に貼り付けるのではなく、質問に関係する箇所だけを検索して渡すRAGの仕組みが使われます。必要な箇所だけを渡すと、上限に収まりやすくなり、トークン数に応じて決まる利用料金も抑えられます。
注意点
コンテキストウィンドウが大きいモデルでも、渡した情報のすべてを同じ精度で使えるとは限りません。Anthropicは、トークン数が増えるほど、モデルの回答の精度や情報を思い出す力が下がると説明しています。また、Googleは、長い入力の中から複数の情報を探し出す場合、1つの情報を探す場合と同じ精度にはならないと説明しています。したがって、上限に収まるからといって、関係の薄い資料まで渡すことは避けます。
また、コンテキストウィンドウは、モデルが学習した知識とは別のものです。コンテキストウィンドウに入れた情報は、その処理の中でだけ参照され、モデルの知識として残るわけではありません。そのため、ボットが前の会話を覚えているように見える場合も、会話の履歴を毎回コンテキストウィンドウに含めるコンテキスト保持の仕組みによるものです。
該当する用語がありません