论文

从讨论到执行:复制有缺陷和正确的数据科学代码

From Discussion to Execution: Replicating Buggy and Correct Data Science Code

摘要

由于问题规范不明确、依赖关系缺失和性能瓶颈,从非正式来源复制可靠的数据科学代码具有挑战性。尽管开发人员问答论坛提供了有关诊断和解决现实问题的丰富讨论,但信息通常不完整且非结构化,限制了其在自动调试和验证中的使用。在本文中,我们介绍了 Reprodgen,这是一个基于 大语言模型 (LLM) 的框架,用于自动复制来自问答论坛帖子的可执行错误和修补的数据科学程序。给定一个问题及其相应的答案,Reprodgen 会重建问题中描述的错误行为以及答案中描述的预期修复,生成反映原始讨论的可执行错误和修补代码对。该框架构建代码意图 (CI)、功能需求 (FR) 和结构化思想链 (SCoT) 的结构化表示,并使用基于 LLM 的审阅器迭代地细化代码,直到代码可执行且语义一致。我们在 Stack Overflow (SO) 和 GitHub Issues (GI) 上评估了七个数据科学库(包括 pandas、numpy 和 scikit-learn)上的 Reprodgen,并构建了由人类专家验证的可运行错误和修补程序的基准。我们的管道使用LLM进行语义评估,而可执行性则通过实际执行来验证。结果显示,复制可靠,模型性能存在明显差异。