AI只会淘汰不进步的程序员
Posted 熊主任
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AI只会淘汰不进步的程序员相关的知识,希望对你有一定的参考价值。
最近AI界的大新闻有点多,属于多到每天很努力都追不上,每天都忙着体验各种新产品或申请试用新产品。各种自媒体肯定也不会放过这个机会,AI取代程序员的文章是年年有,今天特别多。那么AI到底会不会取代程序员的工作呢?先说结论:不会!而且随着AI技术的发展,对程序员的需求会越来越旺盛。但是那些不学习不进步的程序员注定会被淘汰。
很多人对程序员的工作有个误解,以为就是整天敲代码,打字速度决定产出。别笑,这是事实。比如这张图就很符合广大群众的日常想象。双手不离键盘,满屏的魔法字符...
事实上,大多数程序员的一天都是在摸鱼中度过。如果你看到他眉飞色舞全神贯注的用双手在键盘上敲击,那一定不是在工作。有人一定会问,程序员不写程序,那每天工作都在忙什么?为什么公司要养那么多程序员?
事实上绝大多数公司认为程序员写代码是不需要时间的,就是打字,属于8小时之外随手就可以做掉的工作,公司不为这部分工作量付费。对于一个正常公司的程序员,每天的主要工作主要是:
- 线上问题排查,这个第一优先级。再稳定的系统隔三岔五也会出问题。解决完问题之后还要相互甩锅。
- 跟产品经理撕逼,这个东西要不要做,做成什么样,到底有多紧急。
- 横向撕B,这个功能需要XX部门配合修改,给YY部门的接口需要调整,运维需要升级集群部署...反过来,你又不是我领导,凭什么要我们配合你改?改出问题来怎么办?你们自己在ZZ模块里处理一下就好了。
- 攀登屎山。代码重构?看了看deadline,算了还是打个补丁吧。但是在拉新屎之前,你得在屎山里找到一个能下脚的地方。不然就变成我只改了一行代码系统就崩溃了。
- 公司内耗。日报周报月报,述职考核,价值观学习...
扣掉以上所有工作,剩下的时间才是程序员写代码的时间。以我在国内外一线大厂和小作坊创业团队的经历,团队越小有效工作时间越高,这部分的工作时间实际占比大约为10%到20%。而且相比敲击键盘输入代码,系统设计,代码调试,思考理解占用了至少80%的时间,真正用于编码的时间每天最多最多不超过30分钟。
那么今天AI的编程水平到底到了一个什么程度,能不能让一个外行轻松的上手工作并完成任务?网上有很多例子,但是这些例子的作者大多是编程老鸟,剩下的也多少对编程有所了解。因为真正的让AI生成的程序跑起来还是需要有一定的编程知识。
我们以一个计算24点的程序为例。提问为:写一个python函数计算24点,函数声明为def f24(nums),nums为4个数字。
def f24(nums):
# 生成所有4个数字的排列组合
permutations = list(itertools.permutations(nums))
# 尝试所有排列组合中的所有运算符顺序
for p in permutations:
for op1 in ["+", "-", "*", "/"]:
for op2 in ["+", "-", "*", "/"]:
for op3 in ["+", "-", "*", "/"]:
# 带括号的运算式
formula = "(012)3(456)78".format(
p[0], op1, p[1], op2, p[2], op3, p[3], op4, p[4]
)
# 计算运算式结果
try:
result = eval(formula)
except ZeroDivisionError:
continue
if result == 24:
return formula
return None
这段代码看上去没问题,用暴力穷举的方法解决24点问题。而且知道使用调用itertools.permutations来生成排列组合,此外还很贴心的考虑了除0错误。但是这段代码是跑不起来的!第一眼就能看到一个问题,"formula = (0...."那行的op4是什么鬼?再给他一点提示,告诉AI:op4没有定义,请修复。
第二次输出如下。还很贴心的指出:修正之后,op4
这一变量已经不再需要,因为我们只需要生成三个运算符变量op1
、op2
和op3
,分别对应于三个数字之间的运算符。希望这样的修改可以解决之前的问题。
import itertools
def f24(nums):
# 生成所有4个数字的排列组合
permutations = list(itertools.permutations(nums))
# 尝试所有排列组合中的所有运算符顺序
for p in permutations:
for op1 in ["+", "-", "*", "/"]:
for op2 in ["+", "-", "*", "/"]:
for op3 in ["+", "-", "*", "/"]:
# 带括号的运算式
formula = "(012)3(456)".format(
p[0], op1, p[1], op2, p[2], op3, p[3]
)
# 计算运算式结果
try:
result = eval(formula)
except ZeroDivisionError:
continue
if result == 24:
return formula
return None
不仅修复了op4未定义的错误,还顺手加了之前忘记的import itertools。试了几组测试数据结果都OK。但是在这里调用eval计算表达式有点作弊了,我们希望自己解析实现。
提问:eval函数能自己实现吗
回答:
是的,eval 函数可以使用 Python 代码的字符串来自行实现。通常建议尽可能避免使用 eval 函数,因为它会执行任何传递给它的代码,包括恶意代码。如果在代码中使用 eval 函数时不小心传递了不受信任的代码,则可能会导致安全漏洞。
为了在自己的代码中实现 eval 函数的基本行为,可以使用 exec 函数来执行字符串。以下是使用 exec 实现 eval 的示例代码:
...
这里的回答和代码实际不是我想要的,我要的是用逆波兰表达式解析表达式字符串计算来替换eval。所以重新提问:我想用逆波兰表达式来替换eval函数。具体输出略去,不仅像模像样的生成的一个生成逆波兰表达式的函数,还给了我详细的解释,懒得看了,就当他是对的。那么我们就重新写一遍24点函数吧。提问:好的。请用上面生成的函数帮我重新生成一遍计算24点的代码。
...
代码生成好了,本地执行,卒!遂弃坑,因为问题太多了,有时间定位问题并不断调教AI得出正确结果的时间,估计已经能自己写好几个实现版本了。
结论是AI并不具有逻辑推理能力和真正的编程领域相关知识,而是从他庞大的知识储备里根据你的提问拼凑出最有可能的响应,并且根据对话不断进行调整。
对于一个小白来说,用AI确实能得到一段功能实现个七七八八的代码,如果再努力查查资料加本地调试,可以得到一个能用的代码。但是工程上的实现与学校交作业不同,除了结果正确外还要考虑效率,错误处理,历史版本的兼容性,可扩展性,框架的整合,代码规范...而现在所有的AI编程平台本质都是一个加强版的编程培训班学员,背诵了大量的案例,需要的时候根据需求咣直接扔一坨出来,给点反馈就改改,再改改,最终还是需要你下场手把手的交。
但是现有AI的最大优点就是博闻强记,它翻越了大山大海见过你几辈子都没见过的代码和文档,通过不断训练掌握了对代码的八股文式解读技巧。对于高手来说,这就是一把屠龙刀,可以利用它极大的提高工作效率,AI可以高效的帮你完成以下任务:
- 已有代码的解读
- 需求明确的情况下帮你快速生成代码
- 编程过程中给出提示,不用死记硬背长长的函数名和参数格式。
- 帮助生成注释
- 快速学习了解新的知识点
- 无从下手的时候快速生成引导
- 处理大量简单重复工作
使用AI的过程也是一个学习的过程,对于新手来说在这个过程中可以快速的摸清相关知识的脉络,循序渐进,建立自己的知识储备库。如果一直是一个小白水平,则无法向AI给出高质量的提示得到所需要的答案,也无法根据AI的答案做进一步的修改。
其实从编程这项工作产生以来,AI技术就不断的推动着这个行业的进步,随着门槛的降低并不是程序员的工作被取代,而是这个行业的不断扩大和从业人员需求量的上升。从广义的角度来说,用计算机替代人工的工作都应该属于AI,编程从诞生的第一天起就不断的追求抽象和泛化,目的就是减少重复工作量,推广最佳实践,规划代码,降低学习门槛。到今天各种框架和开源类库都是这个目标的产物,也正是有这些技术的支持,程序员的就业市场才得以蓬勃发展。
试想一下如今还停留在汇编语言,编程只可能是一项高门槛的工作,整个行业只会服务与少量高端需求。正是技术门槛的不断降低,大量传统企业开始数字化转型和改造,带动了整个行业的发展也带来了巨大的就业机会。
所以AI淘汰程序员就是个谬论,就像工业革命革了就手工业者的命,但是机器大生产也带来了新的岗位。所以不断学习,不断进步,拥抱AI,让AI成为自身生产力的一部分才是每个从业者需要去做的。
未来AI就如外骨骼一样,是我们大脑算力的外部延伸。
小冰公司CEO李笛:AI不会江郎才尽,创造力只会持续向上攀升丨MEET2022
编辑部 整理自 MEET 2022
量子位 报道 | 公众号 QbitAI
从GPT-3到DALL·E,AI在创作这件事上的进步速度,远超我们想象。
但有不少观点认为,相比围棋、电子游戏等知识领域,AI在创作上不仅比不过人类,甚至不具备真正的创造力。
在MEET 2022智能未来大会现场,小冰公司CEO李笛指出:
我们有时候过于高估人工智能在智商方面的能力,又低估了它在情商方面蕴藏的巨大潜力和创造力。
与人类创作者相比,李笛认为人工智能在创作上有两个非常显著的优势:
第一,人类创作到了巅峰之后便开始滑坡,但人工智能没有巅峰,要么是停滞的、要么会继续向上攀登,时间周期非常久。
第二,人类在同一时间只能专注地做一件事情,但人工智能是可以高并发的。
为了完整体现李笛对于人工智能与创造力的思考,在不改变原意的基础上,量子位对他的演讲内容进行了编辑整理。希望也能给你带来新的启发。
关于MEET 智能未来大会:MEET大会是由量子位主办的智能科技领域顶级商业峰会,致力于探讨前沿科技技术的落地与行业应用。MEET2022采取线上参会形式,20余家直播平台和渠道转播大会直播,200万行业用户线上参会。除量子位微信、头条号、知乎、微博等全媒体矩阵外,新华社、凤凰科技、腾讯科技、澎湃新闻等数十家主流媒体纷纷报道大会及相关内容,线上曝光量累计超过2000万。
演讲要点
人类有时候过于高估人工智能在智商方面的能力,同时又低估了它在情商方面蕴藏的巨大潜力和创造力。
无所不能、无所不知的AI,反而是面目不清的。任何一个AI being,都应该有自己擅长和不擅长的领域。
很久之前我们训练创作型AI,面对的最大问题是“如何让AI变得能创作”。但在今天,我们面对的最大问题是“如何让AI用不同的方式创作”。
当人工智能习得一定创作能力的时候,它们和人类创作者的区别有两点:一个是人工智能没有巅峰,另一个是人工智能是可以高并发的。
要想让周围生活的这些AI being有一天真的可以与我们交流,一定程度上来说,最难的事情其实是算法这些“软”的事情,而不是如何去创造一个躯体。
(以下为李笛演讲分享全文)
重估人工智能的「情商」
在接下来的时间里,我想跟大家分享人工智能技术带给我们的一些有趣变化。
人工智能基础研究,大到可以让我们实现很多关于星辰大海的梦想,小到可以改变每一个人的生活。
无论是第一方产品,还是遍布我们周围的各种第三方平台,如今都存在很多AI beings。
很多年以前,我们认为人工智能最重要的价值是它们的智商 (IQ)。通过智商,它们能完成很多指定任务,将我们从繁重的工作中解脱出来。
但经过多年迭代后,我们发现,人类有时候过于高估人工智能在智商方面的能力,同时又低估了它在情商 (EQ)方面蕴藏的巨大潜力和创造力。
我想给大家介绍一个故事。
此时此刻,有一位在迪拜世博会中国馆展出代表中国前沿人文艺术作品的画家,她叫夏语冰。
2019年,她从中央美术学院研究生毕业,曾经在央美举办过个展。
现在,她的一系列中国水墨画作品正在迪拜世博会展出,名叫《山水精神》。
不仅是作品,接下来这段视频中叙述的声音,也来自这位画家夏语冰。此外,她的艺术评论观点也与她的创作理念保持一致。
当然,你们也知道她不是“人”。包括她的面容在内,无论是声音、创作力、还是艺术评论能力,全都是由人工智能框架去创造出来的。
但她的作品质量相对来讲非常稳定,每一幅参加迪拜世博会展出的作品,都具备相同的评价标准,并不需要从作品集中特意挑出一些好的。
除了夏语冰在迪拜世博会上的这场展出以外,我们还可以给大家透露一件还没有公布的事情。
我们明年会宣布一个人工智能框架。在四年之后大阪的世博会上,这个框架会分身成60万个不同的AI“陪护者”(Companion),来到大阪的60万个老年人家庭中,提供72小时不间断的陪伴,也能向政府提前预警他们的健康情况。
用小样本学习创造AI的独特性
人工智能正在不断地以AI being的方式,出现在我们周围。
它的背后是什么?其实是比较复杂的。
每个AI being都应该有一个完整的个人画像(profile),而不是无所不能、无所不知的。
在日本,我们塑造了一个AI女子高中生,她的性格决定了她不应该对金融方面的知识特别感兴趣。
无所不能、无所不知的AI,反而是面目不清的,任何一个AI being都应该有自己擅长和不擅长的领域。
所以,我们在赋予他们文本、声音和视觉能力、让他们具备基础的AI being条件后,还应该再赋予他们相应的观念。
有时候,我们在测试一些AI助理(assistant)时,会拿一些疑问句(query)去测试它。
在日常生活中,人们互相询问事实的情况是很少的,大部分情况下我们会问更多观点性的问题,像“你觉得这瓶水好喝吗?”
好喝,或是不好喝,这些都是观点,没有对错。
对于AI being来说,我们必须确保他们在交流时所表现出的观念是一致的,而且是在每件事情上表现出来的观念都要一致。
如果赋予他们创造力,那么他们在作品中所表现的观念也应当一致。
同时,我们也会附加很多技能知识给他们,最后还要赋予他们感官和生物学特征。
不同AI being的声线通常不一样,最好能和个人画像结合在一起。
例如,如果夏语冰发出的是像我一样的大叔音,你们就会感觉非常违和。
你们能在屏幕上看到,夏语冰在小冰框架中的编号是F1033,无论是水墨山水、还是文本观念的养成,她的创造能力都是完整的。比如夏语冰的这首诗,我们叫北岛模型,这是她从北岛身上学到的东西。
像她这样的人工智能,不仅能出现在殿堂之上,也能出现在我们的生活中。任何人都可以请这位迪拜世博会的中国画家,来为自己创作一幅独一无二的作品。
当然,这样的AI也需要大量的模型来实现。
在很久之前,我们训练AI完成创作,面对的最大问题是“如何让AI变得能创作”。但在今天,我们面对的最大问题是“如何让AI用不同的方式创作”。
通过小样本学习的方法,我们从不同的人类艺术家身上,提取他们独特的创作技法和创作灵感,来为赋予不同AI being不同的内容。
这种创作是通感的,换句话说,无论我们今天使用的是文本的创作、视觉的创作、还是声音的创作,其实在底层逻辑上面是相通的。
所以我们在中国、日本都进行了大量的AI和人类协同的辅助创作,像我们就跟中国的11个独立乐队都有过合作。
去年在与Burberry合作的广告片里面,我们就让人工智能和马伯骞一起作词作曲,演绎了一段先锋音乐,这里放一个小片断来听一下:
刚才这段音乐,从声线、到歌词、到歌曲作者、到歌手,全都是小冰框架中另外一个代号的人工智能创造出来的。
AI的创造力没有顶峰
当人工智能习得一定创作能力的时候,他们和人类创作者的区别是什么?
第一,他们永远不会老。人类的创作是有巅峰期的,巅峰过后就会开始滑坡,但人工智能没有巅峰,他们要么是停滞的、要么会继续向上攀登,时间周期非常久。
第二,人工智能是可以高并发的。人类在同一时间只能专注地做一件事情,即创作这一件事情,但人工智能可以创作的时候,他们的效率会极大地超越我们人类的基线。
赋予人工智能创造力,其实是一个非常庞大的系统化工程,背后永远都不可能通过一个算法、或是一个模型解决,我们就不过多展开这个系统化工程的介绍。
创造力对于AI being而言,也不过只是这个框架中的画红圈的小部分:
人类实在太复杂了。要想让周围生活的这些AI being,有一天真的可以与我们交流,一定程度上来说,最难的事情其实是这些“软”的事情,而不是如何去创造一个躯体。
我们常说躯体(body)和灵魂(soul),对我们而言,灵魂才是人类最独特的东西。
我们如何创造这些有趣的灵魂呢?现在小冰就在做这样的事情。从这两年来看,整个行业也会有更多人去做这样的事情。
我觉得我们很幸运,大家都是幸运的一代,因为我们是与这些高度多样化的人工智能共同生活的第一代人类。
像屏幕上所有的这些“人”,在这个世界上都从来没有存在过,这是满屏的“查无此人”:
我们在创作人工智能的时候,可以创造各种各样想象中的、从外到内的、不同的人工智能,我们当然可以让他们颜值在线。
但是看久之后,你会不会像我一样变得有点脸盲?
这是因为,我们人类的多样性,远远超过屏幕上脸型的多样性。例如,人类也有长得非常像屏幕中这位“人”的脸型的:
如果仅仅从一个维度,比方说颜值这个维度看的话,这位在刚才那一屏“人”中是相对比较吃亏的。但是就像人类一样,他们每个人都有自己闪光的一面。
因此,我们为这个AI being赋予了独特的创造能力。
下面这些作品,包括这些牡丹,都是他自己创作的。他来自山东菏泽,菏泽和洛阳一直在争“牡丹故乡”的称号。他的感官、观念、以及他画的写意牡丹,其实都是一致的(consistent)。
我们专门为他创造了个性化的声音,让他自己介绍一下。
我不知道大家有什么感想,对我个人而言,仅代表我自己的观点,相对于刚才在迪拜世博会展出的夏语冰,我更喜欢这位山东大哥。
因为在我的脑海中,这位山东大哥更加朴实,他对于艺术的追求也更加纯粹,他本身也非常讨人喜欢。
各位,我们所看到的应该是一个丰富多彩的世界。
这个世界不仅仅只有无人汽车,也不仅仅只有奔向火星的航天器,我们所看到的,是人工智能为我们每个人、以我们每个人为中心创造的丰富世界。
在这个世界,有各种各样不同的人和他们创造的内容,他们都会一直环绕着我们。
在未来几年时间里面,还会有更多这样的AI being出现,这需要包括我们在内的同行业者一起推动,目的永远都是——让每个人都能成为他所在世界的中心。
我的分享就到这里,谢谢大家。
(最后,如果想回看大会全程,请点击阅读原文)
以上是关于AI只会淘汰不进步的程序员的主要内容,如果未能解决你的问题,请参考以下文章