当前位置: 首页 > article >正文

论文笔记:The Impact of AI on Developer Productivity:Evidence from GitHub Copilot

0 abstract 

  • 本文介绍了一项对GitHub Copilot(一种人工智能编程助手)的控制实验结果。
  • 研究人员招募了软件开发人员,要求他们尽可能快地用JavaScript实现一个HTTP服务器。实验组可以访问人工智能编程助手,比对照组完成任务的速度快55.8%。
  • 观察到的异质性效应表明,人工智能编程助手有望帮助人们过渡到软件开发职业。

1 实验设计 

  • 计算了两个指标作为衡量每个组的表现:任务成功率和任务完成时间。
    • 任务成功率是指一个组中成功完成任务的参与者所占的百分比。
    • 任务完成时间是从任务开始到结束所需的时间
  • 在参与者完成任务后,研究者向他们发送了退出调查的链接。
    • 询问了实验组他们在执行任务时发现GitHub Copilot有多有帮助,以及他们估计与不使用GitHub Copilot相比,他们完成任务的速度提高了多少。
    • 还要求对照组估计如果他们使用了GitHub Copilot,他们会经历多大的速度提升,这是在向他们展示了一分钟的演示视频之后

2 实验对象

  • 95名开发者被随机分配到对照组和实验组,实验组45人,对照组50人。实验组和对照组各有35名开发者完成了任务和调查
  • 大多数参与者的年龄在25-34岁之间,来自印度和巴基斯坦。
    • 这组参与者的特点是相对较低的收入(与美国标准相比,年中位收入在10,000至19,000美元之间)但教育水平较高(大多数人拥有4年制学位及以上)。
    • 这个组别的平均编程经验为6年,并且平均报告在一个工作日中花费9小时进行编程。

3 实验结果

实验组——使用copilot

对照组——不适用copilot

3.1 完成时间

  • 实验组的平均完成时间为71.17分钟,对照组为160.89分钟。
    • 这代表了55.8%的完成时间缩短。t检验的p值为0.0017,改善的95%置信区间在[21%, 89%]之间。
  • 有四个异常值的完成时间超过300分钟。
    • 所有异常值都在对照组,但即使去掉这些异常值,我们的结果依然稳健。
  • 这一结果表明,在我们的实验人群中,Copilot显著提高了平均生产力。

3.2 完成时间在不同维度上是否有差异

  • 然后,论文调查这种效应在不同维度(包括经验、就业状况、收入、教育和软件语言偏好)上是否存在异质性。
    • 应用Horvitz-Thomson转换,然后对观测到的转换后结果进行回归分析。
  • 表1中的估计结果报告了这次回归的系数。
    • 结果显示,经验较少的开发者(职业编程年数)、编码负载较重的开发者(每天编程时间)、以及年龄较大的开发者(年龄在25至44岁之间的开发者)从Copilot中获益更多。

3.3 受试对象的体验

  • 进行了一项包含两个问题的退出调查,以了解受试对象的体验。
    • 首先,要求他们估计Copilot在完成任务方面提供的生产力增益或损失(以百分比表示)。
    • 虽然对照组在执行任务期间没有接触到Copilot,但在回答这个问题之前,他们观看了教程视频,因此了解了Copilot的功能。
  • 图7展示了对照组和实验组自我报告的生产力增益估计的分布。
    • 平均而言,实验组和对照组的参与者估计生产力增加了35%,与他们实际显示的55.8%的增幅相比,这是一种低估。

 

3.4 支付意愿

  • 在第二个问题中,参与者被问到他们愿意为获取GitHub Copilot发布通知的最高月价格是多少。
  • 这个问题的目的是了解开发者支付Copilot的意愿,因为这个问题的答案提供了开发者支付意愿的上限。
    • 图8展示了对照组和实验组分开的无关价格分布。
      • 实验组的平均无关价格为每月27.25美元,对照组的平均无关价格为每月16.91美元。
      • 这种差异在95%的水平上具有统计学意义。
      • 这一结果间接证明了实验组在任务中受益于Copilot,因为他们的支付意愿显著高于对照组。


http://www.kler.cn/news/136010.html

相关文章:

  • 怎么在echarts图上左右滑动切换数据区间
  • Flutter在web项目中使用iframe
  • html主页框架,前端首页通用架构,layui主页架构框架,首页框架模板
  • 设计原则 | 开放封闭原则
  • LeetCode【92】翻转链表II
  • 将Excel中的数据导入shell脚本
  • 用java编写图书管理系统
  • HDCTF2023 - Reverse方向全WP
  • 在Oracle 11g 数据库上设置透明数据加密(TDE)
  • 【SpringCloud】Eureka基于Ribbon负载均衡的调用链路流程分析
  • BLIP-2:冻结现有视觉模型和大语言模型的预训练模型
  • C#具名参数(Named Parameters)
  • Ubuntu下发送邮件
  • C#编程题分享(1)
  • 【亚马逊云科技产品测评】活动征文|aws云服务器 + 微服务Spring Cloud Nacos 实战
  • 使用Java解决快手滑块验证码
  • unity 打包exe设置分辨率
  • 线上bug-接口速度慢
  • Spring Boot - 自定义注解来记录访问路径以及访问信息,并将记录存储到MySQL
  • 解决 Python requests 库中 SSL 错误转换为 Timeouts 问题
  • 使用 Core Tools 在本地开发 Azure Functions
  • 【图数据库实战】-HugeGraph系列
  • SpringCloud 微服务全栈体系(十四)
  • 【brpc学习案例实践一】rpc服务构造基本流程
  • 彻底解决electron-builder安装问题与npm下载配置问题
  • Docker发布简单springboot项目
  • C++ 删除无头链上所有指定值为x的节点。
  • Redis设计与实现-数据结构(建设进度15%)
  • Re50:读论文 Large Language Models Struggle to Learn Long-Tail Knowledge
  • ubuntu 查看5000端口是否开放