摘要
LLM是对话接口,不仅能帮助用户明确手头的任务,还能通过多轮对话交互按用户需求定义、探索、改进。这篇论文进行了大规模的模拟实验对比LLM在单轮和多轮对话中的性能。实验证实无论开源闭源LLM的多轮对话明显比单轮对话性能更低,在6项生成任务中平均下降39%。通过对20w+的模拟对话进行分析,性能降低可拆解成2个部分:能力的小幅衰减、不可靠性的显著上升。研究发现,LLM常在对话初期做出预设,并过早尝试生成最终答案,且会过度依赖这些答案。简单来说,LLM一旦在对话中走错方向,就会陷入偏差,无法自我修正。
一、介绍
LLM作为对话交互接口,支持用户通过多轮对话交互。这类交互不仅能在用户清楚自身需求时(即用户可以在指令中完整描述需求)提供帮助,在用户需求尚不明确的场景下同样适用。用户可能先给出描述不充分的指令,再通过多轮对话进一步明确需求。尽管针对LLM对话日志的相关研究证实,用户指令描述不充分的现象十分普遍,但LLM的评估工作通常仍在单轮、需求描述完整的环境下开展。
尽管越来越多的研究提出以多轮方式评估LLM,但大多数现有研究将对话视为分阶段任务(episodic):对话轮次之间或许存在关联,但对话实际上可拆解为一系列能够独立评估的子任务。这类分阶段任务episodic脱离了人类对话中的普遍特征:信息不充分表述underspecification。
在这篇论文中,作者通过分片模拟,将已有的高质量单轮指令,转化成多轮underspecification的对话来创建一个模拟环境,消除上一段提到的差别。分片模拟确保对话的每一轮最多揭露1个分片信息,强制让指令通过对话逐步地透露给LLM。
在实验中作者发现,相较于在对话开始提供完整指令,多轮underspecification对话让性能平均降低了25%,这种下降即使只是分成了两轮对话也会出现。
再进一步,论文将性能的下降拆解为①能力的损失、②不确定性的增加两个方面。作者将这一现象称为对话迷失现象lost in conversation phenomenon:当LLM在多轮对话中出现一次错误,就会陷入混乱且无法自行纠正。
论文给出了以下解释:LLM趋向于生成过于冗长详细的响应,导致他们在对话中过早地提出最终答案;LLM对于没有充分说明的细节会做出不正确的假设,并过度依赖之前错误的回答尝试。
研究表明,大语言模型的实际应用方式与模型评估方式之间存在差距。多轮交互过程中普遍出现的性能下降可能导致AI系统使用率偏低,对于新手用户而言尤其如此——这类用户不太擅长在对话一开始就给出完整、详尽的指令。作者基于小规模实验给出可落地的建议,并向LLM开发者倡议:在关注模型能力的同时,优先保障多轮对话的稳定性。
三、模拟不充分表述的、多轮对话
作者开发了一个模拟环境来重复利用单轮对话任务。首先是一个分片流程,将原始的、完整表述的指令转化成分片指令。随后,实现了一个分片模拟环境,基于分片的指令来进行多轮对话。
分片流程
- 为构造高质量的分片指令,论文定义了分片指令必须满足的一系列属性(附录B):
- 基于这些属性,论文开发了一个半自动分片流程来构造分片指令,包括:1. 划分、2. 重述、3. 验证、4. 人工检查。
模拟分片对话
图2展示了分片任务的多轮模拟器,用3个LLM角色来构建了一个循环。assistant是用于测试的模型,user拥有完整的分片指令,在每一轮选择提供哪个分片,system对assistant的回复标注和打分。
- 在第1轮对话,user给出片段1,assistant回复,system将该回复归类为七种策略之一:澄清、拒绝、模糊规避、反问质询、探讨交流、无有效输出、尝试作答。如果回复里包含尝试作答的内容,提取答案片段(例如数字、代码块),避免周围无关文字干扰打分,再交给面向该任务的评估器。
- 后续轮次重复这套流程:user再放出一个信息片段,assistant进行回复,任何一次作答尝试都会被打分。一次对话的最终得分取所有轮次分数里的最大值:在一段包含N个信息片段的对话中,assistant最多拥有N次作答机会,并取其中最优一次作为成绩。
- 从这个角度看,在这种分片实验设定下,assistant相比单轮模拟场景有一定优势——单轮模拟最多只允许一次作答尝试。当答案被判定正确,或者所有信息片段全部用完时,对话终止。
- 对于选择下一个信息片段,assistant经常会提出针对特定片段的追问。因此使用LLM来构建user模拟器,向它提供全部指令与完整对话历史,使其能够挑选并轻度改写最适配当前对话的信息片段。比如对澄清类问题,user会使用对应的相关片段进行回复,而不是按固定顺序或随机顺序放出片段。在第一轮对话开始前,assistant仅收到少量上下文作为系统提示词;实验不会告诉assistant这是信息不完整或者多轮的对话,以此可以测量模型的默认原生行为。
- 策略分类器与答案提取器同样是基于提示词构建的 GPT-4o-mini 模块。在整个仿真循环里,分类器的核心作用是识别出尝试作答的对话轮次,触发答案提取与打分流程;它并不会直接影响user选择信息片段。为保证这套实验框架的有效性,作者人工复核了数百段对话,发现任意模块出现错误的情况占不到5%;在判定assistant表现较差的样本中,错误率不足2%。因此认为该模拟器对于实验而言具备足够高的准确度。
模拟类型(5类对话)
- Fully-Specified:单轮任务,作为基线。
- Sharded:多轮任务:分片指令按上述设计通过多轮提供。
- concat:将所有片段拼接成一个单轮对话提示词,但保留重述。(用于确认性能下降来源于多轮的信息不充分的对话,而不是重述)。
- recap:运行分片对话之后,再增加一轮完整的表述。(该设置用于测试简单智能体风格的摘要是否能够缓解分片导致的性能衰减)。
- snowball:每一轮,用于给出下一个分片的同时,重复所有先前的分片。(用于评估连续的提示能否减轻长的、多轮交互的记忆负担)。
四、实验
任务选择
给6类任务构造了分片指令,用于大规模的模拟实验。对于每个任务,从1到2个高质量单轮基准集中选择指令,使用半自动化分片方式处理,每个任务准备了90-
- Code任务 assistant通过写python 函数来实现指令,原始指令来源于HumanEval、LiveCodeBench
- Database任务 assistant基于数据库语法和自然语言下的用户查询生成SQL查询。原始指令和数据库来源于Spider数据库
- Actions任务 assistant基于API schema(接口定义),生成满足用户要求的API调用。API schema和用户指令来源于Berkeley Function Calling Leaderboard(1个用于测试工具调用能力的基准集)
- Math任务 assistant求解GSM8K数据集中的小学数学题。
- Data-to-text任务 assistant生成了一段描述表格及相关元数据的说明文字。数据来源于ToTTO数据集。
- Summary任务 assistant根据用户的询问和一系列的文档生成带引用的摘要。该任务的指令要求长文本理解能力。
对每一项任务,沿用原始基准测试中使用的指标来评估正确性。其中,Code 和 Database 采用准确率accuracy进行度量,Actions 和 Math 以与参考答案的语义等价性为标准,以上均给出二元正确性评分。Data-to-Text 和 Summary 属于细化任务,分别采用区间评分(0–100):Data-to-Text 使用 BLEU 指标,而 Summary 则采用一种自定义的“LLM-as-a-judge”指标(“联合评分”)。论文将二元指标映射到 0–100 的区间(0 表示失败,100 表示成功),以便所有任务均在统一的尺度上产生评分,从而便于汇总分析。
模拟指标
LLM对一段固定的对话会生成许多不同的反应,作者对一个指令进行重复模拟并量化产生的不同。假设第i次模拟生成的评分为Si∈[0,100]S_i \in [0,100]Si∈[0,100],对1个指令模拟N次获得S={Si}i=1NS=\{S_i\}^N_{i=1}S={Si}i=1N,定义三个指标:平均性能P‾=∑i=1NSiN\overline{P}=\frac{\sum_{i=1}^N S_i}{N}P=N∑i=1NSi,能力A90=percentile90(S)A^{90}=\text{percentile}_{90}(S)A90=percentile90(S),不可靠性U1090=percentile90(S)−percentile10(S)U^{90}_{10}=\text{percentile}_{90}(S)-\text{percentile}_{10}(S)U1090=percentile90(S)−percentile10(S)
- 平均性能是模型平均得分的无偏估计。
- 能力是模型在该指令上第90%的得分,反映模拟中前10%的得分水平,用于评价最佳性能的指标。
- 不可靠性反映的是第90%和10%的差距,体现模型中的随机性导致输出质量下降的程度。
每个指标都是逐个指令计算的,并可以通过对整个任务库的所有指令求平均获得库级别的指标。
模拟规模和参数
- 主实验:6 个任务各约 100 条实例 × 3 种模拟类型(FULL、CONCAT、SHARDED)× 15 个 LLM × 每组合 N=10 次模拟,总计 20 万+次模拟对话,默认温度 T=1.0。
- 15 个模型来自 8 个家族:OpenAI(GPT-4o-mini、GPT-4o、o3、GPT-4.1)、Anthropic(Claude 3 Haiku、Claude 3.7 Sonnet)、Google(Gemini 2.5 Flash / Pro)、Meta(Llama3.1-8B、Llama3.3-70B、Llama 4 Scout)、AI2 OLMo-2-13B、Microsoft Phi-4、DeepSeek-R1、Cohere Command-A。覆盖小(8B)到大(300B+)、开源与闭源,含 2 个推理模型(o3、R1)以检验测试时算力在多轮中的作用。
- 每条指令重复模拟 10 次虽使成本×10,但既能更准确估计平均性能 P,也为能力/不可靠性分析提供分位数基础。总成本约 $5,000。
- 所有任务总上下文 <20k tokens(Summary 最长,其余多在 8k 内);Phi-4、OLMo-2-13B 因上下文限制不参与 Summary 任务(表 1 标"-")。实验目的是研究常规上下文长度下的多轮行为,而非压测长上下文。
五、结果
平均性能
- 核心结论(表 1):所有 15 个模型在所有 6 个任务上,SHARDED 相对 FULL 全部退化,平均退化 -39%。作者将此现象命名为Lost in Conversation(对话迷失):单轮完全指定设定下 90%+ 的模型,同样任务换成多轮、欠指定对话就大幅掉分。
- CONCAT ≈ FULL 的 95.1%→ 退化并非源于分片改写造成的信息丢失。小模型(Llama3.1-8B、OLMo-2-13B、Claude 3 Haiku)的 CONCAT 退化更明显(86-92%),说明小模型对"良性改写"不够鲁棒,越强的模型越稳。
- 强模型同样迷失:Claude 3.7 Sonnet、Gemini 2.5、GPT-4.1 与 Llama3.1-8B、Phi-4 的退化幅度相当(相对 FULL 保留约 62-66%)。部分原因是指标定义:小模型 FULL 基数低、可掉分空间小。总之无论单轮多强,多轮下都会大幅退化。
- 分任务看:Command-A 在 Actions 退化最小;Claude 3.7 Sonnet、GPT-4.1 在 Code 保持好;Gemini 2.5 Pro 在 Data-to-Text 保持好 → 多轮能力跨领域不均匀,需多任务评测。
- 推理模型和非推理模型一样恶化:o3、Deepseek-R1 退化方式与普通模型类似——额外测试时算力本身无法让模型在多轮中"运筹帷幄"。可能根因:推理模型回复比非推理模型平均长33%,而长回复往往含更多假设,易与用户需求/自身先前回答混淆。
能力和可靠性分析
- 单轮设定:能力越强越可靠(A 高 → U 低)。GPT-4.1、Gemini 2.5 Pro 的不可靠性最低;Llama3.1-8B、OLMo-2-13B 能力最低也最不可靠。与社区共识一致:好模型更耐扰动、更少依赖提示工程。
- SHARDED 设定呈现完全不同的图景:
- 能力 A 平均只降16%(且不显著);
- 不可靠性 U 平均暴涨112%(翻倍以上);
- 且不论模型强弱,多轮下 U 水平相近:对固定指令,最好与最差一次运行平均相差约50 分。
- 总结:单轮→多轮的大幅性能退化(P)主要来自不可靠性(U)激增,而非能力(A)损失。
逐步分片实验(5.3)
- 动机:每轮只透露最少信息看似"对抗性强"。于是将 31 条指令各扩成 7 个变体(分片数 2→8,任务复杂度固定、只改粒度),用 GPT-4o、GPT-4o-mini 模拟(图 5c)。
- 发现:2 个分片起模型就迷失(能力小降、不可靠性大涨)。即任何欠指定且 ≥2 轮的对话都会触发迷失;信息颗粒度影响不大,一次性给全信息(1 分片)是唯一显著改善可靠性的方式。
六、影响总结
系统与 Agent 开发者(G.1)
- 模拟两种 agent 式补救:RECAP(末轮汇总重申所有分片+告知此前答案错误、再试一次)与 SNOWBALL(每轮重复此前所有分片)。两者均优于 SHARDED 但不及 FULL/CONCAT(表 5,GPT-4o:Full 93.0 / Concat 90.9 / Sharded 59.1 / Recap 76.6 / Snowball 65.3)。RECAP 更好但不现实(需预知"最后一轮");SNOWBALL 现实可得15-20%提升。
- 结论:把记忆托管给 agent 框架不够,LLM 应原生支持多轮交互。
- 在 system prompt 中提示"用户可能不会一次给全信息、可追问"仅带来+1%平均改善(+1~+3 两个任务、+7 一个任务、-6 一个任务),无法有效避免迷失。
LLM 开发者(G.2)
- 温度消融(assistant温度 AT 与user温度 UT 各取 1.0/0.5/0.0):单轮对话下,降温显著提升可靠性(U 降 50-80%),但 SHARDED 下降温几乎无效,即使 AT=UT=0.0,多轮 U 仍高达 ~30%(早期 turn 一个 token 的差异会级联放大)。
- 结论:降低温度无法缓解多轮不可靠性。呼吁LLM开发者对模型能力与可靠性一并优化,可靠 LLM 应:(1) 单轮/多轮能力相近;(2) 多轮U1090<15U^{90}_{10}<15U1090<15;(3) 在默认 T=1.0 下达成上述目标。
NLP 从业者(G.3)
- 分片流程半自动,人工约 3 小时/100 条。多轮对话性能最易下降的任务有三特征:①生成式(非抽取);②足够复杂(可切出 3+ 片);③non-episodic——每个新分片需要改动整个解。
- 建议为适用任务发布分片版本数据。
对话系统用户(G.4)
- “有时间就重开对话”——模型迷失后继续纠缠无效;新对话+同样信息往往更好(随机性还可能带来额外机会)。
- “重试前先整合”——把散落多轮的需求合并成单条指令再重试;可让模型代劳(“请把我说过的所有内容整合成一条指令”)再带入新对话。
- 这些只是权宜之计,根本出路仍是可靠的 LLM。
七、结论
- 大规模单/多轮模拟证明:同一组任务上,LLM 在多轮欠指定设定下性能显著退化——“迷失在对话中”:跨轮上下文保持困难、过早假设、过度依赖先前回复,表现为可靠性大幅下降。
- 已有补救手段(agent 式重申、降低温度)在多轮场景均无效。呼吁 LLM 开发者把多轮可靠性当作与能力同级的优化目标。
附录 F:对话迷失的四个根因(定量)
- 过早作答(F.1):按"首次尝试作答"在对话中的位置分 5 档,所有模型一致:越早作答表现越差。首次作答落在前 20% 进度的对话平均 30.9 分,等到最后 20% 才作答的对话 64.4 分。(仅 Code、Math 可分析,其余任务模型几乎首轮就作答。)
- 答案膨胀(F.2):SHARDED 下第 1 次作答长度与 FULL/CONCAT 接近,但后续每次作答越来越长,最终作答比单轮长 20-300%(answer bloat):模型不推翻先前错误假设,而是在其上叠加。即便最终答对,多轮下的正确解也更长(Code:850 vs 668 字符,+27%;Database:129 vs 113 字符,+14%)。
- 中间轮遗忘(F.3):Summary 任务引用分析显示,第 8 轮生成的摘要中引用第 8 轮文档占 20%,而引用第 2、3 轮文档仅 8%(150% 差距)——模型主要关注首轮与末轮、轻视中间轮。即 “lost in the middle” 从单轮长上下文延续到了多轮对话(loss-in-middle-turns);强模型该效应更轻。
- 过度冗长(F.4):按回复长度五分位分组,6 个任务中 5 个任务上"最短回复"组比"最长回复"组性能高 10-50%(平均 40.7 vs 35.6)。长回复更易引入未经确认的假设;短回复(如单个澄清问题)反而让对话保持正轨。冗长既伤性能又伤阅读体验。