每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/
曾经,AI将取代所有工作的预言让许多开发者感到不安。特别是随着GPT-3.5的问世,很多人预期AI会在短时间内接管开发者的工作。然而,一年多过去了,开发者们仍然在键盘前敲代码,依然工作如常。尽管一些工具如CoPilot确实在使用GPT技术来自动补全代码,但称其为真正的AI似乎有些牵强。AI本应至少承担我们工作的一半,但现实却是,许多开发者发现自己对AI工具的依赖逐渐减少。也许我们正悄然变成那种选择工具看重其美学和新奇感而非实用性的“潮人”。说实话,AI的新鲜感已经消退了。或者,更有可能的是,当初的炒作逐渐冷却,我们终于看清了这些AI开发工具的真面目——它们不过是自动补全的进化版。
问题在于,自动补全的进化版远远达不到我们被许诺的美好前景。不久前,开发者的未来看起来一片灰暗。除了那些日常使用这些工具的人外,其他人都认为我们像是病入膏肓的患者,正迈向最后的终点。
有不少人真诚地对我表示遗憾,认为AI已经取代了我的工作。在软件相关公司的管理层中,越往高层走,越悲观。他们几乎相信未来只有经理人会留下来,管理一队AI开发者,完全看不到人类开发者的身影。我们这些实际的开发者将像电梯操作员一样被逐渐淘汰。也许少数专业开发者会留下来,可能是为了开发下一个AI。但办公室里坐满了在MacBook前工作的开发者的景象,将成为像戴着绿色护目镜和使用计算器的会计师一样的怀旧记忆。
然而,我们依然在写代码,依然在工作。这是怎么回事?AI革命为何没有开始?是工具不够好吗?目前的GPT被誉为天才,通过律师考试,理解代码比最资深的开发者还好,并且写出的文章能让海明威都羡慕。想象一下,如果真有这样一个人,而且你成功雇用了他们,这将是一生中难得的队友,可以为整个公司带来提升。想象一下对产品的影响——没有更多的bug,每天都能发布新功能,完美无缺的代码经过全面测试。但事实并非如此,生产中仍有bug。与去年相比,新功能发布的速度并没有加快。仔细看看,曾经令人印象深刻的营销材料开始显得有些可疑。里面充斥着诸如“挂毯”和“当然”的词汇,读起来像是一个过于热心的HR经理试图让你对政策变更感到兴奋。
我们被欺骗了吗?GPT工具是否未达到我们期望的能力?它们像一个只浏览过Kubernetes文档并在面试中复述的开发者吗?“嗯,是的,pods,自我修复,复制……”
其实不然。GPT的能力确实很强。问题远比这复杂。
首先,AI助手存在技术问题。相信与否,这是最次要的问题。但为了清晰起见,先讨论一下这个问题:基于GPT的编码助手记忆力很差。即使宣传为具有“扩展上下文”或增强数据库帮助GPT记忆,这在实践中并不起作用。确实,具有“记忆”或更大的上下文窗口,AI助手可以回忆起一小时前甚至几天前你写的内容,但它无法理解这些内容在你工作中的整体意义。它总是紧盯着你最后说的那句话。对AI来说,你最后的指令就是它的整个宇宙。其他所有你提到的内容,如代码的整体目的,都是背景噪音。对AI助手来说,当下的任务就是你最后说的那句话,它以最字面的方式理解并执行,完全无视其他任何事情。在完成的那个任务中,可能有一丝正确的迹象。但整体思路是错误的。所以,你让它修正。现在,这个修正成为它的新痴迷,撤销了之前任务中的任何准确性。你陷入了一个无尽的循环——修正一个问题,打破另一个。每次迭代,目标都离得更远。最终,你放弃了,自己动手写。
其次,代码质量并不高。确实,它能像一个找工作三个月的开发者那样解决LeetCode题目,但在面对新问题时,它完全不行。遇到不熟悉的情况,GPT试图将现有的解决方案套用到新问题中。那么你怎么办?你把问题分成更小的部分,让GPT循环解决每个小任务。这听起来熟悉吗?这就是带有复杂模式匹配的自动补全。
最后,问题在于这与开发者的工作方式背道而驰。
要理解这一点,首先需要了解开发者的一个基本真理——阅读代码比写代码需要更多时间。这也是他们总是迫不及待地推倒重写的原因。在外行眼中,这看起来像是一个史诗般的工程,仿佛开发者宁愿肩负巨大的负担也不愿简单地修复一个问题。“我们想把它做好,”他们会这么说。但真相却截然不同。更多时候,开发者这样做是因为修复一个问题需要对系统有深刻的理解。这包括研究并真正理解它的整体运作方式。然后,才能准确地进行修正。这是一项更艰难的任务,说白了,也不那么有趣。所以很多时候,开发者选择阻力最小的路径,推倒重写。
考虑到这一点,回想一下一个全能AI助手应做的事情——编写大段代码,而开发者只需逐字逐句地检查错误。这恰恰是任何开发者最不愿意做的事。祝你好运。
这正是为什么AI编码工具很难超越当前状态——复杂的自动补全。要想进一步发展,需开发者心态的根本转变。一位有多年开发经验的老手,有时仍会选择重写而不是修补。当然,经验越丰富,越不会屈服于这种诱惑。但偶尔,他们会像凌晨2点递给他们的一支烟,想着“算了”,然后动手重写。他们会告诉自己,“这次,我会做对。”
当然,并不是说不会有人尝试。毫无疑问,一些产品导向的公司会尽力榨取AI的每一丝潜力。但可以保证,监控和分析代码的开发者绝不会这样做。每天阅读和验证代码行,而不是编写代码,对于开发者来说简直是但丁第九层地狱的最终Boss级别。所以实际情况是:AI助手会生成没人愿意读的代码。系统会迅速演变成难以理解的一团乱麻。关键bug和安全漏洞会激增。当AI系统被要求修补时,它会尝试,但由于前述的技术问题,它会以牺牲创建更多bug和安全问题为代价进行修补。如此循环往复。
那么,如果这就是问题,那么理想的AI助手应该是什么样子呢?从管理者的角度来看,理想的AI是能独立处理所有任务,解决新问题并提供原创解决方案。我们没有那样的AI。那将是AGI——真正的通用人工智能。如果我们拥有那样的AI,我们甚至不需要管理者,也可能不需要公司。那是个遥远的科幻理念,如果我们有那样的AI,这个对话根本毫无意义。所以,暂且放下那种幻想,专注于现实。
那么,一个好的AI助手对于开发者来说应该是什么样的?首先,它应该遵循指示,同时关注大局。我们还没有达到那个水平,即使接近了,它也仍然只是一个用于编写小块代码的工具,而不是大段代码。开发者不会筛选所有那些输出。所以,基本上,我们期待的是一个稍微好一点的版本的现有工具。
为了给出一些背景,最初构建Dava时,想法是Dava可以编写仪表板的大部分内容——连接数据库,插入图表,添加互动。但是,我们越是使用它,越是意识到AI在当前状态下只在处理小任务时表现出色。目前,我们用它来修复代码或做小的改动,比如改变颜色或检查组件为何无法编译。除此之外,它就不太管用了。老实说,这样更好,因为让AI为你写所有代码看起来很吸引人,直到你去修复它时发现自己几乎不懂它制造的混乱。这就像在处理一个黑盒子。相反,最好将其作为众多工具之一。它始终在那里,当你需要时使用,但作为
工具,而不是替代品。
总之,至少在AGI到来之前,软件开发将在可预见的未来内保持为人类的工作。尽管一些点击诱导的视频可能会让你相信AI将很快取代我们的工作,但实际上,我们离AGI的距离就像实用量子计算机一样——遥不可及。那么,所有的恐慌从何而来?
有两个原因。首先,GPT是一个突破。它改变了计算机理解人类语言的方式。我们认为它会继续以同样的速度增长。我们忽视了之前多年的缓慢、逐步的进展。在我们脑海中的图表在GPT-3出现之前开始,并被推测到未来几年。
其次,谈论末日景象有一种扭曲的快感,即使我们明知不是真的。水冷机旁的闲聊逐渐失控。就像滚雪球一样,从微不足道的起点滚到无法控制的大小。一些哗众取宠的文章利用这种恐惧,因为它能带来点击量。然后,播客接着讨论,骗子趁机上车,不久,大家都相信明年我们将失业。
但现在事情在慢慢稳定下来,大家开始意识到AI不会很快取代我们的工作,至少在现有形式下不会。它将与我们合作,像其他工具一样。
也许恐慌从未真正关于AI取代工作。也许它关于对未知的恐惧,对某种东西可能瞬间让我们失去价值的恐惧。但我们仍在编写代码,仍在创造,仍在工作。世界没有终结,前景依然熟悉。