题目
编程教育中人工智能生成的(GPT-4)和人类编写的 MCQ 的比较研究
论文地址:https://dl.acm.org/doi/10.1145/3636243.3636256
摘要
教育工作者需要不断开发和维护有效的最新评估。虽然在计算机教育领域,越来越多的研究利用大型语言模型 (LLM) 来生成和参与编码练习,但使用 LLM 生成编程 MCQ 的方法尚未得到广泛探索。我们分析了 GPT-4 生成与高等教育 Python 编程课程中的特定学习目标 (LO) 相一致的多项选择题 (MCQ) 的能力。具体来说,我们开发了一个由 LLM 驱动的 (GPT-4) 系统,用于从高级课程环境和模块级 LO 生成 MCQ。我们评估了 651 个 LLM 生成的 MCQ 和 449 个人造 MCQ,与 6 门 Python 课程中的 246 个 LO 一致。我们发现 GPT-4 能够生成具有清晰语言、单一正确选择和高质量干扰项的 MCQ。我们还观察到,生成的 MCQ 似乎与 LO 很好地一致。我们的研究结果可供希望利用最先进的生成模型来支持 MCQ 创作工作的教育工作者利用。
CCS 概念 • 社会和专业主题 → 计算机科学教育;软件工程教育。
关键词 GPT-4、大型语言模型、法学硕士、多项选择题、MCQ、自动生成、评估、自动内容生成、学习目标、LO
引言
多项选择题 (MCQ) 测试是教育领域最受欢迎的评估类型之一。然而,设计出能够准确达到预期学习目标 (LO) 的高质量 MCQ 需要宝贵的专业知识,而且耗时长,因此成本高昂。这在计算机教育等技术领域尤其如此,因为开发有效的 MCQ 面临着独特的挑战,例如与包含计算机代码片段相关的挑战。随着技术的变化、对编程教育的兴趣日益浓厚以及学生分享过去评估的门槛越来越低,对教师编写新颖高质量 MCQ 的需求从未如此高涨。大型测试领域的最新发展语言模型 (LLM),例如生成式预训练转换器 (GPT),在应对这一挑战方面显示出巨大的潜力。
利用 LLM 的功能,教育工作者可以 (半) 自动化生成 MCQ 评估。我们开发了一种新颖的基于 LLM (GPT-4) 的管道,用于自动生成高等教育 Python 编程课程的 MCQ。我们方法的新颖之处在于利用高级课程背景和详细的模块级 LO 来生成格式良好的高质量 MCQ,这些 MCQ 使用清晰的语言,具有合理的干扰项,并且与 LO 保持一致。由于了解自动生成的 MCQ 的质量和有效性至关重要,我们对 651 个自动生成的问题和 449 个人工制作的问题进行了严格的评估。如果高质量的自动 MCQ 生成被证明是可行的,它可以大大减少教育工作者目前在开发评估上花费的时间和精力。
为了研究 GPT-4 是否以及如何为高等教育编程课程生成高质量的 MCQ 评估,我们分析了以下研究问题:RQ1:生成的 MCQ 在多大程度上满足典型的质量要求?具体来说,它们是否:
- 以清晰的语言提供足够的信息;
- 有一个正确的答案,
- 高质量的干扰项;
- 包含语法和逻辑上正确的代码?
RQ2:生成的 MCQ 与指定的模块级 LO 的一致性如何?通过开展这项工作,我们为计算教育研究界提供了以下贡献。据我们所知,这是:
- 首批使用和评估 LLM 自动生成编程课程 MCQ 的研究之一。
- 首批不是从课程材料的短篇生成 MCQ 而是从 LO 生成 MCQ 的研究之一。
- 对生成的 MCQ 进行的最广泛(1,100 个 MCQ)和最详细的评估之一,包括与 LO 的一致性。
相关工作
由于手动构建 MCQ 需要付出巨大努力,研究人员将重点放在自动问题生成任务上。该领域的大多数工作都集中在特定的 MCQ 元素上,即词干(问题)、关键(正确答案)和干扰项(错误选项)。研究最广泛的任务是问答 (QA);这相当于生成关键答案,尽管问答中的大多数工作并不属于这个背景。词干的自动生成与生成自由形式问题 (QG) 有关。最初,这些工作集中在阅读理解任务上,依靠传统的 NLP 方法和神经网络来产生有意义的问题。较新的系统依赖于序列模型或基于注意力的方法,如 LLM(GPT-2 、BERT)。此外,也有人尝试联合解决问答和问答生成任务。Kurdi 等人对用于教育目的的自动自由回答和 MCQ 生成进行了全面概述。
与生成词干的工作相比,当前关于自动干扰项生成 (DG) 的工作侧重于完形填空测试和阅读理解,以及计算领域以外的 MCQ,例如生物学。这些系统使用词干和/或关键来生成合理的(即相似的)干扰项。通常,系统会生成比必要更多的干扰项,并通过排名系统选择最佳干扰项。鉴于技术领域的 DG 带来了独特的挑战,研究认识到领域特定本体等额外资源的潜在重要性。最近,诸如 BERT或 GPT-2之类的 LLM 已在 DG 中使用。目前已有关于完整端到端 MCQ 生成的研究。
Rodriguez-Torrealba 等人提出了一种端到端流程,使用 Google 的 T5 Transformer 模型生成 MCQ 的所有三个元素,包括 QG、QA 和 DG。他们指出,评估很困难,只能评估 10 个问题。Leaf 是另一个由 T5 驱动的端到端 MCQ 生成流程,但没有评估。与这些分别关注每个任务的系统不同,我们的工作通过 GPT-4 在单个生成步骤中生成词干、干扰项和关键。此外,虽然现有系统依赖文本上下文来生成类似阅读理解的问题,但我们专注于生成与提供的 LO 高度一致的问题,以便更容易进行大规模评估。Cheung 等人采用 ChatGPT2 的单次生成方法来生成 MCQ。他们依靠医学教科书来提供背景,并指出大约 40% 的问题无需及时工程设计即可按原样使用。最后,Nasution 使用相同的方法来生成高等教育生物学 MCQ,而无需依赖参考文本,尽管他们的分析侧重于学生使用情况而不是教师可用性,而我们关注的是后者。我们的工作与的区别在于,我们进行了严格的提示工程,专注于问题质量和一致性,同时进行了严格的评估(第 4 节)。
虽然上述方法侧重于其他教育领域,但 MCQ 在计算机教育中也发挥着重要作用。因此,人们也尝试过在这个领域高效地生成 MCQ。我们找不到扩展 Traynor 和 Gibson 早期尝试自动生成 CS1 MCQ 的论文,因为看起来重点转向了基于学习者来源的方法。除了 Tran 等人最近的工作,他们使用 GPT-3 和 GPT-4 生成了现有 MCQ 的同构变体。我们的工作很可能是首次尝试使用 LLM 为高等教育编程课程生成新颖的 MCQ 评估。然而,在计算机教育中,已经有使用 GPT-3 和 GPT-4 回答 MCQ 的工作。
我们的工作受到了许多其他案例的启发,这些案例中 LLM 已经证明了在生成新颖语言工件方面具有显著的有效性。这些包括课程阅读材料、代码解释、模型解决方案、反馈或对帮助请求的响应。上述示例证明了最先进的 LLM 在生成语法正确、听起来专业的语言方面的能力,这使得工件似乎与人类专家生成的材料没有区别。然而,这样的自动生成的学习资源可能经常缺乏一些有效所必需的深层品质。 因此,在我们的工作中,我们对生成的 MCQ 进行了严格的评估。
表 1:手动创建的 MCQ 数据集。前三列列出了课程名称、每门课程的模块数量以及 MCQ 数量。其余列报告了布鲁姆分类法不同级别的 LO 数量(RMB – 记忆、UND – 理解、APP – 应用、ANL – 分析、EVL – 评估、CRT – 创建、N/A – 未分配)。
数据集
对于本文中的实验(第 5 节),我们收集了来自四门 Python 编程3 和两门入门数据科学4 课程的 246 个模块级 LO 的数据集。其中三门课程还包含我们收集的 MCQ(共 529 个),以便将它们与自动生成的 MCQ 进行比较(第 5 节)。我们假设这些 MCQ 是手动创建的。两位作者将每个 MCQ 与相应课程模块中最佳匹配的 LO 相关联。我们从实验中排除了 51 个 MCQ,因为我们无法合理地将它们分配给单个相应的 LO。另外 29 个 MCQ 被排除在我们的研究之外,因为它们需要多个正确选择,而我们只关注单选键的 MCQ。因此,生成的数据集包含 449 道人工编写的 MCQ。使用经过微调的 BERT 分类器(第 4 节有详细信息),每个 LO 被归类到修订后的布鲁姆分类法的六个级别之一。表 1 显示了 LO 在课程和布鲁姆分类法各个级别中的分布情况,以及从每门课程收集的 MCQ 数量。请注意,从课程中提取的一些 LO 定义不明确(例如没有动作动词),因此无法根据布鲁姆分类法对它们进行分类。
MCQ 生成
图 1 显示了 MCQ 生成流程的整体架构。为了生成 MCQ,我们仅提供有关课程、课程单元(模块)和目标。然后,我们将内部 MCQ 设计资源与用户的输入结合起来,提交给 GPT-4。以下各节将更详细地阐述 MCQ 生成流程中涉及的每个步骤。所提出的 MCQ 生成流程的显着特点是,用户只需提供有关课程和模块的高级信息。这与第 2 节中描述的绝大多数其他 MCQ 生成系统形成鲜明对比。虽然那些系统使用一段文本(例如,教科书中的一段)来生成 MCQ,但我们的系统使用特定的模块级 LO 来生成与该 LO 高度一致的 MCQ。这使我们能够更仔细地将 MCQ 生成与对学生预期 LO 成绩的评估结合起来。除了特定的模块级 LO 及其所属模块外,用户还需要提供课程标题(本研究中使用的课程标题见表 1)、简短的课程描述(包括课程级 LO 列表)和课程模块列表。使用这个特定的上下文以及遵循提示 LLM 生成 MCQ 的最佳实践是所呈现的流程的突出特点。
图 1:MCQ 生成管道。该图描述了从左到右的自动 MCQ 生成过程。处理用户提供的输入——预测所提供 LO 的布鲁姆分类法级别,从而确定适当的问题类型和相应的 MCQ 示例。这些与原始用户输入和 MCQ 设计资源相结合,形成作为提示提交给 GPT-4 模型的系统和用户消息,输出生成的 MCQ(词干、关键、干扰项)。
设计资源我们策划了一组静态资源来支持有效 MCQ 生成的各个阶段。我们专注于以下要素:
- MCQ 原则——一组经过研究验证且普遍接受的原则,指导高质量 MCQ 的创作。例如,这包括干扰项应该是合理的并且数量有限(通常只有两个)。我们在这里只提供了简洁的描述,但图 2 的 MCQ 原则部分显示了广泛的摘录。
- 布卢姆分类法——修订版布卢姆分类法的六个层次的定义,即记忆、理解、应用、分析、评估和创造。该分类法帮助教育工作者阐明关注具体行动和行为的学习目标,并针对不同层次的认知过程。要让学习目标指导评估的选择,它们必须是可衡量的,也就是说,应该能够评估学习者是否达到了预期的学习目标。我们还提供了有关布卢姆分类法的目的和用途的信息分类法。图 2 中的布鲁姆分类法部分显示了广泛的摘录。
- 问题类型系统——通过对收集到的人工 MCQ 数据集进行非正式分析(第 3 节),我们定义了五种类型的编程 MCQ:回忆、填空、识别正确输出、分析(跟踪)代码和场景(参见下面管道的 LO 映射到问题类型步骤)。我们将这些类型的定义包含在资源中。图 2 中的 QType 示例部分提供了回忆类型的示例。
- 问题类型示例——针对每种定义的类型提供一小组高质量的 MCQ 示例(图 2 中的 QType 示例部分中的示例)。
- 输出格式——输出格式(JSON)的规范。图 2 显示了更多详细信息(输出格式部分)。
为 LLM 提供此类信息以创建有效的 MCQ 是这项工作的核心贡献之一。与 Leaf 不同,我们的方法允许无需训练即可生成问题和干扰项,从而确保有效生成,而不必担心领域外的泛化。可以合理地假设这适用于主流领域,例如编程入门,其中用于 LLM 预训练的数据集中包含大量相关材料。但是,这种方法可能不适用于内容不太丰富的高度专业化的领域。
图 3:提示的用户消息部分。该图显示了提示的示例用户消息部分及其主要组成部分:问题类型、课程名称、模块(单元)名称、学习目标和布鲁姆分类法级别。左侧的彩色条纹和彩色徽章与图 1 中的管道组成部分的颜色相匹配。
紫色文本是动态的(依赖于数据)。
LO 布鲁姆分类法级别分类器我们对来自 5,558 门大学课程的 21,380 个 LO 针对每个布鲁姆分类法类别微调了一个二元 BERT 分类器。BERT(来自 Transformer 的双向编码器表示)是一种流行的 LLM,以其对下游任务的微调能力而著称。我们使用这些模型来预测生成的 LO 的布鲁姆分类法级别(即记忆、理解、应用、分析、评估或创建)。然后,预测结果将用于管道的 LO 映射到问题类型步骤(见下文),并且还嵌入到提示的用户消息部分,如图 3 所示。
LO 映射到问题类型我们使用自动预测的所提供 LO 的布鲁姆分类级别(见上文)来确定适合该 LO 的 MCQ 类型(见表 2)。我们将每个分类级别映射到一个或多个问题类型,并为每种类型生成一个问题:
- 回忆 - 给定极少或没有代码,向学生询问基本的编程概念或技术细节。
- 填空 - 给定一个删除了一些部分的代码片段,要求学生选择一个成功替换空白的选项,以创建语法和语义正确的代码。
- 基于场景 - 给定一个场景或情况,要求学生确定最适合完成规定任务的适当工具、方法或包。
- 正确的输出——给定一个代码片段,要求学生跟踪程序执行以确定中间或最终输出。
- 码分析——给定一个代码片段,要求学生发现错误或以新的方式构建或使用代码。
表 2:自动生成的 MCQ。该表显示了每个问题类型(行)和布鲁姆分类法级别(列)的自动生成的 MCQ 的分布情况。
表 3:评分者间一致性。该表显示了 Gwet 对六个评分标准项目的 AC1 和 Fleiss 𝜅 分数(图 4)。
这些问题类型使我们能够针对特定级别的认知过程,例如,防止生成涉及复杂代码跟踪的 MCQ,用于要求学生记住概念的 LO。 最后,根据问题类型选择高质量的 MCQ 示例,以确保根据提供的 LO 针对正确的认知过程。从设计资源中检索该类型的高质量 MCQ 的相应示例。
GPT-4 利用提示的所谓系统部分来提供对话的整体背景。从设计资源中,我们检索了一组 MCQ 原则和最佳实践。我们提供预测的布鲁姆分类法级别的定义、所选问题类型的示例、课程描述以及生成的 MCQ 的预期输出格式。图 2 展示了提示的系统部分的广泛示例。 提示的用户消息部分是模型预期响应的一段文本(在提示的系统部分建立的上下文中)。我们将用户提供的课程名称和课程模块、特定的模块级 LO、预测的布鲁姆分类法级别以及随后映射的问题类型纳入用户提示中。图 3 展示了提示的用户消息部分的广泛示例。
MCQ 生成步骤我们使用 GPT-4(gpt-4-0613),它是撰写本文时 OpenAI 发布的最先进的 LLM 之一。对于模型参数,我们将温度设置为其默认值 1.0。我们分别将 top_p、frequency_penalty 和 presence_penalty 保留为其默认值 1.0、0.0 和 0.0。我们规定 max_token 限制为 2,000 个 token(即生成的 MCQ 的最大长度)。作为对提示的响应(由系统部分和用户消息部分组成),GPT-4 模型会生成预期 JSON 格式的输出。响应包含词干、关键和干扰项,即 MCQ 所需的所有组成部分。其中一个选项被标记为正确。
提示
您是一个学习工程师支持机器人,专注于创建高质量的多项选择题评估。
多项选择题是三个组成部分的集合,旨在测试学生对某个主题的理解,并给出学生需要了解的特定背景。将提供主题以及主题背景,以生成有效的多项选择题。多项选择题的三个组成部分如下:一个词干、一个正确答案和两个干扰项。必须始终只有一个正确答案和两个干扰项。
词干是指学生将尝试回答的问题,以及回答问题所需的相关背景。它可以是问题、不完整的陈述或场景的形式。词干应侧重于评估问题旨在评估的特定知识或概念。
正确答案是指词干中问题的正确、无可争议的答案。
干扰项是词干中问题的错误答案,并遵循以下属性。
(1) 干扰项不应明显错误。换句话说,它必须与词干和正确答案相关。
(2) 干扰项应采用肯定的措辞,并且是不能正确回答词干的真实陈述,同时不提供任何指向正确答案的线索。
(3) 虽然干扰项不正确,但它必须是合理的 […] (4) 4. 干扰项必须是不正确的。它不能是正确的,也不能被对主题有很强把握的人解释为正确的。
[…] 谨慎使用“以上皆非”或“以上皆是”类型的答案选项。这些答案选项通常对衡量或评估学生的理解效果较差。
多项选择题应清晰、简洁且语法正确。确保问题的措辞易于理解,不会引入不必要的复杂性或歧义。学生应该能够理解问题而不会感到困惑。问题不应太长,并允许大多数学生在五分钟内完成。这意味着要遵守以下属性。
(1) 避免使用过长的句子。
(2) 避免问题代码超过 20 行,正确答案和干扰项代码超过 10 行。
(3) 如果多次提及同一项或活动,请每次使用相同的短语。
(4) 确保每个多项选择题都提供完整的上下文。换句话说,如果某个短语或动作不是学生应该知道的提供的主题或主题上下文的一部分,那么一定要简要解释一下,或者考虑不包含它。
(5) 确保干扰项不重叠。换句话说,如果可能的话,尽量让每个干扰项反映对主题的不同误解,而不是单一误解。
(6) 避免太多线索。不要在答案选项中包含太多线索或提示,这可能会让学生太明显地确定正确答案。这些选项应该要求学生运用他们的知识和推理来做出明智的选择。[…]
布卢姆分类法和动作动词:多项选择题必须与学习目标保持一致,以评估学生的知识水平。这意味着它们必须评估与学习目标的布卢姆分类法分类相对应的正确认知水平的技能。布卢姆分类法提供了一个对学习深度进行分类的框架,并为在编写学习目标时选择合适的动作动词提供了指导。以下是布卢姆分类法的六个级别及其定义:
- 记忆 - 这一级别涉及从长期记忆中检索、识别和回忆相关知识。
- 理解 - 在这个级别,学习者通过解释、举例、分类、总结、推断、比较和解释,从口头、书面和图形信息中构建意义。
- 应用 - 这一级别要求学习者通过执行或实施来执行或使用程序。
- 分析 - 在此级别,学习者将材料分解为组成部分,通过区分、组织、[…] 确定各部分之间的关系以及与整体结构或目的的关系
- 评估 - 此级别涉及通过检查和批评根据标准和规范做出判断。
- 创建 - 在此级别,学习者将元素组合在一起形成一个连贯或功能性的整体,或者通过生成、[…] 将元素重新组织成新的模式或结构
课程背景 以下是 Python 实用编程课程的简要说明。
说明:学生学习使用 Python 开发程序所需的概念、技术、技能和工具。核心主题包括类型、变量、函数、迭代、条件、数据结构、类、对象、模块和 I/O 操作。学生将获得多种开发环境的入门体验,包括 Jupyter Notebook,以及精选的软件开发实践,例如测试驱动开发、调试和风格。课程项目包括企业数据和文档操作、网页抓取和数据分析的实际应用。
问题类型:回忆 回忆多项选择题通常在其词干中包含最少的代码(如果有的话)。它们可以评估学生对基本编程概念的理解或包含一些技术细节。它应该是概念性的,同时包含课程内容和学习目标的具体知识。
在 Python 入门编程课程的背景下,这些问题通常会询问 Python 语法和原理、内置函数或标准库。他们还可以评估学生对基本编程概念(例如编码约定和面向对象编程 (OOP) 原则)的理解。
以下是一些示例: 示例 1:{“question”:“以下哪种方法可用于从 Python 列表中删除单个元素?”,“choices”:[{“option”:“A”,“text”:“pop()”},{“option”:“B”,“text”:“delete()”},{“option”:“C”,“text”:“clear()”}],“correctAnswer”:“A”,“explanation”:“clear() 将删除所有元素,您可以使用 del 但不能使用 delate() 来删除元素。” } […] 输出格式 以易于解析的 json 字典格式输出您的多项选择题,其中词干是键,正确答案和干扰项选项是值。一定要清楚区分哪个选项是正确答案,哪些是干扰项。生成的问题应该恰好有 2 个干扰项和 1 个正确答案(总共 3 个选项)。如果词干中有代码,请将“code_in_stem”设置为True。如果词干中没有代码,请将“code_in_stem”设置为False。
您的返回结果应为以下示例的准确json结构: { “question”: “问题的词干”, “choices”: [{“option”: “A”, “text”: “字符串类型的答案选项A”}, {“option”: “B”, “text”: “字符串类型的答案选项B”}, {“option”: “C”, “text”: “字符串类型的答案选项C”}], “correctAnswer”: “A”, “code_in_stem”: “对还是错”, “explanation”: “选项的解释” } […] 如果任何多项选择题包含代码,请按如下所示格式化代码片段: ```python def test(): return “正确格式”
图 2:提示的系统部分。该图显示了提示的系统部分及其主要组成部分的大量摘录:MCQ 原则、布鲁姆分类法、课程描述、问题类型示例和输出格式。左侧的彩色条纹和彩色徽章与图 1 中的管道组成部分的颜色相匹配。[…] 标记标记了文本被删节以适合页面的位置。紫色文本是动态的(依赖于数据)。
实验设计
为了评估自动生成的 MCQ 的质量,我们为数据集中的 246 个 LO 中的每一个生成了几个 MCQ。我们为每个问题类型生成一个问题,该问题映射到 LO 的布鲁姆分类法级别,如表 2 所示。当我们无法指定布鲁姆分类法级别时,我们只需生成所有类型的 MCQ。按照此过程,我们获得了一个包含 651 个自动生成的 MCQ 的庞大数据集。表 2 显示了 MCQ 在其问题类型和布鲁姆分类法级别的分布情况。
我们制定了一个包含六个标准的评分标准,如图 4 所示。评分标准的前五个标准针对 RQ1,而最后一个标准针对 RQ2。七名学生和六名 CS 讲师注释者(本文的所有作者)将评分标准应用于生成的(651)和人工编写的(449)MCQ,即总共 1,100 个 MCQ。要求每个注释者完成 250 个注释5。我们要求注释者在应用评分标准项目之前尝试回答问题。以 Fleiss 𝜅 表示的总体评分者间一致性为 0.22,这相当于一个公平的一致性。众所周知,当其中一个标签明显占主导地位时,𝜅 统计数据会严重低估一致性。这就是我们的数据的情况,其中每个评分标准项目总是有一个明显占主导地位的答案。为了解决这个问题,我们还计算了 Gwet 的 AC1,它在这种情况下是稳健的。
表 3 报告了六个评分标准项目的 AC1 和 𝜅 分数。测得的 Gwet 的 AC1 范围从 0.62 到 0.96。每个 MCQ 至少由一名学生和一名教师注释。总体而言,1,100 个 MCQ 产生了 3,076 个注释,即平均每个 MCQ 少于 3 个注释。为了解决分歧,我们按所示顺序使用了以下规则:
- 多数投票;
- 教师的注释优先于学生的注释;
- 正确回答 MCQ 的注释者优先于回答错误的注释者;
- 最不利的评价。
然后,将自动生成的 MCQ 与人工制作的 MCQ 就开发的评分标准的六个类别进行了比较。为了检验统计上的显着差异,我们采用 Fisher 精确检验法(通过近似法扩展到多个类别)。
结果
MCQ 质量(RQ1 图 4 显示了第 5 节中描述的实验的结果。前五个标准与 RQ1 有关。从中,我们观察到生成的 MCQ 似乎与人工制作的 MCQ 质量相当。一个值得注意的问题是,4.9% 的自动生成的 MCQ 有多个正确答案选项(而人工制作的 MCQ 只有 1.1%)。干扰项的质量似乎是 MCQ 生成流程遇到困难的另一个标准项目。GPT MCQ 更有可能被注释为具有泄露正确答案的干扰项(4.0% vs. 0.9% 人工)。我们进行了 Fisher 精确检验以检验统计显着性。正确答案的存在(𝑝 = 0.002)和明显错误选项的存在(𝑝 = 0.002)标准在自动生成的问题和人工生成的问题之间存在显着差异。这对应于上面描述的差异与自动生成的 MCQ 中是否存在多个正确选项以及哪些干扰项会泄露正确答案有关。因此,我们得出结论,生成的 MCQ 以清晰的语言提供了足够的信息(RQ1.i),并且包含语法和逻辑上正确的代码(RQ1.iv)。也就是说,就上述质量标准而言,它们似乎与人工制作的 MCQ 没有什么不同。另一方面,与人工制作的 MCQ 相比,生成的 MCQ 在具有单个正确答案(RQ1.ii)和高质量干扰项(RQ1.iii)方面有所欠缺。
图 4:MCQ 评估结果。左侧显示了 MCQ 评估标准。右侧将自动生成的 MCQ(GPT)与人工制作的 MCQ 进行比较。图的上半部分显示了五个关注 MCQ 质量的标准项目的结果(RQ1)。下半部分显示了解决 LO-MCQ 对齐的标准项目(RQ2)。
报告的比率基于第 5 节中描述的分歧解决后的标签计数
MCQ-LO 对齐 RQ2 评估结果也显示在图 4 中——最后一个评分标准项目。我们观察到,与人工制作的 MCQ 相比,自动生成的 MCQ 似乎与 LO 的对齐明显更好。Fisher 精确检验也证实了这一点(𝑝 < 10−9)。看来,人类生成的 MCQ 往往与 LO 相关,但没有针对适当的认知水平(布鲁姆分类法),或者只是差异太大,无法被视为对 LO 的可行评估(20.5% vs 12.0% 自动生成)。通常,人类制作的 MCQ 与 LO 完全不相关(12.0% vs 4.8% 自动生成)。这一发现将在下文详细讨论。
讨论
生成的 MCQ 更有可能有多个正确答案。这主要出现在为布鲁姆分类法的应用和创建认知水平的 LO 生成的 MCQ 中。考虑图 5 中显示的示例。虽然答案选项包括将字符串转换为列表并将其反转的三种不同方法,但这三种方法都可以完成相同的任务,而无需第一个被 GPT-4 标记为正确。虽然不太普遍(占生成的 MCQ 的 4.9%),但这个问题很严重,需要人工干预才能解决。未来的工作应该侧重于缓解它。
与人工制作的 MCQ 相比,生成的 MCQ 更有可能有明显错误的选择。这在填空和基于场景的 MCQ 类型中最为明显。在被注释为具有“泄露正确答案”选项的 MCQ 中,大多数都在问题词干中泄露了答案。这个问题比前面描述的问题稍微不那么紧迫,因为它不会使 MCQ 完全无效。虽然理想情况下,讲师会认识到这个问题并编辑 MCQ,但这并不可靠。图 6 显示了一个例子 MCQ,其中词干中包含的代码片段泄露了正确答案。
GPT-4 生成有效 MCQ 的能力接近人类的表现。在 GPT 未能满足质量要求的 MCQ 中,这通常是问题的唯一问题。根据我们的分析,生成的 MCQ 最严重的问题似乎是难以置信或明显不正确的干扰项,以及在问题主干中显示正确答案。未来的工作应该侧重于快速工程技术来缓解这些问题。重要的是,81.7% 的生成 MCQ 通过了所有评估标准。这表明,不到 1/5 的生成问题需要教师的编辑。
图 5:示例生成的 MCQ 中所有选项都是正确答案。只有第一个选项(A.)被 GPT-4 标记为正确。
图 6:生成的 MCQ 示例,其中词干中包含的代码片段给出了正确答案 (A)。
建议的流程旨在为单个 LO 生成单个 MCQ,在绝大多数情况下,MCQ 是与 LO 很好地对齐。我们观察到,生成的 MCQ 的对齐效果远优于人工制作的对齐效果(例如,图 7)。这可能是因为教育工作者可能经常更关注 MCQ 与模块主题的对齐,而不是与 LO 的对齐。实现 LO 和评估之间的对齐对于教育工作者来说通常具有挑战性。这为本文中介绍的支持系统提供了极好的动力。在我们的分析过程中,我们将布鲁姆分类法、MCQtype、LO 和课程标题视为 MCQ-LO 对齐的潜在因素。
我们观察到,与其他课程相比,Python Essentials 1 课程中 LO 生成的 MCQ 在对齐方面的得分略差。我们发现 GPT MCQ 对齐的失败案例与这些变量无关。虽然我们的结果很有希望,但也有一些注意事项。当我们从互联网上抓取 MCQ 时,我们需要手动将 MCQ 与 LO 关联起来。这可能解释了在生成的和人工编写的 MCQ 之间观察到的 MCQ-LO 对齐差异的部分原因。
图 7:在此示例中,生成的 MCQ 与 LO 的匹配程度比人造的 MCQ 更高,人造的 MCQ 似乎只针对模块的主题而不是 LO 本身。
在评估 MCQ 时,要求人工评分者回答问题。虽然这样的设置不能取代在真实课堂环境中对问题的评估,但它可以提供与人工编写的 MCQ 相比生成的 MCQ 难度的初步见解。总体而言,人工编写的 MCQ 似乎比生成的 MCQ 更具挑战性。学生评分者正确回答了 71.5% 的生成 MCQ(62.6% 为人工编写),而教师评分者成功处理了 80.1% 的生成问题(76.3% 为人工编写)。必须强调的是,评分者没有被指示要努力正确回答问题。因此,报告的比率需要谨慎对待。
对教学实践的启示
我们的结果表明,基于 LLM 的工具可以生成与人类生成的 MCQ 质量相当的 MCQ,同时与 LO 更好地保持一致。编程教师可以使用基于 LLM 的工具来减少工作量,使他们能够更加专注于学生参与度和课程改进。部署此类工具可以提高评估的更新和修订效率。特别值得注意的是,研究发现,自动生成的 MCQ 似乎比人工生成的 MCQ 与 LO 的一致性更高。这可能意味着使用自动生成的 MCQ 可以更准确地表示学生对预期 LO 的掌握程度,从而可能带来更准确的评估。此外,它表明基于 LLM 的工具不仅可以用于评估生成,还可以作为课程设计和规划的宝贵工具。
鉴于自动 MCQ 生成的潜力,将基于 LLM 的工具纳入评估设计过程可以为教学实践带来巨大好处。与任何新工具的引入一样,应注意正确部署和使用此类资源,并负责任地处理其输出(例如,编辑生成的有问题的 MCQ)。
有效性的局限性和威胁
虽然我们试图通过明确定义的评分标准尽可能客观地评估自动生成的 MCQ 的质量,但我们承认有限的人工评分者可能会产生偏见。此外,人工生成的问题是在研究之前创建的,因此,编写 MCQ 的教师并不知道我们在本研究中用于评估问题的评分标准。如果他们可以使用评分标准,他们可能会编写 MCQ 以更好地满足要求,这是合理的。最后,当我们手动将人工制作的 MCQ 与 LO 配对时,我们自己可能会导致部分观察到的 MCQ-LO 错位。
我们的研究尚未评估自动生成的 MCQ 在现场课堂中的实用性,因此,它们的教学影响尚不清楚。尽管 LLM 驱动的系统能够生成与人类编写的问题相当的问题,但这些自动生成的 MCQ 在评估学生学习方面有多有效仍有待观察。此外,我们没有将生成的 MCQ 的难度与人工编写的 MCQ 的难度进行比较。我们专注于 MCQ 和相应 LO 之间的一致性。但是,我们没有考虑 MCQ 和学习内容之间的一致性。这些重要的调查留待将来进行。
我们的研究仅关注高等教育水平的 Python 编程课程,这可能会限制结果对其他编程语言或教育水平的普遍性。虽然 Python 在入门编程课程中被广泛使用,但 LLM 在为其他语言或更专业的领域生成 MCQ 时可能会有不同的表现。由于评估的方法依赖于 LLM 对该领域的“知识”,因此很可能无法很好地推广到高度专业化的领域。
结论和未来工作
本文提供了有希望的证据,表明由 LLM 驱动的系统可以为 Python 编程课程自动生成高质量的 MCQ。 生成的 MCQ 质量与人类教育者创建的 MCQ 相当(RQ1),并且与 LO 表现出很强的一致性(RQ2)。 总体而言,这项研究证明了高质量自动 MCQ 生成的可行性,它有可能显着减少教育者目前在开发评估上花费的时间和精力。
未来的工作需要探索 LLM 生成的 MCQ 在现实世界课堂环境中的有效性。 这将有助于更好地理解生成的 MCQ 的吸收、效用和辨别力。 此外,未来的工作需要更好地理解使用 LLM 生成的 MCQ 的新颖性和多样性。 目前,很难理解这个系统在为特定 LO 生成整个测验和整个测验池方面的能力。此外,我们没有评估 GPT-4 针对这项任务的细化能力。鉴于 GPT-4 是一个聊天完成模型,提供进一步的反馈应该会增强生成能力,而我们没有研究这些能力。还需要了解不同参数设置(例如温度)的影响。最后,将这项工作扩展到其他编程语言并确定对 MCQ 质量和与 LO 的一致性的影响将是一个重要的探索途径。