科技革命与个人机遇
自从ChatGPT(Generative Pre-trained Transformer: 一种基于大型语言模型的聊天机器人)出现以来,我一直在思考它对像我这样不懂技术、不会写代码的人意味着什么。每一次科技革命都会带来新的机遇。在最近的互联网和智能手机浪潮中,懂技术的人通常能够最早享受到科技带来的红利,而像我这样不懂技术、不会编程的普通人,往往只能在技术浪潮的边缘观望。我们每个人似乎又被科技革命推上了新的人生分水岭。我们一直在等待这一时刻,这就是AI的“iPhone时刻”。
同之前一样,科技界又走在了前面,所有公司都在抓紧布局AI,每天都有大量新的AI工具问世。我的开发者朋友们也像打了鸡血一样,加紧时间开发自己的产品,生怕错过这个新的风口。于是我便思考:科技界的人可以去开发产品,那我们这些不懂代码、被程序员叫做“麻瓜”的普通人该怎么办呢?难道我们又要被落下,甚至会被AI取代?
在过去的一段时间里,我每天痴迷于花大量时间探索ChatGPT的能力,并参考别人使用AI工具的方法。作为一个财经博主,我潜入科技圈,采访专家,和开发者聊天,在Twitter Space和网友讨论。到现在,我想我已经找到了让我满意的答案。这个答案就是,也许我们需要更多的人,变成可以跟机器交流的“自然语言编程者”。
自然语言编程的兴起
郝培强老师,这位2000年初就进入IT界的元老级人物、资深程序员,曾在多家科技公司担任要职并数次创业。他对ChatGPT有着非常深入的见解,强烈推荐大家关注他的YouTube频道“TinyFool的胡说八道”。在这个视频里,我想分享一下什么是自然语言编程,它的革命性在哪儿,我们普通人应该如何抓住这个机会,以及为什么我这个三十多岁、只写过“Hello World”的“麻瓜”又一次开始学习编程。
首先,我们来看三位重量级人物的类似发言:
OpenAI(一家人工智能研究与部署公司)的CEO Sam Altman于2月20日发推文说:“在和对话机器人沟通的时候,能够写一个非常好的Prompt(命令提示: 指示AI模型执行特定任务的文本输入)是一项非常具有杠杆效应的技能,它也是一个‘自然语言编程’的早期示例。”
而在一个月前,AI界大名鼎鼎的Andrej Karpathy也发推文称:“当前最新最热门的编程语言是英语。”这条Twitter引起了很大反响,于是一个月后Andrej又补充了9点来进一步阐述“自然语言编程”。
1月31号,NVIDIA(一家全球领先的人工智能计算公司)的老板黄仁勋在一个演讲上也提到了“自然语言编程”的革命性。他表示:“在过去的40年里,我们就干了一件事:让计算机变得越来越难被人编程使用。这就是为什么人们间的科技能力鸿沟越来越大,直到有一天,突然间每个人都能编程控制电脑。不管你是个农民还是医生,一个护士还是前线工作人员,还是助理、旅行社员工,这都不重要。一个小生意者或者餐厅老板,这都不重要。每个人都能编程控制电脑,难道不是吗?唯一需要你做的,就是用Prompt给出自然语言命令,去给你写一个程序帮你做事,去为你自动化一些事情。”
这三个人的发言里都提到一个关键词——Prompt(命令提示)。我相信到现在大家已经很熟悉Prompt的概念了。不管是让ChatGPT给你写首诗、讲个笑话、写封信、做个评论,还是解释一个概念,你输入的那句话就是这个Prompt。它们并不是什么代码,而是我们每个人都会的自然语言。用自然语言写一个或者多个命令提示,让机器为你工作,就是“自然语言编程”。有了它,我们就好像掌握魔法咒语一样,具有创造无限可能的超能力,我们很多人就再也不是程序员眼中不会编程的“麻瓜”了。
自然语言编程的实践:我的动画制作经验
在继续之前,我想让你看个东西。这是ChatGPT协助我制作的一个动画效果:一个圆随着我的声音改变大小。它的灵感来自于我最喜爱的人工智能电影《Her》。在电影里,当AI系统启动的时候有这样一个画面,我的动画就是在这个圆的基础上做出来的。我的制作方法是使用ChatGPT配合视觉艺术编程软件Processing(一个用于电子艺术、新媒体艺术和交互式设计的开源编程语言和集成开发环境)。首先我把意图描述给ChatGPT,让它帮我生成一段Processing代码,然后我手动把代码粘贴到Processing中生成动画效果。
除了让ChatGPT协助我做动画,我在之前的视频里还让它帮我写代码,在Excel里实现复杂的数据可视化。要知道,我是一个几乎没有编程基础的人,假如没有ChatGPT,靠我自己是完成不了上面这两个事情的。我要么自己花很长时间学习写代码,或者花钱雇人,这都是高昂的成本。但是有了ChatGPT,我不需要去求别人就可以实现我的想法。我们已经使“计算(编程)”变得民主化。
有人会说:“你怎么能说是你自己在编程呢?明明是机器在替你写代码。”就好像这位Twitter网友反对黄教主的留言一样:“AI能让每个人都成为作家,但决不能让每个人都成为软件工程师。”这句话其实存在好几个问题。首先,它错误地轻视了作家的工作;其次,也是更重要的是,我们一定要把编程的本意是用计算机来解决一个实际存在的问题这件事情想明白,而不是非得用编程语言一行一行地写才叫编程。
其实在整个计算机语言的历史上,最早是机器语言。你要想写机器语言的程序,你得完全明白这个芯片指令集是怎么回事,你能把这个机器语言,这些001啊什么都写清楚,这是一个非常痛苦的过程。到了汇编,就变成我用一些简单的英语单词来代替一堆0001啊什么这些东西,那么变得好像人类可读,但它实际上它的思维方式仍旧是人类没法理解的。然后一点点地,我们叫后来叫高级语言,现在面向对象等等等等。其实你从这个发展脉络会发现,程序语言的发展目标是越来越简单、越来越好用、越来越能解决问题,而且越来越离问题领域和人更近。工程师的核心要旨不是说用一种style去解决问题,而是解决问题。
今天如果你想用自然语言实现任何一件事情,其实你就回到了一个这个问题的本质:我到底要解决什么问题?我和ChatGPT交互做动画的过程本质上就是一个通过编程解决问题的过程。ChatGPT没有读心术,你不能期待只使用一个提示就能让它完成全部的工作。我需要将问题细分为任务,逐步提示,并熟悉术语,进行纠错,尝试不同的方式来实现目标。这就类似于用代码编写程序。虽然这里也涉及代码,我只是对它们做了复制粘贴的工作。而随着用户界面的改进,越来越多的软件都将拥有AI聊天界面,可以理解context(语境: 相关信息或环境)和意图,代码就会从用户的视觉里消失。这个过程已经在发生。
例如,微软已经推出了Bing Chat Beta版(微软Bing搜索引擎集成的AI聊天功能测试版),就是在原有的搜索引擎界面加入了聊天用户界面。有趣的是,它很快就遭到了用户“破解”,帮助用户实现破解的不是什么复杂的复杂代码,而是用英语写的Prompt。更有趣的是,在破解后,人们发现微软对Bing Chat做的那些系统限制也是一系列用英语写的Prompt。此外,已经有人成功使用ChatGPT结合苹果的Shortcuts(快捷指令: 苹果设备上的自动化功能)功能,DIY了自己的智能家居系统,而这个人所谓的“底层代码”全都是英文语句。
现在越来越多的人开始意识到“Prompt Engineering”(提示工程: 设计和优化Prompt以指导AI模型生成所需结果的实践)这一概念的重要性。提示工程师已经成为一种新兴的职业。现在,网上存在大量的Prompt食谱、提示大全和教程,甚至有专门的网站出售Prompt。换句话说,“Prompt Engineering”就是自然语言编程中的coding(编码: 使用编程语言编写指令)。
抓住AI机遇的关键能力
既然AI带来了自然语言编程,我们每个人都掌握自然语言,所以这个机会是属于所有人的。但是这并不意味着每个人都能抓住这个机会,因为使用自然语言编程的本质依然是“解决问题”。它对以下三个方面有要求:
-
清晰的思维和沟通能力(Clear thinking and communication) 这是优秀的Prompt Engineering的本质。任何沟通都存在一个信息损耗的问题,这在自然语言编程时代同样如此。如果我们的思维不清晰、逻辑不完整、信息不具体、术语不明确、语境不详细、内容不相关,AI工具就无法准确地理解我们。我相信很多人在使用ChatGPT的时候已经深有感触,和机器对话是门技术也是门艺术。
-
善用资源的能力(Resourcefulness) 这是指善于利用不同的资源、方法和工具,以及跨行业的知识来克服困难的能力。比如,ChatGPT不能直接帮你做动画,但是你可以像我一样让它帮你生成动画软件的代码;或者你可以通过ChatGPT去生成Midjourney(一个基于AI的图像生成工具)的Prompt,然后把Midjourney生成的图片用Stable Diffusion(一个开源的深度学习文本到图像模型)变成动画。AI工具的边界实际上是你自己的边界。
-
创造力和原创性(Creativity/originality) 当每个人都可以使用自然语言编程时,工具的使用门槛就会变得很低,那些重复性的低附加值工作可能都会交给机器去做。所以,我们的想法会变得更重要、更有价值。不知道你发现没有,自然语言编程对我们每个人的综合要求实际上是比之前更高了。
从工业革命之后,我们的社会就进入了一种分工体系,很多人成为了单一领域的专家,就像是一个巨大机器上的螺丝钉,一个工具人。但是AI的来临让工具变得智能,这种分工体系逐渐被打破,个体能够使用的工具和参与的事情大幅增加。我们很多人都将面临一个角色的转变,从一个执行者变成一个创造者、决策者。这就是我视频开头所说的人生分水岭。
应对角色转变与学习策略
所以,我们普通人应该如何面对这种角色的转变,抓住新的机会呢?
第一,要以一种成长型思维模式(growth mindset)来看待AI的到来,去主动拥抱新的角色转变,而不是去担心是否被AI取代。 这种成长的心态,其实都跟一件事有关系,就是这个饼到底是我来分多一点,还是我们把饼做大一点,哪一件事情是更核心的东西。实际上我们正在一个整个世界都在计算机化的过程中,也许他缺了太多太多的程序员。那么按照以前的商业模式或者思路,就是说医院的管理系统一定得是一帮程序员进入到医院里头,去跟护士医生去讨论生成这套系统。未来也许是什么呢?未来也许就是护士自己通过提示(Prompt)的方式,就开始做他自己的一些系统。也许这个“饼”已经大到一定程度了,它再继续大的时候,我们得需要更多问题领域的人来做事情,而不是计算机端的人。
而在当前,我认为更应该注重心态转变的是行业里的专家,因为越是专家,越容易站在专业顶端向下看,把目光集中在技术的缺陷和不足上,反而越难以用成长的眼光看问题。我们今天能看到无数专家从本专业的角度专注于ChatGPT或者其他AI工具的不足和愚蠢上面,但是他们往往忽略了技术带来的游戏规则的改变。比如前两天在Twitter Space里一位艺术界投资人说,每年有无数的人进入漫画业,但是最后能真正赚钱成为IP的凤毛麟角。所以即使AI能让所有人都可以画漫画了,也不代表他们能成为赚钱的漫画家。但是这里的问题是,当AI让所有人都能画漫画的时候,人们不一定非得去做漫画家。这就好像智能手机的普及让所有人都能拍视频,但是这些人不需要去做导演、做演员,或者进电视台工作,他们可以做抖音、做YouTuber、去网络教学、去带货直播。游戏规则的改变会带来我们在原有规则基础上想象不到的新可能。
第二,用AI来学习,变成超级学习者。 有一个网友总结得很好,他说使用AI工具有一个悖论:知道如何使用它提升效率的人,前提是本身有比较良好的技能基础。好消息是,AI的出现让我们很多人有了学习的超能力,能花更少的时间,同时做到对知识面的扩展和加深。我相信很多人在用过ChatGPT之后能深刻体会到这一点。
第三,从现在起就让AI工具融入到自己的工作流,去学习Prompt Engineering,创建自己的Prompt体系。 我知道有人说,ChatGPT当前在我们专业领域还差太远,帮不到我。比如,有个网友说他想让ChatGPT做一个物流行业的站点数据分析,并规划一个线路,但是他发现ChatGPT无法获得行业数据,他也没办法把数据提交给ChatGPT,所以就说ChatGPT在他们物流行业还不行。这位网友的问题在于他试图让ChatGPT去做全部的工作,而他真正应该做的是以一个项目经理的思维把整个项目打散细分,把AI能处理的交给AI去做,为自己提高效率节省时间。比如,你可以让AI帮你设计一个算法、生成一段代码、提供一些思路、润色你的报告等等。你要做AI的项目经理,而不是让AI取代你。
第四点,也是我认为最重要的一点,那就是我们要主动加速“从一个工具人、螺丝钉变成一个创造者、决策者”的角色转变。 你现在就应该开始使用AI工具来进行创造,做自己曾经想做但不能做的事情。我们刚才提到的所有技能其实都在为创造服务,通过实践是最好的学习和成长途径。你越早尝试成为一个创造者,你也就能越早地练习和掌握这些技能。所以呢,核心问题不是这个时代在抛弃你,是你是否在抛弃这个时代。
为什么在AI时代我还要学习编程?
既然自然语言编程的时代快要来临,我这个三十多岁的“麻瓜”为什么还要学编程呢?我有三个原因:
- 提高效率与探索新世界。 相信你已经看到,ChatGPT能够写代码帮我打开了新世界,我突然拥有了很多新的工具。但是我也发现,假如我懂一些基本的编程概念,我的效率会更高。在大多数专业工具完全支持自然语言编程之前,我不想浪费时间。
- 训练编程思维和逻辑思考能力。 即使未来不需要我使用代码了,学习编程也不会浪费。因为自然语言编程也需要编程思维、逻辑思考能力。现在学习代码编程语言是训练这些能力最直接的方法。
- ChatGPT作为强大的学习工具。 有了ChatGPT这个老师,学习编程和写程序比以往任何时候都容易。ChatGPT就像一个24/7的专业老师一样,随时能回答我的问题。它帮我理解代码、纠正错误、教我写代码;而当我掌握一些基础之后,我可以用Copilot(AI辅助编程工具: 基于OpenAI Codex的人工智能,能根据注释和代码自动生成代码)这样的工具帮我写代码。这就相当于给了我一个超级杠杆,我可以做的事情更多,拥有更多的机会和可能。
所以,我认为在AI时代初期学编程,反而是个人最好的投资之一。
以上就是本期视频的全部内容。由于时间关系,我和郝老师的探讨很多都无法包含到影片当中,强烈推荐订阅郝老师的YouTube频道,他那里有更多对ChatGPT和AI的内容。链接我都放到了评论区。感谢大家收看,我们下次再见。