Skip to main content
QUICK REVIEW

[论文解读] Execution-based Evaluation for Data Science Code Generation Models

Junjie Huang, Chenglong Wang|arXiv (Cornell University)|Nov 17, 2022
Software Engineering Research被引用 4
一句话总结

本文提出了ExeDS,一个来自Jupyter Notebook的534个数据科学问题的新评估数据集,支持基于执行结果的代码生成模型评估。结果表明,尽管表面形式指标(如BLEU、CodeBLEU)得分较高,模型在执行正确性方面仍常失败,证明基于执行的评估指标在评估数据科学任务中的功能性代码质量方面更为可靠。

ABSTRACT

Code generation models can benefit data scientists' productivity by automatically generating code from context and text descriptions. An important measure of the modeling progress is whether a model can generate code that can correctly execute to solve the task. However, due to the lack of an evaluation dataset that directly supports execution-based model evaluation, existing work relies on code surface form similarity metrics (e.g., BLEU, CodeBLEU) for model selection, which can be inaccurate. To remedy this, we introduce ExeDS, an evaluation dataset for execution evaluation for data science code generation tasks. ExeDS contains a set of 534 problems from Jupyter Notebooks, each consisting of code context, task description, reference program, and the desired execution output. With ExeDS, we evaluate the execution performance of five state-of-the-art code generation models that have achieved high surface-form evaluation scores. Our experiments show that models with high surface-form scores do not necessarily perform well on execution metrics, and execution-based metrics can better capture model code generation errors. Source code and data can be found at https://github.com/Jun-jie-Huang/ExeDS

研究动机与目标

  • 解决数据科学代码生成模型缺乏基于执行的评估问题。
  • 识别BLEU和CodeBLEU等表面形式指标在捕捉功能性正确性方面的不足。
  • 提供一个高质量、可执行的基准数据集(ExeDS),包含代码上下文、自然语言描述、参考代码和期望输出。
  • 使用基于执行的评估指标对最先进代码生成模型进行评估,揭示表面形式指标与功能性表现之间的差异。
  • 证明基于执行的评估能够检测出表面形式指标所遗漏的错误,为未来模型开发提供指导。

提出的方法

  • 从GitHub仓库中爬取并重建数据依赖关系,以恢复Jupyter Notebook单元格的输入数据。
  • 过滤掉存在运行时错误的笔记本,筛选出534个高质量问题,确保具备充分上下文和人工标注的自然语言描述。
  • 为每个问题收集参考代码和期望的执行输出(包括复杂结构如数据框和图表)。
  • 使用基于执行的评估指标,在ExeDS上评估五种最先进代码生成模型,并与表面形式指标进行比较。
  • 对执行失败情况进行定性错误分析,按异常类型(如未定义变量、API误用)和输出错误(如错误、缺失或过多输出)进行分类。
  • 通过案例研究说明高BLEU分数可与错误执行并存,证明表面形式指标的不足。

实验结果

研究问题

  • RQ1在数据科学代码生成中,高表面形式指标分数(如BLEU、CodeBLEU)在多大程度上与执行正确性相关?
  • RQ2最先进代码生成模型在使用ExeDS基准进行基于执行的评估时表现如何?
  • RQ3在通过表面形式指标但执行失败的生成代码中,最常见的错误类型是什么?
  • RQ4基于执行的评估能否检测出表面形式指标所遗漏的功能性错误?
  • RQ5不同错误类别(如未定义变量、模式误用)如何影响数据科学代码生成中模型的可靠性?

主要发现

  • 高BLEU和CodeBLEU分数的模型并不一定生成执行正确的代码;例如,Codex虽然BLEU分数较低,但执行准确率较高。
  • 45%的执行失败是由于使用了未定义的变量,表明模型在数据流理解方面存在不足。
  • 16%的错误源于API误用,通常由于方法调用错误或缺少导入,凸显了API推理的挑战。
  • 22%的失败是由于数据模式处理错误,如误解数据框的列名或结构。
  • 仅有8%的错误源于语法问题,表明模型生成的代码在语法上正确,但功能上失败。
  • 24%的生成输出过多,表明即使代码部分正确,模型也常产生多余输出。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。