越依赖LLM,智商越低
自2022年年底AI热潮席卷公众视野,围绕这一主题的讨论如山积海涌。作为一名拥有二十年从业经验的软件工程师,我有几点关于这一现象的危险性看法想要分享。
“LLM是我的好搭档”
实际上,鲜少有人会将程序视为自己的知己,然而这句话所隐含的含义却是:大型语言模型(LLM)能够为用户带来显著的收益。
工程师们若将LLM视为合作伙伴,常常不得不或自愿地追求速度优先——在他们看来,完成项目的速度胜过深入思考。尽管LLM确实能够迅速生成代码,但这一过程亦会带来诸多潜在的风险。
使用LLM的风险
资深工程师失去在攻坚中成长的机会,现有能力逐渐萎缩:
“微软研究发现:AI带来的自信常以牺牲批判性思维为代价”
在这个崇尚“条件反射式AI应用”的时代,我坚决主张维护编程技艺的根本特性。
“LLM直接给我成品结论,却剥夺了思维成长的过程”
初级工程师永远无法建立核心能力,更遑论培养下一代。
“我会变成多余的吗”
答案并非如此。诚然,某些策略能够使你在大型语言模型时代展现出更高的不可替代性,这一点将在另一篇文章中进行详细论述。
大型语言模型永远无法掌握两种关键的编程技能:即程序理论基础和程序熵概念。
程序理论
严格而言,编程实则是一种程序员通过实践对所从事的工作进行深入理解和构建相关理论的过程。
——彼得·诺尔《编程即理论构建》(1985)
这位计算科学的巨擘强调:程序并非简单的源代码,它代表的是众人共同构建的智慧结晶——一种理论或是设计方案。工程师们根据这些理论或设计编写代码,然而,真正具有价值的成果并非代码本身,而是背后的设计理念。
开展一项关于程序理论与代码文本差异的实验:将两组能力相当的技术人员分别隔离开来工作。一组负责开发象棋游戏终端程序,而另一组则暂时保持等待状态。当第一组完成程序开发后,将他们的代码转交给第二组。随后,要求这两组工程师在同一时间点上共同为程序增添人机对战功能。
问:哪队能交出更优方案?
答:A组。因为他们刚构建完程序心智模型,B组则从零开始。
诺尔持观点,程序终究需要经历维护和升级。若仅仅熟悉代码却缺乏对设计的深刻理解,改造的难度和成本将会大幅上升。回想起我们最初接触庞大的代码库时,我们的工作效率总是从零起步,逐步提升——这实际上就是我们的心智模型逐步建立和完善的过程。
LLM与程序理论
现有的语言模型由于受到上下文窗口的限制,无法完全掌握程序理论。而唯有人类能够构建并持续拥有这种心智模型。
程序熵
复杂性是编程一个基本的反作用力。
程序开发本质上是一个熵减的过程,而维护工作则是一个熵增的过程,即便是最高明的维护措施,也只能暂时推迟系统变成无法修复的废弃物的速度。
——弗雷德·布鲁克斯《人月神话》(1975)
这位计算机领域的开拓者明确指出,一旦着手编写程序,任何后续的调整都不可避免地会导致系统复杂性的提升。然而,那些与设计初衷相契合的改进措施,却能够有效减缓系统熵增的趋势。
LLM与程序熵
LLM的实质是一种基于token的预测工具,其运作仅限于文本领域。它不具备进行概念性思考的能力——无法对理念、图表或需求文档进行推理。那些曾使用LLM对大段代码进行修改的人都有过这样的经历:它常常做出令人费解的、不必要的修改,随着对话的深入,其偏离目标的方向也越来越远。大家是否见过LLM真正有效地简化代码复杂度的例子呢?
唯有人类能对抗熵增。
结语
两位先驱对软件设计与复杂性的洞见,恰是这个时代的解药。
若你希望人工智能助力你的职业发展,务必保持警惕——因为LLM的发展可能反而加速了能力的衰退。
即便你已经是一位经验丰富的工程师,若对失业感到忧虑,不妨树立一种更为全面的认识:大型语言模型永远无法完全替代人类在工程领域的智慧。
企业致力于追求人工智能技术,其目的是通过工程标准化来降低成本,然而,正如离岸开发所揭示的那样,大型语言模型不仅难以实现预期目标,还带来了新的风险。目前,那些滥用人工智能的企业必将面临长期成本,要么进行转型,要么走向消亡。人类工程师的长期价值始终如一——世界始终愿意为技术实力和深度思考付出代价。
人工智能不会消亡,然而,请视其为辅助工具,而非依赖的拐杖。持续深入发展自2019年起便备受重视的工程核心技能。
译者:boxi