基于大语言模型的代码生成工具可用性评估:期望与现实
一、 研究团队与发表信息
本研究的主要作者为Priyan Vaithilingam (哈佛大学)、Tianyi Zhang (普渡大学) 和Elena L. Glassman (哈佛大学)。该研究以论文形式发表于2022年4月29日至5月5日在美国新奥尔良举行的CHI Conference on Human Factors in Computing Systems Extended Abstracts (CHI ‘22 Extended Abstracts),并被收录于会议论文集。
二、 研究背景与目标
本研究属于人机交互(Human-Computer Interaction, HCI)与软件工程交叉领域,聚焦于评估新兴人工智能辅助编程工具的可用性。随着以GPT-3、Codex为代表的大语言模型(Large Language Models, LLM)在代码生成任务上展现出突破性性能,基于此类模型的工具(如GitHub Copilot)开始进入开发者的实际工作流程。然而,先前的研究主要集中于通过基准测试评估这些工具的代码生成准确性,而对于它们在真实编程场景中的可用性、用户体验以及如何融入现有编程工作流,尚缺乏深入的实证研究。尤其是,这类工具生成的代码并非总是完美,程序员如何与这些“不完美”的AI进行交互、识别错误、调整代码,成为了影响其实际效用和采纳的关键问题。因此,本研究旨在弥合这一知识鸿沟,通过对照实验,探究程序员在使用Copilot时的真实体验、遇到的挑战以及采用的应对策略,从而为未来代码生成工具的设计提供实证依据和方向指引。
三、 研究设计与详细流程
本研究采用了一项被试内对照实验设计,共有24名参与者。实验的核心是比较在两种不同代码辅助工具条件下,程序员完成编程任务的体验和表现:实验条件为使用基于Codex的GitHub Copilot;对照条件为使用Visual Studio Code (VSCode) 内置的默认代码补全工具IntelliSense。
参与者招募与特征:通过两所研究型大学的邮件列表招募了24名参与者(4名女性,19名男性,1名非二元性别)。参与者背景多样,包括本科生(10人)、硕士生(5人)、博士生(8人)和一名软件工程师。在编程经验方面,1人少于2年,14人有2-5年,9人超过5年,确保了样本覆盖了从初级到经验丰富的程序员。
实验任务:研究选择了三个具有不同难度的真实世界Python编程任务:
实验环境与流程:为方便使用工具并控制环境,研究者在Microsoft Azure上设置了两台虚拟机(VM),一台安装Copilot,另一台仅启用IntelliSense。所有必要的Python包和VSCode均已预装。
数据收集方法:
四、 主要研究结果
研究结果分为定量和定性两部分,揭示了Copilot在实际使用中的复杂图景。
1. 定量结果:效率与偏好的悖论 * 任务完成率与时间:使用Copilot的参与者任务失败次数(5次)略高于使用IntelliSense的参与者(2次),但差异未达到统计学显著性。分析失败原因发现,Copilot导致的3次失败源于其生成的错误代码将参与者引入了耗时的调试困境;而IntelliSense的失败主要源于参与者对特定库的不熟悉。在成功完成的任务中,Copilot组的平均完成时间(9分18秒)略短于IntelliSense组(10分23秒),但此差异同样不显著。研究者指出,Copilot虽然生成代码快,但其代码可能包含错误,导致额外的调试时间,抵消了其生成速度的优势;而网络搜索获得的代码通常经过社区验证,且附带解释,便于理解和微调。 * 用户偏好与感知:尽管在客观效率指标上未见显著优势,但参与者的主观偏好非常明显:19/24的参与者表示更喜欢在日常编程中使用Copilot,23/24认为Copilot比IntelliSense更有帮助。在7分制评分中,参与者认为Copilot生成的代码帮助性(平均6.16)显著高于IntelliSense(平均4.45)。然而,只有10名参与者对Copilot生成的代码比IntelliSense的建议更有信心。这形成了一个有趣的矛盾:程序员强烈偏好Copilot,但对其输出的信任度并不高。
2. 定性结果:优势、挑战与应对策略 通过对录像和反馈的定性分析,研究者提炼出以下几个核心主题:
用户感知的优势:
用户面临的挑战与障碍:
用户交互模式与应对策略:
五、 结论与价值
本研究得出核心结论:尽管基于大语言模型的代码生成工具(以Copilot为例)在基准测试中表现惊人,但在真实的编程工作流中,它并未必然降低任务完成时间或提高成功率。然而,程序员们依然强烈偏好使用它,主要原因在于它能有效提供编程起点并节省信息搜索成本。研究的价值在于揭示了工具当前存在的关键可用性瓶颈:程序员在理解、编辑和调试AI生成代码时面临显著困难,这严重制约了其解决问题的效率。
本研究具有重要的科学价值和应用价值: 1. 科学价值:它将评估焦点从单纯的代码生成“准确性”转向了人机协作的“可用性”,为人机交互和软件工程领域研究AI辅助编程提供了宝贵的实证数据和理论视角。它强调了在AI工具设计中,除了提升模型性能,支持用户理解、验证和操控AI输出同等重要。 2. 应用价值:为下一代代码生成工具的设计指明了具体方向:a) 提供多方案比较,让用户能评估和组合不同建议;b) 集成解释机制(如内联注释、基于置信度的代码高亮)以增强代码可理解性;c) 自动生成测试用例帮助验证代码;d) 支持任务分解的交互机制,引导用户将复杂问题拆解为Copilot更能有效处理的子问题;e) 考虑将网络搜索与社区讨论与AI生成相结合,提供更全面的参考。
六、 研究亮点
七、 其他有价值内容
研究还观察到了少数成功参与者的一种有效策略:将复杂任务主动分解为多个简单的子任务,并为每个子任务编写清晰的提示给Copilot。这种“分而治之”的策略提高了任务解决效率和用户体验。这进一步佐证了未来工具需要支持任务分解这一设计方向的重要性。此外,研究将参与者的行为与“不完美AI”领域的现有理论(如信任校准、过度依赖)联系起来,为理解人-AI协作提供了更广阔的理论背景。