ChatGPT って、あたしがスマホに文字打ったら、AI が「ふんふん」って読んで返事してくれてるだけだと思ってたんだよね。
ジャスミンちゃん、その「ふんふん」の中身を今日は解剖してみましょう。
意外と手がかかってるのよ。
生の LLM は「次の単語を予測する機械」に過ぎないから、対話できるようにするには仕組みで「役割分担」を作ってあげる必要があるの。
LLM 単体と「対話アプリ」は別物、という理解は合っていますか?
その通り。
チャットモデルではシステムプロンプト・ユーザーメッセージ・アシスタントメッセージの3つの役割があるの。
システムプロンプトは「あなたは親切なアシスタントです」のような、AI 全体の振る舞いを指定するものですよね。
そしてユーザーとアシスタントのやり取りが交互に続く会話履歴を、毎回まとめて LLM に送っている、と。
えぇっ、毎回ぜんぶ送ってるのぉ?
AI は過去の会話を覚えてるんじゃないの?
ましろちゃん、核心を突くわね。
LLM 自体に記憶機能はないの。
毎回、会話履歴をコンテキストウィンドウに収まるように入力しているのよ。
うそっ!?
じゃあずっと喋ってると、最初のほう忘れちゃうの?
そう、それを俗に「文脈切れ」と言うわ。
GPT-4 で128K、Claude で200K、Gemini で100万トークン——と長くなっているけど、無限ではないの。
補足ですが、最近のチャットアプリでは、古い会話を要約して圧縮する仕組みや、別途記憶機能(メモリ機能)を実装するサービスも増えています。
ChatGPT の「Memory」機能や、アプリ側の RAG 実装で長期記憶を補完する設計が一般的です。
わぁ〜、毎回会話ぜんぶ読み直してるなんて、思ってたよりずっと地道なお仕事なんだねぇ…。
人間も長い会議についていくの大変だから、これは AI もちょっと気の毒な気がするなぁ。
ふふっ、人間味のあるたとえね。
ちなみに、システムプロンプトは見えない場所で指定されていて、アプリごとに独自のキャラ付けや安全ルールを仕込んでいるのよ。
「役割を与えれば LLM はそのキャラになりきる」という性質ね。
これが悪用されるとプロンプトインジェクションという攻撃に繋がるわけですが——それは Phase 7 の話ですね。
チャットモデルはファインチューニングの段階で「システム・ユーザー・アシスタント」のテンプレートに沿った対話に最適化されているため、チャット専用モデルと生 LLM では挙動が異なります。
つむぎさんの補足、重要。
お仕事で LLM API を触るときは、『どのモデルがチャット用か/生成用か』を確認するのが基本ね。
試験では「LLM には記憶機能なし、会話履歴を毎回送信」「3ロール構造」を押さえて。
応用編として、システムプロンプトで AI を別キャラに変身させる応用が Phase 5 のプロンプトエンジニアリングに繋がるから、楽しみにしてね。
確認クイズ
チャットモデルが過去の会話内容を参照できる仕組みとして正しいものはどれか。
- AI が会話を記憶している
- 会話履歴を毎回入力として送っている
- データベースに保存して検索している
- 前の回答をキャッシュしている
こたえを見る
正解: 2. 会話履歴を毎回入力として送っている
LLM 自体に記憶機能はなく、会話履歴を毎回コンテキストウィンドウに入れて入力しています。DB 保存やキャッシュはアプリ実装の話で、LLM のコア仕組みではありません。