在数字化和自动化日益成为当今软件开发领域的关键词时,微软公司推出的Copilot编码助手无疑在业界引发了一场革命。这款基于人工智能的编程工具不仅展示了AI技术在实际应用中的巨大潜力,还预示着编程工作方式的未来趋势。让我们一起看看这项技术如何从一个简单的编程助手演变成为能够自主完成复杂编码任务的先进工具。
软件开发者尼古拉·阿夫特涅夫在2021年体验了微软公司推出的Copilot编码助手预览版时,他迅速意识到了这一工具的潜力。这款由微软的GitHub编程平台开发、基于OpenAI生成性人工智能技术的助手虽不完美、偶有错误,但阿夫特涅夫对其自动完成代码行的能力感到惊喜。作为票务销售公司StubHub的程序员,他只需简单地按下Tab键,Copilot便能自动填充剩余部分。“原本需要15次按键的操作,现在只需要三次,”他回顾道,“这显著提升了编码的速度。”
三年后,整合了OpenAI最新的GPT-4技术后,GitHub的Copilot功能更加强大,不仅能回答工程师的问题,还能将代码从一种编程语言转换到另一种。因此,这款助手现在负责越来越多的软件编写工作,甚至用于编程企业的关键系统。
在这一过程中,Copilot正在逐步改变软件工程师的工作方式——他们是第一批大规模使用生成性AI的专业人群。微软表示,迄今为止,Copilot已吸引了130万用户,包括从小型初创公司到像高盛、福特和安永这样的大企业在内的50000家企业。工程师们表示,Copilot通过处理繁琐和重复的任务,每月为他们节省了数百小时,让他们有更多时间专注于更复杂的挑战。
自2018年微软以75亿美元收购GitHub以来,该公司在其市场中占据主导地位,并依靠Copilot的强大AI能力,与包括Tabnine、亚马逊的CodeWhisperer和谷歌支持的Replit Ghostwriter等竞争对手抗衡。GitHub的AI助手也是微软在Office、Windows、Bing等其他业务线中集成更多Copilot的一个测试平台。
与所有AI工具一样,GitHub Copilot也有其局限性。开发者们指出,它有时会提取过时的代码,提供无用的答案,并生成有错误或可能侵权的代码建议。由于这个工具是基于公共和开放的代码库进行训练的,工程师在使用时可能会复制安全问题或引入新的问题,尤其是如果他们盲目接受Copilot的建议。
GitHub强调,这个工具是一个助手而非人类程序员的替代品,并要求客户明智地使用,需要有严格的指导方针防止程序员简单地采纳Copilot的建议。GitHub首席执行官Thomas Dohmke表示,“团队的社交动态将确保那些通过快速接受代码并未经团队流程审查的作弊者,他们的代码将不会投入生产。”
生成性AI是计算机编程多年来的又一次重大创新。上个世纪,程序编译器通过快速将命令转换为计算机能理解的二进制代码,加速了软件开发。近年来,Linux推动了开源编码的普及,使程序员能够利用彼此的工作成果,而无需从头开始编写所有代码。像GitHub的Copilot这样的编码助手可能会带来更为革命性的变革,因为生成性AI拥有自动化软件工程师当前工作的巨大潜力。
在纽约市学院教授软件工程的StubHub的阿夫特涅夫表示,Copilot的预测能力帮助程序员保持“编程流”,因为他们不再需要停下来查找资料。阿夫特涅夫虽然已经编程超过20年,但有时仍会忘记某些编程语言,被迫浪费时间在Google上搜索。“Copilot使你无需退出当前的编码过程,”他说,“即使它生成的是无意义的内容,接受它所做的然后自己更正仍然更容易。”
Aaron Hedges是一名有超过15年经验的开发者,在Copilot推出前,他感到了职业焦虑。Hedges在ReadMe工作,这是一家帮助公司创建应用程序接口(API)技术描述的初创公司。像阿夫特涅夫一样,Hedges也非常依赖Copilot的自动完成功能。
“作为一名资深工程师,我可以看着它生成的代码说,‘嗯,看起来不错。’”他还喜欢自己能在不离开编程窗口的情况下提出问题。“我不需要切换窗口去打开浏览器,这真的减少了很多干扰。”他说。
调试软件对于软件开发人员来说,是最乏味的任务之一,这一过程可能占据工程师工作时间的50%。Figma,一家帮助开发者设计应用或网站界面的公司,表示Copilot可以在几分钟内完成创建缺陷测试程序的工作,这通常需要几小时。“这就是AI的真正价值,”该公司的工程副总裁Abhishek Mathur说,“它不取代我们的工作,而是释放我们的时间来开发创造性解决方案。”
一些公司已经开始使用Copilot来为关键系统编写代码。啤酒制造商嘉士伯利用它为销售团队规划、准备和记录销售电话的工具编写代码。考虑到Copilot的局限性,这家啤酒制造商使用自己的质量保证流程来检查生成的代码是否按预期工作。据首席信息官Sarah Haywood表示,随着时间的推移,人们将对AI建立更多的信任,“我认为我们不应该总是检查AI的工作,否则我们实际上没有增加任何价值。”
为了评估生成式AI开发技术的准确性,去年,加拿大滑铁卢大学发布了一项实验。研究人员收集了含有已知缺陷及其修复方法的代码片段的数据集,用这些数据来测试Copilot,看它是否会生成带有缺陷的代码。该助手复制了有缺陷版本的情况占33%,频率低于人类。在四分之一的情况下,AI生成了包含修复的代码。Copilot在避免基本错误方面通常表现得比复杂错误更好。发起该研究的计算机科学教授Mei Nagappan表示,“该技术阶段相当于,我们现在处于驾驶辅助的时代,还没有达到自动驾驶的阶段。”
软件工程师可能会缓慢地改变他们的工作习惯。许多人欢迎Copilot,但也对过度依赖它表示警惕。一项由GitHub资助的研究发现,开发者只有27%的时间接受助手的建议。工程师们也可能会在出现问题时迅速指责Copilot。
去年10月和12月,当Etsy的网站短暂崩溃时,一些公司的开发者指责Copilot造成了中断。Etsy确认了这些事件,但否认Copilot是罪魁祸首。“虽然我们理解工程师可能会讨论Copilot在中断或问题中可能扮演的理论角色,但我们没有任何证据表明该工具实际上导致了任何面向客户的影响,”一位发言人说。
预计Copilot在未来几年将有显著改进。GitHub已经开始推出增强功能,包括一个企业版,可以根据客户自己的编程代码回答问题,这将帮助新工程师快速上手,并使资深编码者工作更快。在接下来的几个月中,GitHub还将允许工程师使用雇主自己的代码库来帮助自动完成他们正在进行的程序,这将使生成的代码更加定制化和有用。
GitHub不能停滞不前。至少有十几个初创公司正在参与竞争。一些公司正在利用新模型,这些模型极大地增加了代码助手可以快速调用的信息量,使它们更容易生成整个程序。
GitHub前CEO Nat Friedman表示:“放心交给AI程序员吧。一个能看到你所有代码的AI程序员将能够做出更好的决策并编写更连贯的代码,而不是只能通过纸巾筒一样的小孔看你的代码,一次只能看一小部分。”Friedman目前正在支持一个名为Magic AI的初创公司,该公司计划创建“一个超人类软件工程师”。与此同时,由Peter Thiel支持的Cognition AI正在开发一个可以独立处理软件项目的助手。普林斯顿大学这个月发布了一个开源模型,用于AI软件工程代理。可见,每周都有新的初创公司不断涌现。
尽管AI编码助手如Copilot正逐步改变软件开发领域的面貌,使程序编写更加高效和智能化,但关于AI在编程职业中的角色,行业观点仍然分歧。大多数程序员看待AI作为一种强大的辅助工具,它解放了他们从繁琐任务中解脱出来,让他们可以将精力集中在更需要创造性和战略思考的问题上。
但是,热门AI芯片制造商Nvidia Corp.的CEO 黄仁勋最近也预测编程作为一种职业即将消亡,认为现在AI使得用普通英语编程成为可能,任何人都可以成为程序员。他的观点提醒我们,技术的进步也可能带来根本性的职业转变。
未来,随着AI技术的进一步成熟和普及,编程可能不再是少数技术精英的专属领域,而是变得更加大众化,这对整个行业的教育、培训和职业发展都可能产生深远的影响。在这一转变的浪潮中,如何平衡技术创新与职业发展,确保技术进步能够惠及而非排斥现有的工作力量,将是我们必须面对的重要问题。
– END –
报告下载
大佬观点