[tip type="blue"]因为该选题的受众是非技术群体,本篇随笔的用语将尽量通俗化。[/tip]

前言

这篇随笔会抛开二极管的观点,实事求是地从一名普通程序员(我)的视角来展开关于语言大模型的思考。

先讲结论:当前阶段的生成式AI仍不具备取代程序员的能力,更像是程序员们的一把双刃剑。

正文

大模型的编程能力,究竟几分呢?

自以GPT为首的一大批生成式AI相继问世以来,这些能力已经被广泛应用,并取得了一定程度的认可。但现阶段的AIGC能力,是相当愚钝的,却又上知天文下知地理。这个观点源于当前这些AI糟糕的逻辑能力和恐怖的知识储备量。

这并不难理解,因为大模型并没有在训练中突然获得了某种智能,而是对训练时接触的数据进行插值。但仅仅是这种插值,就足以让我们产生其具备智能的幻觉——事实上它并没有创造出新的东西,而是将旧的东西不断进行排列组合。假如其接触的代码足够多,理论上也是能够取代99%的程序员的。

不过好在这一切太过夸张,并没有发生。我们仍然有十分充足的生存空间。大模型的确有能力根据上下文自行编写与修改程序,不过这种能力目前看来存在较大局限性,有时候甚至会出现极为严重的失误(例如莫名其妙变出一些不存在的变量,凭空引用一个不存在的软件包),这些问题将导致大模型在复杂编程任务中的不可靠与失败成为必然。

此外,大模型的上下文长度(又称 上下文窗口、输入词元数量),也就是这些AI的“记忆”的大小,也是一个重要因素。上下文长度直接决定了大模型“思考”的最大范围,以token(词元)为单位进行计量,而目前大多数开源AI方案的上下文长度仅为2K Tokens,就连OpenAI的GPT-4也仅能做到32K。尽管目前已经有企业将上下文长度拓宽至100K甚至更高,但这些超长上下文长度的模型,能否投入生产实践又成了一个问题——它们训练的成本奇高,训练完成后进行推理也是一笔不小的数目。

由于上下文长度、嵌入大小相关的二次复杂度,在巨型语料库上训练Vanilla Transformer,并且只在较大的上下文长度上训练是不可行的。据估计,在2K上下文长度上训练LLaMA的费用约为300万美元,因此,100K的花费约为1.5亿美元。
——《语言大模型100K上下文窗口的秘诀》OneFlow

由此我们引申出第一个观点——生成式AI并不具备足够的逻辑能力,以支撑对完整项目进行编程的思路

[tip type="yellow"]此处提到的AI的“记忆”(上下文)更准确来讲应该是大模型能在对话中接受的新事物,“记忆”在每次对话结束时都会被抹除,无法长久保存。需要区别的是,大模型所拥有的“知识”来自训练过程,不在“上下文”的范畴内。[/tip]

大模型于生产实践中的意义在何方?

当前阶段的生成式AI在生产中的意义,也许是成为程序员的好伙伴。与其说这些AI是先进的尖端智能,不如将其看作一位博古通今的腐儒——知识储备巨大,但脑袋却转不过弯来。跟这样一位伙伴结对工作也许不是最佳选择,但它确实能帮到程序员不少。

比方说今天有一个新功能需要调用一个新的软件包,正常来讲我们需要先找到这个包的仓库,然后再研究它的技术文档,搞清楚怎么实现自己想要的效果,最后再在程序中写下业务逻辑。如果有问题还需要回去看自己哪里理解有误,抑或是向社区提出问题,再等上大半天才有人回复。这实在是太过枯燥无聊,以至于部分程序员失去了接受新事物的耐心,一心在自己的一亩三分地里做重复的工作。而大模型博古通今的知识量无疑可以帮助我们节省阅读并分析文档的时间,直接将文档里、书本上、网站中的信息整合至对话框前。程序员只要用自己的思维引导AI,便可以轻松得到想要的结果。

此外,尽管大模型没办法挑起大梁,但还是可以搭把手的——对于一些较为基础的逻辑。例如调用canvas绘制图表、调用SMTP库发送邮件等,AI可以协助程序员直接实现这些逻辑的细节,让程序员将精力放在对架构的设计和调整上。对于程序健壮性要求不高的编程任务,也可以放心交给AI。例如今天需要批量处理一批数据,将其从XML格式转换为JSON格式,这种任务代码量少、逻辑简单、需求清晰,不需要长期维护(基本用完就丢),AI可以很好地理解并完成这类任务。

但程序员也万不能将AI当作自己的“外置大脑”,我们在编程中的表现优于AI,是源自优秀的逻辑能力和学习能力。倘若过度依赖这些AI,只会导致自身能力不断退化。AI不会取代程序员,而是会让已经很强的程序员更强,让过度依赖AI能力,丧失思考能力的程序员越来越弱。

对程序员来讲,节省时间到真正有价值、有意义的工作中,而不是“一看就让人觉得无聊”的重复性工作的意义不言自明。不仅是软件行业,在其他领域这应该是也只能是当前阶段的AI的目的——在简单生产任务中解放人类,在复杂生产任务中辅助人类,而非取代人类在复杂生产中的地位。倘若要谈彻底取代人类,目前的AI还不够格。

尾声

写这篇文章的初衷是希望修正当前社会上一些关于AI能力的不当看法,现在这个时候大谈所谓AI取代人类,太过片面且为时过早。理想情况下,我们对AI的看法不该是片面、二极管般的迷信或不屑一顾,而是客观看待并合理利用,以期用更高的生产效率创造更多的社会财富,这才应该是AI影响人类社会的合理方式。

感谢您的耐心阅读,希望本篇文章的观点能获得您的认同。本文编写时间较短,某些内容缺乏仔细考证和审稿,如您有别的看法,欢迎在下方评论区讨论,或通过“关于”页面联系我。

0xC4A1
2024-01-17 00:35 提笔
2024-01-18 19:20 完稿
(封面图/爱上火车-LastRun)