论文
PyMETA:评估第一次执行错误后的学生代码诊断
PyMETA: Evaluating Student Code Diagnosis on and Beyond the First Execution Error
摘要
大语言模型 可以从代码、问题陈述和参考解决方案诊断学生程序。评估这种能力需要明确定义什么才是正确的诊断。我们引入 PyMETA,这是一个 Python 错误数据集,包含 48,646 名学生提交的 155 个问题。每个提交都有一个标签,用于表示在线法官识别出的第一个执行错误,或者当程序通过所有测试时没有错误。 97 个提交的目标子集还具有通过迭代修复和重新执行收集的专家标签。分类法分为三个级别;其最详细的级别包含 14 个标签,包括“无错误”、“逻辑错误”、“命名 Python 异常”和“其他错误”类别。我们评估了两个微调模型和两组提示的 LLM:四个早期模型和四个最近模型。当针对第一个执行错误进行评估时,最近提示的模型达到了 87.5--93.8% 的宏 F1,高于最强的微调基线 80.6%。这与之前提示的模型的比较相反。然而,在 97 项专家子集中,精确集匹配率仅为 43.3--48.5%,尽管样本 F1 约为 79--81%。输出格式也很重要。在同样 45 个经过审核的专家标签集不包含逻辑错误的提交中,最近的四个模型都没有在单错误提示下返回该标签,但 46.7--57.8% 的多错误输出包含该标签,通常在显式错误标签之后。结果表明,模型排名和有关标签偏差的声明取决于标准标签的含义、模型可能返回的标签数量以及评分规则。