【マルチターンかいわ】

マルチターン会話 とは?

公開:
💡 記憶をつないで、会話を「旅」にする技術
📌 このページのポイント
マルチターン会話の仕組み ターン1 👤 ユーザー 「Pythonを教えて」 🤖 AI 「Pythonは汎用言語で…」 ターン2 👤 ユーザー 「リストの作り方は?」 🤖 AI 「Pythonのリストは…」 ターン3 👤 ユーザー 「さっきの例で追加するには?」 🤖 AI 「append() を使えば…」 コンテキストウィンドウ ターン1: user「Pythonを…」 ターン1: AI「汎用言語で…」 ターン2: user「リストは…」 ターン2: AI「リストは…」 ターン3: user「さっきの…」 ターン3: AI「append…」 「さっきの例」が通じるのは過去の全ターンをコンテキストとして渡しているから ウィンドウが埋まったら古いターンを要約・削除してスペースを確保する
マルチターン会話のイメージ(コンテキスト蓄積)
ひよこ ひよこ
ペンギン先生、マルチターン会話って、普通の会話と何が違うの?
ペンギン先生 ペンギン先生
一番の違いは「記憶」だよ。普通のAPIで1回だけ質問するシングルターンは、その質問だけ見て答える。マルチターンは「さっき言ってたアレ」が通じるように、過去のやり取りを全部つなげて渡すんだ
ひよこ ひよこ
過去のやり取りをつなげるって、どうやってるの?
ペンギン先生 ペンギン先生
APIに渡すメッセージリストに、ユーザーとAIの発言を交互に全部追加していくんだ。3往復なら6件のメッセージをまとめて送って、AIがそれを読んで返答するイメージだよ
ひよこ ひよこ
じゃあ会話が長くなるほどデータが増えるんだね!
ペンギン先生 ペンギン先生
そう、それがマルチターンの課題なんだ。LLMには処理できるテキストの上限(コンテキストウィンドウ)があるから、会話が長くなると古い部分が入り切らなくなるよ
ひよこ ひよこ
そうなったらどうするの?
ペンギン先生 ペンギン先生
いくつか方法があるよ。古いメッセージを削除する「スライディングウィンドウ」、AIに要約させてコンパクトにする「サマリー型」、重要な情報だけ外部に保存しておく「メモリ型」などが使われるんだ
ひよこ ひよこ
ChatGPTもそうやって会話を覚えてるの?
ペンギン先生 ペンギン先生
基本はそうだよ。ただChatGPTセッションをまたいだ記憶(長期メモリ)も持つようになっていて、それは別のしくみで保存しているんだ。マルチターン自体はセッション中の短期記憶を扱うんだよ
ひよこ ひよこ
AIエージェントにとってマルチターンはどんな役割があるの?
ペンギン先生 ペンギン先生
エージェントが複数ステップのタスクをこなすとき、各ステップの結果を次のプロンプトに引き継ぐのがマルチターンの応用だよ。「さっき調べた内容をもとに次のアクションを考えて」という連鎖がエージェントの思考を支えているんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「マルチターン会話」って出てきたら「AIが前の会話を覚えていて文脈つきで返答し続ける仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Multi-Turn Conversation」 = 複数ターン会話
💬 multi(複数)+ turn(番・回)+ conversation(会話)。テニスのラリーのように「ターン」を交互に繰り返すイメージだよ
← 用語集にもどる