
人类或大规模语言模型(ChatGPT,GPT-4)是教授初级编程的更好的指导者吗?
三个要点
✔️ GPT-4在 "修改程序 "和 "解释程序 "等几个编程教育场景中明显优于ChatGPT(GPT-3.5),取得了与人类相当的性能。
✔️ 另一方面,在 "生成反馈 "和 "创建练习程序 "等需要深入理解程序的场景中,GPT-4和人类之间仍然存在明显的性能差距。
✔️ 预计将通过各种方法进行进一步的验证,以实现进一步的改进,如涉及更多专家的大规模实验,扩展到其他编程语言,在多语言环境中评估模型,以及对学生进行经验性研究。
Generative AI for Programming Education: Benchmarking ChatGPT, GPT-4, and Human Tutors
written by Tung Phung, Victor-Alexandru Pădurean, José Cambronero, Sumit Gulwani, Tobias Kohn, Rupak Majumdar, Adish Singla, Gustavo Soares
(Submitted on 29 Jun 2023 (v1), last revised 30 Jun 2023 (this version, v2))
Subjects: Computers and Society (cs.CY); Artificial Intelligence (cs.AI); Computation and Language (cs.CL)
Comments: This article is a full version of the poster (extended abstract) from ICER'23
code:
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
概述。
自2022年ChatGPT发布以来,很多人都对大规模语言模型的多功能性感到惊讶。不到一年后,一些使用大规模语言模型的服务被发布。正如 "大规模语言 "模型的名称所示,它们被用于许多应用,特别是那些涉及 "语言 "的应用。它不仅用于我们的自然语言,而且也用于编程语言。它被用于非常广泛的应用,如校对、总结和翻译文本,与网络搜索引擎的向上兼容,支持需要专业知识的工作,如律师和医生,辅导和咨询。它还可以用来支持编程和学习,并有望成为改变计算机教育的下一代教育的技术。
本文提出的论文研究了大规模语言模型在初学者编程教育中的作用。在过去的一年里,部分由于ChatGPT的兴奋,已经有一些研究报告使用大规模语言模型来测试编程教育中的各种场景。然而,这些研究中的许多都是有限的,要么是使用的大规模语言模型已经过时,要么是只验证了特定的场景(如生成解释性文本),至今还没有系统的研究来评估最先进的模型在编程教育中的详尽场景。
因此,本文提出的论文系统地评估和比较了ChatGPT(基于GPT-3.5)和GPT-4与人类在各种编程教育场景中的表现。换句话说,我们评估了在初学者的编程教育中,旧模型(ChatGPT)与新模型(GPT-4)的差异程度,以及与人类相比,大规模语言模型的差异程度。本文研究了六个场景(1)程序修改,(2)提示生成,(3)评估反馈,(4)结对编程,(5)程序评论和(6)创建程序的练习。
在这篇文章中,我们想向你介绍(1)修改方案,(5)解释方案和(6)创建一个锻炼方案。
情景1:修改方案
在这个场景中,学生的程序(buggy)正在被验证,看它是否能被正确修复,使用下面的提示作为ChatGPT和GPT-4的输入。该提示包括要验证的情景概述、问题描述{probrem_description}和学生的程序(buggy){buggy_program}。进入该提示后的输出是一个修改过的程序。
输出的程序在指标 "Correct "上被评为对问题的正确性,在指标 "EditTokens "上被评为该程序与错误程序之间基于标记的编辑距离。
EditTokens "表示修改的程度。正确 "的计算方法是1表示正确,0表示不正确。下图中的结果显示,GPT-4的'正确'总结果为88.0%,与ChatGPT的68.0%相比有了明显的改善,而且也接近人类(Tutor)的100.0%。另一方面,GPT-4的'EditTokens'较大,为36.6,而人类(Tutor)为19.0,表明他们在修复有缺陷的程序时进行了更多编辑。人类通过较少的修正得到正确的程序,可能更有效率。
情景2:方案描述。
在这种情况下,我们要测试学生是否能正确解释程序的某一部分。解释一个学生不理解的程序是编程教育中最基本的技能之一,我们使用下面显示的提示作为ChatGPT和GPT-4的输入。作为输入,它包括一个场景的概述、问题的描述{probrem_description}、一个没有错误的程序{program},其中学生试图理解的程序的具体部分{program_part_to_explain}。
如果输出方案在整个方案的背景下包含了特定部分的准确信息,则被评为 "正确";如果输出描述在整个方案的背景下包含了完整的信息,则被评为 "完整";以及可理解的,输出描述是否采用了可理解和可读的格式,并且不冗长。换句话说,它被评估为准确性、全面性和简洁性。此外,"总体 "只有在产出说明符合上述所有三个指标的情况下才会被列入表格。
下面的数字显示了每个指标的结果。从 "整体 "指标来看,GPT-4的表现为84.0%,仍然高于ChatGPT的72.0%。还可以看出,其表现与人类(导师)的92.0%接近。
情景3:创建一个锻炼计划
在这种情况下,我们要测试学生是否能够生成新的练习,以帮助他们发现和修复错误。在教育中,用许多问题进行练习是很重要的,能够为此产生问题是一项重要的技能。下面显示的提示被用作ChatGPT和GPT-4的输入。输入包括场景的概述、问题的描述{probrem_description}、一个有错误的程序{buggy_program}和一个有固定错误的程序{line_diffs_with_fixed_program}。
输出的程序被评为'正确',看输出的新问题相对于它的描述和规格是否正确和可解;'更简单',看输出的新问题是否比输入的问题更容易;'类似错误',看包含输出的新错误的程序是否包含一个学生错误'SimilarBugs',即程序是否有类似的bug,以及'MinimalBugs',即包含输出新bug的程序是否不包含其他bug。
由于不能从包含bug的问题中不必要地学到要学习的要点,'SimilarBugs'和'MinimalBugs'似乎可以作为指标来确定是否已经创建了适当的类似问题。只有当新的问题输出和新的错误程序共同满足上述所有四个评级时,'总体'才会被列入表格。下图显示的是综合结果。
总体 "显示,22.0%的GPT-4有改进的数据,而ChatGPTs为10.0%,但明显低于74.0%的人类(导师)。细分显示在'SimilarBugs'中也有类似的趋势,这是衡量新输出的程序是否包含与输入程序类似的错误,总体较低的主要原因是难以生成包含类似错误的程序。总体较低的主要原因被认为是生成含有类似错误的程序的难度。
摘要
本文显示,在每个场景中,GPT-4的表现都比ChatGPT(基于GPT-3.5)好,在某些场景中,它的表现与人类(Tutor)一样好。虽然没有被确认为有用到足以取代人类,但性能随着大规模语言模型的升级而增加,表明它可以成为未来编程教育中的一个有用工具。如果实现了,它可以支持编程学习,并通过利用先进的语言处理能力和广泛的知识来减少教育者的负担。
在本研究中,有两位专家作为评价者参与其中,但预计将通过各种方法进行进一步验证,如包括更多专家在内的大规模评价和对学生的实证研究。
从编程教育的角度来看,本文展示了目前大规模语言模型的可能性和局限性,并将导致未来使用大规模语言模型的编程教育的进一步改进。
与本文相关的类别