大模型时代,程序员当下如何应对 AI 的挑战
随着 AI 技术的飞速发展,特别是大模型的出现,传统的程序员角色正在经历深刻的变革,我们不得不重新对自己进行审视和思考。
通用领域大模型的“泛化能力”
在过去的二十年内,AI 领域的大部分研究和应用都集中在完成一项特定的任务中,例如:分类图片、总结文章、多语言翻译等,然而随着模型参数的增加, ChatGPT 的出现体现了“大模型”在通用领域内令人惊叹的能力,一些不存在于模型内的泛化能力突然出现了,AI 突然从大型的复读机变成了真正的人工智能。
上图是给 ChatGPT 一张梗所做出的回答,我们可以发现,ChatGPT
不仅正确识别出了图片表象的炸鸡和隐藏的世界地图,更推测了炸鸡所在的“食品”和世界地图的“地理”之间的结合想表达的“轻松和有趣的氛围”,这一刻
AI 仿佛不再是冰冷的,而是拥有了某种灵魂。
具有想象力的多模态的输入和输出能力
“模态”本身是一种生物学概念,从人类的角度出发,主要代指触觉、听觉、视觉、嗅觉和味觉,而从现在最常见的用户交互形式上,图片、声音和文字承载了主要角色,现在的 AI 能力也已经完全具备了这三者之间的理解与转换,并且这已经不是以往基于 OCR 等拟合技术的转换。
现在目前大部分相关的 AI 产品集中在以文字输入为统一的输入格式,以 User Chat 代替 User
Interface 的方式生成各类其他模态的数据如:大段文字、图片、音频视频、JSON
数据等,我们已经在将开发的核心关注点从以往的实现一个功能进行数据传递,转向为更为核心的用户需求上,如各类模态内容数据的生成,跨系统模态数据间的联想、传递、转换。
目前,GPT-4 已经对部分用户开放了 All Tools 模式,在这个模式下以往需要单独选择的联网能力、图片生成能力、最多 3 个的插件能力已经被完全整合,GPT-4 会自动根据要求自动使用适当的能力使用适应的模态进行输出。
结合 AI 的泛化能力,多模态的用户输入和输出具有更大有想象空间。除了 AR、自动驾驶、智能硬件等服务于人的应用场景也得以飞速发展,我们与机器的交互方式也可能会不仅仅局限在视觉、听觉,在触觉、视觉、嗅觉、味觉等以往难以被抽象化的模态输入也可以被进一步的发掘和应用。
AI 对程序员工作模式的冲击
随着 AI 能力的涌现,AI 已经对现有的软件开发模式和程序员的工作模式造成了冲击,并且大语言模型在某些特定语言内的表现甚至超过了大部分的程序员。
1、使用自然语言生成代码
编程语言的进化历程就是从低级语言逐渐向高级语言的转变,从汇编语言=>C=>JAVA,最终必然会经历演变为自然语言的阶段,而 AI
使得自然语言向相对低级语言的转变成为了可能,而且在现阶段下,只要单个任务足够清晰和简单,AI
已经可以超越很大一部分的程序员,并且不得不承认的是,编程语言在一定程度上只是人类和计算机系统间传递信息的一种模态,程序员在其中扮演的角色只是翻译官。
上述是一个基于汇编语言 8086 指令集实现阶乘函数的问答,我甚至因为手机尾号是 8084 打错了指令集名称,Chat GPT 4
给出了相应的汇编代码和对应的注释,虽然因为没有汇编环境没有进行执行,但扪心自问,我们在没有编译环境和代码提示时面对自己的常用语言手写代码,真的可以做到无调试成功运行么?
2、使用 AI 辅助编程
目前微软已基于 GPT 4 发布了 Github Copilot,在不对现有开发进行冲击的前提下为程序员提供了可靠的辅助编程工具,Github Copilot 不仅可以理解上下文的语义,而且可以从整个项目的角度跨文件获取上下文进行代码生成。
随着 AI 能力的提高,AI 已经可以作为 Asstent 或 Copilot 的角色辅助程序员进行开发,程序员的职责已经逐渐演变为负责规划任务和验收结果,其中具体的编码工作已经逐渐在被 AI 替代。
3、模拟人类协同
我们心中完美的软件开发团队是各类人员各尽其职,拥有匹配自身的完美技能,且人员之间可以高效的进行沟通,但是假设其中的某类人员可以完全用 AI 进行替代的话会怎样呢?
就现有技术而言,AI 已经完全已经可以胜任部分相对固定的物料生成,人工的工作主要集中在 prompt
的录入和产出物的审核上,相信大家在各个视频平台上,从很久以前就已经开始听过无数小帅和小美的故事了。而且在我身边已经有某些游戏游戏公司完全裁掉了自己的原画部门和内容部门,将内容生成的职责直接合并到了原产品部门。
人类行为的交互模拟
目前已经有大量的 AI 社会模拟项目涌现,可以对一个特定环境进行设定,给于各个 AI 一个特定的“人设”成为单独的智能体,各个智能体不停模拟相互关系进行迭代。
我们完全可以将环境设定为一个完美的软件开发团队,给于各个角色赋予特殊的职能,并使用特化的小模型进行赋能,当我们对模拟的环境按下了加速键,在算力足够的情况下又会发生什么,西部世界仿佛已经开始照进了现实。
AI 给我带来的焦虑感
本次 AI 浪潮经常被称为 AI 的 iPhone 时刻,但是 iPhone 只是优化了一部分的人机交互形式,让 PC 互联网进化到了移动互联网,而此次的 AI 浪潮更多的意义在于生产力的提升与替代,仿佛隐约代表着新一代的工业革命。
英国工业革命时,纺车的出现令生产效率大幅提高,手工纺织工人的就业机会急剧减少。曾几何时程序员仿佛带有着某种神秘的光环,而此次 AI
能力的涌现最让我焦虑的是,让我深刻认识到了程序员的“研发技能”不再具有壁垒,已经隐隐有了被 AI
替代的可能性,我以前自以为的高技术的能力的一部分已经成为了可以被替代的普通工作。而且 GPT-5
已经在路上,我已经不得不重新思考我的自我定位和工作方式。
程序员角色的转变
本次 AI 革命冲击的主体不是体力工作者,反而是很大一部分的智力工作者,程序员作为智力工作者的一大群体,在企业中同时也消耗了极大的成本。可以预见的是,程序员的部分岗位和职能必然会被 AI 所冲击。
首先,我们要认识到自己可以被替代的能力和不可以被替代的能力,从程序员的本身职能出发,我们要脱离将需求翻译成代码的基础能力,而更加关注更高阶的逻辑规划能力、架构设计能力、创新能力。
其次,大部分程序员往往是相对内向且不善于表达的,虽然 AI 具有了很强的理解和联想能力,但准确的需求描述和 prompt 描写能力,也会影响了你驱动 AI 产出内容的效率和质量。产品经理往往在表达能力上优于绝大多数的程序员,是很值得我们进行学习和借鉴的。
最后,我们不得不重新定义自己的工作流程,将工作进一步的进行细化并将部分工作交于 AI 进行实现,如:
-
更加关注软件工程本身,将更加“简单纯粹”的函数交于 AI 实现
-
使用 ChatGPT 解决通用领域问题
-
使用 Github Copilot 提高编码效率
-
在 Hugging Face 选择合理小模型解决领域问题
-
使用 DALL-E 和 Midjourney 生成图片
-
用 Notion AI 做日常记录和文档生成
-
不仅局限于末端 Skill / Tool / 个人能力,将自己的思想和思维方式赋能 AI Agent
我相信,随着的 AI 从现有的“人工智能”向着细分领域“智能体”进行转变,程序员本身的角色也会随着现在的“码农”向着更高阶的“创新者”进行升阶,我们要深刻的认识到,使用 AI 工具并不是为了减轻工作的“负担”,而是为了调整工作的“重点”。
未来我们可能会和 AI 同台竞技
在《圣经》中,亚当和夏娃因为偷吃了“智慧之果”就被赶出了伊甸园成为了人。而面对拥有永生的 AI,人只能使用拔网线和拔电源的方式限制 AI 成为神。
科幻已经映照进了现实,AI 此刻离我们仿佛很近但又很远,仿佛离我们很远但又很近
-
电影《流浪地球》2019~2023
-
剧《疑犯追踪》2011~2016
-
书《失控》《科技想要什么》《必然》《5000 天后的世界》1994~2023
随着通用 AI 能力的发展和 Token 问题的解决,领域 AI 必然会以“智能体”的形式代替特定岗位的工作职能和人类同台竞技,但淘汰我们的不是 AI,而是会使用 AI 的人,此时此刻,各位还觉得 Chat GPT 那 20 $/月的价格还很高么?