← 最新论文
🤖 AI

Strategies for Guiding LLMs to Use Software Design Patterns: A Case of Singleton

本文在 164 个 Java 挑战中评估了 13 种大型语言模型的四种提示策略,以确定如何最佳地引导它们实现单例设计模式,发现迭代式二元反馈通常是最优的,而基于具体指令的方法则能实现近乎完美的模式遵循,并根据模型不同显著提升代码功能。

原作者: Viktor Kjellberg, Farnaz Fotrousi, Miroslaw Staron

发布于 2026-05-27
📖 1 分钟阅读☕ 轻松阅读

原作者: Viktor Kjellberg, Farnaz Fotrousi, Miroslaw Staron

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你拥有一支才华横溢但略显混乱的初级厨师团队(这些就是大型语言模型,或称 LLM)。他们擅长遵循食谱烹饪出美味佳肴(编写功能正常的代码)。然而,他们常常忘记关于厨房本身应如何组织的“厨房规则”。他们可能煎出了一块完美的牛排,却可能让炉火一直开着、为一道菜用了三个不同的锅,或者忘记锁上后门。

在软件世界中,这些“厨房规则”被称为设计模式。其中一条特定规则叫做单例模式。你可以将单例模式想象为这样一条规则:“整栋大楼只能有一把总钥匙,所有人都必须从这把唯一的钥匙获取副本。”它确保软件的特定部分(如汽车引擎或数据库连接)只被创建一次,并由所有人共享,而不是为一辆车制造十台不同的引擎。

研究人员发现的问题是:虽然这些 AI 厨师能烹饪出菜肴,但除非你明确指示他们,否则他们往往会忘记遵循“一把总钥匙”的规则。

实验:教导厨师遵守规则

研究人员希望找到最佳方法,教导这些 AI 厨师遵循“一把总钥匙”规则,同时不破坏他们正在烹饪的菜肴。他们使用 164 个不同的烹饪挑战(编码任务),测试了 13 个不同的 AI 模型(来自不同的“家族”,如 GPT、Llama 和 Qwen)。

他们尝试了四种不同的教学策略:

  1. “照做就行”的指令:他们简单地告诉厨师:“嘿,确保你使用‘一把总钥匙’规则。”

    • 结果:有些厨师立即理解并完美完成。另一些则感到困惑,开始在烹饪过程中出错(代码无法运行)。这完全取决于你询问的是哪位厨师。
  2. “是/否”反馈循环:厨师烹饪后,由机器人检查员检查厨房。如果厨师未使用“一把总钥匙”规则,机器人只说:“不行,再试一次。”厨师必须猜测哪里出错并再次尝试。

    • 结果:这帮助很大。厨师们从错误中学习,最终正确掌握了规则。对某些厨师而言,这甚至让菜肴味道更好(代码运行得更加可靠)。
  3. “详细报告”反馈循环:这就像机器人检查员提供一份具体的检查清单。它不只是说“不行”,而是说:“你忘记了门上的私人锁”,或者“你没有把钥匙放在主厅”。

    • 结果:这对大多数厨师最有帮助。通过确切知道缺少了什么,他们可以精准修复。这一策略使最多厨师完美遵循了规则。
  4. “展示与讲解”(少样本)方法:研究人员向厨师展示了两个完美使用“一把总钥匙”规则的厨房示例,然后让他们再次尝试。

    • 结果:效果参差不齐。有些厨师喜欢这些示例并表现出色。另一些则被示例搞糊涂,表现反而比以前更差。

主要结论

论文总结了三个要点,并翻译为我们的厨房类比:

  • 你可以教导他们,但方法至关重要:你绝对可以让这些 AI 厨师遵循“一把总钥匙”规则。然而,最佳教导方式取决于你使用的是哪一位厨师。对厨师 A 完美有效的策略可能会让厨师 B 感到困惑。
  • 反馈是秘密酱料:仅仅告诉他们去做是可以的,但指出他们具体做错了什么要好得多。如果你确切告诉他们遗漏了规则的哪一部分(例如“你忘记了锁”),他们学得更快,犯错更少。
  • 不要破坏菜肴:研究人员曾担心,强迫厨师遵循这条新规则可能会破坏菜肴的味道(破坏代码的功能)。令人惊讶的是,对于许多顶级厨师而言,遵循规则实际上让菜肴变得更好。然而,对于某些较弱的厨师,尝试遵循规则反而让菜肴变得无法食用。

核心结论

研究人员发现,要让 AI 遵循软件设计规则,并不需要复杂的魔法。有时,只需给出清晰的指令就有效。其他时候,你需要扮演一位严格但乐于助人的老师,明确指出具体遗漏了什么。关键在于:不存在“放之四海而皆准”的解决方案;你必须选择最适合你所使用的特定 AI 模型的教学风格。

注意:该论文仅针对 Java 代码(一种特定的编程语言)以及“单例”规则进行了测试。他们并未在医疗诊断、财务建议或其他现实世界应用中进行测试。他们仅仅证明了,通过恰当的提示,AI 可以学会遵循代码中的特定架构规则。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →