コンテキストウィンドウ
AIはチャットを覚えていない
AIモデルが一度に読める文章の量には限りがあり、送信するたびにチャット全体を読み直しています。長いチャットでだんだん話を忘れられるのはそのためです。
作成者 Laksh1分で読めますAIとLLMの理解
要約
コンテキストウィンドウとは、言語モデルが一度に読める文章の量のことで、単位はトークン。AI自身の返事も含まれます。モデルはメッセージ間で何も覚えていないので、アプリは毎回チャット全体を送り直しています。チャットがウィンドウより長くなると、古い部分が削られたり要約されたりするため、忘れたように見えるのです。
AIとの長いチャットで、1時間前に伝えたことを急に忘れられたことはありませんか? あれはバグではありません。モデルの「読み方」から来ています。
モデルは読むだけで、覚えていない
言語モデルが一度に取り込める文章の量には限りがあります。その上限がコンテキストウィンドウで、単位はトークンです。Anthropicはこれをモデルの作業記憶と説明しています。返事を書くあいだに見られるものすべてで、その返事自体も含まれます。
チャットの両側がこの容量を使います。あなたのメッセージも、AIの返事も、両方カウントされます。
送信するたびに、チャット全体を送り直している
モデル自体は、メッセージとメッセージの間で何も覚えていません。OpenAIのドキュメントもはっきり書いています。リクエストは一つひとつ独立していて、状態を持たない、と。だから送信するたびに、アプリはそれまでの会話全体に新しいメッセージを付け足して、モデルに送り直しています。
短いチャットなら問題ありません。でも長いチャットでは、いずれ会話が入りきらなくなります。
容量が足りなくなると
アプリの対処法はいくつかあります。よくあるのは、古いメッセージから削ること。チャットの前半を短く要約する方法もあります。どちらにしても、最初のほうの細かい話は失われることがあります。(APIはもっと厳しく、入力だけで長すぎるとリクエスト自体を受け付けません。)
チャットアプリのメモリー機能も、この仕組みは変えません。保存したメモをコンテキストウィンドウに戻しているだけです。
動画の24マスのウィンドウは小さく描いたもので、実際のモデルのサイズではありません。
大きいウィンドウは役に立つ。ただし限界もある
今では、約100万トークン入るClaudeのモデルもあります。英語なら約75万語分。かなりの量です。でもウィンドウが大きければ自動的に良くなるわけではありません。Anthropic自身のドキュメントでも、文脈が長くなるにつれて正確さや思い出す力が落ちることがあると書かれています。
2023年の有名な研究もあります。モデルは長い文脈の最初と最後にある情報はよく使えるのに、真ん中に埋もれた情報は見落としがちだ、というものです。対象は2023年のモデルなので、今のモデルにそのまま当てはまる数字ではなく、傾向として受け取ってください。
どうすればいいか
大事なことを忘れていたら、もう一度伝えてあげてください。短く言い直せば、それはウィンドウの最後に入り、一番使われやすい位置に来ます。
出典
- 01Context windows
Anthropic, Claude docs
- 02Conversation state
OpenAI API docs
- 03Lost in the Middle: How Language Models Use Long Contexts
Liu et al., TACL 2023
- 04Understanding and counting tokens
OpenAI Help Center
間違いを見つけましたか? 教えてください修正します。



