Ask, Then Think: Does Socratic Prompting Help LLMs on Code Tasks?
该论文介绍了 \textsc{MIND},一种针对大语言模型的苏格拉底式提示框架,尽管其在理论上植根于人类推理,但在代码任务上未能超越诸如思维链(Chain-of-Thought)等既有基准模型,并且往往因不必要的推理开销而表现不佳,这表明只有特定的、孤立的推理机制而非人类推理理论的整体迁移才能产生益处。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在现代软件工程的版图中,一种新型工具已经出现:大型语言模型。这些是经过海量文本和代码训练的计算机系统,能够生成计算机指令、修复损坏的程序或解释一段软件是如何运作的。它们已成为强大的助手,但并非无懈可击。当面对模糊的指令、缺失的细节或错误的假设时,这些系统经常会产生错误。为了帮助它们更清晰地思考,研究人员开发了各种提示策略。这些是要求模型处理问题的特定方式,例如鼓励它在给出答案之前先列出步骤。其目标是让机器从简单的猜测转向对任务进行推理,就像人类那样。
来自意大利、荷兰和丹麦大学的一个研究小组着手测试一个特定的想法:他们能否让这些计算机系统思考得更像人类哲学家?他们借鉴了苏格拉底式教学法,这是一种古老的教学风格,其中教师通过提出一系列探究性问题,帮助学生发现自己思维中隐藏的缺陷。教师不仅仅接受学生的第一个想法,而是挑战假设,指出缺失的信息,并迫使学生在得出结论之前完善其逻辑。研究人员想知道是否可以将这个人类过程转化为计算机模型的指令集。他们创建了一个名为 MIND 的新框架,代表“助产术式推理与发现”(Maieutic INference and Discovery)。该系统旨在让计算机在编写任何一行代码之前,先停下来对自己进行的编码任务提出困难的问题。它旨在扮演自己的批判者,检查歧义并测试自己的计划。
该团队在大规模范围内对这一想法进行了测试。他们使用十二种不同规模和架构的计算机模型进行了实验,并在四组不同的编程挑战上进行了测试。这些挑战涵盖了生成新代码、修复损坏的代码、解释代码如何运作以及编写高效代码。他们将这种新的苏格拉底方法与几种成熟的计算机提示方法进行了对比,包括那些仅仅要求模型逐步思考或在看到草稿后完善其答案的方法。结果令人惊讶且有些反直觉。苏格拉底方法并没有让计算机更好地完成工作。事实上,使用苏格拉底方法的模型表现得更差。使用该方法的模型准确性较低,且产生答案所需的时间显著增加。平均而言,该方法生成解决方案所需的时间几乎是标准逐步思考方法的五倍,但仍然犯了更多的错误。
研究人员进行了深入调查以了解发生这种情况的原因。他们将苏格拉底过程分解为各个部分,一次移除一个步骤,以观察哪些步骤是有益的,哪些是有害的。他们发现,要求计算机怀疑请求或质疑其初始计划的部分实际上损害了性能。当模型被迫问自己“这个请求是否模糊?”或“我正在做出什么假设?”时,它往往基于猜测而非事实来为这些问题编造答案。因为计算机既是提问者又是回答者,它没有可以纠正它的对象。它会做出一个假设,说服自己是正确的,然后基于这个错误编写代码。在提问过程中,唯一似乎有帮助的部分是要求模型回忆它已知确定的内容。然而,即使是这点微小的益处,也无法抵消自我怀疑步骤造成的损害。
这项研究表明,苏格ра底教学法虽然对人类非常有效,但当模型被留给独自进行自我对话时,并不能直接转化为计算机模型。对于人类学生,教师提供了纠正错误所需的外部视角。对于计算机模型,提示词中没有外部教师;它只是模型在自言自语。研究人员发现,模型的内部“批判”往往会导致它走向错误的路径,从而强化自身的错误而非纠正错误。最有效的策略仍然是最简单的那个:要求模型清晰地思考步骤,而不是在它有了可以批判的解决方案之前,强迫它审视自己的推理。研究得出结论,虽然人类推理理论可以启发与计算机交流的新方式,但复制整个人类过程并不保证能获得更好的结果。有时,帮助计算机思考最有效的方法是让它专注于手头的任务,而不是让它质疑自己的存在。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。