关于AI的思考:如何在AI时代看清楚自己的价值

date
Aug 23, 2024
slug
ai
status
Published
tags
总结
AI
summary
开篇说明:这篇文章我断断续续写了快三周时间,写这篇文章的出发点是在AI出来快两年的时间里,我也一直在思考AI和我的关系,看着AI从GPT3.5的曝光大于实用,到GPT4的惊艳,再到Claude3.5回归实用,我认为只有深入的了解和AI的关系,才能更好的使用AI,当我在看了很多影响自己的AI文章后,发现很多打动我的观点都聚集到了一起,我将大量的文章按照自己的理解和脉络重新整合,试图表达出自己当下对于AI的关系
type
Post
开篇说明:这篇文章我断断续续写了快三周时间,写这篇文章的出发点是在AI出来快两年的时间里,我也一直在思考AI和我的关系,看着AI从GPT3.5的曝光大于实用,到GPT4的惊艳,再到Claude3.5回归实用,我认为只有深入的了解和AI的关系,才能更好的使用AI,当我在看了很多影响自己的AI文章后,发现很多打动我的观点都聚集到了一起,我将大量的文章按照自己的理解和脉络重新整合,试图表达出自己当下对于AI的关系
去年GPT4出来之后引起了很多人的恐慌,大家开始讨论AI是否可以替代人类的工作,也有几个网友(非程序员)在闲聊过程中也问到AI出来了是不是会让程序员失业,我就开玩笑说不太能替代,因为AI不能背锅 🐶,这篇文章就聊聊AI会不会替代人类
文章内容会有几个篇幅:
  • 从价值的角度分析我和老板的价值差异
  • 互联网的信息化价值是什么
  • 专业和专业知识
  • AI的价值
  • AI会改变什么

为什么老板的工资比我高

脉脉上有很多吐槽贴,说P8、P9一天天啥也不干,就刷刷手机,写写PPT,技术也不懂,跟他聊技术,他和你聊人生,绩效还是3.75。那为什么老板的工资比我高?
借用 《开发同学的做事情&想事情&谈事情》中的一段话
很多事情想明白需要做,也设计好了大概的执行思路,关键的问题在于,但凡有大作用的项目都需要有很多人参与,怎么让别人参与进来,让他人接受,给他人阐述清楚能够进场的位置并能共分成果却成了这件事能否做下去的关键。说句不太上台面的话,有没有人像我刚来的时候好奇过这样一个问题,为啥这个环境里再难的事,只要找一位“老阿里”出面,就能解决?按照我粗浅的认识不外乎两个原因:老师傅们能找到更多的资源,多到可能原来都不是干这一摊事情的人都能拉进来一起共担风雨;老师傅们也深切知道别人到底想听到什么、关注什么、担心什么、分享什么,能把这事的前因后果、核心价值、风险回报讲的明明白白,说服他人一起共同富裕。然后长此以往,老师傅们渐渐建立起了个人的品牌效应,大家慢慢就发现跟老师傅们合作有章法、效率高、有结果、不白干、为人靠谱、值得信赖,如果下次还遇到老师傅攒局就值得一起搞,那可不就能达到振臂一呼,勇往无前的效果?从这一点来看一句说“资源的本质就是人情”,也没什么太偏颇的。
说完老板,再看软件工程师的核心竞争力,从来就不是写代码写得有多快,数据结构和算法学得有多好。一个高级软件工程师能升到senior,不是因为他的库函数记得更熟,或者他会手写翻转红黑树,而是因为他会做设计决策。如果让一个刚入职场的软件工程师来做设计决策的话,很有可能会因为做出错误的决策而导致整个组全部返工。而这个返工浪费的时间,是就算这个人写代码再快十倍也救不回来的。类似的,staff工程师为什么升成staff,也不是因为他写代码比senior还要快,或者因为他知道senior还不知道的更难的算法,而是因为他可以发现一些非常重要,但是别人都忽略了的问题,并且说服大家这是个重要的问题。所以从这个角度来说,AI的出现,其实是提高了编程的上限,而不是要取代软件工程师这个职业。
本质上他们都在做「风险更高的决策
这就是价值的一种体现,企业中无非就是把事情做成、做好,「硬技能」固然重要,但是能识别出关键问题,并且把人撮合起来,这个「软技能」也是成事的关键

回头看:互联网的信息化真正改变的是什么

2005 年,网景公司的联合创始人马克·安德森告诉《纽约时报》记者托马斯·弗里德曼:"今天,对我来说最深刻的事实是,罗马尼亚、班加罗尔、苏联或越南的一个 14 岁孩子拥有所有的信息、所有的工具、所有容易获得的软件,可以随心所欲地应用知识。"
但事实上发生的恰恰相反:事实证明,信息仅仅是一个更为重要的经济功能——决策的输入,而决策是精英专家的领域,通常是那些少数拥有大学或研究生学位的美国成年人。通过使信息和计算变得廉价和丰富,计算机化催生了决策权力的空前集中,以及伴随而来的资源集中在精英专家手中。
在《郭东白的架构课》中也多次提到决策:
  • 一个公司本质上最重要的就是战略决策,那么战略决策谁来做?肯定是管理层来做
  • 对高质量决策的识别和引导能力,会让我们变得不可或缺。
  • 决策都是跨域架构师的核心增值所在
    • 我认为这里有个简单的答案,就是不断寻找高风险决策的机会。如果说我职业生涯中只有一个职业选择原则的话,那就是这句话。
  • 其实说白了,就是要主动去冒险。我认为对大公司的架构师来说,这一点尤其重要。在大公司环境下成长起来的兼职或全职架构师,往往以解决实际问题为主,很少有做决策的机会。在重大的技术不确定性场景下,多数时候都是他的上级在做风险和利益的权衡,然后给出架构决策。
  • 架构师的成长,就是在更大的领域范围、更高的难度和更大的不确定性下做决策的过程
    • 程序员,就是在代码层面做结构化的决策。
    • 兼职架构师,就是在一个领域内做横向问题的架构决策。
    • 跨域架构师,就是面对复杂的团队冲突,在多个领域间做全局最优的架构决策。
    • 总架构师,就是面对技术发展的不确定性,从公司层面出发,顶住来自业务方的压力,作出长期最优的架构决策。
    • CTO,就是面对竞争环境的高度不确定性,从贵公司层面出发,面对成本压力和团队内部压力,作出最利于企业长期生存的技术决策。

专业

进入21世纪之后,计算机行业作为一个专业的领域获得了行业的高薪,那么培养一个典型的计算机科学人才都需有做什么:
对于传统的计算机科学的训练,数据结构和算法是核心中的核心。在本科阶段,我们要先上一整年的课来学习各种不同的数据结构和算法,然后在各种专业课中继续学习每个专业里面所需要的独特的数据结构和算法。比如计算机网络的指数后退,比如操作系统的进程树等等。在找工作的时候,数据结构和算法题,比如leetcode,也是大家准备的重点。进入工作以后,我们的大脑中无时无刻不在统筹规划数量繁多的变量状态,以及让这些状态相互转化的算法。我们骄傲于对数据结构的深刻理解,看到一个需求就可以条件反射,用这种数据结构速度最快,用那种数据结构最省空间。我们对分析时间复杂度非常熟练,拿到一个要求可以迅速地把它大卸八块翻译成运行时间最短的代码。不论是我们学习的过程还是工作的过程,整个编程的环节都是高度围绕着数据结构和算法来进行的。实际上,现代编程的重要基石——面向对象编程,强调的就是对数据结构(域)和算法(方法)的封装。

专业知识

专业意味着要掌握专业知识,在互联网之前,专业知识是什么,以及过往的专业知识是怎么被替代的:
  • 伦敦出租车司机花费多年时间记忆伦敦的所有街道,但智能手机导航应用已经使这种艰难获得的专业知识在技术上过时,在经济上多余。
  • 纺织工匠:更先进的动力织机和纺织厂的激增使个体织工的需求减少。1850年约70%的棉花仍然是手工采摘,但到1920年,纺织制造的机械化使这个数字降到了约5%
  • 在工业革命之前,商品都是由熟练的工匠手工制作的:
    • 车轮由车轮匠制作;
    • 衣服由裁缝制作;
    • 鞋子由鞋匠制作;
    • 时钟由钟表匠制作;
    • 火器由铁匠制作。
工匠们花费数年时间至少获得两种广泛的专业知识:程序性专业知识,即遵循高度练习的步骤来产生结果;以及专家判断,即根据不同情况调整这些程序

使用AI对专业知识应用的案例

在2023年发表在《科学》杂志上的一篇论文中,麻省理工学院的研究生Shakked Noy和Whitney Zhang进行了一项关于写作任务的在线实验。在招募到的市场营销人员、助学金申请者、顾问、经理和其他各种专业人士中,随机选取一半人获得了ChatGPT的访问权(并被鼓励使用)来完成写作任务。另一半人使用传统的非人工智能工具,如文字处理器和搜索引擎来完成任务。
Noy和Zhang发现,分配到ChatGPT组的人在写作输出的速度和质量方面都有显著改善。完成任务的时间普遍减少了40%。值得注意的是,最大的质量改善集中在底层。ChatGPT组中最不有效的写作者大约与没有ChatGPT的中等水平写作者一样有效——这是一个巨大的质量飞跃。
ChatGPT并没有消除专业知识的作用。虽然最优秀的写作者使用任何一套工具都仍然位于顶端,但ChatGPT使最有能力的人能够更快地写作,而能力较差的人能够既更快又更好地写作——因此,合格写作者和优秀写作者之间的生产力差距缩小了。
如果人工智能可以大量提供廉价的专业知识,剩下的少量人类专业知识难道不会变得多余吗?我将用一个类比来回答:YouTube。如果你在家庭修理方面很在行或从事技术工作,你可能会花时间观看YouTube的"如何做"视频:如何更换电灯开关,如何找到煤气泄漏,如何调整扫雪机等。根据2018年皮尤研究中心的一项研究,51%的成年YouTube用户报告说,该网站对于"弄清楚如何做他们以前没做过的事情"是"非常重要的"。
但这些"如何做"视频对谁有用?不是专家。他们制作这些视频。业余爱好者呢?假设我想把19世纪房子里的保险丝盒换成20世纪的断路器面板。假设,我从未碰过电工钳子,也没有绝缘手套。但我有一个空闲的周六,附近有一家Home Depot。信心满满,我打开了几十到几百个关于这个主题的YouTube如何做视频之一,开始工作。不可避免但不是立即,我意识到我19世纪的保险丝盒与视频中的不太一样。无论我选择退缩还是大胆继续,我都面临着触电或电气火灾的明显风险。
显然,那个YouTube视频不是为我准备的。要利用现成的免费专业知识,我需要基础专业知识:处理高压电路的程序性知识,以及在工作偏离脚本时用于解决问题的专家判断。有了这种专业知识,YouTube可能正是我所需要的。
我的观点是:工具通常不是使专业知识变得不必要,而是通过扩大其效力和范围使其更有价值。工具越强大,风险就越高。正如亚历山大·蒲柏所说,"一知半解是危险的事。"
虽然人工智能不仅仅是白领专业人士的YouTube,但它在扩展专家能力方面的作用将是至关重要的。例如,大多数医疗程序都遵循一套明确规定的步骤。但执行这些步骤需要实际操作和随之而来的隐性获得的专家判断。
同时,它自动化了广泛的中等技能工作岗位,包括行政支持、文书和蓝领生产职业。与此同时,由于缺乏更好的机会,60%没有学士学位的成年人被 relegation(贬为)到非专业的、低薪的服务性工作。
"人工智能为人类提供的独特机会是推动对抗计算机化开始的进程——将人类专业知识的相关性、影响范围和价值扩展到更大的工人群体。"

AI的改变:让手工专业知识到大规模的专业知识

随着现代工业的工具、流程和产品变得越来越复杂, 对一种新形式的工人专业知识:"大规模专业知识"的需求激增。操作和维护复杂设备的工人需要在机械加工、装配、焊接、化学品处理、纺织品处理、染色和校准精密仪器等方面接受培训和获得经验。在工厂车间之外,电话接线员、打字员、簿记员和库存管理员作为信息管道服务——他们是那个时代的信息技术。
因此,大规模专家工作的狭窄程序性内容,即要求工人遵守规则但很少行使自由裁量权,在随后的时代中可能特别容易受到技术淘汰的影响。
许多高薪工作都密集涉及非常规任务,管理者、专业人士和技术工人经常被要求对一次性、高风险的案例行使判断(而非规则):为肿瘤患者选择治疗方案、起草法律文件、领导团队或组织、设计建筑、开发软件产品或在危险情况下安全降落飞机。对于这些情况,知道规则是必要的,但不是充分的。
随着计算机化的推进,拥有四年制大学学位,特别是法律、医学、科学和工程等研究生学位的工人的收入急剧上升。然而,这是一把双刃剑:计算机自动化了专业人士曾经依赖的非精英工人的大规模专业知识。
回想一下,人工智能之前的计算机的出现,通过加速获取和组织信息的任务,使专业决策者的专家判断变得更加重要和有价值。与此同时,计算机化贬低并取代了许多中等技能工人的程序性专业知识。
但想象一下,如果有一种技术能够"颠覆"这个过程:它会是什么样子?它将支持和补充判断,从而使更多的非精英工人能够参与高风险决策。它同时会缓和医生对医疗保健、律师对文件制作、软件工程师对计算机代码、教授对本科教育等的垄断权力。
人工智能就是这种颠覆性技术。通过以实时指导和护栏的形式提供决策支持,人工智能可以使更多拥有互补知识的工人能够执行一些目前被精英专家如医生、律师、程序员和教育工作者垄断的高风险决策任务。
但人工智能有可能通过减少稀缺性来降低这些成本——也就是说,通过赋予更多工人做这种专家工作的能力
相对于之前的所有技术,数字计算机的独特力量在于其能够廉价、可靠和快速地执行以明确、确定性规则编码的认知和手工任务

AI对教育和编程的影响

AI也确确实实带来了深远的改变。就是它让写程序侧重的能力,由传统的对数据结构和算法的熟练度变成了开发经理所更侧重的能力。比如说了解AI能力的边界,如何把问题分解成AI能搞定的小块等等。类似的事情在历史上已经发生过很多次了。比如在计算器出现以前,我们的学校教育非常强调熟练的算术运算,甚至出现了珠心算这种复杂且创新的高速运算技巧。但是当计算器出现以后,一方面珠心算逐渐在课程中消失了,而我们进行算术运算的速度和准确率得到了大幅提升。另一方面,那些依赖于算术运算的职业也没有消亡,相反,上限反而得到了提高。所以,虽然AI辅助编程是一个非常根本的革命性的变化,会让一些能力变得更加重要,让一些能力变得不那么重要,但也不必急着给软件工程师这个职业判死刑。
对于相对简单的编程任务,AI很有可能一次性快速写出直接可用的代码。 比如文件重命名的例子里,只用了二三十秒通过语音识别向AI描述我的需求并给了一个例子,它就能在三十秒左右写出代码。 然后再花三十秒将代码粘贴到编辑器并运行,整个任务就轻松完成了。 因此,从这个角度来看,GPT-4和Copilot的出现,使得编程不再是一种仅在数据量庞大、手工效率低下时不得不采用的备选方案。 相反,AI让编程有潜力成为解决问题的首选方法。 一旦我们可以运用AI的这一能力,广泛使用编程来解决问题,无论是短期还是长期,我们使(压)用(榨)电脑的效率和深度都会变得远远更高。
而且,这不仅适用于程序员。 包括向AI描述需求、复制并运行代码,几乎不需要任何编程基础。 只需进行简单学习,比如如何运行Bash或PowerShell脚本,就能上手。 即使程序出现问题,也可以将错误信息直接粘贴给AI进行修正。 因此,这整个过程不仅适用于有一定电脑基础的非程序员,而且其实对他们更有利。 因为AI降低了入门门槛。等于将比如DS和BA的编程能力提升至与科班码农相同的水平——都是又快又好。 所以,对于简单的问题,编程可以既快速又高效,这种编程民主化(Democratization of Programming),是我感受到的AI可能对整个IT领域产生的第一个深刻影响。
在此之外,另一个深刻的影响是AI可能深远地改变了我们学习编程或者其他IT技能的方式。 以前,要想高效地学习,我们通常需要三样东西:
  • 一是教材,提供学习的理论基础;
  • 二是老师或助教,提供个性化的答疑;
  • 三是实操。 实操对于IT领域来说尤为重要。
如果学了很多理论知识但无法通过代码实现,等于白学。 然而,现在的教育体系不论是在课堂里学习还是通过视频自学,都是从课本开始,由老师引导。 这就带来了两个问题:
  • 一是对实操的重视程度不够,很多时候都是纸上谈兵,只会做理论推导和玩具级别的东西,遇到程序报错时缺乏debug的经验;
  • 二是因为学习的时候还没有实操经验,不知道每一个知识点的实际用途,这既缺乏学习的动力,也无法准确把握重点,导致每个知识点都花费相同的时间去学习。
这些问题对于学习,尤其是IT领域的学习,是非常有害的。
但是在使用了一段时间AI辅助编程工具,比如GPT和Copilot以后,我的感受是,有效利用AI编程的核心不再是数据结构和算法了。即使我不知道在这种情况下最优的数据结构是什么,没关系,AI会给我建议不同的选项,甚至分析比较它们的优劣,引导我根据实际情况选择最适合的数据结构。即使我不知道最优的算法,没关系,AI会告诉我这里可以使用什么库来解决,每个相关的库函数的时间复杂度是多少。最坏的情况,AI甚至可以直接把我的代码写好,我就只要在实际数据上跑一遍,来选择最适合的算法。而这整个写代码加上实验的过程,甚至比我手工分析时间复杂度还要快。从另一个角度来说,即使我不知道库函数的细节,不记得每个参数分别是什么含义,AI也可以轻松提示,帮我补全函数调用时的每一个参数。
因此,写码的水平对能不能写出优秀的代码来说并不是很重要了。这句话看起来很奇怪,但我的意思是,比如有两个人,一个人熟练掌握了各种数据结构和算法的知识和技巧,另一个人只是有一般的了解。在传统的编程时代,前者写的代码会比后者写的质量高很多,开发的速度也会更快。但是在AI辅助编程的年代,这两个人在能不能有效利用AI又快又好地写出代码上,差别往往并不是很明显。

使用GPT开发的案例

零基础开发Web应用

  • 国外的一个小哥利用Claude+Cursor零基础开发了一个Web应用,这在之前是不可想象的
notion imagenotion image

利用GPT结对编程

bmpi的开发者分享他使用AI来开发复杂应用的经验:
在2023年,我与ChatGPT结对编程,开发了一个myGPTReader的产品,在这个产品的开发过程中,我几乎没有单独写过代码,而是通过ChatGPT生成的代码来完成开发。这种方式在我看来是一种新的开发方式,我称之为AI驱动开发。
在2024年,我又尝试完全用ChatGPT开发策引产品一个复杂的功能:多策略服务,策引产品旧的策略服务是一个复杂的遗留系统,不仅功能复杂,而且扩展性差,所以我用GPT4完全重构了技术架构,并优化了业务流程,提高了系统的可维护性和可扩展性。我的角色是决策宏观的架构与设计,其他尽可能让GPT4来写代码,而且所有的过程都在一个会话里完成,持续几个月的开发,消耗的Token过百万。
通过这两个案例我想说的是现在AI的能力可以让普通人开发一个中等难度的应用程序,以及可以让一个有经验的开发者高效率的开发一个高等难度的应用程序

如何和AI共存

"人工智能对劳动力市场构成真正的风险,但不是技术导致的无工作未来。风险在于专业知识的贬值。"
  • 将AI当做扩展和增强人类能力的工具,而不是替代工作的对手,AI不是为了解决问题,而是为你解决问题提供了更多的工具选择
  • Builder's Mindset的人,可能是AI时代最大的受益者,所谓Builder's Mindset,就是我们对待工具的态度从被动转变为主动。我们不再只是工具的User,而是工具的Builder。当没有现成的工具时,我们构建工具;当现有的工具不好用时,我们改进工具。在AI时代,这种构建和改进变得特别简单
  • 在和bmpi的开发者聊天的时候,他不断提到「复杂问题」,不管使用还是不是用AI,你都应该有自己的一个「复杂问题」去解决,这也是Builder’s Mindset的体现
If you have any questions, please contact me.