Synthetic Students: A Comparative Study of Bug Distribution Between Large Language Models and Computing Students
作者: Stephen MacNeil, Magdalena Rogalska, Juho Leinonen, Paul Denny, Arto Hellas, Xandria Crosland
分类: cs.CY, cs.AI
发布日期: 2024-10-11
💡 一句话要点
研究LLM生成代码缺陷分布,指导可信的合成学生数据生成
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大型语言模型 代码错误 错误分布 合成数据 教育应用
📋 核心要点
- 教育工具开发面临冷启动问题,真实学生数据受隐私限制,需要合成数据。
- 通过提示LLM注入错误到代码中,研究其生成的错误分布与真实学生错误的相似性。
- 实验表明,有指导的LLM可以生成更真实的错误分布,为合成学生数据提供可能。
📝 摘要(中文)
大型语言模型(LLM)为生成合成课堂数据提供了令人兴奋的机会。这些数据可以包括包含典型错误分布的代码、模拟学生行为以解决教育工具开发中的冷启动问题,以及在因隐私原因而限制访问真实数据时使用的合成用户数据。本文进行了一项对比研究,考察了LLM生成的错误分布与计算机专业学生产生的错误分布的差异。利用先前对学生生成错误的大规模分析数据,我们研究了是否可以通过提示LLM将错误注入代码,使其表现出与真实学生错误相似的错误模式。结果表明,未经指导的LLM不会生成合理的错误分布,并且生成的许多错误不太可能由真正的学生产生。然而,通过提供常见错误和典型频率的描述等指导,可以引导LLM在合成代码中生成真实的错误分布。
🔬 方法详解
问题定义:论文旨在研究大型语言模型(LLM)是否能够生成与真实学生相似的代码错误分布。现有方法缺乏对LLM生成错误真实性的评估,导致合成数据质量不高,无法有效应用于教育工具的开发和测试。
核心思路:论文的核心思路是通过对比LLM生成的错误分布与真实学生产生的错误分布,评估LLM生成合成学生数据的可行性。通过提供错误描述和频率等指导信息,引导LLM生成更真实的错误分布。
技术框架:该研究主要分为以下几个阶段:1) 收集真实学生代码错误数据;2) 使用LLM生成合成代码错误数据,分别在无指导和有指导两种模式下进行;3) 对比分析两种数据集中错误分布的差异;4) 评估有指导的LLM生成错误分布的真实性。
关键创新:该研究的关键创新在于首次系统性地评估了LLM生成代码错误分布的真实性,并提出了通过提供指导信息来提高LLM生成错误真实性的方法。这为利用LLM生成高质量的合成学生数据提供了新的思路。
关键设计:论文的关键设计包括:1) 使用先前大规模学生代码错误分析的数据集作为真实数据;2) 设计不同的提示策略,包括无指导和有指导两种模式;3) 使用统计方法对比分析错误分布的差异,例如错误类型频率、错误位置等;4) 通过专家评估或与其他真实数据集的对比,评估生成错误分布的真实性。
🖼️ 关键图片
📊 实验亮点
实验结果表明,未经指导的LLM生成的错误分布与真实学生错误分布差异显著,而经过指导的LLM可以生成更真实的错误分布。通过提供常见错误和典型频率的描述,可以显著提高LLM生成合成代码错误的真实性,使其更接近真实学生产生的错误。
🎯 应用场景
该研究成果可应用于教育领域,例如生成包含典型错误分布的合成代码,用于训练和评估自动代码评估工具;模拟学生行为,解决教育工具开发中的冷启动问题;在隐私限制下,生成合成用户数据,用于教育研究和工具开发。有助于提升教育工具的有效性和可扩展性。
📄 摘要(原文)
Large language models (LLMs) present an exciting opportunity for generating synthetic classroom data. Such data could include code containing a typical distribution of errors, simulated student behaviour to address the cold start problem when developing education tools, and synthetic user data when access to authentic data is restricted due to privacy reasons. In this research paper, we conduct a comparative study examining the distribution of bugs generated by LLMs in contrast to those produced by computing students. Leveraging data from two previous large-scale analyses of student-generated bugs, we investigate whether LLMs can be coaxed to exhibit bug patterns that are similar to authentic student bugs when prompted to inject errors into code. The results suggest that unguided, LLMs do not generate plausible error distributions, and many of the generated errors are unlikely to be generated by real students. However, with guidance including descriptions of common errors and typical frequencies, LLMs can be shepherded to generate realistic distributions of errors in synthetic code.