研究内容:GitHub Copilot 如何影响开源维护者的工作性质
采访经济研究人员,分析 GitHub Copilot 对开源维护者工作方式的因果影响。
我很高兴与大家分享对两位研究人员的采访,我有幸与他们合作撰写了一篇近期发表的论文,研究开源维护者在使用 GitHub Copilot 后如何调整他们的工作:
- 曼努埃尔·霍夫曼是哈佛大学创新科学实验室的博士后研究员,该实验室隶属于哈佛商学院数字、数据与设计研究所。他同时也是斯坦福大学的研究员。他的研究兴趣在于开源软件和人工智能的社会与行为层面,并聚焦于创新与技术管理这一更广泛的主题,旨在更好地理解大型、中型和创业型企业的战略层面。
- 萨姆·博伊塞尔是哈佛大学创新科学实验室的博士后研究员。他是一位应用微观经济学家,研究兴趣集中在数字经济学、劳动与生产率、产业组织以及社会技术网络等领域的交叉领域。具体而言,他的研究主要围绕公共物品的私人供给、开放协作中的生产率以及开源软件(OSS)生态系统中的福利效应展开。
研究问答
凯文:非常感谢曼努埃尔和萨姆的交流!看来这篇论文确实引起了广泛关注。你们能否为我们的读者做一个简要的总结?
Manuel:感谢您、微软的Sida Peng和哈佛商学院的Frank Nagle的鼎力合作,我们得以研究 GitHub Copilot 对开发者的影响,以及这种生成式人工智能如何改变工作的本质。我们发现,在开源软件领域,当为开发者提供能够降低核心编码工作成本的生成式人工智能工具时,开发者会增加编码活动,减少项目管理活动。我们发现,在引入该工具后的第一年,效果最为显著,但即使在两年后,这种效果依然存在。这一成果主要源于开发者更加自主地工作,减少了协作,因为他们无需与他人互动即可解决问题,而是可以通过人工智能的辅助来完成。


Sam:完全正确。我们尝试通过深入研究探索与利用的范式,进一步理解工作的本质。简单来说,利用是指将精力投入到已知选项中最有利可图的选择上,而探索则意味着尝试寻找潜在回报更高的新选项。我们在 GitHub 的背景下验证了这一理念。使用 GitHub Copilot 的开发者更倾向于进行实验,而较少进行利用,也就是说,他们会启动新的项目并利用人工智能,并且不太愿意继续开发旧项目。此外,他们还会接触到更多以前从未接触过的编程语言,尤其是那些在劳动力市场中更受重视的语言。仅凭 GitHub Copilot 带来的新语言实验这一粗略估算,一年内就能创造约 5 亿美元的价值。
凯文:很有意思!您能否概述一下您在分析中使用的方法?
Manuel:当然乐意!我们在这项工作中采用了回归不连续性设计,这在纯粹使用现有数据(例如来自 GitHub 的数据)的情况下,是尽可能接近随机对照试验的方法,而无需研究人员进行随机化。回归不连续性设计基于开发者排名和 GitHub 用来确定其是否有资格免费访问GitHub Copilot 顶级维护者计划的阈值。
Sam:这种方法的核心思想是,排名略低于阈值的开发者与排名略高于阈值的开发者大致相同。换句话说,开发者的排名恰好使其符合生成式人工智能的资格,而他们原本也可能不符合资格。考虑到开发者既不知道阈值,也不知道GitHub的内部排名,我们可以确定,我们在代码编写、项目管理以及平台上的其他活动中观察到的变化,仅仅是由于开发者获得了GitHub Copilot的访问权限,除此之外别无其他因素。
凯文:太好了!还有一个后续问题:您能否用“像给五岁小孩解释一样”的方式概述一下您在分析中使用的方法?
Manuel:好的,我们再详细解释一下这个问题。有些人使用 GitHub Copilot,有些人则不使用。如果我们只比较使用 GitHub Copilot 的用户和不使用 GitHub Copilot 的用户之间的差异,就会发现某些行为和特征与 GitHub Copilot 的使用相关。例如,我们可能会发现使用 GitHub Copilot 的用户比不使用的用户提交更多的代码。但关键在于,这只是相关性的证明,而不是因果关系的证明。通常,我们想要弄清楚的是 X 是否导致 Y,而不仅仅是 X 与 Y 相关。回到之前的例子,如果使用 GitHub Copilot 的用户确实比不使用的用户提交更多的代码,那么以下是一些可能的原因:
- 使用 GitHub Copilot 会促使人们提交更多代码。
- 代码推送量增加会导致人们使用 GitHub Copilot。
- 还有一种情况既促使人们使用 GitHub Copilot,又促使他们提交更多代码(例如,成为一名专业开发人员)。
因为 (1)、(2) 和 (3) 都可能得出 GitHub Copilot 使用率和代码推送次数之间存在相关性的数据,所以仅仅发现相关性本身意义不大。不过,要真正探究 GitHub Copilot 和代码推送次数之间的因果关系,一种方法是通过随机对照试验 (RCT)。
在随机对照试验(RCT)中,我们会随机将参与者分配到使用 GitHub Copilot 的组(实验组)和禁止使用 GitHub Copilot 的对照组(对照组)。只要分配过程真正随机,且参与者遵守分配方案,实验组和对照组之间的任何结果差异都可以归因于 GitHub Copilot 的使用。换句话说,可以说 GitHub Copilot导致了这些结果。然而,正如任何医疗保健领域人士都会告诉你的那样,长期的大规模 RCT 通常成本高昂,因为需要招募受试者、监测他们是否遵守分配方案,并进行长期随访。
Sam:没错。那么,如果有一种方法可以在不进行随机对照试验(RCT)的情况下观察开发者,并得出关于GitHub Copilot使用情况的有效因果结论,岂不是很棒?这就是回归不连续性设计(RDD)的用武之地。RCT的随机分配机制使我们能够比较两个几乎完全相同的组的结果。然而,有时系统中本身就存在随机性,我们可以将其用作自然实验。在我们的论文中,这种随机性体现在GitHub内部用于决定哪些开源维护者有资格免费使用GitHub Copilot的排名机制中。
我们来看一个简化的例子。假设有一百万个代码仓库,根据一组指标进行排名,规则是排名前 50 万的代码仓库可以免费使用 GitHub Copilot。如果我们比较排名第一的代码仓库和排名第一百零万的代码仓库,我们可能会发现它们之间存在很大的差异。毕竟,根据这个指标,排名第一的代码仓库是 GitHub 上最好的代码仓库,而排名第一百零万的代码仓库与它相差了整整 999,999 位。这两个代码仓库在代码质量、文档质量、项目用途、维护者素质等方面可能存在显著差异,因此我们不能说排名第一的代码仓库和排名第一百零万的代码仓库的维护者之间的结果差异仅仅是因为后者可以免费使用 GitHub Copilot。
然而,仓库 #499,999 和仓库 #500,001 又该如何比较呢?这两个仓库可能非常相似,最终哪个仓库能够通过资格门槛完全取决于随机因素。因此,我们可以有力地论证,这两个仓库结果的差异仅仅是因为仓库 #499,999 可以免费访问 GitHub Copilot,而仓库 #500,001 无法免费访问。实际上,你需要比两个仓库更大的样本量,因此你应该比较一组刚好高于和低于资格门槛的仓库。
Kevin:谢谢,这很有帮助。我很想知道你的论文有哪些局限性,以及你希望获得哪些数据用于后续研究。对你来说,理想的数据集是什么样的?
Manuel:问得好!当然,任何研究都不可能完美无缺,都会存在局限性。我们很高兴能够更好地了解生成式人工智能及其对未来工作的影响。因此,一个局限性在于私有代码库信息的可用性。我们相信,如果我们能够获取私有代码库的信息,就可以检验是否存在更多私有项目中的实验,以及在私有项目中利用生成式人工智能所做的改进,是否能够随着时间的推移在一定程度上惠及公共领域。
Sam:我们研究的另一个局限性在于,我们采用基于语言的练习来评估GitHub Copilot的价值。我们发现,开发者会专注于他们之前不熟悉的高价值语言,并将这一估计值外推至所有顶级开发者。然而,由于在完全均衡的情况下,如果更多开发者提供特定语言的服务,开发者的工资可能会随时间变化,因此这个估计值显然只是一个局部均衡值。尽管存在这一局限性,但该值似乎仍然偏低,因为它没有包含任何非语言特定的实验价值以及从GitHub Copilot中得出的非实验价值。
凯文:对未来有何预测?对政策制定者有何建议?对开发商有何建议?
曼努埃尔:对未来的一个简单预测是,人工智能会激励那些它能降低成本的活动。然而,由于人工智能工具可以应用于许多领域,目前尚不清楚哪些部分会受到激励。很可能会出现大量激励不同工作活动的人工智能工具,最终导致员工、企业管理者和政策制定者不得不考虑他们应该重视哪些活动。我们还必须考虑工作活动的新组合。这些组合很难预测。多伦多大学的著名教授阿维·戈德法布(Avi Goldfarb)和他的同事以蒸汽机为例。过去,人们的工作是围绕蒸汽机这个动力源组织的,但随着电动机的发明,这种模式不再必要,结构也随之发生了变化。人们不再需要将所有机器围绕工厂中心的巨型蒸汽机布置,而是利用电力设计出更合理的布局,从而提高了生产效率。我发现这段历史叙述颇具说服力,并且可以预见,人工智能也将拥有类似的潜力,其最大的力量仍有待发掘,而这股力量的释放将取决于我们如何重组工作流程。开发者们也可以思考一下,他们的工作在未来可能会发生怎样的变化。更重要的是,由于开发者们最接近机器学习算法和人工智能技术的开发,因此他们可以积极地塑造未来。
萨姆:除了以上几点,目前尚不清楚工作流程何时发生变化,以及这种变化究竟会减少还是加剧不平等。许多预测都指向加剧不平等,因为训练大型语言模型需要大量的计算能力,而这种能力往往掌握在少数人手中。另一方面,已有文献表明,至少在短期内,能力较低的人群似乎从生成式人工智能中获益最多。因此,我们必须了解生成式人工智能的益处如何在社会中分配。如果分配不均,是否存在能够纠正这些不平衡的、公平且能提升社会福祉的干预措施?我们研究的一个令人鼓舞的结果表明,生成式人工智能对技能相对较低的劳动者尤其具有影响力:
中的表 A5。](https://github.blog/wp-content/uploads/2024/12/coding_by_ability.png?w=1024&resize=2300%2C1126)
中的表 A5。](https://github.blog/wp-content/uploads/2024/12/project_management_by_ability.png?w=1024&resize=2316%2C1082)
萨姆(续):与普遍认为生成式人工智能将取代许多入门级工作的猜测相反,我们有理由相信,人工智能还可以降低实验和探索的成本,减少准入门槛,并在某些劳动力市场领域创造更公平的竞争环境。政策制定者应谨慎监测生成式人工智能的分配效应,允许这项新技术在自然发挥作用的领域带来公平的益处,同时也要在它未能充分发挥作用的情况下进行干预。
个人问答
凯文:我想稍微换个话题,多聊聊你的个人经历。曼努埃尔,我知道你曾在斯坦福大学从事健康结果分析方面的研究,也研究过电视台的多元化问题,现在你又在研究互联网上的极客群体。我很想了解你是如何走到今天的。
曼努埃尔:当然!实际上,我接触“网络极客”的时间比我的简历上显示的要长得多。在学习之前,我一直在使用开源软件,包括Linux和Ubuntu,编程是我的爱好。我享受个人电脑和互联网带来的自由。在学习期间,我发现经济学和商业研究是我特别感兴趣的领域。由于我对因果推断和更广泛的社会福利问题很感兴趣,我学习了如何运用实验和准实验研究来更好地理解与个人、企业和政策制定者相关的社会、医疗和技术创新。攻读博士学位期间,我专注于劳动与健康领域,之后在斯坦福大学继续深入研究健康问题。在哈佛商学院学习期间,我的研究重心又转向了劳动领域。因此,得益于对令人兴奋的开源软件领域的研究,我很幸运地能够不断地加深对这两个领域的理解。
凯文:哈哈,很高兴听到你对开源软件这么感兴趣!萨姆,你的背景也很多元化,你分析过清洁技术市场状况和就业核查政策的影响,而且过去几年你似乎也一直在研究互联网上的极客们。你能跟我分享一下你的经历吗?
山姆:自从中学时偶然读到《OpenSUSE傻瓜教程》之后,我就成了计算机和开源软件的爱好者。本科期间,我被经济学的社会科学层面所吸引,它能够解释或预测各种情境下的人类行为。研究生阶段,我涉猎了多个子领域,最终萌生了一个大胆的想法:将我的专业与我的爱好结合起来,从此便义无反顾地投身其中。开源是一个数据极其丰富的环境,蕴藏着大量经济学家感兴趣的研究课题。我研究过同伴效应在推动贡献中的作用,利用策略行为和风险规避构建了软件依赖网络的形成模型,并探索了劳动力市场竞争如何影响开源产出。
谢谢你,凯文。我一定会把“互联网上的书呆子”这个概念融入到下一篇论文的标题中。
凯文:找到自己热爱的细分领域真是一件令人高兴的事,我很想知道你们在这个领域的生活是怎样的。你们俩的日常生活是怎样的?
曼努埃尔:每天的工作内容可能各不相同,但作为一名学者,从宏观层面来看,有一些任务是反复出现的。比如研究、教学和其他工作。我们先来说说研究方面。我目前正忙于撰写因果推断论文,不断完善它们,同时也要面向公众进行演讲,向大家介绍我们的研究成果。有些工作是合作完成的,有些则是独立完成的,所以工作内容非常多样化。而作为一名学者,最棒的地方就在于你可以通过选择项目来自主决定工作内容的多样性。随着时间的推移,你必须同时处理很多事情。因此,我正在努力完成之前在健康领域撰写的论文;例如,你之前提到的关于电视、健康与幸福以及工作场所疫苗接种的论文;此外,我还致力于开源软件领域的研究,尤其重要的是,要改进关于生成式人工智能与工作本质的论文。我们不断涌现出新的想法,希望更好地理解我们所生活和即将生活的世界,尤其是在开源软件和生成式人工智能的交汇点上。因此,研读相关文献,并最终利用真实世界的数据解答有关未来工作的各种激动人心的问题,显得尤为重要。GitHub 正是这方面的绝佳资源。
萨姆:作为一名应用研究员,我运用数据来解答问题。这些问题可能源于时事,也可能来自与朋友和同事的交流,或者仅仅是对开源领域错综复杂问题的思考。数据通常来自互联网上公开记录的企业和个人行为。例如,我曾利用静态代码分析和版本控制历史记录来描述开源代码库随时间推移的发展历程;我曾利用招聘信息数据来衡量企业对开源技能的需求;我曾利用软件包生态系统的依赖关系图来追踪项目之间的关系。之后,我可以运用我在经济理论、计量经济学方法和因果推断方面的训练,对问题进行严谨的探索。最终的研究成果会以文章的形式撰写出来,提交给同行,并根据反馈不断改进。
凯文:自从生成式人工智能工具出现以来,情况发生了哪些变化?你觉得生成式人工智能工具有用吗?
Manuel:当然。我和另一位好同事,来自弗吉尼亚联邦大学的Daniel Stephenson,在开发实验和用 JavaScript 编程时都会使用 GitHub Copilot。Copilot 根据上下文给出的代码建议往往非常准确,这一点很有意思。因此,它确实是一个非常有用的工具。然而,我们的需求最终只能由我们自己决定,所以根据我的经验,Copilot 的确可以加快开发速度,并帮助我们避免一些错误,但前提是我们不能盲目地听从 AI 的建议。
Sam:我最近才开始使用 GitHub Copilot,但它对我的工作流程产生了相当大的影响。大多数社会科学研究人员并非专业的软件工程师,但他们也必须编写代码才能按时完成任务。在生成式人工智能出现之前,从问题到解决方案之间的延迟通常表现为大量的搜索查询、查阅问答论坛或文档,这耗费了大量时间。能够在集成开发环境 (IDE) 内解决不确定性,对于提高工作效率来说简直是天赐良机。
凯文:对于刚入行软件工程或研究的人,你有什么建议?如果你能给十年前的自己一些建议,你会说什么?
曼努埃尔:我再从更高的层面谈谈。找到你真正关心的工作、问题或难题。我认为这是获得满足感的一条普遍法则,无论是在软件工程、研究还是其他任何领域。从某种意义上说,“人生只有一次”这句格言其实很贴切,尽管它并非完全准确。另一个非常实用的建议是,不要过分在意你无法改变的事情,而应该专注于你能掌控的事情。最后,多听取不同人的建议,然后从中挑选最有价值的。每个人的思维方式和想法都不同,因此,这样做会很有帮助。
山姆:
- 能够与软件工程和研究这两个群体进行有效沟通至关重要。
- 你只有在做自己真正热爱的事情时,才能做到最好。
- 过早优化确实是万恶之源。
凯文:你会向对这个领域感兴趣的人推荐哪些学习资源?
曼努埃尔:我们已经谈到了几个方面——生成式人工智能研究、使用 Copilot 进行编码、因果推断和机器学习、经济学以及商业研究。因此,以下是我可以推荐的每个主题的链接:
- 生成式人工智能研究:伊桑·莫利克的社交媒体帖子
- 使用 Copilot 进行编码:GitHub Copilot 的高级功能
- 因果推断与机器学习:Susan Athey 实验室
- 经济与商业研究:NBER 工作论文
我相信还有很多其他优秀的资源,其中很多也可以在 GitHub 上找到。
Sam:如果你有兴趣更深入地了解经济学家和其他社会科学家如何看待开源软件,我强烈推荐以下几篇(比较入门级的)文章,这些文章对我的研究方法产生了很大的影响。