GENAI-RON🧠生成AI論🥦

生成AIのしくみ 04

コンテキストとは何か

AIにとっての現在とは、時計の今ではなく、その時点で渡された文脈の束である。

生成AIにとっての現在とは、いま入力された文脈の束である。

はじめに

ChatGPTを使っていると、同じ会話の中でも、答え方がだんだん変わってくることがある。

最初は短く答えていたのに、途中から長くなる。

最初に決めた方針が、いつのまにか薄れている。

前に話した内容を踏まえているようで、少しずれている。

直近の話題に強く引っ張られて、全体の目的を見失う。

古い前提と新しい指示が混ざって、どちらを優先しているのか分からなくなる。

こういうとき、私たちは「AIが混乱している」と感じる。

それは、ある意味では正しい。

ただし、人間のように頭の中が混乱しているわけではない。

生成AIにとって重要なのは、いま何が「文脈」として渡されているかである。

コンテキストとは、生成AIが次の応答を作るために見ている文脈の束である。

1. 生成AIにとっての「今」は、人間の今とは違う

人間にとっての「今」は、現在の感覚と記憶がつながった時間である。

昨日のことを思い出す。

さっき言われたことを覚えている。

長く続いている仕事の流れを、なんとなく保持している。

場の空気や相手の表情も含めて、いま何をすべきか判断する。

人間の「今」には、時間の厚みがある。

一方、生成AIにとっての「今」は少し違う。

生成AIは、応答を作るときに、その時点で渡された情報をもとに次の文章を作る。

そこには、現在のユーザーの発言だけでなく、会話履歴、設定、保存メモリ、アップロードファイル、外部ツールの結果などが含まれることがある。

つまり、AIにとっての「今」とは、時計の上の現在ではない。

いま応答を作るために渡された文脈の束である。

2. コンテキストは、作業台に広げられた資料に近い

コンテキストは、作業台に広げられた資料のようなものだと考えると分かりやすい。

机の上に、メモ、資料、過去の議事録、付箋、メールの印刷、手書きのアイデアが並んでいる。

人間は、その机を見ながら次に何をするか考える。

資料が少なければ、集中しやすい。

資料が整理されていれば、判断しやすい。

しかし、資料が多すぎたり、古い資料と新しい資料が混ざっていたりすると、どれを見ればいいのか分からなくなる。

生成AIのコンテキストもこれに近い。

過去の会話。

直近の指示。

プロジェクト設定。

保存メモリ。

ファイルの中身。

ツールの仕様。

検索結果。

Notionページの内容。

これらが作業台に広げられている。

AIは、その作業台を見ながら次の応答を作る。

だから、コンテキストが整っていれば、応答も安定しやすい。

コンテキストが散らかっていれば、応答も散らかりやすい。

3. 長い会話では、文脈が豊かになると同時に、重くなる

長いチャットには良いところがある。

前に話したことを踏まえられる。

途中で決めた方針を引き継げる。

作業の流れが残る。

何度も説明し直さなくてよい。

これは大きな利点である。

しかし、長いチャットには別の問題もある。

情報が増えすぎる。

最初の目的。

途中で出た仮説。

一度だけ試した案。

もう使わない方針。

修正前の文面。

修正後の文面。

消えた前提。

新しく決めた前提。

こうしたものが、同じ会話の中に残っていく。

人間なら、「あれはもう古い話だな」と判断できることもある。

しかし生成AIは、文脈として渡されたものをすべて現在の材料として扱いやすい。

そのため、長い会話では、過去の情報が助けになる一方で、邪魔にもなる。

文脈は、豊かになるほど便利になる。

しかし、豊かになりすぎると重くなる。

4. 古い前提と新しい指示が混ざる

生成AIとの作業でよく起きるのは、古い前提と新しい指示が混ざることである。

たとえば、最初にこう決めたとする。

「この文章は専門家向けに書く。」

その後、途中で方針が変わる。

「やっぱり一般向けに平易にしよう。」

人間同士なら、「方針変更ね」と共有できる。

しかし、チャットの中には、古い指示も新しい指示も残っている。

AIから見ると、どちらも文脈の中に存在している。

もちろん、直近の指示を優先しようとはする。

しかし、古い方針が完全に消えるわけではない。

その結果、文章が中途半端になることがある。

一般向けにしたいのに、専門用語が少し残る。

短くしたいのに、以前の詳しい説明モードが残る。

新しい構成にしたいのに、古い見出しが混ざる。

これは、AIが意地悪をしているわけではない。

古い前提と新しい指示が、同じ文脈の中に残っているのである。

5. 「直近の指示」は強いが、すべてではない

生成AIでは、直近の指示はかなり重要である。

最後に言われたことは、次の応答に強く影響する。

「短くして」と言えば、短くしようとする。

「もっと平易に」と言えば、平易にしようとする。

「Notionにはまだ書かないで」と言えば、書かないようにする。

しかし、直近の指示だけで応答が決まるわけではない。

その前に長い議論がある。

プロジェクト設定がある。

保存メモリがある。

ツールの説明がある。

アップロードされた資料がある。

それらも同時に影響する。

だから、直近の指示は強い。

しかし、絶対に単独で勝つわけではない。

ここを誤解すると、「さっき言ったのに、なぜ?」という不満が生まれる。

もちろん、AIが指示を守るべき場面はある。

しかし、実際の応答は、直近の一文だけでなく、周囲の文脈全体から作られている。

6. コンテキストは、記憶ではなく現在の材料である

01では、生成AIの記憶を「現在に再投入される条件」として考えた。

その中でも、コンテキストは特に重要である。

コンテキストは、AIが昔のことを思い出しているというより、いま作業台に広げられている材料である。

過去の会話がコンテキストに入っていれば、AIはそれを見られる。

入っていなければ、見られない。

入っていても、他の情報に埋もれていれば、弱くなることがある。

つまり、コンテキストは記憶そのものではない。

コンテキストは、現在の応答に使われる可能性のある材料である。

この違いは大きい。

「前に話したのに」と思っても、それが今の応答で強く参照されているとは限らない。

「覚えているはず」と思っても、今回の文脈の中で目立っていないかもしれない。

「同じチャット内だから大丈夫」と思っても、長くなりすぎて焦点がぼけているかもしれない。

AIが見るのは、過去そのものではない。

現在に渡された文脈である。

7. 文脈の中で、目立つものが強くなる

コンテキストの中では、すべての情報が同じ強さで働くわけではない。

何度も出てくる言葉。

直近に出た言葉。

見出しとして立っている言葉。

ユーザーが強く指示した言葉。

具体的な名前やツール名。

エラーや失敗として話題になったもの。

こうしたものは、目立ちやすい。

たとえば、会話の中で何度も「Notion」「ツール」「エラー」「検索」と言っていると、AIはそれらを重要な話題として扱いやすくなる。

その結果、本当は文章の中身を考えたいだけなのに、Notion操作やツール仕様の話が前に出ることがある。

これは、02で見た「プロンプトは環境である」という話にもつながる。

文脈の中で目立つものは、AIの応答を引っ張る。

つまり、コンテキストはただの記録ではない。

コンテキストは、応答の方向を決める力を持っている。

8. コンテキストが散らかると、AIの答えも散らかる

人間でも、散らかった机では作業しにくい。

必要な資料がどこにあるか分からない。

古いメモと新しいメモが混ざる。

関係ない書類が視界に入る。

途中で別の作業を思い出してしまう。

生成AIでも、似たことが起きる。

会話の中に複数のテーマが混ざっている。

古い方針と新しい方針が同時に残っている。

出力形式が何度も変わっている。

途中で別のツールの話をしている。

未確定の案と決定事項が区別されていない。

こうなると、AIの応答も不安定になりやすい。

これは、AIの能力だけの問題ではない。

作業台が散らかっているのである。

だから、AIの答えを安定させたいなら、コンテキストを整える必要がある。

9. 文脈を整えるとは、何を見るべきかを決めること

コンテキストを整えるとは、単に情報を増やすことではない。

むしろ、何を見るべきかを決めることである。

今回の目的は何か。

どの前提を採用するのか。

どの案はもう捨てたのか。

どの文体で進めるのか。

どの資料を参照するのか。

どの資料は参照しないのか。

何を決定事項とするのか。

何を未確定の案として扱うのか。

こうしたことを明確にすると、AIは応答を作りやすくなる。

逆に、すべてを同じ場所に置いたままにすると、AIはどれも現在の材料として扱いやすくなる。

だから、長い作業では、ときどき文脈を掃除する必要がある。

いま有効な方針をまとめ直す。

古い前提を捨てる。

決定事項だけを短く再提示する。

参照してほしい資料を限定する。

これらは、AIに対する追加命令ではなく、作業台の整理である。

10. 生成AIを使うとは、コンテキストを設計することである

生成AIは、何もないところから答えを出しているわけではない。

モデル本体の言葉の傾き、現在の会話、保存メモリ、プロジェクト設定、外部ツール、ファイル、直近の指示。

それらが束になって、ひとつの応答を作る。

だから、生成AIを使うとは、単に質問を投げることではない。

どの文脈を渡すか。

どの文脈を外すか。

どの前提を強くするか。

どの前提を弱めるか。

何を現在の材料として見せるか。

それを設計することである。

コンテキストは、AIにとっての現在である。

そして、現在が変われば、応答も変わる。

次回は、この話を「忘却」に広げる。

AIが忘れたように見えるとき、何が起きているのか。

それは本当に消えたのか。

それとも、今回の文脈の中で参照されていないだけなのか。

生成AIの忘却とは、消失ではなく、参照されなさであることが多い。

中心フレーズ

生成AIにとっての現在とは、いま入力された文脈の束である。

参考リンク

シリーズ内ナビ

より詳しく知りたい人へ

技術詳解版では、context window、長い会話での情報の圧縮、retrieval、memory、優先順位づけの関係を整理する予定です。