因为 ChatGPT 的热潮,目前在恶补人工智能方面的知识。在某一篇文章的评论中,我看到了一个问题:“为什么 ChatGPT 能这么厉害,基本什么问题都能回答,如何做到的”
这也是我想问的问题,在初学编程的时候,我的计算机潘老师就在尝试用机器创作小说,我当时就在想,这玩意怎么可能呢?
现在 ChatGPT 出来了,我信了,只是希望老潘不要被打击到。
程序的古板
我们都知道,历来不管是程序员还是程序,基本都是死板的代名词。程序它是按照人类编写的指令来执行的,只会按照事先设定好的代码一步一步地执行。
我来举个例子:假如你有一台机器人可以听懂你的指令。你对它说:“帮我去桌子上拿个手机,如果你看到牛奶的话,也给我拿一杯。” 那么很有可能它只会按照指令,拿给我们手机或者牛奶。用简单的伪代码来描述,大概率就是:
if(在桌子上找到手机){
拿起手机;
返回手机;
} else if(在桌子上找到牛奶){
拿起牛奶;
把牛奶放在托盘上;
给用户拿一杯牛奶;
} else {
返回找不到物品信息;
}
通过上面的例子,我们可以看出来,机器人或者说程序是很难真正理解我们人类的语义的。那么为什么现在的人工智能语言大模型,比如文心一言、通义千问,却显得比人类更聪明呢?
这些语言大模型具有广博的知识储备,熟悉各种领域,精通逻辑思考、推理分析,简直可以说是可上九天揽月、下五洋捉鳖,基本没有什么是不会的。那么人工智能是如何实现的?
神经网络
在1948年,冯·诺依曼这个大佬提出了神经网络这个概念。他研究人脑结构和计算机存储的区别,提出了使用存储器计算,模拟人类的神经元,从而实现计算机的“自动思考” 。
既然神经网络模仿的是人类神经元,那么我们不妨先了解一下神经元是什么。通俗来说,神经元就像是一个由许多树枝组成的“爪子”,最终汇聚成一个结构。
这种结构的作用是通过多个输入,最终产生一个输出。就像当你去淘宝买商品时,通过该商品的价格、评价、外形等多个方面进行综合考虑,最终会产生一个决策,即是否进行购买
计算机所模拟的,就是这种结构,可以用数学模型来描述,如下图所示:
所以基于这种结构,通过数据投喂进行机器程序的学习,就能把这个程序转变成人工智能。等等,什么是训练学习?
训练学习
你有没有想过一个问题,在你小时候,明明听不懂任何语言,也看不懂任何图片。但随着时间的流逝,你渐渐的可以听懂了,点头 Yes 摇头No,来是 Come 去是 Go,这其实就是训练学习了。
我再举一个例子,假设我有个儿子哈,只是假设。我拿了张卡片,就是下面的图片了。
我把卡片给他看,告诉他这是一只小猫。他记下了,这种样子的就叫做猫。后面有一天,我带他去小区花园里散步,结果有一只猫窜了出来,他指着喊猫猫。
你不觉得很奇怪吗,我是教过他认识卡片上的猫猫。但是窜出来的那只猫,他是第一次见,他是怎么分辨的出来的。这说明,她肯定是找到了猫身上的某些特征。具体是哪些特征呢?比如眼睛,皮肤或者鼻子。
想到了吗,人工智能的神经网络,起初全都是乱猜的。所以我们得不停的给这个算法程序提供样本数据,然后算法程序通过这些数据去训练,去学习,从已知的输入去计算结果的输出,最后得出结论。
那么它具体是怎么训练学习的呢?比如我们有一只铅笔,通过铅笔的长度和铅笔和材质硬度,就能判断这只铅笔是否合格。然后,我就建立一个数学模型公式:是否合格= (长度×10+材质硬度×5 > 30)
之后所有的铅笔进入合格程序检测的时候,首先先拿到每支铅笔长度和材质硬度这两个参数,然后按照上面的这个公式,计算出哪些铅笔是合格的,哪些是不合格的。
你有没有发现,这里有一个上帝视角的问题。因为我提前已经把这个公式的参数值列好了,计算机按照这个公式去判断就行。但是,计算机面对的是一组组混乱的数据,它不知道长度应该是 ×10 还是×100。
所以,计算机会首先随机生成这几个值,然后把训练的数据带进去,如果不对的话,再把这些值进行修改重试,直到找到合适的参数值。这也有点像算法程序员中的调参工程师了。
因为计算机的运行速度很快,如果是简单点的模型,很快就能训练好。但是像 ChatGPT 这样的模型,就不是一朝一夕能够完成的,需要依赖优秀的算法,海量的数据和算力了。这个具体下期讲。
到这里,我觉得我还是讲的挺明白了,人工智能通过神经网络,进行不停地学习,然后再利用数据的喂养进行不断矫正那几个参数值,最终实现了智慧。
图灵测试
你觉得人工智能产生了,你说了算吗?在程序测试中,有单元测试,集成测试等等。对于人工智能来说, 有图灵测试。
最早可追溯到20世纪30年代,当时的计算机科学家们就开始思考如何利用机器来模拟人类的思维过程。
直到1950年,艾伦·图灵提出了一种名为图灵测试的测验方法。就像我们要测试人是否聪明,可以考试或者面试一样,计算机也需要被测试。这个测试的目标是让计算机像人一样,能够回答一些问题并产生类似人类的交互。
想象一下,如果你和一台计算机同时进入了一个房间,然后还有一个评测员,他们不能看见你和计算机,只能通过和你们对话来判断谁是人类,谁是计算机。如果评测员认为计算机也能和人一样聊天,那么计算机就通过了图灵测试,证明它具有智能。
虽然图灵测试看起来简单,但是它背后涉及到了很多复杂的人工智能算法和自然语言处理技术。很多科学家都在不断地研究,希望让计算机更好地通过这个测试,不断地接近甚至超越人类的智能。
为什么现在才快速发展
这个问题其实从上面的介绍中已经说了。人工智能的发展离不开三个因素:算法、算力、数据。其中的算法其实很早就已经产生了,但是算力和数据不是你想有就有的。
就比如说人工智能训练的海量数据吧,拿GPT3.5来说,根据开发公司 OpenAI 的说法,GPT-3模型使用了数千亿个单词级别和字符级别的参数进行训练,而更恐怖的 GPT4 据说达到了3.5万亿。这些数据在早期基本提供不了。
另外再说算力,这就需要购买训练设备和机器,并且使用昂贵的 GPU 进行持续运算。大家都知道,GPU价格很高。
之前,国外某个大佬疯狂抢购了1万个GPU,耗资数亿人民币。但这些 GPU 还不一定足够使用。有些人问:“我不需要快速运算,不需要进行并行运算,我可以排个队吗?”
可以的!但是设备不足的情况下,会发生等待的情况。那需要等多久呢?比如说,用一块三五千元的普通GPU 训练 Dolly 2.0,每轮需要7.5个小时。10,000轮训练需要3125天,也就是8年半的时间。到最后,工程师们会说:“哎呦,不好意思,我们忘记加一个参数了,需要重新开始。”
如果企业这样持续下去,还能继续生存吗?不过,如果你使用集群的英伟达 A100,只需要几天就可以完成训练。不过价格有点小贵,一块A100,需要十万元,目前国内还买不到。
除了 GPU,你还得考虑资源问题,就跟当年比特币挖矿一样。你知道当初挖矿那帮人,用了四川多少电吗,
参考:https://juejin.cn/post/7230819482012663845
总结
通过上面的介绍,你应该知道为什么 ChatGPT 有这么牛逼了吧。优秀的算法,海量的数据和算力,才有了现在的 ChatGPT。所以有些不知道真相的国人,不要动不动就喷国内为什么没有 ChatGPT 这样的软件,这又不是小孩子过家家,再加上国内大厂的产品线太多,一时半会做不到 GPT 这么优秀很正常。
其实国内很早就在发展这方面的内容了,本来估计要过个几年才出的,现在因为 ChatGPT 的横空出世,发现了人工智能的可落地性,不得已加快了这方面的进程,才有了现在的通义千问,讯飞星火,给国内厂商一些时间吧。你看今天的 C919 不也民用首航成功了嘛。
关注《车辙的编程学习圈》,免费领取视频教程、电子书、面试攻略等海量资源。
关注《一纸匿名信》,在右侧菜单栏体验 ChatGPT,公众号私信【免费】,赠送一个月会员。
点赞、在看,下篇文章更精彩