裁员、裁员、裁员,似乎永无止境。创业公司融资处于 5 年来最低水平。除了整体经济挑战之外,人工智能取代软件工作的担忧也即将出现。每天的科技新闻读起来就像世界末日的故事。
这又是软件开发的终结吗?
作为一名在互联网泡沫破灭后开始从事软件开发工作的人,我可以告诉你,这又不是世界末日。当我开始从事开发人员工作时,人们会告诉我“互联网已死”,让我去找一份真正的工作。互联网初创公司试图解决的问题仍然存在。21 世纪初的许多解决方案都被埋没了,只是几年后才重新出现。
一切还没有结束,就像 2000 年一样
2001 年,当我刚开始做初级开发人员时,互联网泡沫给科技行业造成了冲击。这促使谷歌推出广告平台以实现盈利。那些幸存下来的科技公司试图尽快实现盈利。然而,许多公司并没有活下来。科技和软件行业复苏,继续创新,并在接下来的几年里实现了显著增长。
“互联网已死”的末日故事当然不是真的。互联网、技术和软件的发展速度比以往任何时候都快。那时还没有结束,今天也没有结束。深吸一口气,环顾四周。我们又在亚音速飞行,仍然没有飞行汽车,我甚至买不到悬浮滑板。不戴眼镜的 3D 根本不存在,我们甚至没有 1980 年代星球大战电影中展示的视频通话。
自动驾驶交通堵塞——来源:Reddit 上的 seansinha
你的汽车甚至无法自己找到去停车场的路,更不用说在没有你监督的情况下在城市里行驶了。是的,有些自动驾驶汽车配备了大量可怕的传感器,比如谷歌 Waymo 的传感器。在自动驾驶汽车的引擎盖上放一个锥体,体验一下当前人工智能的威力。
人工智能不会很快取代任何开发人员
“新的开发工具和更快的计算能力意味着我们需要更少的开发人员”是 21 世纪初的信条。事实恰恰相反。虽然单个软件项目需要的开发人员更少,但对技术的整体需求意味着项目数量会更多,因此需要更多的开发人员。人工智能和云大大提高了开发人员的生产力。然而,它们也带来了新的挑战和机遇,你需要更多的开发人员来应对。
如果您曾经尝试使用 Github Copilot、ChatGPT、Google Gemini 或Chevrolet Chat来编写代码,您会注意到这些模型的训练和应用存在很大的局限性。
LLM 培训与“AI 困境”
如果您要求任何LLM编写用于 iOS 应用内购买的 Swift 代码,您很可能会看到一个大约 50-60 行代码的 StoreKit1 实现。但是,两年前发布的 StoreKit2 大大简化了应用内购买流程,并将代码减少到只有几行。ChatGPT 或 Copilot 等 LLM 的训练要么没有最新的训练数据,要么训练数据以 StoreKit1 实现为主,这导致 LLM 始终使用 StoreKit1 实现,因为它“认为”这是最适用的。
这与 LLM 的工作方式有关。它们是语言模型,这些模型并不“理解”或“领悟”事物的真正含义。它们使用现有的信息和内容来产生变体。这种变体原来是新的东西,因为它以前并不以这种形式存在。然而,它是基于现有的训练数据的。这导致了人工智能困境,新创新很难进入社会,因为模型倾向于使用最适用、最受欢迎的答案。
“创建一张 2050 年软件开发人员开发计算机应用程序的照片” — 什么?计算机屏幕又在缩小,我们又要戴领带编程了?;)
在社会科学和计算机科学中,这种效应被称为马太效应或“富者愈富效应”。LLM 产生的信息越多,这些信息在被人类应用后就越能成为训练模型的一部分。当人类不再以自己的创造力为 LLM 提供新的东西时,LLM 就会停止应用新的东西,开始在已有的信息中原地打转。它最终会走到死胡同。
有一些方法可以在较小规模和更简单的实现中解决这些问题,例如推荐引擎。然而,在 LLM 广泛应用的全球范围内,几乎没有经过科学验证的算法可以解决这一难题。
目前唯一可行的解决方案是什么?人工干预。
欢迎回来,有真正大脑的自我思考肉体。
有些东西 LLM 可能永远学不会
LLM 需要训练。他们需要大量来自人类的数据来学习。他们需要以数字形式呈现的数据。
同样的根本问题也适用于编程。
让LLM将你 90 年代的 Macintosh 应用程序移植到现代 macOS 上?祝你好运。
这不仅仅是历史信息,也是你必须用来训练模型的非常具体的信息。信息的精确性并不是 LLM 所擅长的。算法不是为此而设计的。媒体上充斥着这样的例子,已经投入生产的 LLM 偏离了提供的输入数据,并产生了导致实际问题的变化。
你不能复制你不认识的有机物体
问问你最喜欢的神经科学家,当你坠入爱河时,人类大脑究竟发生了什么。答案是:我们并不确定。这完全没问题。科学还没有“调试”人类大脑。我们无法复制它。除了一些未来人类可能会认为是野蛮和中世纪的非常基本的手术外,我们甚至无法用医学方法治愈或治疗它。
科学并不清楚思维过程是如何运作的。
如果你连有机智能是如何运作的都不知道,你如何创造通用人工智能?你做不到。为了复制某种东西,你需要完全了解其功能的每个细节。人类距离了解大脑如何运作的每一个细节还很遥远。甚至更远没有了解大脑如何学习、存储信息,坦率地说,“我们对大脑知之甚少”。我们所能做的就是以一种非常原始的方式“模拟”大脑。
不要误会我的意思:我喜欢法学硕士,我认为我们在人工智能方面取得了巨大进步。合成声音已经变得非常好,很难与自然人声区分开来。图像和视频生成非常棒。然而,我认为我们距离看到一部完全由计算机完成、完全没有人类干预、协助或干扰的真正的好莱坞大片还很遥远。
软件和技术已经超越了人类
技术、软件、云计算和人工智能的快速发展为我们目前在世界上采用的用例和解决方案提供了更多选择。有些挑战乍一看似乎与技术有关,例如自动驾驶汽车。
然而,我驾驶 BMW 自动驾驶汽车的经验是,大多数问题都源于人类在道路上制造的混乱,例如连其他人都看不懂的道路标记。自相矛盾的交通标志也是我最讨厌的问题之一。而这一切都发生在德国,这个以精确和法律准确性而闻名的国家。因为德国总是遵守非常具体和精确的规则。你会认为这是自动驾驶的理想环境。但事实远非如此。
如果人类不理解,计算机又怎么能理解呢?
正是人类的混乱阻碍了技术进步。
大多数人都不知道手机里有什么芯片,也不知道它们有什么用途。更不用说它们是如何工作的了。
人们不明白为什么他们的信用卡可以在国外使用。他们不明白他们的手机如何传输数据,如何通过 VLR和HLR进行身份验证。技术主宰着我们日常生活的每一秒,而大多数使用它的人甚至不了解它们最基本的工作原理。他们知道如何使用它,但缺乏基本的理解。人们每天使用但一无所知的技术数量令人难以置信。
一个技术进步速度快、远远领先于人类的社会可能会带来另一个黑暗时代。在这个时代,技术和科学需要隐藏在人们之外,以防止恐惧、神话和迫害。萨姆·奥特曼的警告可能表明我们的社会已经走向了那个方向。
我们的西方社会正陷入教育危机
人类要想跟上科技发展的步伐,不断接受教育和学习至关重要。然而,西方教育体系的衰落已使数百万人落后。
这不只是 Tom、Dick 和 Harry 的情况,软件开发人员也是如此。如果您查看现代云技术、无服务器应用程序和事件驱动架构等方法的采用情况,然后将其与“经典”三层 Web 应用程序的数量进行比较,您就会注意到,采用现代应用程序架构还有很长的路要走。甚至有些新应用程序是用传统架构构建的,在现代世界中毫无意义。它们之所以以这种方式构建,并不是因为它有意义,而是因为许多开发人员不知道更好的方法。
现在从伦敦飞往纽约的航班所需时间是80年代的两倍。
不管你信不信,现在仍然有大量网站没有针对移动设备进行优化(2024 年!)。我亲眼见过一些 Web 开发人员,他们甚至无法用最基本的方式解释 TCP/IP 甚至 HTTP 的工作原理。这就是他们每天依赖和使用的网络协议。
最近的科技裁员事件被归咎于“过去人员过剩”。然而,如果人员过剩能够带来更多的软件、更多的服务、更多的用户和收入,那么就没有必要裁员了。科技公司不但没有通过增加员工来提高生产力,反而在招聘更多员工时生产力下降了。
公司必须认识到,在人员配备方面,数量和质量之间要保持平衡。雇佣大量的人并不能解决问题,雇佣适量的合格人员才能解决问题。这些公司现在并没有缩减规模,而是在通过新的、更先进的人工智能工具提高生产力。他们最终会重新开始招聘,但将来会更加挑剔。
如今的学习曲线更加艰难,但学习却变得容易得多。拥有合适技能的开发人员和软件工程师即使在当前紧张的就业市场中也不会遇到问题。就像 21 世纪初一样。不断学习和跟上技术的发展曾经是、现在是、将来也将是在软件行业生存的唯一途径。