NL2Scratch: An Executable Benchmark and Evaluation for Block-Based Programming
本文介绍了 NL2Scratch,这是一个大规模可执行基准测试以及用于解决传统 NL2Code 在积木式编程中评估局限性的语义对齐一致性(SAC)指标,揭示了当前的语言大模型虽然通常能获得较高的词法相似度,却往往无法捕捉到生成正确 Scratch 程序所需的语义对齐。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在教一个机器人根据你的口头指令画图。如果你说,“画一个红色的圆圈”,机器人需要理解“红色”和“圆圈”到底是什么意思,以及如何将它们组合在一起。
这篇论文介绍了一个名为 NL2Scratch 的新测试,旨在观察 AI 在处理此类任务时的表现,但它有一个特别之处:AI 不是通过编写文本代码(如 Python),而是通过使用 Scratch 积木来构建程序。Scratch 是一种孩子们用来制作游戏和动画的彩色拖拽式编程语言。
以下是这篇论文故事的拆解,使用了简单的类比:
1. 问题所在:“看起来不错”的陷阱
多年来,研究人员一直在通过文本编程来测试 AI。他们检查 AI 的答案是否与正确答案看起来相似(比如检查两个句子是否共享相同的单词)。
但 Scratch 是不同的。它就像一套 乐高积木。
- 在文本编程中,如果你漏掉一个逗号,整个句子可能会崩溃。
- 在 Scratch 中,你可以拥有正确的“积木类型”(比如一个“移动”积木、一个“重复”积木)以及其中正确的“单词”,但如果你把它们放错了顺序,或者连接到了错误的触发器上,游戏就无法运行。
该论文认为,目前的 AI 测试就像仅仅通过数一数用了多少块红砖和蓝砖来评判一座乐高城堡。如果 AI 使用了正确数量的红砖和蓝砖,测试就会说“做得好!”,即便这座城堡因为砖块堆叠倒置而倒塌了。
2. 解决方案:一个新的测试和一个新的标尺
作者构建了 NL2Scratch,这是一个包含 311,000 个示例的海量库。
- 来源: 他们使用了人类制作的真实 Scratch 项目。
- 转换: 他们利用 AI 为这些项目编写了自然语言形式的英文描述(例如:“当绿旗被点击时,让猫移动 10 步”)。
- 过滤: 他们确保每一个示例都能在 Scratch 引擎中实际运行。
新的标尺 (SAC):
他们发明了一个名为 语义对齐一致性 (Semantic Alignment Consistency, SAC) 的新测量工具,而不是仅仅通过计数匹配的单词。
- 这可以看作是一个 清单。
- 它是否提到了正确的 触发器(比如绿旗)?
- 它是否提到了正确的 动作(比如移动)?
- 它是否包含了正确的 数字(比如 10 步)?
- SAC 会检查清单上的每一项。如果 AI 对“触发器”对了但对“数字”错了,清单就会显示一个红色的 X,即使句子的其余部分看起来非常完美。
3. 重大发现:AI 擅长模仿,但不擅长理解含义
研究人员在这一新测试上测试了几种智能 AI 模型(如 GPT-4 和开源模型)。以下是他们的发现:
- 成功的幻觉: 当使用旧式的测试方法(计数单词)时,AI 表现得非常出色。它能写对 93% 到 97% 的单词。它听起来就像完全知道该做什么一样。
- 现实检验: 当他们使用新的 SAC 清单 时,AI 的得分大幅下降。只有大约 18% 的 AI 回答在含义上是 完全 正确的。
- “长线”问题: Scratch 项目越长、越复杂,AI 在把握细节方面就表现得越差,尽管它听起来仍然与正确答案非常相似。
AI 在哪里失败了?
AI 擅长处理“大局”(知道它需要一个“循环”或一个“变量”)。但它总是在 操作细节 上出错:
- 它会说“向前移动”,而实际上应该是“向后移动”。
- 它会说“重复 10 次”,而实际上应该是“重复 5 次”。
- 它会弄错条件(例如,“如果碰到墙壁” vs “如果碰到猫”)。
这就像一个学生完美背诵了词汇表,却因为把加法做成了减法而导致数学题不及格。
4. 修复方案:“第二意见”
论文还展示了你可以利用这个新清单 (SAC) 在 AI 生成答案 之后 来修正它的错误。
- 想象 AI 写了 10 个不同版本的程序。
- 与其只挑选第一个,不如将所有 10 个版本都通过 SAC 清单进行检查。
- 你挑选出那个最符合清单要求的版本。
- 结果: 仅仅通过这一个简单的步骤,就在不需要重新训练 AI 或教授它任何新知识的情况下,显著提高了 AI 的准确率。
总结
论文得出结论:对于基于积木的编程(如 Scratch)而言,仅仅看起来相似是不够的。AI 可以听起来像个程序员,但实际上并不具备程序员的思维。要真正评估该领域的 AI,我们需要检查“齿轮和轮子”(具体的动作和数字),而不仅仅是“油漆涂层”(单词)。他们已经构建了能够做到这一点的工具。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。