ChatGPT 的狂飙之路
The following article is from 前端壹读 Author 谢小飞
最近随着ChatGPT爆火出圈,网络上各种关于ChatGPT的争论声也不断;有些人把它当成一个更高级的聊天机器人,有人兴奋地看到了创业的风口,而另一些人对它取代人类的工作露出了不少担忧;那么它到底是推动社会不断前进的工具,还是妄图颠覆人类社会的T-1000?本文我们来深入探讨一下ChatGPT的那些事。
当我们在谈论ChatGPT时,讨论的是聊天的欣喜,是失业的担忧,是未来的憧憬。
发展历程
ChatGPT看似好像是在一夜之间突然火起来,但其实它并不是一个什么新鲜的概念,最早的人工智能可以追溯到1950年,艾伦·图灵(Alan Turing)发表了具有里程碑意义的论文《计算机器与智能》
,又名《机器能思考吗?》,在这篇论文里,第一次提出了很有哲学的概念:模仿游戏
,也正是我们所熟知的大名鼎鼎的图灵测试,正是这篇文章为图灵赢得了人工智能之父的桂冠。
图灵测试就是将测试人和被测试者(一台机器或者人),在没有面对面的情况下,让测试者通过一些测试装置(例如键盘)向被提问者发问,如果被测试者超过30%的答复,不能使测试人确认出哪个是人、哪个是机器的回答,那么这台机器就通过了测试;这样的机器也被称为图灵机,图灵机也只是一个设想,并不是真正的机器。
其实我们发现图灵测试并没有对人工智能进行直接的定义,什么样才算是人工智能;而是反其道而行之,并没有拘泥于繁杂的过程,以结果为导向,达到什么样的结果(欺骗到测试人),才算是人工智能;我们有时候在处理棘手问题时也可以换个思路,以结果为起点对问题进行拆解。
在传记电影《模仿游戏》
中,也对这位孤独的天才提出的设想进行了描绘,当图灵被警探关到审讯室时,警探提出了一个意味深长的问题:机器能思考吗?图灵就提出了玩一个游戏(正是图灵测试);最终图灵露出了笑容,他感觉到警探理解了游戏规则。
模式匹配阶段
在图灵测试被提出后,很多科学家和实验室也向这个测试发起了冲击;在1966年,MIT实验室诞生了一个真正意义上的聊天机器人Eliza,它的定位是一名心理治疗师。
Eliza主要的策略就是提出问题,并重新表述用户说的话,引导用户多描述问题。比如你告诉它:我今天有点头疼(headache),它就会告诉你头疼就去咨询医生用药;如果你说今天有点很沮丧(depressed),然后它就会说听说你不开心,表示很难过;如果你又说我妈妈(mother)照顾我,它会问你家里还有谁来照顾你。
Eliza通过关键词匹配规则对输入进行分解,而后根据分解规则所对应的重组规则来生成回复;通俗点说就是抓取句子中的关键字,比如发现句子中有妈妈
这个关键词,她就会说:跟我说说你的家庭;其实它的背后就是很多的if/else代码。
到了1995年,受到Eliza的启发,理查德·华勒斯开发了一个聊天机器人Alice,并于1998年开源;Alice的技术原理主要是基于自然语言处理,它的目的是模仿人类的自然语言,与用户进行有意义的对话。它可以回答关于天气、新闻、体育等各种话题的问题,还可以与用户进行有趣的聊天。
不过目前阶段,无论是Eliza还是Alice,他们的原理都是基于模式匹配(Pattern Matching),通过提取关键词,调用预先设好的文本进行回复。
这些对话机器人虽然能够进行简单的语言交互,但是对语句缺乏深度的理解和推理能力,很难和人类的对话水平相比。
但这种模式也并不是一无是处,可以避免很多重复性的工作,反而在我们身边也很常见。比如常见的购物网站、银行网站或App等,进入聊天界面先给你来一个热情的聊天机器人,巴拉巴拉罗列一堆关键词咨询你想干嘛。
机器学习模式
上面我们也说到了,模式匹配的方式就算if/else代码写的再多,但是机器还是不能理解句子的真正含义,只是简单的回复,因此出现了一个新的模式,也就是:机器学习。
顾名思义,就是不进行人为的规定问题和答案,而是给机器一堆现成的案例,让机器来进行学习,这种方式也更加符合人类学习的认知规律。
这个阶段比较出名的就是SmarterChild(更聪明的小孩),它是ActiveBuddy股份有限公司于2001年开发,该聊天机器人用在了老牌即时通讯AIM,能够进行有趣的对话并快速访问其他服务的数据,比如天气、股票和电影数据;你甚至可以责骂它、刁难它,它似乎总是知道如何来应对。
SmarterChild也是最早集成到即时通讯平台的聊天机器人之一,在当时迅速引起了轰动,有3000多万用户在使用它;后来于2006年被微软收购,也被应用到了MSN Messenger上。
不过SmarterChild后,聊天机器人被遗弃了好几年,微软也关闭了SmarterChild的高科技部门。
2010年随着机器学习中的一个领域人工神经网络(Artificial Neural Networks简称ANNs)的爆发,人工智能迎来了空前的发展。
它的灵感来源于生物学,初中生物课本中我们学到过,动物的神经网络能够处理大量复杂的信息,就是通过大约1000亿个神经元彼此连接来执行功能;人工神经网络要做的就是模拟大脑中的基本单元:神经元。
人工神经网络看起来很厉害,其实本质上就是一个不断的提取特征的过程
,跟我们小时候学会认知事物很相似,就是找不同事物的特征;人工神经网络在得到一串样本数据后,也是通过学习提取所观察事物各部分的特征,将特征之间进行关联,再经过反复的训练,最后输出得到正确的答案。
通过这个过程,我们也能发现,人工神经网络需要海量的数据训练和强大的计算能力支撑;随着互联网的快速发展,大量的数据集也不再是问题。
Siri成立于2007年,2010年被苹果以2亿美金收购,最初也是以文字聊天为主,随后与全球最大的语音识别厂商Nuance合作,Siri实现了语音识别的功能,并于2011年在iPhone 4S上首次亮相,在当时引发轰动,iPhone 4S也成为了一代神机。
Siri识别你的声音使用的就是深度卷积网络,也是人工神经网络的一种;iPhone中专门有一个低功耗的处理器来运行这个神经网络,当相似度达到一定的阈值,就会启动Siri。
❝Siri的推出也标志着聊天机器人技术进入了一个新的时代,
❞
时间来到了2017年,谷歌在《Attention is all you need》
一文中发布了一个新的机器学习模型:Transformer模型
,该模型主要用于克服机器翻译中传统网络训练时间过长,难以较好实现并行计算的问题。
传统的自然语言处理(例如语音识别、语言建模、机器翻译)依赖于循环神经网络(Recurrent Neural Network, RNN),利用循环进行顺序操作,也就是一个字一个字的学习,有着训练时间过长、难以并行计算的缺点。
而Transformer模型抛弃了传统的时序结构,并行处理序列中的所有单词或符号,同时利用自注意力机制将上下文与较远的单词结合起来;这就相当于学渣还在一个字一个字看书时,学霸已经一目十行,几个段落都看完了,这学习效率自然就杠杠的。
❝微软的GPT模型和谷歌的BERT模型,其中的
❞T
都是代表Transformer模型的意思。
❝我们发现一个规律,科学技术的发展进步总是伴随着理论研究的提出和突破。
❞
既然模型有了,那肯定就有公司来对其进行商业化了,我们先来说说ChatGPT的母公司OpenAI,它于2015年由一帮硅谷科技大佬成立,包括我们熟知的特斯拉创始人埃隆·马斯克等,成立之初就确认了公司的主要目标:
❝包括制造“通用”机器人和使用自然语言的聊天机器人。
❞
2018年,OpenAI在Transformer的模型基础上,又发布了生成式预训练语言模型
(Generative Pre-trained Transformer,即GPT-1);不过老对手谷歌的BERT很快就出现了,并且性能上全面碾压了GTP。
那被对手超过了OpenAI自然就不甘心了,于是疯狂砸钱,增大了训练数据集,陆续又发布了GPT-2和GPT-3模型,模型的参数量也从GPT-1的1.25亿个迅速“狂飙”
到GPT-3的1750亿个;数量更庞大的参数量也就意味着模型具有更强大的表达能力和更小的预测误差,也就是可以生成更长、更自然的文本。
海量的模型参数就让GPT-3在一些比较复杂的问题上也能有很好的表现,比如代替人类写一些论文,甚至编写SQL语句、JavaScript代码等等。
2021年,OpenAI基于GPT-3模型进行修改和改进,调整了模型参数,添加了训练数据,年末发布了GPT-3.5,也就是目前很火的ChatGPT的原始模型。
2022年11月,ChatGPT上线仅仅几天就获得了100万用户,上线两个月,其月活就达到了惊人的1亿,成为历史上用户增长最快的消费应用。
大量用户涌入的背后,是需要庞大的算力成本和服务器的投入;根据某研究机构的测算,运行这么复杂的GPT-3.5模型,需要的GPU芯片的数量就高达2万枚,而专业级显卡一般使用A100;根据某购物网站的数据,10万人民币一块A100显卡的价格在国内还是有市无价;因此粗略计算下,单单显卡的投入就至少在20亿以上;还有其他如数据采集、人工标注、模型训练等软性成本更是难以统计。
应用场景
所以,这么多科技大佬砸了几百亿研发出来的ChatGPT,仅仅是用来给我们聊天的吗?要想了解这个问题,我们不妨先来问问ChatGPT自己吧。
聊天机器人
确实,让ChatGPT用作聊天机器人,确实有点杀鸡用牛刀了;但是,我们先来看看这把牛刀,用来杀鸡到底够不够快呢?我们要是想要搞点事情,就需要调用API,而OpenAI刚好在近期提供了API Keys的接入方式,可以将ChatGPT集成到我们的应用程序和服务中。访问platform.openai.com,点击API Keys => Create
按钮,在出现的弹框复制keys即可。
❝弹框隐藏后就看不到api key了,需要去重新生成。
❞
复制成功后,这里推荐wechatbot这个项目为个人微信接入ChatGPT;有多种方式来运行项目,可以基于源码运行,也可以基于docker来运行,不过都需要用到上面复制出来的key,具体运行方式可查看项目说明,这里不再展开了;如果对docker不了解的小伙伴可以查看这篇文章。
项目运行后,使用微信扫码登录即可,然后我们的微信号就自动接入了ChatGPT的聊天了;使用方式也十分的简单,私聊这个微信号会直接回复,群里需要@
这个微信号。
❝重要提示:滥用有可能会被微信封禁危险,尽量用小号,本文不承担任何责任。
❞
不过需要注意的是,每个账户的API的调用也是有限制的,目前是5美元,还有过期时间,大家娱乐玩玩就好,有条件的小伙伴可以进行充值。
工作学习助手
除了用来聊天,在工作和学习中,也深受众多学生和职场人追捧。在国外一所大学哲学教授评分时,十分惊喜的读到了一篇“全班最好的论文”,论文以简洁的段落、恰当的举例和严谨的论据探讨了一个哲学问题;然而在教授的追问下,学生「承认了论文是用ChatGPT写的」。
在工作上,ChatGPT也挽救了不少职场人的发际线,用它生成了包括且不限于:领导讲话稿、媒体通稿、集团简介、颁奖词、祝酒词、宣传册等等,甚至连周报月报、请假理由这些微不足道的小事,它也能给你包圆咯。
在文字润色方面,ChatGPT丝毫也不输专业的编辑,在周报月报甚至是年报中,这就相当实用了,懂得都懂。
对于一些简单的工具函数,我们可以很方便的让ChatGPT直接生成即可;比如我需要一个隐藏手机号码的函数,描述这个函数的功能即可;甚至还能够联系上下文,这是以往的人工智能没有实现的。
ChatGPT不仅帮助我们解决了问题,还能有理有据的解释问题背后的逻辑;比如笔者上周在Vue3中使用KeepAlive组件就遇到了问题,在搜索百度后,虽然有很多的回答,但我们还需要在大量的网页中去进行二次筛选,最后可能筛选出来的解决方式都是千篇一律(互相抄袭);而且用下来也是错误百出,各种报错,用户体验十分不友好,估计花了大半天的时间才解决问题。
比如百度找到的这篇文章中,如果使用红色线框中的写法,vue-router就会出现各种奇怪的报错,而且出现的错误信息根本没法去搜索。
但是笔者如果使用ChatGPT提问,我们看到它逻辑清晰,还有具体的案例和注意的提示,我们只需要把组件的名称放到include属性下即可;在它的帮助下,笔者相信在当时能够跳出错误的逻辑,大大缩短解决问题的时间。
在文案生成方面,ChatGPT也是一把好手;当我们面对空白的文档苦苦思索的时候,不妨打开ChatGPT,描述我们的需求,轻松的生成一段粗略的文案,在此基础上进行再次编辑,节省时间和压力。
在之前办公软件一文中我们就介绍了ONLYOFFICE,在ONLYOFFICE官网免费下载桌面版或者免费注册在线个人版,在办公软件里面使用ChatGPT,快速的生成文案。
首先需要安装插件,我们在github克隆代码后,找到/sdkjs-plugins/content/openai/
,选择所有文件添加到ZIP文件,然后把文件格式改成plugin;打开文档界面,找到插件 => Setting => Add plugin
,选择我们的plugin文件,插件就成功安装了。
然后输入上面获取到的API Key,我们的插件就激活完成了;在文本字段中描述我们想要生成的文案内容,点击提交按钮即可;ChatGPT会对请求进行处理,在几秒钟内返回响应,并在文档中以纯文本的形式插入。
可替代性
很多小伙伴看到这里肯定也不得惊叹:这ChatGPT确实太厉害了!笔者的很多程序员小伙伴也都在感叹:我们是不是要失业了,但是目前看来暂时还不会,毕竟它的训练成本确实高昂,应用落地起来不容易。
但有一些岗位,比如客服岗位,就比较容易受到冲击了;相信大家应该都接到过类型的机器人客服电话,都是识别特定的关键字,按照固定流程,一句话一句话的回复;随着ChatGPT的出现,相信未来机器人客服能够应对更加复杂的场景,更加精准的理解顾客的需求,从而灵活的应对。
❝ChatGPT会完全替代程序员的工作吗?
❞
在编程方面,笔者觉得ChatGPT在目前阶段还不能完全的取代程序员;在生成代码片段虽然能够很好的实现,有点类似之前的Copilot;但是在复杂的项目中,需要去理解不同文件模块的含义,从而进行调用,ChatGPT就无法取代了;在代码bug修复、前后端联调、跨部门协调、出差对接等需要组织协调的工作上更是无法替代人工。
笔者认为ChatGPT带来更多的是编程效率的提升;比如原来我们需要一天做的工作量,有了它的协助,一些重复简单的模块我们直接丢给他就能生成了,最终可能不到半天就能够完成了。
❝商汤科技董事长:未来软件的代码可能80%都是由AI生成的。
❞
虽然目前看来并不能完全的替代,随着硬件成本不断降低、机器学习能力提高;当机器训练的成本低于程序员的工资时,你觉得资本家在需要交五险一金、时不时还要摸鱼的你和三四毛一度电、24小时不停运行的机器之间如何抉择呢?相信未来原本可能需要数十人的研发部门,最终只需要三四个核心工程师维护就能保证业务的正常进行。
❝未来我们如何去选择就业?
❞
未来ChatGPT虽然会替代一部分低端的岗位,但是肯定也会不断创造出新的职位;就像计算机的出现淘汰了打字员,但是创造了大量的程序员岗位一样,人工智能创造出很多新兴岗位,比如提示词顾问师
(笔者自己臆想),专业负责给ChatGPT提问生成相应文案或者素材;这是社会进步的必然趋势,也是逼着被历史大势裹挟前行的我们,不断的学习进步。
在前端方面肯定也会淘汰很多初级的程序员,程序员的门槛不断降低;因此我们需要在人工智能取代我们之前不断的学习进步;笔者认为在WebGL方面,人工智能对于复杂图形化和对美学的理解还是不能够替代人工,因此前端的小伙伴可以尝试进阶这块领域,同时高级架构师也是不错的方向。
总结展望
相信在不久的未来,ChatGPT能够帮助我们极大的提升生产力和学习效率;面对新技术或新文章时,不需要再完整的阅读,让ChatGPT生成文章的大纲和主要内容,帮助我们快速学习;在写文档时,也能够让它快速生成一篇文字优美的内容。
我们正处在一个见证历史的时刻,没人能够在人工智能的历史洪流面前独善其身,保持傲慢不屑的态度只会加速被淘汰,正如小说《三体》中说的那样:
❝弱小和无知不是生存的障碍,傲慢才是。
❞
在电影流浪地球2中,刘培强问Moss,人类能活下来吗?Moss说人类的命运取决于自己的选择;就像我们现在问ChatGPT会不会取代程序员一样,虽然它告诉我们还无法完全取代,但是如何做出选择,是关系着我们每个人的命运;而当历史的车轮缓缓驶过时,我们唯一要做的事,就是尽量跑在它的前面。