- 大規模言語モデル(LLM) はマルチターン対話で性能低下と信頼性の低下を示す
- シングルターンと比べて、マルチターン環境では平均39%の性能低下が実験的に確認された
- 主な要因は、小さな適性低下と非常に大きな信頼性低下、すなわち結果の一貫性不足である
- LLMは早い段階で誤った仮定を立てたり、最終解答をあまりに早く試みたりする傾向がある
- その結果、LLMが対話の序盤でミスをすると、回復できずに対話の方向を見失う現象が発見された
ABSTRACT
- 大規模言語モデル(LLM) は対話型インターフェースとして、ユーザーの要求が完全に明示されていない場合でも、マルチターン対話を通じて要件を段階的に定義・探索・修正するのを助けられる可能性を持つ
- しかし、多くのLLM評価はシングルターンの完全指定プロンプト環境にのみ集中している一方で、実際の対話ログ分析では**指示の不完全指定(underspecification)**が頻繁に見られる
- 本研究では、シングルターン環境と**マルチターン(underspecified)**環境でのLLMの性能を大規模にシミュレーションして比較した
- その結果、15の主要LLMすべてで、マルチターン対話において平均39%の性能低下があり、これは適性のわずかな低下と信頼性の急激な低下として分析された
- LLMが対話初期に誤った経路を選ぶと、その後回復できずに方向を見失ってさまよう現象が確認された
Introduction
- 最新のLLM(例: ChatGPT、Gemini、Claude など)はマルチターン対話が可能なインターフェースである
- ユーザーが最初からすべての要件を明確に記述しなくても、反復的な質疑応答(underspecified → refined)によって段階的に要件を具体化できる
- 実際には多くのユーザーが対話の序盤で曖昧な要求を提示するにもかかわらず、ほとんどの評価はシングルターンの完全指定環境でのみ行われている
- 一部の先行研究はマルチターン評価を試みているが、対話の各ターンを個別のエピソードとして扱うことが多く、実際の人間の対話で一般的な曖昧さの影響を過小評価している
- 本研究はこのギャップを埋めるため、sharded simulation(情報を複数の断片に分け、各ターンで1つずつのみ公開する)という環境を提案し、マルチターンかつ不完全指定の指示状況を精密にシミュレーションする
主な研究結果の要約
- シングルターンでLLMが指示全体を一度に受け取る場合は90%の性能を示したが、マルチターンの不完全指定指示では65%まで低下した(平均25ポイント低下)
- この現象は、わずか2ターンの対話を経るだけでも現れ、オープン型・クローズド型・大規模・小規模のすべてのLLMで共通して観察された
- 性能低下の原因分析の結果、(1) 適性低下(aptitude loss)と (2) 信頼性(unreliability)の急増が挙げられる
- シングルターンでは適性の高いモデルは信頼性も高かったが、マルチターンでは適性に関係なく信頼性が低い
- つまり、LLMがマルチターン対話の途中で誤った方向に入り込むと回復不能になり、これを**「lost in conversation」**現象と名付けた
- 主な原因
- 冗長な応答および最終解答の性急な試行
- 曖昧な情報に対する誤った仮定
- 以前の誤った試みに対する過度な依存
- 実際のLLM活用現場とモデル評価方式の間には大きなギャップが存在する
- 初心者ユーザーほど序盤に不完全な指示を出すことが多く、この現象が実運用を難しくする主要因の1つとなっている
- 論文の構成紹介: 先行研究の要約、シミュレーション環境の説明、6つの生成タスクと評価指標、15のLLMによる大規模実験とその結果、そして実務・製品適用への示唆と具体的な推奨事項を提示する
Background and Related Work
- 過去世代の言語モデル(例: BART、GPT-2、T5)は実際にはマルチターン対話に対応していなかったため、シングルターン中心で評価されていた
- ChatGPTの登場以後、マルチターン評価への関心が高まり、MT-bench などのクラウドソーシング評価が行われた
- しかし、その大半の評価体系はエピソード型対話(各ターンを個別評価)にとどまり、実際の曖昧な対話の連続性が考慮されていない
- 現実では「最小努力の原則」に従って人間が曖昧に指示する、いわゆる underspecification がよく起こり、LLMも情報不足時の早期結論導出や適応不足などによって性能が低下する
- 本研究は、曖昧さが核心となる実環境により近い評価を目指して構成されている
Simulating Underspecified, Multi-Turn Conversation
3.1 Sharding Process
- 元の完全指定の指示文を複数のshard(情報の断片)に分割する
- 例: 1文の中にすべての条件を盛り込む代わりに、各ターンで1つの情報(状況設定、数値、条件など)だけを公開する
- 最初の shard は常に指示の上位目的を説明し、その後の shard が追加情報(文脈、条件など)をターンごとに段階的に提供する
- このshardingプロセスは、LLM(GPT-4o)による提案と検証、および手作業の補完によって、高品質なマルチターン指示データセットを構築した
- 各タスクごとに 90〜120 個の sharded instruction を作成した(数時間にわたる手作業レビューを実施)
3.2 Simulating Sharded Conversations
- 対話シミュレーションは3者の役割で構成される: 評価対象のLLM(assistant)、全 shard を知っている user simulator、応答の分類と採点を行うシステム
- 第1ターン: user simulator が最初の shard だけを assistant に渡す → assistant が応答 → その戦略(明確化、質問、正答の試行など)を分類し、回答を抽出 → 正答評価
- 次のターン: 残りの shard のうち1つだけを追加で公開して繰り返す / 各ターンで assistant は自由に応答する
- 対話終了: (1) 評価者が正解と判定したとき、または (2) これ以上提供する shard がないとき
- user simulator は LLM(GPT-4o-mini)で実装されており、自然な shard 提供と自動 rephrase の能力を持つ
- 全実験において、補助LLMの誤分類や抽出ミスは 5% 未満で、assistant に不利になるケースは 2% 未満だった
- assistant にはこの環境に関する特別な情報を与えず、デフォルト状態で評価した(実運用に近い形でシナリオ情報を別途付与しない)
3.3 Simulation Types
- FULLY-SPECIFIED(FULL): シングルターンで指示全体を提供し、ベースライン性能を評価する
- SHARDED: 各ターンで1つの情報断片だけを公開する、本研究の中核となるマルチターン・不完全指定対話実験
- CONCAT: sharded instruction 全体を一度に bullet-point で提供し、指示情報の損失だけを評価する
- RECAP: sharded 対話の後、最後にすべての shard を要約して再提示する、単純な agent 的介入の一形態
- SNOWBALL: 各ターンで新しい shard を追加すると同時に、それまでに公開した shard 全体を繰り返して、assistant が情報を見落とさないよう想起を補強する(メモリ強化実験用)
Task and Metric Selection
4.1 Task Selection
- 全6タスク: プログラミング(Code)、データベース(SQL生成)、API関数呼び出し(Actions)、数学(Math)、表→テキスト(Data-to-Text)、質疑応答型要約(Summary)
- 例: Python 関数の作成、自然言語→SQLクエリ変換など
- 各タスクごとに高品質ベンチマークから 90〜120 個の指示文を選別し、sharding 後に手作業で検証した
- 6タスクはいずれもプログラミング/非プログラミングを網羅する代表的な性格を持ち、long context を要する Summary など多様なシナリオを含む
4.2 Metric Selection
- 評価指標
- 平均性能(P): 複数のシミュレーションで得られた平均スコア(0〜100)
- 適性(A90): 上位10%の simulation 結果値(90th percentile、best-case)
- 信頼性(U90_10): 上位90%と下位10%のスコア差(結果の一貫性/変動性を測定)
- 例: box-plot の最上部が適性、上下の範囲が信頼性を表す
- 6タスクすべてで一貫した尺度によりスコアを集計した(正誤判定/類似性/BLEU など)
- すべての実験パラメータ、例示、サンプリングなどの詳細な方法とコードも付録/Appendix に収録されている
Simulation Scale and Parameters
- 合計600件の instruction を6タスク向けに構築し、FULL/CONCAT/SHARDED シナリオで実験した
- 15のLLM(GPT-4、Claude、Gemini など)について、各組み合わせごとに10回ずつシミュレーションし、20万回以上の実験データを生成した
- すべての実験は temperature 1(サンプリング)で実施し、追加実験(7.2)では temperature の効果も分析した
- この大規模シミュレーションデータにより、LLMのマルチターン underspecified 対話における行動様式と性能低下の主要因と類型を把握できる
Lost in Conversation Experiment
- 以降の本文では、実験設定、個別モデルの結果、性能低下の原因分析、補完手法(RECAP/SNOWBALL)の試行、実務的示唆・具体的勧告の順に詳しく説明する
1件のコメント
Hacker Newsのコメント
実際にLLMツールを使ったことがある人なら誰でも経験的に知っていることを確認してくれる論文を見られてうれしい。会話という概念はプロダクトのインターフェースが生み出したもの。コンテキストをきれいに保つことが重要。コンテキストが汚染されると回復しないので、新しい会話としてやり直す必要がある
これはLLMのよく知られた過信傾向、自己省察の欠如、そしてより多くの情報を求めるべきときにそれを認識できないことに由来する現象だ。推論モデルの結果を見ると、混乱している場合でもLLMは追加説明を求めず、ユーザーが何を意味しているのかを推測し続けるだけだ。これは、人間のプログラマーを置き換えようという発想の現実的な限界を示している。本当に難しい部分は、曖昧な要求を明確化していく「ステークホルダーとの相互作用」だからだ
LLMにここまでの議論を簡潔なプロンプト形式で要約させ、それを自分で修正・編集して新しい会話を始める手法をよく使う。この方法はかなり効果的で、近いうちに自動化されると思う
TSCE(Two-Step Contextual Enrichment)を自分で考案した。GPT-35-turboで300件の課題に使ったところ性能が+30pp向上した。オープンフレームワークとして自由に使える。gpt-4.1でも300回の追加実験を行った。baselineはem-dashの削除に149/300回失敗し、TSCEは18/300回失敗した。全データとスクリプトも公開している
text.replace("—", "-")のようなものを使ってみたらどうだろう2つのシステム(LMM + 自動curator)で問題を解いた経験がある。一方はLLMそのもの、もう一方は「思考のキュレーター」としてコンテキストの一部を動的に差し替えて管理するものだ。明確なルールではなく、LLMの補完能力に依存している。問題を小さく分割して処理するのを助け、その結果を集めて最終目標を達成する
メインのチャットツールでブランチ/フォークが標準になっていないのが不思議だ。回答を編集することはできても、この場合は別のコンテキストが多く失われる。私のワークフローは 1. 計画 2. 構築 3. ブランチ 4. 反復。プロンプトの枝分かれ/ブランチングはLLM活用の中核ツールであるべきだと思う
LLMインターフェースがシングルターン会話中心に設計されると問題が起きる。ほとんどのユーザーは線形の会話を期待する。そこでTelegramボット experai_bot を作り、LLMのユニバーサルUIとして使い、「返信でなければ新しい会話」というアプローチを採用した。コンテキストを維持するには、必ず返信ツリー構造で続けなければならない。非専門家にはこの方式を理解するのが難しい。またOpenAIモデル(3.5、4o基準)は、同じ質問を繰り返すほど余白やオプションが短くなり、結果が徐々に不正確になる。システムメッセージは最小限にした方が比較的結果が保たれる。必要ならオプションでシステムメッセージを追加できる
promptdownを作った主な理由は、チャット履歴全体をターンごとに完全編集できるようにするためだ。標準インターフェースの「追記専用」構造では、こういうことが難しい
現時点のLLM分野は、みんなが同じ問題を繰り返し解いている感じがする
LLMは本当に瓶の中のジーニーみたいなものだ。3回までは質問に答えてくれるが、その後は妙なことばかり言い出す現象