Skip to content

Q124 · 从错误分析来看,PS 方法对语义理解错误的改善不明显,可能的原因是什么?有什么改进思路? ​

“小明有 12 颗糖,给小红 3 颗;小红随后还给小明 1 颗。小明现在有几颗?”正确答案是 12 − 3 + 1 = 10。如果答题者把“还给小明”看成“小明又给小红”,他可以先列出完整计划:“从 12 颗出发,减去 3,再减去 1”,随后准确算出 8。计划很完整,算术也没错,但计划针对的是被误读的题目。

这正是 Plan-and-Solve Prompting(PS,先拟计划再求解的提示法)的边界。Q122 已解释 PS 为什么有助于少漏步骤,Q123 解释 PS+ 如何进一步提醒提取变量和检查中间计算。本题继续问:如果第一步的题意理解错了,为什么这些提示仍可能无效?答案要先看论文实际观察到什么,再区分我们对原因的推断。Wang 等:Plan-and-Solve Prompting,ACL 2023

术语与符号 ​

术语或符号这篇文章中的含义糖果题的对应物
大语言模型(LLM)根据输入文字生成回答的模型,可能误读语句或算错写出糖果题解答的模型
提示词题目及我们加给模型的回答要求糖果题,加上“先拟计划”
零样本(zero-shot)本次提示不附带已解好的示范题只给当前糖果题与解题要求
思维链(CoT)要求模型写出中间推理步骤的提示做法写出数量变化的算式
Zero-shot-CoT不给示范题,只用简短指令让模型逐步解题“一步一步想”后直接列算式
PS先形成解题计划,再依计划求解的零样本提示先列“初始→给出→还回”,再计算
PS+在 PS 基础上增加变量、数字、中间计算与常识方面的提醒先提取 12、3、1 的含义再计算
漏步错误看到了条件,却在求解时跳过必要步骤只算 12 − 3,漏了还回 1 颗
计算错误运算方向和步骤对了,但算术错了把 12 − 3 + 1 算成 11
语义理解错误对题目动作、角色、关系或目标的理解有误把“小红还给小明”看成“小明又给小红”
已核对的题意表示把自然语言先拆成可核验的“谁、做什么、对谁、数量”第二次转移是“小红→小明,1 颗”

这里的“语义”就是句子在此题里表达的关系:谁拥有糖、谁把糖交给谁、最后问谁的糖数。它不是“这句话读起来是否通顺”。“理解错误”也不是“最终数字错”的另一个名字:模型即便算术全对,只要把转移方向看反,仍属于题意误解。

误读“还给”会产生完整却错误的减法计划,先核对糖果转移方向才能得到 10 颗

图上方故意展示一个假设的错误解题路径,并非论文里的原题或真实模型输出;下方是先核对“还给”动作方向后的正确路径。图只呈现一处语义错误怎样传播,不能证明某种提示对全部题型都有效。

原论文观察到了什么 ​

论文从 GSM8K(一组小学水平文字数学题数据集)随机抽取 100 道题,让同一研究设置下的 Zero-shot-CoT、基础 PS 和 PS+ 分别作答,再人工分析错误类型。表 6 给出的分布如下,数字的分母都是这 100 道题,不是各方法自己的错误题数:原论文第 4 节“Error Analysis”及表 6

方法答错题数 / 100计算错误漏步骤错误语义理解错误
Zero-shot-CoT4671227
基础 PS4371026
PS+395727

例如表里的“PS+ 语义理解错误 27%”,意思是这 100 道样本中有 27 道被归为该类,并非“PS+ 答错的 39 道中有 27%”。也不能把 27 → 26 → 27 解读成严格单调变化:基础 PS 比 Zero-shot-CoT 少 1 道,PS+ 则与 Zero-shot-CoT 同为 27 道。更稳妥的概括是:在这组样本里,PS/PS+ 对语义误解没有表现出像漏步骤与计算错误那样明显的下降。PS+ 的总体答错题数仍从 46 降至 39,所以也不能说“PS+ 完全无效”。

作者在论文的“Limitations”中明确说,计划求解式提示能帮助处理计算和漏步错误,但语义误解仍然存在,未来将探索如何通过提示而非只靠升级模型解决。作者没有用这 100 道题证明某一个具体改进办法已经有效;表 6 是一次特定模型、提示和样本设置的错误分析,不能直接推广为当前所有模型的固定错误率。原论文第 7 节“Limitations”

为什么先计划仍可能沿着错误题意走到底 ​

先看糖果题的正确解释。起点是小明 12 颗。第一句“给小红 3 颗”使小明减少 3 颗,得到 9。第二句“小红还给小明 1 颗”使小明增加 1 颗,得到 10。题目问“小明现在有几颗”,所以最终回答 10。

误读发生在计划之前。若模型把第二句理解为“小明又给小红 1 颗”,它会形成“初始 12、先减 3、再减 1”的计划。这个计划甚至满足 PS 的形式要求:有步骤、有顺序、每步都能算。后续求解给出 8,也与这份错误计划一致。检查 12 − 3 − 1 = 8 的计算器只能证明算术正确,无法证明第二次糖果到底往哪边走。这是我们根据 PS 机制和例子作出的解释,不是论文通过因果实验确定的唯一原因。

PS 的提示说“先理解问题并制定计划”,但没有强制提供一个由题目原文逐项核对的语义表示,也没有外部证据或用户反馈来纠正误读。PS+ 虽提醒提取变量和数字,模型仍可能正确抽到 12、3、1,却把“1 颗”的流向配错。数字提取成功不等于关系提取成功。论文作者也把语义误解与模型理解题目、保持推理连贯的能力联系起来,并在限制部分承认单靠当时的 PS 提示没有解决这类错误。原论文引言与限制部分

另一个合理但需验证的推断是:先写出的计划会影响后续文字生成。若计划早早固定了“减 1”,后续步骤可能围着它展开,输出看起来更整齐,却没有回到题目检查“还给”的主语。这种“早期误读沿计划传播”的机制可在个例中观察,但表 6 本身没有量化它发生了多少次,不能声称论文证明了“规划会导致语义错误”。

怎样把改进放在“拟计划之前” ​

改进应针对意义核对,再让计划和计算接续,而不是重复追加“更认真地思考”。以下是可测试的工程方案,属于基于论文边界提出的设计建议,不是原论文已经验证有效的 PS+ 功能。

先抽取角色、动作与方向,再列计划 ​

让模型先给出简短的题意表,而非直接列算式:

原题片段发出者接收者小明糖数变化
“小明给小红 3 颗”小明小红−3
“小红还给小明 1 颗”小红小明+1

然后将每行与原句核对:第二行的主语是“小红”,接收者是“小明”,所以小明得到 1 颗,符号必须是加号。只有这些关系成立,才生成“从 12 开始,减 3、加 1”的计划并执行。这个检查在“谁给谁”类题上很具体;若题目涉及时间、比例或指代,表示形式也要跟着换,不能只靠这张表解决所有语义问题。

真有歧义时,保留候选解释并求证 ​

如果真实用户只说“他又还了 1 颗”,而上下文里有两个可能的“他”,就不该擅自固定方向。系统可以把两种解释连同各自答案列出,请用户确认是谁还给谁;若业务文档或前文已明确指代,先检索原文核对。没有可核实线索时,明确说“无法唯一确定”,优于写出很自信的 8 或 10。让模型自己生成多个解释也可能让它们共享同一个偏误,因此关键场景仍需原文、标注或人的确认。

用外部检查把“题意覆盖”变成门槛 ​

在结构固定的业务题中,可用程序验证每个数量都与一个角色、动作和单位配对,再用确定性计算器执行算式。对糖果题,程序能检查“第二次转移是否写为小红→小明”,再算出 10。程序需要可靠的结构化输入;如果结构化输入本身由误读的模型生成,程序会认真验证一个错误世界。因此重要判断要能回到原始句子、订单或用户确认,而不是只核算式。

用同一批题检验,而非凭单个漂亮例子判断 ​

把已有题集按“角色方向、指代、比较关系、隐含条件”等语义错误类型标注。固定模型版本、提示长度、解码设置和评分规则,比较 Zero-shot-CoT、PS、PS+ 与“题意表→核对→计划”的方案;分别报告最终正确率、语义错误率、漏步率、计算错误率、输出成本与耗时。重点看曾被误解的那批题是否真的改对,同时没有在其他题引入新错。100 题里的 1 道差异不能直接证明稳定改进;需要更多样本和重复评测。

这些改进仍会在哪些地方失败 ​

题意表也可能由同一个模型填错,尤其是长句、多重否定、复杂代词或专业业务术语;自检若只是重复自己先前的说法,未必能发现错误。多候选解释会增加 token 与延迟,还可能制造本不存在的歧义。计算工具可以排除 12 − 3 + 1 的算错,却不能独立判断“还给”的真实方向。检索到的资料若过期或来源不可靠,也会让所谓“证据核对”失效。

因此在教学题里,我们可以让模型显式标注角色和方向;在真实财务、医疗或法律任务中,应按业务风险增加结构化数据来源、规则校验、人工确认和审计。提示词改进是可测的尝试,不是语义正确的保证。

面试时怎样回答 ​

PS 的强项是先列计划、减少漏步骤;PS+ 再强调变量和中间计算。ACL 2023 原论文在同一批 100 道 GSM8K 题的错误分析里,Zero-shot-CoT、基础 PS、PS+ 的语义误解分别是 27、26、27 道,而漏步骤是 12、10、7 道,所以语义项没有同样明显改善。可能的机制是题意一开始被读错,模型仍能为错误理解列出完整计划并正确算完;这属于对机制的推断,不是论文证明的唯一因果解释。我会在计划前增加角色、动作、方向和目标的显式核对;有真实歧义就澄清或查证,再用程序检查可验证的条件,并在同一批标注过语义错误的题上做对照评测。不能把更长的计划或多数答案当成语义正确的证据。

追问“PS+ 不是已经要求提取变量吗”时,可答:提取 12、3、1 只得到数字,还必须知道 1 是从小红回到小明;错误的关系配对仍会使算式方向相反。追问“为什么不用计算器解决”时,可答:计算器能检验 12 − 3 + 1 = 10,但不能自行判断原句应写加 1 还是减 1。

参考资料 ​

最后更新2026-09-26
难度P1
频率medium
阅读18 min
主题prompting / plan-and-solve / semantic-understanding
觉得有帮助?把这个链接转给正在求职的朋友 · 用 Ctrl + K 全站搜索其它题