为何大语言模型不会取代码农?

译文
人工智能
大语言模型(LLM)有望给软件开发界带来的好处是可以将码农变成架构师。不过,并非所有LLM都天生一样。

译者 | 布加迪

审校 | 重楼

生成式人工智能(GenAI)会取代人类程序员吗恐怕不会。不过,使用GenAI的人可能会取代程序员。但是如今有这么多的大语言模型(LLM),实际效果不一而足

如果在努力跟上所有LLM,并非只有您一个。我们目睹一场激烈的LLM竞赛。单单谷歌的GenAI产品已经变得非常丰富——最新的开放模型Gemma是LLM快速精简的最新例子,甚至可以称之为小语言模型

DevOps社区更密切相关的是我们看到其他用于生成代码的LLM闪电般的开发速度,比如Meta最近更新的Code Llama 70B。当然,GenAI了不少开发者。最近的一项研究发现,近一半的开发者于自己凭借目前的技术技能在GenAI界取得成功表示担忧。

这种担心真的有道理吗关于人类程序员死的说法可能夸大其辞了。人类甚至可能实际上有更多的时间来准备迎接GenAI主导的世界。

事实上,开发者应该询问的更适当的问题不是GenAI会抢走我的工作吗?”,而是我该使用哪个LLM?”

太庞大了,编程没法成功

LLM软件开发界的承诺是有望将码农变成架构师。然而,并非所有LLM都天生一样;值得探讨的是,为什么一开始就涌现了较小巧LLM

强大的主流模型(比如GPT-4Claude 2仍然只能勉强解决不到5%的实际GitHub问题。ChatGPT仍然存在严重的幻觉问题:假变量,或者甚至十多年前就已经被弃用的概念。此外,它让没用的内容看起来很有用。您可以尝试利用提示工程来摆脱这些没用的内容,但是有益的上下文数量存在一个最佳平衡——太多会导致更混乱随机的结果,白白耗费了更多的处理能力。

LLM编程方面更大的问题是信任。在过去,主流LLM不加区别地吸收网上的一切内容,就像一个大型数字吸尘器,至于它们从哪里获取数据缺乏透明度。哪怕一家公司交付的代码中仅仅1%含有另一家公司的受版权保护的代码,这也是个问题。您可以想象噩梦般的召回场景:交付的产品没有无线传输功能挑出可疑代码。

不过,LLM格局正在迅速改变。

LLM对于编码够专业吗?

当Meta在今年早些时候宣布对其Code Llama 70B进行更新时,感觉这是受欢迎的尝试,有望解决主流LLM对编码缺乏关注的问题。它有三种不同大小的版本:70亿个参数、130亿个参数和340亿个参数。它还使用代码的5000亿个token和与代码相关的数据进行训练,包含10万个token庞大上下文窗口。

从理论上讲,其中最令人兴奋的是Code Llama Python,这是专门为Python设计的Code Llama版本——主要是由于它代表了LLM未来的发展方向。与Meta的大型科技同行开发的一些模型不同,这个模型完全致力于一种特定的语言编程,使用Python代码的大约1000亿个额外token进行训练业界更加需要的正是针对特定用例的这种级别的定制建模。

之所以需要强调理论上令人兴奋”,是由于像Code Llama这样的LLM对开发者到底有多用还有待观察。去Reddit看看,就会发现早期的结论似乎是,该模型因诸多问题而令人沮丧,其中包括复杂的提示格式、过于严格的护栏,最重要的还有幻觉问题。最后一点是另一个不争的事实,提醒人们:任何模型的好坏完全取决于训练它所使用的数据。

不管是否存在缺陷,Meta的定制LLM方法已经引起了人们的重视,即大语言模型并不是AI辅助代码生成取得成功的唯一途径。我们看到,业界越来越青睐使用规模较小、更专门化的LLM编写代码,比如BigCode、Codegen和CodeAlpaca。StarCoder是另一个LLM,尽管只有155亿个参数,但在评估基准测试表现却胜过PaLMLaMDA和LLaMA等大模型。

每一种选择都有优缺点,但最重要的是,小模型用起来比大模型安全得多。如果在用C++编程,果真需要您的LLM充斥着一大堆不相关的知识(比如“谁是美国第三任总统?”)吗?数据池越小,保持内容的相关性就越容易,模型的训练成本就越低,无意中窃取他人受版权保护数据的可能性也就越小。

2024年的DevOps团队应该彻底研市上所有可用的LLM选项,而不是默认选择最明显的选项。甚至可能有必要针对不同的用例使用不止一种LLM。

但回到当前存在问题……

GenAI会取代人类吗?

这些GenAI工具有可能代替真正程序员吗?除非模型提供的编程答案具有的准确性提高可接受的误差范围内即98%-100%,否则可能代替不了

不过为了便于讨论,我们假设GenAI确实达到了这个误差范围。那么这是否意味着软件工程的角色将发生转变,只需审查和验证AI生成的代码,而不是编写代码如果四眼原则(four-eyes principle)适用的话,这样的假设可能是错误的。这是内部风险控制最重要的机制之一,要求任何实质性风险的活动比如交付软件都要由第二个、独立的、有能力的人进行审查和复核。除非AI被重新归类一种独立的、有能力的生命,否则它短期内应该没有资格成为四眼原则中的另一双眼睛。

如果GenAI将来有能力进行端到端开发和构建人机界面,那也不会是在不久的将来。LLM可以充分地与文本和图像元素进行交互。甚至现在就有工具可以将网页设计转换成前端代码。然而与编码相比,AI单独承担与图形和UI/UX工作流程相关的设计要困难得多尽管并非不可能。编码也只是开发的其中一部分。剩工作就是另辟蹊径,弄清楚谁是受众,将想法转化为可构建的产品,然后加以完善和改进,是人类发挥作用的地方。

不管LLM变得有多好,对于程序员来说,有一条原则应该始终不变:像对待自己编写的代码一样对待每一段代码。同行评审,询问同事这是好的代码吗?”。永远不要盲目相信代码

原文标题:Why Large Language Models Won’t Replace Human Coders,作者:Peter Schneider

责任编辑:华轩 来源: 51CTO
相关推荐

2023-09-20 08:00:00

大语言模型代码库

2024-10-22 17:24:32

2020-05-19 13:49:43

C语言Java语言

2024-02-26 08:15:43

语言模型低代码

2024-05-27 08:00:00

人工智能大语言模型

2020-01-15 08:42:16

TCP三次握手弱网络

2016-11-02 09:38:05

容器虚拟机服务器

2024-01-12 10:29:26

2023-04-13 22:04:16

AI人工智能

2019-12-27 08:00:40

NAND存储DRAM

2024-03-19 13:12:36

自动驾驶模型

2024-06-06 08:06:19

鸿蒙大语言模型LLM模型

2023-11-27 14:48:34

人工智能深度学习大语言模型

2010-11-09 09:43:25

云计算外包

2023-10-07 08:28:06

语言模型代码技术

2024-11-04 14:42:12

2023-06-24 19:59:40

2024-04-25 14:40:47

2023-07-03 11:37:35

语言模型代码
点赞
收藏

51CTO技术栈公众号