Towards Evaluation of Implicit Software World Models in Coding LLMs
作者: Egor Bogomolov, Yaroslav Zharov
分类: cs.SE, cs.AI
发布日期: 2026-06-25
备注: Accepted to DL4Code workshop at ICML 2026
💡 一句话要点
提出隐式软件世界模型评估方法以提升编码LLMs性能
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture)
关键词: 软件世界模型 代码执行 执行资源 性能评估 AI编程
📋 核心要点
- 当前的代码执行基准测试仅关注控制流,未能全面评估软件世界模型的各个方面。
- 本文提出通过执行资源的可观察性来评估软件世界模型,预测多种执行指标以提升评估的全面性。
- 实验结果显示,所有测试模型的性能均较为一般,表明它们在理解软件执行方面存在显著不足。
📝 摘要(中文)
软件工程,无论是由人类还是AI代理执行,都需要对软件行为进行推理。我们称这种支持推理的内部模型为软件世界模型,并认为当前的代码执行基准仅覆盖了其控制流的一个方面。本文通过将可观察轴转向执行资源,迈出了更广泛评估的第一步:除了测试结果和异常类别外,我们还预测了峰值内存、墙钟时间以及方法和行级别的排名分析器输出。我们使用SWE-bench Verified作为数据源,以使测试更接近真实的软件工程任务。所有测试模型,包括前沿模型,表现均较为一般且行为脆弱,表明它们对软件执行的理解明显不足,尤其是与源代码的编写相比。
🔬 方法详解
问题定义:本文旨在解决现有代码执行基准测试仅关注控制流的问题,缺乏对软件执行资源的全面评估,导致对软件世界模型的理解不够深入。
核心思路:通过引入执行资源的可观察性,本文提出了一种新的评估方法,预测包括峰值内存和墙钟时间在内的多种执行指标,以更全面地评估软件世界模型的表现。
技术框架:整体架构包括数据收集、指标预测和性能评估三个主要模块。数据收集使用SWE-bench Verified,指标预测则基于模型的执行结果进行分析。
关键创新:最重要的创新在于将评估焦点从单一的控制流扩展到多种执行资源,提供了更全面的视角来理解软件执行。
关键设计:在模型设计中,采用了多种指标的预测方法,设置了合适的损失函数以优化模型性能,同时关注方法和行级别的输出分析。通过这些设计,提升了对软件执行的理解。
🖼️ 关键图片
📊 实验亮点
实验结果显示,所有测试模型的性能均表现一般,未能显著提升对软件执行的理解。具体而言,模型在预测峰值内存和墙钟时间等指标时,表现出脆弱性,表明当前技术在理解软件执行方面的局限性。
🎯 应用场景
该研究的潜在应用领域包括软件开发工具、自动化测试框架以及AI辅助编程系统。通过提升对软件执行的理解,能够更好地支持开发者在复杂软件系统中的决策,进而提高软件开发的效率和质量。
📄 摘要(原文)
Software engineering, whether performed by humans or by AI agents, requires reasoning about how software behaves. We call the internal model that supports such reasoning the software world model, and view current code-execution benchmarks as covering one well-studied slice of it -- control flow. In this paper, we take a step toward a broader evaluation by shifting the observable axis to execution resources: alongside test outcome and exception class, we predict peak memory, wall-clock time, and ranked profiler outputs at method and line granularity. We use SWE-bench Verified as the source of data to hold the test close to real-world software engineering tasks. All tested models, frontier ones included, show modest performance and brittle behaviour, suggesting a notable lack of understanding of how software is executed, as opposed to how its source code is written.