你的 AI 编程助手一团糟
乔·里夫(Joe Reeve)是数据分析平台Amplitude的工程经理,他曾利用AI编程助手GitHub Copilot完成最近一个编码项目的一部分。这是一项相对简单但费时的函数——是里夫过去自己编写过多次的那种。“它为我节省了25分钟的编写时间,”他回忆道。“大约两个小时后,我发现了代码中的一个错误。花了我另外两到三个小时才弄清楚问题所在。” 问题出在哪里?AI工具在代码中犯了一个微小但关键的错误,将一个“大于号”的方向搞反了。“从那以后,我对它生成的代码就更加怀疑了,”里夫说。“但我还不打算彻底放弃使用它。它是个非常非常强大的工具。”里夫的首选AI工具GitHub Copilot于2022年6月以每位用户每月10美元的价格正式面向大众推出。它迅速成为最广泛使用的编程助手之一,为那些好奇或忙碌的开发者提供类似自动补全的建议。不久之后,竞争对手也纷纷加入,包括百度的Comate和亚马逊的CodeWhisperer,后者自4月起向个人用户免费开放,价格上直接压低了GitHub Copilot的10美元门槛。当然,还有人工智能领域最大的名字:OpenAI的免费工具ChatGPT,它在去年11月推出后立即引起巨大轰动。尽管ChatGPT主要用于自然语言处理任务,但证明它在代码编写和调试方面也有相当不错的表现,尽管有时会表现出令人警觉的“幻觉”现象。一些开发人员表示,这些工具非常有用,很快将成为必需品。但也有人并不确定。事实上,一些世界顶级公司仍因对大多未经验证的AI工具感到忧虑,目前已完全禁止使用。三星、亚马逊和Verizon都完全禁止使用ChatGPT,理由是安全问题。苹果公司也出于对数据泄露的担忧,限制了ChatGPT和GitHub Copilot的使用——特别是因为其正在开发自己的竞争性编码助手。然而,这些担忧似乎并未阻碍这些工具的迅速增长。2023年1月的一次财报电话会议中,GitHub母公司微软的CEO萨提亚·纳德拉(Satya Nadella)表示,GitHub Copilot的用户数已超过100万。根据咨询公司贝恩公司(Bain & Company)最近的一项研究,57%接受调查的软件CTO和工程负责人表示,他们正在积极部署AI编程助手。他们提到,这些工具的主要优势包括提高速度、提升质量以及降低成本。GitHub Copilot的母公司GitHub的CEO托马斯·多姆克(Thomas Dohmke)在2023年里约热内卢Web Summit活动中发言。(图片来源:Vaughn Ridley/Sportsfile/Getty Images)谁在使用AI编程助手?几乎所有接受Tech Monitor采访的软件开发者都在优先使用GitHub Copilot,而不是其他AI助手,来支持他们的工作——这一事实反映了该工具在市场上的明显主导地位和品牌优势。里夫解释说,Amplitude的大多数员工都可以使用GitHub Copilot。公司最近开始为员工提供付费订阅,但很多开发人员此前已经用自己的账户在使用了。“工程师们开始使用它,因为这极大地简化了他们的生活,”尽管他们“必须对它保持一定的怀疑态度。”他说。他的团队发现AI助手在代码审查方面特别有用,这通常是一项耗时费力的任务。“这就是像ChatGPT这样的工具能够解决现有问题的地方——通过帮助工程师快速理解旧系统和代码。”里夫说。芬兰水中健身初创公司Hydrohex的首席技术官Mohanjith Sudirikku Hannadige也是Copilot的粉丝。“它让开发人员摆脱了枯燥的任务,”并“使工作更有趣,”他说。尽管人工监督仍然对于纠正工具偶尔出现的错误至关重要,但Hannadige估计,Hydrohex的工程师们从今年3月采用该助手后,现在完成代码任务的速度是之前的两倍。来自我们合作伙伴的内容 电影奖励需求的回归为何推动Kodak的传承 可持续技能差距的填补为何对ESG至关重要 适应性将塑造分销商的未来 GitHub的首席技术官罗德·科普(Rod Cope)表示,每当自己编写代码时,他总是使用GitHub Copilot。“我开始把它当作一个远程的配对程序员,”他说。“他们可以站在你身后,说:‘哦,那怎么样?’” 尽管这些建议未必总是完全准确,但科普表示,它们越来越适合作为起点——帮助消除面对空白屏幕时的恐惧感。然而,也有一些明显的局限性。尽管流行编程语言(如R和Python)拥有丰富的训练数据,但AI工具在较为小众的语言中可能表现不佳。它们对于更雄心勃勃的项目也可能不够有用。“这些模型是基于现有代码训练的,”里夫说,“这意味着你的用例越新颖或越具体,它们的用处就越小。”危险的生意 里夫花了数小时寻找错误的经历证明,AI工具当然不是万无一失的。它们通常基于开源代码训练,而这些代码中经常包含错误——而这些错误很容易被助手复制。它们也非常容易出现荒谬的幻觉。据德斯罗西埃斯(Desrosiers)说,这种特性可以被网络犯罪分子利用。AI编程助手有时甚至可能编造出整个代码库的存在。“恶意行为者可以检测到这些幻觉,并以这些名字建立恶意库,”他说,“这将危及那些在生产环境中执行这些幻觉库的人。”德斯罗西埃斯表示,谨慎的监督是唯一的解决方案。这同样可以借助AI来实现。“为了降低此类及其他潜在风险,在Visceral,我们构建了专用的自主编程助手,用于监控这些威胁。”他说。作者兼资深Python程序员大卫·默兹(David Mertz)说,永远不要过分信任非常重要。“从安全角度来看,你根本无法信任代码,”他说。尽管默兹同意在使用AI时,持续监督是必要的,但他认为,这种做法在实践中与雇佣初级程序员没什么不同。“在类型上,初级程序员和机器犯的错误可能不同,但它们都会犯错,”他说。一些组织总是通过不足或低效的安全检查,使自己及其客户面临风险,“但这并不是由机器引入的新风险。”那么,最大的风险可能只是对AI的错误信任。事实上,斯坦福大学于2022年12月发表的一篇论文中发现,AI工具可能会让开发者“产生幻觉”,误以为他们的工作质量很高。研究人员发现,可以访问AI编码助手的参与者通常会比无法访问的参与者生成更多安全漏洞,但他们同时更倾向于认为自己编写的代码是安全的。TechAid的首席技术官詹姆斯·霍德森(James Hodson)也表达了类似担忧。他认为,使用AI工具“会减少对工程过程的监督,降低人类的参与水平,最终导致更多的安全漏洞、更难维护的代码库,以及人类技能基础的稀释。”他指出,这些缺陷本质上是ChatGPT和GitHub Copilot等大型语言模型(LLM)所固有的。“为了确保高质量、可维护性和长期适用性,软件工程本质上是一个工程过程——而不是一个语言生成过程。”像ChatGPT和GitHub Copilot这样的AI工具可以节省开发人员的时间,但前提是它们被谨慎使用。否则,它们可能造成一系列问题。(照片来源:DC Studio/Shutterstock)编程是否会消亡?因此,软件开发人员恐怕还不会失业——至少现在不会。“它不是万能的,也不是什么能取代有效程序员的东西,”默兹说。“它只是让我们的工作效率更高。”确实,未来的开发人员仍需具备扎实的编程能力,以最大程度地利用这些工具——即使它们大幅改进。“如果你不知道如何编程,AI助手为你生成的代码看起来总是正确的,”科普说。他补充道,这意味着你可能不会立即注意到那些稍后更难修复的有害错误。尽管如此,Copilot和ChatGPT等工具最终可能会让开发人员的工作更加满足感。“其中一些人会非常抗拒,因为这感觉像是在剥夺他们所学的特殊之处,”科普说。“但我认为,对于绝大多数开发者来说,那些琐碎的工作只是乏味的负担。”里夫对软件工程的未来也同样持乐观态度。“我认为所谓‘编程’的概念将发生变化,”他说。“在过去,编程是用打孔卡打孔然后放进机器中……现在,我们所做的大部分软件工程工作,其实是考虑命名方式、结构代码以及移动代码。”他认为,AI助手的兴起可能会进一步提升编程艺术。“希望这意味着我们人类将更加专注于前沿领域,”他说,“因为所有其他事情都会变得更容易。” 想了解更多信息:这就是GPT-4将如何被监管
查看全文
作者最近更新
评论0条评论