SWE-bench Multimodal: Do AI Systems Generalize to Visual Software Domains?

📄 arXiv: 2410.03859v1 📥 PDF

作者: John Yang, Carlos E. Jimenez, Alex L. Zhang, Kilian Lieret, Joyce Yang, Xindi Wu, Ori Press, Niklas Muennighoff, Gabriel Synnaeve, Karthik R. Narasimhan, Diyi Yang, Sida I. Wang, Ofir Press

分类: cs.CL, cs.AI, cs.SE

发布日期: 2024-10-04


💡 一句话要点

提出SWE-bench Multimodal,评估AI系统在视觉软件领域的泛化能力。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 软件工程 多模态学习 代码修复 JavaScript 视觉理解 基准测试 跨语言泛化

📋 核心要点

  1. 现有软件工程AI系统主要在文本型Python代码上评估,缺乏对视觉软件领域的泛化能力考量。
  2. 提出SWE-bench Multimodal,包含来自JavaScript库的617个任务实例,每个实例都包含图像信息。
  3. 实验表明,现有SWE-bench上的优秀系统在SWE-bench M上表现不佳,SWE-agent表现相对较好。

📝 摘要(中文)

用于软件工程的自主系统目前已具备修复错误和开发新功能的能力。这些系统通常在SWE-bench上进行评估,该基准测试评估它们解决GitHub仓库中软件问题的能力。然而,SWE-bench仅使用Python仓库,问题陈述主要以文本形式呈现,缺乏图像等视觉元素。这种局限性促使我们研究现有系统在未被充分代表的软件工程领域(例如,前端、游戏开发、DevOps)中的表现,这些领域使用不同的编程语言和范例。因此,我们提出了SWE-bench Multimodal (SWE-bench M),以评估系统修复面向用户的视觉JavaScript软件中错误的能力。SWE-bench M包含617个任务实例,这些实例来自17个用于Web界面设计、图表绘制、数据可视化、语法高亮和交互式地图的JavaScript库。每个SWE-bench M任务实例在其问题陈述或单元测试中包含至少一张图像。我们的分析发现,在SWE-bench上表现最佳的系统在SWE-bench M上表现不佳,这揭示了视觉问题解决和跨语言泛化的局限性。最后,我们表明SWE-agent的灵活的、语言无关的特性使其在SWE-bench M上显著优于其他方案,解决了12%的任务实例,而次优系统仅解决了6%。

🔬 方法详解

问题定义:现有软件工程AI系统,如代码修复和功能开发,主要在SWE-bench等基准上评估。这些基准侧重于Python代码,问题描述以文本为主,忽略了视觉软件领域(如前端、游戏开发)中JavaScript等语言的特性和图像等视觉信息。现有方法难以有效解决视觉软件中的bug,缺乏跨语言和跨模态的泛化能力。

核心思路:为了弥补现有基准的不足,论文提出了SWE-bench Multimodal (SWE-bench M),这是一个新的基准,专门用于评估AI系统在视觉、面向用户的JavaScript软件中修复bug的能力。SWE-bench M通过引入包含图像信息的任务实例,挑战AI系统在视觉理解和跨语言推理方面的能力。

技术框架:SWE-bench M包含617个任务实例,这些实例来自17个JavaScript库,涵盖Web界面设计、图表绘制、数据可视化等领域。每个任务实例都包含至少一张图像,这些图像可能出现在问题描述或单元测试中。研究人员使用SWE-bench M来评估现有SWE-bench上表现良好的系统,并分析它们在视觉软件领域的性能。

关键创新:SWE-bench M的关键创新在于其多模态特性,它将图像信息融入到软件工程任务中,从而更真实地反映了视觉软件开发的场景。与传统的文本基准相比,SWE-bench M更具挑战性,能够更好地评估AI系统在视觉理解、跨语言推理和多模态融合方面的能力。

关键设计:SWE-bench M的任务实例来自真实的JavaScript库,确保了任务的实用性和相关性。图像信息的引入方式也经过精心设计,以确保图像能够提供有用的上下文信息,帮助AI系统理解问题并找到解决方案。此外,SWE-bench M还提供了评估指标,用于衡量AI系统在修复bug方面的性能。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,在SWE-bench上表现优异的系统在SWE-bench M上的性能显著下降,揭示了现有系统在视觉问题解决和跨语言泛化方面的局限性。其中,SWE-agent在SWE-bench M上表现最佳,解决了12%的任务实例,而次优系统仅解决了6%,表明其灵活的语言无关特性具有优势。

🎯 应用场景

SWE-bench Multimodal的提出,能够促进软件工程AI系统在视觉软件领域的应用。例如,可以用于开发智能代码助手,帮助开发者自动修复前端代码中的bug;也可以用于构建自动化测试系统,提高Web应用的质量和可靠性。该研究将推动AI技术在更广泛的软件开发场景中的应用。

📄 摘要(原文)

Autonomous systems for software engineering are now capable of fixing bugs and developing features. These systems are commonly evaluated on SWE-bench (Jimenez et al., 2024a), which assesses their ability to solve software issues from GitHub repositories. However, SWE-bench uses only Python repositories, with problem statements presented predominantly as text and lacking visual elements such as images. This limited coverage motivates our inquiry into how existing systems might perform on unrepresented software engineering domains (e.g., front-end, game development, DevOps), which use different programming languages and paradigms. Therefore, we propose SWE-bench Multimodal (SWE-bench M), to evaluate systems on their ability to fix bugs in visual, user-facing JavaScript software. SWE-bench M features 617 task instances collected from 17 JavaScript libraries used for web interface design, diagramming, data visualization, syntax highlighting, and interactive mapping. Each SWE-bench M task instance contains at least one image in its problem statement or unit tests. Our analysis finds that top-performing SWE-bench systems struggle with SWE-bench M, revealing limitations in visual problem-solving and cross-language generalization. Lastly, we show that SWE-agent's flexible language-agnostic features enable it to substantially outperform alternatives on SWE-bench M, resolving 12% of task instances compared to 6% for the next best system.