找回密码
 立即注册
查看: 730|回复: 0

AI 编程神器 Copilot 治好了我的精神内耗

[复制链接]

1

主题

0

回帖

15

积分

新手上路

积分
15
发表于 2023-5-8 10:09:49 | 显示全部楼层 |阅读模式

转眼间,AI 编程神器 Copilot 已经发布一年有余,这一年,Copilot 改变了什么?真的给开发者带来辅佐了吗?

2021 年 6 月 30 日,微软旗下代码托管平台 GitHub 推出了名为 Copilot 的 AI 结对编程东西,Copilot 的主要定位是提供代码补全与建议功能,可按照当前文件的内容和光标位置自动生成代码。

据了解,Copilot 由 OpenAI 的 Codex 系统提供撑持。据 Copilot 网站称,Codex 模型由“互联网上的公共代码和文本”训练,“既能理解编程,也能理解人类语言”。作为 Visual Studio Code 的扩展,Copilot “将你的评论和代码发送到 GitHub Copilot 处事,然后它会使用 OpenAI Codex 来合成并建议个别行和整个函数”。

作为一款 AI 编程神器,Copilot 从诞生之初就争议不竭。

拥护者认为它确实可以提高出产力,否决者认为它写的代码错误率高,开发者还需要花费额外的时间做代码审查。有的争议焦点集中在 Copilot 是否涉及侵权上——毕竟 Copilot 传布鼓吹的基于公开代码训练,其实是在未遵循开源许可证的情况下,肆意“抄袭”开源代码。

在 Copilot 正式发布一年之际,GitHub 对 2000 多名开发者展开了查询拜访,以期了解 Copilot 到底改变了什么?

Copilot 大调研




结合查询拜访与尝试,GitHub 整理出一份 Copilot 在开发者群体中实际影响力的结论性资料。

GitHub 研究员 Eirini Kalliamvakou 在一篇博文中提到:由于 AI 辅助开发还是个相对较新的范围,作为研究人员,我们几乎找不到可供借鉴的早期成果。我们但愿衡量 GitHub Copilot 的实际效果如何,而且在早期不雅察看和用户采访之后,我们决定对 2000 多名开发者进行大规模查询拜访,了解他们的使用体验和感到感染。

在设计研究方式时,我们主要考虑到以下三大重点:


  • 安身整体存眷出产力。在 GitHub,我们喜欢广泛且可持续地考量开发者的出产力及相关影响因素。我们使用 SPACE 出产力框架选择需要查询拜访的具体标的目的。
  • 考量来自开发者的第一手不雅概念。我们开展了多轮研究,包罗定性(认知)与定量(不雅察看)数据,但愿拼凑出可靠的底细。我们但愿验证:(1)用户的实际体验,能否证实我们揣度出的结论?(2)我们的定性反馈,是否同样适合更泛博的用户群体?
  • 评估 GitHub Copilot 在日常开发场景中的效果。在设计研究方式时,我们出格注意覆盖专业开发人员,并围绕他们在工作日内面对的典型任务进行测试设计。最终的查询拜访成果,既有意料之中的发现,也有不测惊喜。
开发者出产力确有提升

除了加快开发速度之外,Copilot 还能给法式员带来哪些额外辅佐?

查询拜访发现:

  • 开发者对劲度有所提升。60% 至 75% 的用户暗示,他们对此刻的工作体验更对劲,编码时的精神压力更小,而且 Copilot 能辅佐他们更专注地达成令人对劲的工作成效。
  • 缓解精神内耗。开发者们陈述称,Copilot 能辅佐他们稳步推进开发流程(73%),并在措置反复性任务期间降低精力消耗(87%)。



速度也很重要

有近 90% 的开发者们暗示,在使用 Copilot 时,他们完成任务,出格是反复性任务的速度更快了。这也符合 GitHub 在产物设计时做出的基本预期。

为了在实践中不雅察看并量化这种提升效果,GitHub 组织了一场对照尝试。两个受试小组(此中一组使用 Copilot)需要接受计时,核算用 JavaScript 编写 HTTP 处事器的平均用时。

尝试发现:



  • 使用 Copilot 的小组完成任务的比例更高,为 78%,未使用 Copilot 的小组完成任务比例为 70%。
  • 更显著的区别在于,使用 Copilot 的开发者完成任务的速度明显更快,要比未使用 Copilot 的开发者快 55%。具体来看,使用 Copilot 的开发者完成此项任务的平均用时为 1 小时 11 分钟,而未使用 Copilot 的开发者平均用时达 2 小时 41 分钟。综上,该项查询拜访和尝试最终得出的结论是,“Copilot 有助于加快工作完成速度,辅佐开发者减少精神内耗,以更加丰满的精神状态专注于工作内容,最终在本身的编码过程中找到更多乐趣。”





对于这一查询拜访成果,有开发者留言暗示撑持: “使用 Copilot,我能尽量少把精力浪费在枯燥反复的工作身上。它点燃的灵感火花,让我感到编码过程更有趣、更高效了。”

GitHub 研究员 Eirini Kalliamvakou 暗示,“随着 Copilot 的呈现,我们在 AI 驱动型代码补全东西的探索道路上不再是孤军奋战。在实际出产范围,我们比来看到一项针对 24 名学生的评估,谷歌也在内部评估操作机器学习增强代码补全的可能性。

着眼于整个行业,研究社区正当真分析 GitHub Copilot 在各类场景下的实际影响,包罗教育、安全、劳动力市场,乃至开发者的实践与行为。我们目前正在各类环境下不雅察看 Copilot 的实际效果。这是个不竭成长的范围,我们对研究社区和自身查询拜访中的发现感到振奋,也将未来几个月内为大师揭晓更多动静。”
为什么 Copilot 会编写出糟糕的代码?

GitHub 的调研成果展现了 Copilot 在开发者群里中起到积极感化的一面,但任何事物都有其两面性,Copilot 本身带有的争议也不容忽视。开发者在决定是否采用 Copilot 前,需要对其有充实的了解。

此中,Copilot 斗劲大的一个争议点在于代码错误率高

Copilot 由名为 Codex 的深度神经网络语言模型提供撑持,该模型在 GitHub 上的公共代码存储库长进行了训练。它读取了 GitHub 的整个公共代码档案,此中包含数千万个存储库,汇聚了来自许多世界上最优秀法式员的代码。


那么,为什么 Copilot 还是会编写出糟糕的代码呢?




按照 OpenAI 的论文,Codex 只有 29% 的时间会给出正确答案。而且它编写的代码往往重构得很差,无法充实操作现有的解决方案(即使这些方案就在 Python 的尺度库中)。

Copilot 编写出糟糕的代码,原因在于语言模型的工作机制。它们反映的是大大都人的平均写作程度。它们不知道什么是正确的,什么是好的写法。GitHub 上的大大都代码(按照软件尺度)相当陈旧,而且(按照定义)是由程度一般的法式员编写的。

Copilot 尽力猜测的是,如果这些法式员正在编写的是你面对的这些文件,他们可能会写什么代码。OpenAI 在他们的 Codex 论文中讨论了这一点:

“与其他训练方针是预测下一个词符的大型语言模型一样,Codex 会生成与其训练分布尽可能相似的代码。这样做的一个后果是,这种模型可能会做一些对用户无益的事情”

Copilot 之所以比那些程度一般的法式员更糟糕,一个关键问题在于,它甚至没有测验考试编译代码或查抄代码是否有效,也没有考虑过本身是否真的遵循了文档的指示。此外,Codex 没有接受过去一两年内创建代码的训练,因此它完全没学过最新版本、库和语言特性。例如,提示它创建 fastai 代码后,它只会给出使用 v1 API 的建议,而不是大约一年前发布的 v2 版本。

值得一提的是,本年 4 月,微软推出了 AI 代码审查东西 Jigsaw,以期进一步提升 AI 编码的准确率。

在研究论文《Jigsaw:当大型语言模型牵手法式综合》(Jigsaw: Large Language Models meet Program Synthesis,文章已被国际软件工程会议 ICSE 2022 接收)中,微软介绍了一种可以提高这类大型语言模型性能的新东西。Jigsaw 中包含可以理解法式语法及语义的后措置技术,可操感化户的反馈不竭提升修正能力。配合多模输入,Jigsaw 即可为 Python Pandas API 合成代码。

随着 Jigsaw 逐步在提高系统准确性方面阐扬重要感化,Copilot 这类 AI 编程东西准确率或将获得提升。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|T9AI - 深度人工智能平台 ( 沪ICP备2023010006号 )

GMT+8, 2024-12-22 13:31 , Processed in 0.069935 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表