模型是革命性的,开启自然语言与机器交互新时代

2024-05-28
来源:网络整理

来源/深然(ID:)

作者/邹帅

作者/唐亚华

图片/官网

“去年年底看到大佬们在分享相关内容,一开始以为只是资本和大佬们玩弄的玩具,但用过之后,和朋友交流,加上自己研究,我确信这个模式是革命性的。”高帆曾在国内某大公司担任后端工程师,离开程序员岗位许久后,再次把目光投向了代码世界。

高帆认为,作为生成式AI,它具备极强的交互能力,“它其实用了互联网上所有人类的语调,训练出了一个庞大的语言集,可以想象,它将迎来一个用自然语言与机器交互的新时代。”作为一名技术出身的人才,高帆也坦言,大部分基础性、重复性的工作都会被AI来做,程序员的工作也是如此。

“我们日常生活中写代码,一开始是一行一行地写,每个变量、方法都要自己生成。后来,IDEA有了代码补全、编译器。现在(微软和谷歌联合推出的AI编程工具)可以通过描述需求、上下文,智能地编写代码。”按照这个逻辑,他认为编码并非不可替代的技能,交给AI指日可待。

市场上也有报道称,AI将取代程序员。据CNBC报道,谷歌内部测试显示,那些能通过谷歌初级软件工程师面试的人,就可以获得该职位,这个职位通常适合大学应届毕业生和首次从事编码工作的求职者。一些计算机从业者也尝试过,发现它确实可以编写基本的脚本。虽然它不能进行完整的编程,直接开发一个程序,但它可以通过一步一步的指示教人类完成这项任务,甚至还具备(调试)的能力。

看来,很多基础的编码工作都可以交给AI来做,而AI是否能通过长期学习无限提升编码能力还是个未知数。有程序员表达了自己的担忧,他们以前以为做IT会比当收费员有更稳定的“铁饭碗”,但现在却发现自己处在随时可能被取代的小窗口期。

面对人工智能的洪流,没有人能够傲慢,那些推动技术的人,可能反过来也会被技术所取代。

“我只用了几分钟就写出了代码。

只需要几秒钟。”

谭琳是目前在加拿大工作的前端开发工程师,去年年底发布后,北美技术圈就开始关注和讨论。她表示,同事们试用后,充分肯定了这款工具从技术角度的优势,甚至有人开玩笑说,以后想转行,只写代码。

“我试着写代码之后,确实有点着急。”谭琳说,她给出的指令是:写一个 JS() 文件,生成一个(重启按钮),点击这个刷新页面。很快,完整的代码就给出来了,下面解释了她的思路。“如果是我写这个,要花几分钟,但这个只需要几秒钟。”

谭林尝试的只是一段基础代码,要求只是在页面增加一个功能。树莓派健康APP联合创始人阿肯说,他请它写一个小程序,它就能快速、出色地完成。“我的要求是开发一个识别错别字的AI软件,我先问开发思路是什么,从后端用什么框架,到微信小程序前端用什么框架,小程序如何上架发布,它都能一一列举出来。”阿肯说,自己之前没有开发小程序的经验,这次正好让它教自己怎么做。从提供思路到如何执行,阿肯都按照它的指引,成功开发出小程序,并放到了微信开发平台上。

与谭琳的感受类似,阿陈也发现,不仅能帮助用户解决具体问题,还能将背后的逻辑讲得合情合理、有理有据,既能授人以鱼,又能授人以渔。阿陈举了一个例子,并回答了“小程序中指定位置颜色变红”的命令:“要想让小程序中‘’的指定位置的文字颜色变深,可以在‘’中插入‘’rich-text‘标签来实现。在‘’rich-text‘’中使用‘’标签,并为该标签指定‘’属性,即可控制文字的颜色、字体大小等样式。”回答完这些原理后,他还给出了具体的操作步骤。

在开发过程中,阿晨遇到了好几个程序错误,他把错误信息粘贴进去让它检查,结果很准确。“我可以直接根据它的答案解决问题。”阿晨说,没有小程序开发经验的他,可能需要查阅资料、学习,大概需要两三天时间才能开发完成。问题可能不会很快得到解决。“我们一般会用百度这样的搜索引擎,但因为这类工具给出的答案不是特别准确,我还需要在海量的信息中做二次筛选,所以整体时间会延长。从告诉我怎么做,到解决 Bug 并成功运行,一共花了 3 个小时。”

人类需要几天才能完成的工作,现在只需要几个小时;人类需要几分钟才能完成的工作,现在只需要几秒钟。提高速度和效率是人工智能的价值之一,而在程序员眼中,从几分钟到几秒的进化几乎是“可怕的”,因为很难想象人工智能的速度上限。

除了速度,的“逻辑”和“思考”能力也超出了一些程序员的预期,谭林在日常工作中经常寻求他的帮助,他感觉自己比以前效率高了很多。

“比如我要写一个包含几十个文件的软件,我会从其中一个文件中筛选出一段代码,里面可能还有很多来自其他文件的变量和数据。它在下面解释的时候会说,虽然这些变量没有出现在这段代码中,但是可能是从其他文件传过来的。如果你向Siri等AI问同样的问题,他们会说,‘我不知道这个变量是从哪里来的。’”

使用一段时间后,谭林的心情几经转变。“刚听说它的时候,我是持怀疑态度的,以为它只是类似Siri的东西。当发现它能像我一样写代码并运行的时候,我震惊了。这种震惊直接引发了一些职业焦虑。它比我快太多了,如果经过长时间的学习和训练,会不会有一天取代我?”

谭林原本是学生物的,他转行做程序员的原因之一是觉得这个职业很难像收银员、银行柜台、高速公路收费员那样迅速被机器取代。“疫情也给了我一些幸运,因为我们的工作没受到太大影响,还可以在家办公。但直到人工智能出现,我才意识到程序员不是一份永久的工作,我的职业危机可能就是由此引发的。”

部分 OEM,

但它不能完全取代程序员

阿锐小程序开发_开发版软件_微信小程序开发文档

它具备基本的编码能力,编写速度也比较快,但是如果真正放到程序员的工作场景中,还是暴露出很多局限性。

先说写代码这个基础环节。几位程序员的共同体会是,写一些基础脚本,写一个网页的功能,指导一个小程序的开发,在技术上是可行的。但是“它只能写代码片段,不能写完整的代码。” 解释道,“你可以这样理解,比如我要生成一个 word 文档,但它只能生成文本形式,如果我需要两个 word 文档,它只能给我一段文字。要生成文档,我还需要手动复制到软件里人工处理,而且有字数限制,最多字符数。” 认为,单从写代码的角度来说,无法写出完整的程序是最大的劣势,因为开发者需要有掌控整个框架的能力。

有人曾这样形容程序员的不可替代性:“程序员的核心竞争力不在于写代码,而在于与各种各样的人扯皮、相互竞争。”其实在业务场景中,无论是前端还是后端、测试还是运维,程序员工作中最难、最耗时的部分就是需求转换、测试、修改。简单来说就是明确公司想要什么,然后去实现它。这项工作需要大量的人的经验和创造力,完成起来还是比较困难的。

举了一个例子,他们正在做一个健康管理的 APP,需要一些减肥菜谱,这些菜谱之间有一定的逻辑性。“如果我让它实现一个菜谱查询的功能,它不知道减肥菜谱怎么插入数据库,怎么取,也不知道工作人员怎么通过后端去维护。我需要给它讲解这些步骤,但这些步骤相当于我已经写好了代码框架,它只是帮我把内容填到框架里而已。”

理解业务目前显然是一个伪命题,所以程序员日常工作中最耗时耗力的部分是难以替代的,不仅具体业务难以理解,而且一些复杂、极端的生产活动也只能从自己的数据库中总结出来。

范高举例说,如果你问“k8s中有哪些Type”,这个问题很基础,一般是面试程序员用的,可以回答得很完整。“但如果问‘如何让淘宝双十一下单功能支持54万/gps?’,只能列举分布式架构的使用、缓存技术、负载均衡、数据库优化、代码优化等。”范高认为,这只是一个模棱两可的答案,并没有给出具体的模型理论和实用价值。“而我们现实生活中的一些业务场景,只有靠人脑去探索和解决,这也是程序员的工作。解决这些跟随市场变化的专业性极强的问题,就连人脑也很难给出完美的答案,AI暂时做不到。”

“各行各业都有一些拧紧螺丝的工作,一般会交给实习生或者新员工去做。我们工作中,比如制定一个技术方案,需要有人具体去实现,但这种CRUD(数据库的增删改查)很枯燥乏味。这种已经设计好,只需要执行的工作,未来可以交给AI去做。”国内某大型企业程序员阿东认为,这种来自AI的“入侵”是好事,“能被AI取代的工作,我都不想做,这些没有创造性的工作被AI接管,正好让我有精力去做更有趣的事情。”

做基础工作的“基础程序员”或许会感觉有些冷。美的集团原AIoT算法负责人练世禄表示,高水平的程序员,或者说“大牛”,是很难被取代的。

“以开发为例,在构建这个模型时,专家会建议第一步要用深度(有监督的深度学习),用 GPT3 这样的成熟模型。”他解释道,搭建框架的那群人很难被替代。原因是,如果一个没有足够开发经验的人把损失函数放在第一步,那么优化损失函数值的空间就会极其小,结果会完全适得其反。

“我觉得低级程序员做的事情,高手已经告诉他们用什么框架、怎么调参数,他们只需要导入进去,写一些固定的代码,他们就会做了。这群人已经不能再产生更高的价值,或者他们的价值被取代了。”

“山脚下很拥挤,山腰人少,山顶上可以呼吸新鲜空气。”练士禄说,归根结底,拥有顶层设计能力、能发现问题、解决问题、创造新生产力的程序员,在面前才会更加从容、自信。

未来已来。

程序员不再是“铁饭碗”

人类为了追求效率和生产力,创造并训练了人工智能。当人工智能发展到这个地步时,人类创造的机器又撕下了人类低效工作的面具,将一些重复性、机械性、低价值的工作推到了悬崖边。

相比于普通民众,计算机行业的人已经在这个领域摸爬滚打多年,见证了人工智能一步步的发展,他们既兴奋又忐忑。连士禄说,他们兴奋是因为对人工智能的未来充满希望,“现在我们走的是大数据、大模型、大算力的路线,用庞大的(数据集)来做计算。这条路可能是完全正确的,因为之前我们尝试过很多小数据、小调参的算法,但是都达不到这个效果。”

焦虑的原因比较复杂,简单来说就是害怕落后。连世禄说,现在很多互联网巨头都在日夜不停地寻找应用方向,大家都在浪尖上发力。他喊AI十年了,现在更怕起早贪黑。“搞算法的人也很焦虑,担心自己算法的方向有没有问题。”

在谭林看来,给程序员带来的焦虑也是一件好事。千千万万普通程序员的核心竞争力,依然是理解需求的能力、独立完成设计架构的能力,而这恰恰是避免被AI取代的核心竞争力。“比如我从事的网站开发工作,前端的人性化设计工作可能很难被取代,但后端的数据库操作、参数传递接口,可能几十年后都说不准,也没办法做这些,只能苦练编码技巧,不断学习。”

最近也在为自己的团队面试技术人员,找到他们之后,对于经验较少的面试者,他的要求会更加辩证。“他们有没有真正的开发经验没关系,我宁愿他们有自己的逻辑思维,不能只顾着执行,做自己能做的事情。”

连世禄也提出,未来这种类型的AI如果大规模进入企业,可能会出现复合型技术人才的需求,也就是产品技术人员,或者说技术产品人员,而现在这种人才非常稀缺。他解释称,从他的观察来看,在国内外很多大型互联网公司,产品人员和技术人员的兼容性很差,双方都不愿意以健康的方式进行沟通。“你需要一个兼容的角色,懂技术,能快速发现需求,并且把需求解释清楚,因为理论上来说,未来只要你给出明确的(提示、激励),它就能给你编程。”

另一个绕不开的话题是成本。阿肯表示,参照温馨一言的模式,已经有不少企业宣布加入意向。“这可能就像现在很多云服务器,刚开始使用的时候,大部分费用都要厂商来承担,企业方可能觉得很便宜,但一旦产生依赖,人工智能公司就会形成垄断,使用成本就会逐渐上升。现在很多企业都开始考虑搭建私服,我觉得人工智能系统也会经历这样的一个消费阶段。”

人工智能已经进入企业,并被应用到智能传呼、智能客服等岗位。不过对于程序员来说,还是要看情况。一方面判断一个岗位能否被人工智能取代,首先要看这个岗位和智能的结合程度,需要大量运用人类经验和创造力的岗位,还是可以保住的。另一方面就是成本的比较,如果客服的人工智能系统价格比雇佣人力低,那自然是可以取代的。但如果编程的人工智能系统价格高,那程序员永远是需要的。

不可否认,机会在向更高处移动,向掌控AI的算法工程师移动,向懂需求、懂技术的复合型人才移动。基础性工作会逐渐失去价值感,这些人要么离开,要么被AI驱使跑得更快。这或许才是人工智能与人类本该有的关系。如果说人类创造AI的初衷是为了解决人类工作和生活中的繁文缛节,那么AI就不是敌人,而是更聪明的朋友。

谭林说,就像运输协会抵制燃油车一样,面对新事物,旧事物自然会排斥、会恐慌,但当你发现潮流已无法逆转时,你也发现自己正和潮流朝着同一个方向前进。

*应受访者要求,高帆、谭林、阿陈、阿东为化名。

分享