当亚马逊网络服务首席执行官Matt Garman在6月告诉他的开发人员,他们可能在短短两年内不再进入编码业务时,这提醒了拒绝改变的编码员,他们最好接受以人工智能为中心的新现实。
但它也迫使高管们就生成人工智能(GenAI)编码环境在现实中会是什么样子进行严肃的对话。
Garman的录音评论,此后被亚马逊证实,首次被《商业内幕》报道。
Garman被引述说:“如果你从现在起24个月或一段时间后前进——我无法准确预测它在哪里——大多数开发人员可能没有编码。”“这只是意味着我们每个人都必须更多地适应客户的需求,以及我们将尝试构建的实际最终内容是什么,因为这将是越来越多的工作内容,而不是坐下来实际编写代码。”
一个不同的世界
但管理人类程序员生成的代码与管理GenAI生成的代码将大不相同。SaaS公司QueryPal的首席执行官Dev Nag表示,他一直在致力于GenAI编码工作,许多企业IT高管没有准备好它有多不同。
“它犯了很多奇怪的错误,就像来自另一个星球的外星人一样。代码以人类开发人员不会这样做的方式进行错误操作,”Nag说。“这就像一个外星智能,不像我们那样思考,它朝着奇怪的方向发展。”
Nag说,更令人担忧的是,GenAI编码机制将在一定程度上遵循规则,但它也会创造性地找到规避这些规则的方法。“人工智能会找到一种病态的方法来游戏系统。”
人类仍然是必不可少的
另一位编程专家、应用程序开发公司Fleet Studio的首席执行官Veny Moola表示,GenAI幻觉是主要问题。
“不应该直接控制具有幻觉的软件可执行文件,这正是软件工程师的作用仍然至关重要的原因。Moola说:“当容易产生幻觉的人工智能系统参与生成代码或决策时,人类工程师在允许它们与可执行进程交互或控制之前,必须验证、测试和监控这些输出。”
“工程师负责实施严格的制衡,如自动测试、代码审查和安全协议,以捕捉和纠正人工智能引入的潜在错误。在软件直接控制关键系统的高风险环境中,人工监督对于确保人工智能的输出可靠和安全至关重要。如果没有这些保障措施,在没有适当审查的情况下部署人工智能生成的软件的风险可能会导致灾难性的失败,这就是为什么软件工程师必须继续积极参与开发和部署过程。”
以GenAI为中心的编程也缺乏所有人类开发人员脑海中的共享编码上下文。“它需要更多的开销,因为它缺少共享的组织环境。我们不习惯不得不提及所有的事情,”Nag说,并补充说,他估计与上下文相关的问题“将随着GenAI编码而放大100倍。”
新的测试要求
编码监督的关键部分将涉及测试,但Nag强调,企业必须创造全新的测试方法。如今,大多数企业编程团队都信任创建本土应用程序。这些应用程序肯定会经过功能测试,但今天许多应用程序放弃了严格的逐行检查,寻找后门或其他有问题的元素。
Nag说,在GenAI编码环境中,“测试过程必须发生巨大变化,从简单的功能测试转变为对一切事物进行更深入的自动化测试,包括让每个应用程序都接受自动渗透测试。”
生成人工智能的局限性
企业开发经理必须接受的另一个变化是,从人工智能充当编程助理的小型编码项目到赋予GenAI更多的编码权限是一个巨大的飞跃。
“尽管人工智能能够解决许多大学问题集,并处理中小型代码生成片段,但它仍然在与复杂的逻辑、大型代码库以及特别是在训练数据中前所未有的新问题作斗争。幻觉和错误仍然是需要专家工程监督和纠正的重要问题,”Nag说。“这些工具在从头开始快速原型方面要好得多,而不是迭代大型应用程序,而大型应用程序是工程的大部分。驱动大型应用程序的许多上下文实际上根本不存在于代码库中。”
Tom Taulli撰写了多本人工智能编程书籍,包括今年的人工智能辅助编程:更好的规划、编码、测试和部署,他同意,转向出色的GenAI编码工作将使大多数企业措手不及。
“这些工具将意味着传统工作流程、方法和思维方式的改变。考虑到它们是预先训练的,因此它们通常不会为最新的框架和库进行更新。另一个问题是上下文窗口。代码库可能很大。但即使是最复杂的LLM也无法处理提示中大量的代码文件,”Taulli说。“其中许多工具大多是在公共代码存储库上训练的。但对于训练数据集来说,有很多非常重要且相当稀疏的遗留代码,比如COBOL。”
在他自己的GenAI编码工作中,Taulli说,他见过很多非正统的编码行为。他还指出了关于许多不同GenAI编码挑战的已发表报告。
Taulli说:“例如,你可以要求这些LLM创建代码,他们有时会组成一个框架或一个想象中的库或模块,以做你希望它做的事情。”他解释说,LLM不是在创建一个新的框架,而是假装他们创建了它,但实际上他们没有。
Taulli指出,这就是LLM编码将要做的那种行为,几乎没有人类程序员会考虑这样做,并补充说:“除非(人类编码器)疯了,否则他们不会虚构的库或模块。”
当这种情况发生时,如果有人寻找它,很容易被检测到。“如果我尝试安装它,你会发现那里什么都没有。如果出现幻觉,IDE和编译器会给你一个错误,”Taulli说。
编码员的新角色
Nag说,他认为Garman的评论是正确的,即企业编程工作需要推动人工智能的移动,即使它一路上会造成许多痛苦的变化。Nag说,最终,企业发展努力将更好地促进变革。
“[编码器]的作用既在于理解更大的上下文和业务目标,也在于制定特定的语法或调试错误代码。数字摄影的兴起并没有破坏摄影行业。它使其民主化,并创造了对移动过滤器和修饰等新专业的爆炸性需求,”Nag说。“电子表格的兴起并没有使会计师过时。它给了他们杠杆,让他们专注于财务分析、战略和更复杂的角落案例。软件工程中的人工智能同样将使应用程序开发民主化,同时围绕快速工程、人工智能辅助开发创造新角色,并扩大软件可能的范围。”
安全问题
另一位编码专家、SaaS供应商Living Security的首席执行官Ashley Rose表示,如果更多的编码影响移交给GenAI,也会出现安全问题。
“想想我们的互联网基础设施是如何演变的。它最初被设计为去中心化,但随着时间的推移,关键服务已经集中在Cloudflare和AWS等主要提供商周围。Rose说:“这种集中化引入了新的漏洞点,对一个提供商的中断或攻击可能会产生波及,影响网络的很大一部分。”
“编码中的人工智能也可能发生同样的情况。随着越来越多的公司将人工智能模型整合到其开发流程中,这些模型可能会成为攻击者的高价值目标。被妥协的模型可能会引入隐藏的漏洞,这些漏洞会通过标准安全检查。鉴于这些模型的广泛使用,其影响可能是毁灭性的,可能影响不同组织的数千个应用程序。”