Towards Trustworthy AI Software Development Assistance
本文提出了一种用于构建可信人工智能软件开发助手的整体架构,该架构将基于真实场景训练的基础大语言模型与基于图的代码表示、最新的知识图谱以及模块化约束解码框架相结合,以确保生成正确、安全且高质量的代码。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在雇佣一名新的初级程序员来帮你盖房子。你希望他们动作快,但你也需要他们安全、遵守建筑规范,并且能解释清楚为什么选择某种特定类型的砖块。
目前市面上的“AI 助手”就像是那些读了很多书、但从未真正盖过房子的热心实习生。它们能写出看起来正确的代码,但这些代码往往结构不稳、充满了隐藏的陷阱(安全漏洞),或者干脆就是错误的。有时,它们甚至会自信满满地解释一些并不真实的事实。
这篇论文提出了一个蓝图,旨在构建一种全新的、值得信赖的 AI 助手——它不仅仅是在靠猜,而是真正理解如何正确地编写软件。来自德国一所大学的作者们建议,用一个由五个部分组成的“厨房”来烹饪出这种更好的 AI。
以下是他们配方的工作原理,使用了简单的类比:
1. 原料:现实世界的食谱(代表性数据集)
问题: 现在的 AI 模型训练使用的“食谱卡”只是单句指令或孤立的说明。它们不知道如何烹饪一顿完整的饭菜,即前菜、主菜和甜点是如何相互依存的。真正的软件就像一顿复杂的饭菜;改变一种食材会影响整道菜。
解决方案: 作者们想要收集大量的真实、完整的软件项目(就像专业厨师的完整食谱集),而不是随机的代码片段。他们计划仔细清理并组织这些食谱,让 AI 学习现实世界的代码是如何组合在一起的,而不仅仅是死记硬背孤立的单词。
2. 蓝图:观察结构(图表示)
问题: 现在,AI 看待代码就像人类看一段文字一样:一长串单词。但代码不仅仅是文本;它是一张地图。它有交通流(控制流)和数据管道。如果你把一张地图当成一首诗来看,你就会错过道路和桥梁。
解决方案: AI 不再仅仅阅读文本,而是将代码视为一个 3D 蜘蛛网或地铁图(“图”)。这有助于 AI 理解程序的不同部分是如何连接并相互通信的。这就像是从仅仅阅读一份食材清单,转变为真正看到厨房的布局。
3. 味觉测试:持续反馈(代码质量)
问题: 现在的 AI 训练目标仅仅是“得到正确答案”(正确性)。它并不关心代码是否凌乱、难以阅读或不安全。这就像是一个通过猜题来通过考试的学生,并没有真正掌握知识。
解决方案: 作者们提出了一个虚拟的“味觉测试”循环。想象一下,AI 写了一段代码,然后由一组专家“评论家”(自动化工具)对其进行品尝。
- 一位评论家检查安全性(就像卫生检查员)。
- 另一位评论家检查风格(就像美食评论家)。
- 还有一位评论家检查安全性(就像毒素检测器)。
AI 会根据这些检查,针对它写的每一个词获得一个分数,并学习如何改进其“烹饪”技巧,以获得更高的分数,而不只是为了完成这道菜。
4. 参考资料库:了解“为什么”(可解释性)
问题: 当现在的 AI 犯错时,它经常编造一个虚假的理由(“幻觉”)来让自己听起来很自信。这就像一个学生在猜答案,然后又编造了一个故事来解释自己为什么要这么猜。
解决方案: 新系统将附带一本活的百科全书(知识图谱)。在 AI 解释其代码之前,它会先查阅这本百科全书中的事实。如果它建议了修复某个漏洞的具体方法,它可以引用百科全书中的确切讨论或规则来支持它。这确保了 AI 不仅仅是在瞎猜;它在引用它的来源。
5. 安全网:护栏(约束解码)
问题: 即便有了所有的训练,AI 仍然是基于统计学的。它可能仍然会因为觉得某个词出现的“概率”很高,而不小心写下一行会导致系统崩溃或打开安全漏洞的代码。
解决方案: 作者们想在 AI 的输出上设置护栏。把这想象成铁轨。AI 仍然可以选择下一个车厢放什么,但铁轨在物理上防止它掉下悬崖。
- 如果 AI 试图编写违反安全规则的代码,系统会在该词被输入之前就将其拦截。
- 这并不会阻止 AI 发挥创造力,但它保证了最终结果永远不会违反特定的安全或语法规则。
大局观
作者们并不是承诺这会在明天实现。他们正在制定一个长期计划,通过一步步构建来打造这个系统。他们承认,要结合所有这五个部分——更好的原料、更好的地图、持续的反馈、参考资料库以及安全护栏——需要多年的艰苦努力。
然而,如果成功,这个系统将成为一个你可以信任的“虚拟结对编程伙伴”,它可以帮助你构建不仅功能完备,而且安全、可靠且易于理解的软件。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。