您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 开发技术 > 正文

​有了LLM,所有程序员都将转变为架构师?

发表于:2024-03-06 作者:言征 来源:51CTO技术栈

编译 | 言征  

出品 | 51CTO技术栈(微信号:blog51cto)

生成式人工智能是否会取代人类程序员?

可能不会。但使用生成式人工智能的人类可能会,可惜的是,现在还不是时候。

目前,我们正在见证LLM领域的激烈竞争。仅仅是谷歌的生成式人工智能产品就已经变得非常丰富——其最新的开放模型Gemma就是LLM快速缩小的最新例证(是时候称它们为小型语言模型了吗?)。

对于DevOps社区来说,更重要的是我们看到专门针对代码生成的其他LLM的开发速度非常快,例如Meta最近更新的Code Llama 70B。自然,生成式人工智能让不少开发者感到紧张。最近的一项研究中,近一半的开发者表示担心自己当前的技术能力集在生成式人工智能世界中能否成功。

但这种担忧真的有必要吗?人类程序员消亡的报道可能言过其实了。人类甚至可能比他们意识到的有更多的时间为生成式人工智能主导的世界做准备。

事实上,开发者应该问的更恰当的问题不是“生成式人工智能会取代我的工作吗?”而是“我应该使用哪个LLM?”

1.对于编程而言,大模型太大

大型语言模型(LLM)对软件开发世界的承诺正在将程序员转变为架构师。然而,并非所有LLM都完全相同,探讨为什么甚至出现了更小型的LLM是值得的。

更强大的主流模型,如GPT-4和Claude 2,仍然几乎无法解决不到5%的实际GitHub问题。ChatGPT仍然有很多幻觉:假变量,甚至是已经被弃用十多年的概念。此外,它让无意义的东西看起来非常棒。你可以尝试通过“提示工程”摆脱这种无意义,但对有益于上下文的数量有一个最佳点——过多会导致更混乱和随机的结果,同时牺牲更多的处理能力。

2.大型语言模型在编程中的信任问题

大型语言模型(LLM)在编程中面临的最大问题是信任。从历史上看,主流LLM像大型数字吸尘器一样不加选择地吸收网上的一切,而没有太多透明度来源数据。如果公司运输的代码中包含另一组织的版权代码,即使只有百分之一,这也是一个问题。你可以想象一个噩梦般的召回场景,已经卖出的产品没有可靠的功能来解决掉可疑代码。

不过,LLM领域正在迅速变化。也许不久会搞定这个问题。

3.定制LLM方法的缺陷

不论是否存在缺陷,Meta的定制LLM方法已经引起了人们的重要关注,即大型语言模型并不是AI辅助代码生成的唯一成功途径。我们看到这一点在行业中得到了体现,行业正在为更小、更专注于编程的LLM(如BigCode、Codegen和CodeAlpaca)积聚动力。StarCoder是另一个例子,尽管它只有155亿个参数,但在评估基准测试中发现它比最大的模型(如PaLM、LaMDA和LLaMA)表现更好。

这些选项各有优缺点,但最重要的是,小型模型将比大型模型更安全。如果你正在使用C++编程,你真的需要你的LLM充满与“美国第三任总统是谁?”等无关的知识吗?数据池越小,保持内容的相关性就越容易,模型的训练成本就越低,你无意中窃取他人版权数据的可能性就越小。

2024年的DevOps团队应该彻底研究市场上所有可用的LLM选项,而不是默认选择最显眼的。甚至可能值得为不同的用例使用多个LLM。

4.回到当前存在的问题:编码不等于开发

如果生成式人工智能能够完全胜任端到端的开发和构建人机界面,不会很快到来。

诚然,LLM能够很好地与文本和图像的元素进行交互。甚至还有一些工具可以将网页设计转换为前端代码。然而,与编码相比,人工智能单独承担与图形和UI/UX工作流程相关的设计要困难得多(尽管并非不可能)。

编码也只是开发的一部分。剩下的部分是投资于一些新颖的东西,弄清楚受众是谁,将想法转化为可构建的东西,以及进行完善。这就是人为因素的作用。

无论LLM变得多好,程序员都应该始终遵循一个原则:将每段代码都视为自己的代码。进行同行评审,并问你的同事:“这是好代码吗?”永远不要盲目信任它。