人工智能 频道

为什么大语言模型在对话中会“迷失”?

  微软研究院和 Salesforce的一篇新论文发现,即使是功能最强大的大型语言模型,如果面临的指令是分阶段而非一次性给出,往往也会表现不佳。该文作者运行六项任务进行研究,最终发现:当提示被拆分成多个回合时,大语言模型的性能平均下降了39%。  

单轮次对话(左图)可获得更优结果,但对最终用户而言显得并不自然。多轮次对话(右图)则会导致即使是目前排名最高、性能更优的大语言模型也会在对话中失去原本的有效动力。来源:https://arxiv.org/pdf/2505.06120

  更为严重的问题是:大语言模型响应的可靠性出现了大幅下降。即便是像ChatGPT-4.1以及Gemini 2.5 Pro 这样备受用户推崇的一线知名模型,面临同样的任务时,用户指令方式稍有不同,答案有可能从近乎完美一下子跌落到明显错误。另外,输出的一致性在这个过程中有可能会下降一半以上。

  为了探究这个问题,该论文引入了一种名为“分片”的方法,运用该方法,将原本完整而明确的提示,拆分成较小的片段,并逐个地发布到对话中。

  简单来说,这就好比是你在餐厅里向服务员下了一个完整详细的的订单,服务员们照着订单一步步来,或者他们也可以一块集体协商来共同搞定。  

两种极端形式的餐厅对话(并非出自新论文,仅作举例之用)

  为了强调这一问题,上述例子或许会将客户置于一种比较尴尬的境地。但第二列对话呈现了一个核心思想:交易性交互方式。在解决实际问题之前先明确所有的问题集——很显然,这是是一种合理明确并且合乎逻辑的处理任务方式。

  这种设定思路逐步体现,当下对大语言模型交互逐渐采用渐进式、分段式方法。作者指出,大语言模型经常会生成过长的响应,即便是在这些响应被反馈为是错误的或不相关的之后,它们仍会继续依赖自身并不正确的分析见解。这种倾向一旦再与其他不利因素相结合,有可能会导致系统完全失去对交流的掌控。

  事实上,研究人员发现的这一现象,正和我们许多人的日常经验不谋而合——要让交流重回正轨,最好的办法是与大语言模型开启新的对话。

  “如果与大语言模型的对话未能达到预期效果,那么重新开启一个包含相同信息的对话,可能会比继续当前的对话取得更好的效果。

  这是因为当前的大型语言模型可能在对话过程迷失方向,而且我们的实验表明,继续与该模型持续进行对话是没有意义的。此外,由于大型语言模型生成的文本具有随机性,开启新的对话可能会带来更好的结果。”

  作者指出,诸如“Autogen”或“LangChain”这类具备自主性的系统有可能通过充当终端用户与大型语言模型之间的解释层来改善结果,只有在收集到足够多的“碎片化”响应并将其整合成一个连贯的查询(该查询并不会被终端用户所知晓)时,它们才会与大语言模型沟通交流。

  然而,作者认为无需专门构建独立的抽象层,亦可将相关功能直接集成至源大语言模型中。

  有一种观点认为,对大语言模型来说,多轮对话能力并非必不可少的功能,因为这个需求可以交给智能体框架来处理。也就是说,既然智能体框架能完成与用户的互动,大语言模型只是当作单轮对话的工具来用,那我们究竟还需要大语言模型本身具备多轮对话功能吗?…

  但在对一系列实例进行测试后,他们得出结论:

  [依靠] 以类似自主智能体的方式来处理信息会存在局限性,我们认为大语言模型应当具备原生支持多轮交互的能力。

  这篇趣味盎然的新论文题目为《大语言模型会在多轮对话中会迷失》,作者为来自微软研究院和Salesforce公司的四名研究人员。

  碎片化的对话

  新方法首先将传统的单轮指令分解为很小的片段,并在大语言模型交互过程中的关键时刻将这些小片段引入,ChatGPT以及Google Gemini 这样的系统就应用了这种结构,呈现出具备探索性、来回往复参与的互动风格。

  每条原始指令都是一个独立完整的提示,一次性完成整个任务,其中涵盖一个进阶问题、相关背景信息以及其他所有必要的条件。而分片版本则将此任务指令分解为多个较小的部分,每个分片仅仅提供其中的一条信息:  

两组指令分别展示了(a)在单轮次交互中给出的完整提示,以及(b)用于模拟不完整且多轮次交互的分片版本。从语义上来看,两者表述的为相同的信息内容。

  第一个分片内容基本上都是介绍任务的主要目标,其余分片则会提供更详细的信息。它们共同传达了与原始指令一致的信息,只不过分散地分布在对话的多个轮次中,并且自然而流畅。

  每个模拟对话都由三个部分组成:1、助手,是一个被评估的模型;2、用户,一个能够访问分片形式完整指令的模拟智能体;3、一个负责监督和评估对话过程并给出评分的系统。

  对话开始时,用户给出第一个分片,然后助手自由作出响应。紧接着,系统会将该响应归类为若干类别中的一种,比如是需要澄清请求还是需要尝试完整回答。

  如果模型确定尝试回答,则会有一个独立组件提取出用于评估的相应段落,而忽略其周围的其他文本。在每次新的轮次中,用户会给出一个新的分片,从而驱动模型给出另一轮响应。交流会这样一直持续下去,直到模型给出了正确的答案或者没有分片提供了为止:  

模拟分片对话的图表,其中经过评估的模型以红色突出显示。

  早期测试表明,模型常常会询问尚未分享的信息,因此作者放弃了按照固定顺序给出分片的思路。取而代之的是,使用模拟器,根据交流的进展情况来决定接下来要给出哪一分片。

  这种情形下,基于GPT-4o-mini 的用户模拟器被授予全部指令和对话历史的完全访问权限,它的任务就是在每一轮次中,根据交流的进展情况,决定接下来给出哪一分片。

  用户模拟器还会对每个分片进行重新表述,以保持对话的连贯性,但并不会改变其原意。这使得模拟能够反映出真实对话中的“公平和互动”,同时能够保持对任务结构的控制。

  在对话开始之前,助手仅能获取到完成任务所需的基本信息,例如数据库架构或 API 应用。它不会被告知指令会被拆分,也不会被引导采用任何特定的方式来处理对话。这样做是有意为之的:在实际应用中,模型几乎从未被告知过提示信息可能不完整或者以后会更新,省略这一背景信息有助于模型在模拟中的行为方式更接近真实情境。

  GPT-4o-mini 还被应用于如何对模型的回复进行分类,并从这些回复中提取最终答案。这有助于模拟保持灵活性,但也偶尔会出现错误:不过,作者在手动检查了数百次对话后发现,只有不到5%的对话是多少有些问题的,并且因为这些错误而导致结果发生变化的情况不到 2%。他们认为,在该项目的参数范围内,这个错误率已经是很低了。

  模拟场景

  作者使用五种类型的模拟测试,来测试模型在不同情形下的表现,每种模拟都设定了不同的指令呈现方式及呈现时间。

  在“完整”设置下,模型在一轮交互中就能接收到全部指令。这代表了标准的基准格式,并作为性能的基准值。

  “分片”设置会将指令拆分成多个部分,并逐个进行传递和给出,从而模拟出一种更贴近现实的、表述并不明确的对话场景。这种设置方式主要用于测试模型对多轮输入的处理能力。

  在“拼接”设置中,各个分片会被重新组合成一个单独的列表,保留其原有的表述方式,但取消了逐段的结构。这有助于模型将分片后的对话与重新表述的或内容丢失的对话区分开。

  “回顾”模式的运行方式与“分片”模式类似,但增加了一个最终环节,即首先重新阐述之前的所有片段,然后模型给出最终答案。这一环节旨在测试摘要提示是否有助于恢复丢失的上下文背景信息。

  最后,“雪球”则更进一步,在每一个轮次重复先前的所有分片,确保完整指令在对话进程中始终清晰可见,并提供了一个更宽容的多轮次能力测试。  

基于分片指令的模拟类型。一个完整的提示会被拆分成较小的部分,然后这些部分可以用于模拟单轮次(完整、拼接)或多轮次(分片、回顾、雪球)的对话,具体取决于信息的发布速度。

  任务和指标

  六项生成任务,涵盖了编程和自然语言两个领域:代码生成提示来自HumanEval和LiveCodeBench;文本到SQL查询来自Spider;API 调用基于伯克利函数调用排行榜中的数据构建;基础数学问题由GSM8K提供;表格标注任务基于ToTTo;多文档摘要则取自Haystack数据集的摘要。

  模型性能通过三个核心指标来衡量:平均性能、智能力以及不可靠性。

  平均性能反映了模型在多次尝试中的整体表现优劣;智能力则显现了模型在最高分输出时可以达到的更优结果;而不可靠性则衡量了这些结果之间的差异程度,结果之间的差距越大,表明其行为的稳定性越差。

  所有分数都在0至100范围之内,以确保各项任务的评分的一致性,并对每条指令计算制定相关指标,取其平均值,从而得出模型整体性能的综合评估结果。  

实验中使用了六项分片任务,涵盖了编程和自然语言生成两个方面。每项任务都附有详细说明以及其分片版本。针对每项任务,从已有的基准测试中选取了 90 到 120 条指令进行改编。

  竞争者和测试

  在初始模拟中(预计成本为5000美元),对包含了六项任务的600 条指令进行分片,用于模拟三种对话类型:完整型、拼接型和分片型。对于模型、指令以及模拟类型的每种组合,全部运行十次对话,共产生了超过20万次模拟——这种模式能够获取对整体性能、潜在智能力以及可靠性的衡量指标。

  他们共对15个模型进行了测试,涵盖了众多不同的提供者和架构:OpenAI的模型GPT-4o(2024年11月20日版本)、GPT-4o-mini(2024年7月18日版本)、GPT-4.1(2025年4月14日版本)以及思考模型o3(2025年4月16 日版本)。

  Anthropic模型为Claude 3 Haiku(2024-03-07)和 Claude 3.7 Sonnet(2025-02-19),可通过Amazon Bedrock获取。

  谷歌则提供了Gemini 2.5 Flash(预览版-04-17)和Gemini 2.5 Pro(预览版-03-25)。元模型包括Llama 3.1-8B-Instruct、Llama 3.3 - 70B-Instruct以及通过Together AI提供的 Llama 4 Scout - 17B - 16E。

  其他条目包括OLMo2 13B、Phi-4和Command-A,均通过Ollama 或Cohere API本地获取;另外还有Deepseek-R1,通过Amazon Bedrock获取。

  对于这两个“思考”模型(o3 和 R1),令牌数量上限被提高到了 10,000,以适应更长的推理链:  

每个模型在六项任务(代码、数据库、操作、数据转文本、数学和总结)中的平均性能得分。显示了三种模拟类型(完整型、拼接型和分片型)的结果。模型按照其完整设置的平均得分进行排序。阴影部分表示与完整设置相比的性能下降程度,最后两列报告了拼接型和分片型相对于完整型的平均下降幅度。

  关于这些结果,作者指出:

  总体看来,比较“完整模式”和“分片模式”的性能,每个模型在每个任务上后者的性能都会出现下降,平均下降幅度为39%。我们将这种现象称为“对话中的迷失”:在完全明确、单轮次对话的实验室式环境中表现出色(90%以上)的模型,在对话条件不明确且为多轮次的条件下,在相同的任务上性能表现却不佳。

  拼接模式分数平均达到了完整模式分数的 95%,这表明在分片设置下出现的性能下降并不是由于信息的丢失。较小的模型,如 Llama3.1-8B-Instruct、OLMo-2-13B 和 Claude 3 Haiku,在拼接模式下表现出了更明显的下降,这说明:较小模型在对重新表述的适应性上弱于较大模型。

  作者观察到:

  令人惊讶的是,性能更加出色的模型(如Claude 3.7 Sonnet、Gemini 2.5、GPT-4.1)在对话中同样也会陷入同样的困境,其表现与较小模型(如Llama3.1-8B-Instruct、Phi-4)相当,平均性能下降幅度为 30%至 40%。这在一定程度上是由于指标定义所致。由于较小的模型在完整模式测试中获得的绝对分数较低,因此它们的性能下降空间小于性能出色的模型。

  总之,无论大型语言模型单轮次对话的性能有多么出色,我们在多轮次对话的场景中都会观察到其性能出现大幅下降的情况。

  初步测试表明,一些模型在特定任务中表现很出色:比如Command-A在行动方面;Claude 3.7 Sonnet 以及GPT-4.1 在代码方面;Gemini 2.5 Pro在数据到文本方面。这表明多轮次对话能力会因领域不同而有所差异。而诸如 o3 和Deepseek-R1这样的推理模型总体表现并不更好,可能是因为它们较长的回答引入了更多的假设,这往往会导致对话变得混乱。

  可靠性

  智能力和可靠性之间的相关关系,在单轮次模拟中明确存在。但是在多轮次条件下却似乎并不是这样。后者情形下,智能力只是有所下降,但不可靠性却平均翻倍。在完整模式提示中表现稳定的模型,如 GPT-4.1 和 Gemini 2.5 Pro,一旦指令分片化,就会与性能较弱的模型(如 Llama3.1-8B-Instruct 或 OLMo-2-13B)一样,变得异常不稳定。  

箱线图展现出所示的智能力与不可靠性的概况(a) ,然后是针对15 个模型进行实验得出的可靠性结果(b),以及将指令分割成为1到8个分片并逐步分片测试的结果(c)。

  在同一任务中,模型响应结果有时会相差多达 50分,即便不添加任何新的内容也是如此,这表明性能下降并非是由于技能不足,而是因为模型在连续的交互过程中变得越来越不稳定了。

  论文指出:

  [尽管] 更好的模型通常在多轮次推理能力方面略胜一筹,但所有模型在不可靠性方面表现都比较一致。也就是说,在多轮次且信息不充分的场景下,我们测试的所有模型都表现出极高的不可靠性,对于固定的指令,模拟运行时,其最差表现较之更优表现平均性能下降幅度约为50个百分点。

  为了探究性能下降是否与轮次数有关,作者进行了逐步分片实验,将每条指令拆分为1到 8个分片(参见上图最右侧一列)。

  随着分片数量的增加,不可靠性也随之稳步上升,这说明即使只是少量增加轮次数也会使模型变得更加不稳定。智能力水平基本保持不变,这进一步表明问题在于一致性,而不是智能力。

  温度控制

  他们另外进行了一组独立的实验,以验证这种不可靠性是否由随机性造成。为此,作者将助手和用户模拟器的温度设置分别设定为三个不同的值:1.0、0.5 和 0.0。

  在诸如完整和拼接这样的单轮次操作模式中,降低助手的温度显著提高了可靠性,差异多达80%;但在分片设置中,同样的干预措施却效果甚微:  

在完整、拼接和分片设置下,助手和用户温度的不同组合的不可靠性评分,数值越低表示响应一致性越好。

  即便将助手和用户的温度都设置为零度,系统的不可靠性仍然很高,GPT-4o的表现波动率约为30%,这表明在多轮次对话中所观察到的不稳定现象并非仅仅是随机的干扰,而是模型在处理分片化输入时所存在的结构性缺陷。

  意义

  在论文的结论中,作者详细阐述了他们这些研究结果的重大意义。他们指出,强大的单轮次性能并不能绝对保证多轮次交互的可靠性,并告诫用户在评估实际应用的可行性时,不要过度依赖完全详尽的基准测试(因为这类基准测试往往会掩盖实际应用时更自然、分散的交互中所存在的不稳定因素)。

  他们还指出,不可靠性的存在并非仅仅是样本选取造成的偶然现象,而是一种当前模型在处理不断变化的输入时所存在的根本性的缺陷。此外,他们还认为这种情形给依赖于连续推理的智能体框架带来了隐患。

  最后,他们认为,多轮次对话能力应当被视为大语言模型的核心能力,而不应将其转交给外部系统来处理。

  作者指出,他们的研究结果很可能还是低估了问题的真实严重程度,并强调了测试的理想条件:他们所使用的用户模拟器能够完全获取指令,并能以更优顺序揭示分片化信息,这为助手提供了极有利的理想化的上下文背景条件(但在实际使用中,用户往往会提供零零碎碎或模棱两可含糊的提示,并且用户也不会体贴地想到模型接下来需要接受到什么内容)。

  此外,在每轮次对话结束后,都会立即对助手进行评估,而不是等到整个对话结束后才进行评估,这样可以避免每轮次对话之后出现的混淆或自相矛盾,否则这些情况会进一步影响性能。这些做法虽然对于实验控制是必要的,但这就意味着,实际操作中遇到的可靠性差距很可能比实验所报告的要大。

  他们得出结论:

  [我们] 认为开展的模拟实验为大语言模型的多轮次对话能力提供了一个安全的良性的测试环境。由于模拟实验条件比较简化,尽管我们在实验中观察到了性能下降,但很有可能还是低估了大语言模型的不可靠性以及大型语言模型在实际对话中频繁迷失方向严重程度。

  结论

  任何使用过一段时间大语言模型人都可能会从实际应用中感受到这里所阐述的问题;我想大多数人也都会本能地放弃那些与大语言模型之间“丢失”的对话,转而开启新的对话,寄希望于大语言模型可以“重新开始”,而不是一直纠结于那些在冗长、繁琐且愈发令人恼火的交流中出现的内容。

  值得注意的是,为问题中提供更多的上下文背景信息未必就能解决问题;并且实际上看来,这篇论文提出的问题比给出的答案还要多(除了绕过问题的方法这个方面)。

  原文链接:https://www.unite.ai/why-language-models-get-lost-in-conversation/

0
相关文章