ChatGPT做对了什么导致火爆出圈
ChatGPT早就爆火全网,本文不在表层介绍它是什么(自己百度),也不想分析它有没有伦理问题,瓶颈在哪里,将来会不会取代人类(现阶段分析这些意义不大)。本文试图回答两个问题(其实是一个问题):ChatGPT到底做对了什么?为什么是ChatGPT成功出圈而不是AI能力更强的Google或者其他公司的产品?
温馨提示:本文适合对技术有一定兴趣(但约等于不懂技术)的人阅读,如果你已经是技术大神,请忽略我为了直白浅显的讲明白原理,所犯的无数个技术错误,很多甚至是低级错误。
在Lord看来,ChatGPT主要做对了两件事情:
- 使用了超大规模训练集,导致了量变到质变
- 大幅降低了训练AI算法模型的成本(时间、技术门槛等)
量变到质变
众所周知,AI的根本是把模式识别问题变成了数学问题。说人话就是把所有的文科问题变成了理科问题。
比如:照片里是不是一只猫,这只猫和另一只猫是不是同一只之类的问题。由于计算机只会算加减乘除,对于识别图片中的事物,或者从自然语言(人话)中提炼指令(你需要计算机干什么)是非常困难的。那么AI算法如何实现的文科问题理科化呢?简单来说就是:我送一万张猫的照片给计算机,然后告诉它,这些照片都是猫,让计算机自己总结经验(所谓的算法)。再给它一张萝卜的照片,计算机就会跟你说,这不是猫。这一万张猫照片叫数据集(记住这个词,后面要考)。这个算法用数学语言描述就是概率论与数理统计(高等数学的一部分)。
计算机经过统计学计算,总结出了一些大概率特征:圆眼睛,三角耳,长胡须(我只是试图用你能听懂的语言描述这一过程)。最终,计算机建立了一个mapping(对应关系),以上大概率特征 = 猫,所以它能识别新照片中是不是猫(至于是不是萝卜,还要再拿一万张萝卜的照片训练)。
数学模型的优势在于:所有的文科的、描述性的(统称不确定的)事情,都可以用确定的方程算出最优解。所以根据概率论的方程,我们可以算出来出一个铁律:**边际收益函数一定是递减的。**说人话是,喂给计算机500张猫照片,识别正确率70%,1000张90%,2000张95%,两万张96%,两百万张96.1%(数据并不准确,我只是方便你理解)。也就是随着喂进去照片张数的指数级增加,准确率并没有与之匹配的速度增加(如下图所示)。这就是边际收益递减(经济学原理)。
好,终于可以来说本章节的重点了。所有的数学家都知道这个铁律,所以在训练AI模型时,需要喂多大数据集(多少张照片)的上限是可以算出来的。那就喂这么多就好了。但是ChatGPT喂进去的数据集远超这个上限。于是,神奇的事情发生了,量变产生了质变。人工智障居然不智障了(你终于感觉他说的话有那么一点人味儿了)。
说点具体的数据,在NLP(自然语言处理,说人话就是让计算机听懂人话)领域里,一般来说,喂个2~5billion的数据集,就可以生成一个相当不错的算法模型。也就是喂个20多亿张照片就够了。但ChatGPT喂进去了175个billion,也就是1000多亿个数据。然后生成的ChatGPT就可以一本正经地胡说八道了。ChatGPT跟Siri、小爱同学或者更古早的微软小冰相比,给人的感觉是,ChatGPT这家伙不是个脑残,虽然答案不一定正确,但至少表述的有模有样了。这就是量变引发的质变,计算机终于开始说人话了(记住这句话,后面要考)。
难道OpenAI的工程师不懂数学,违背数学原理,任性地喂进去超级多的数据吗?还是其他公司的人工智能工程师毫无想象力,不会想到多喂点数据看看有什么变化?当然不是。
我们先强调一个重点:ChatGPT没有应用任何新的、高级的、独创的AI算法理论,他应用的理论都是几年前已经发表过的论文里的算法或理念(很多还是Google工程师发表的)。
让计算机听懂人话(NLP)的算法很多,目前主流的(预训练语言模型)有三个:BERT、GPT、BART/T5。我们不展开介绍直接说结论:除了GPT,另外几种模型都天然有数据集上限(符合边际收益递减铁律),所以OpenAI的工程师一开始就押对了宝,把GPT模型作为主攻方向。难道世界上只有他们公司在研究GPT算法吗?当然不是。其他GPT工程师为什么不喂大量的数据集给自己的GPT呢?这就是我们要讨论的第二个问题:模型训练成本。
模型训练简单化
之前行业内有句话:人工智能,有多少人工就有多少智能。这是因为基于机器学习的人工智能算法,是需要准备大量的数据喂给计算机的。这些数据不可以是网上随便爬到的脏数据。你去百度图片搜“猫”,都能混进去一些狗的照片(如下图)。
AI算法需要吃进去的,是经过人工标注后,整理过的干净数据形成的数据集。这些收集、标注、整理的工作都是人类手工完成的。所以,标注员标注的数据量越大、越精准,AI算法就越准确。
但这个标注成本非常之高(标注员工资、时间等),Lord之前所在的AI团队专注做“猪脸识别”和“牛脸识别”。我们需要收集至少500张猪脸的照片,算法才能达到1:1比对60%左右的准确率。我们曾因收集的牛脸数据不够,导致把隔壁工位妹子的自拍上传,算法说这是牛脸的置信度高达96%。
言归正传,ChatGPT是如何让训练/调优算法模型这个过程变得更简单、更省时间、更低门槛的呢?方法很多,我们讲最重要的三种:
一、情景学习
之前为了能让计算机听懂人话,大多应用的是mapping算法。比如说,我要吃饭。标注员要穷举各种表达要我吃饭的句子,比如:我想吃饭,我很想吃饭,我要吃猪脚饭等等。然后标注员给这个问题一个标准答案:去叫个外卖。但当你跟计算机说:我饿了!完了,芭比Q了,计算机没学过这句话(库内没有这句话对应的mapping结果),所以它就不会了,所以显得很智障。
这个mapping的训练过程(优化过程),是需要会写代码的工程师,通过各种编程,修改各种数学模型中的海量参数才能实现的。每一次训练模型的过程都有非常高的技术门槛,我们这种小白根本不会。但ChatGPT所采用的情景学习不是这样的。
当然,第一步还是由会写代码的工程师构建出一个基础模型。接下来,我们用情景学习的方式训练它。以下就是训练它的代码示例(蓝色是你输入给计算机的,红色是计算机告诉你的)
输入给计算机:
任务描述:学习人类对于电影的喜好表达。
示例1:描述:我喜欢这部电影。结论:喜欢(正面态度)
示例2:描述:我说不准,算是喜欢吧。结论:无感(中立态度)
示例3:描述:简直是浪费时间,我绝不推荐这部电影。结论:不喜欢(负面态度)
提问:描述:我超爱这部电影。请算法模型告诉我,他对这部电影的态度是怎样的?
计算机输出:喜欢(正面态度)
这不是我编的,这是一段真实的代码。这个示例给了我们两个启示:
- 训练模型不再是程序员哥哥才会做的事情。只要会说人话,人人都能写代码。
- 你实际上在训练模型举一反三的能力,这很像我们教小朋友学习的过程。
看,情景学习这种方法,是不是把写代码训练AI模型的难度和门槛降低了非常之多。事实上,每天这么多人跟ChatGPT聊天,这都是在训练这个模型。OpenAI的工程师一直在后台记录我们输入给ChatGPT的内容,这海量的数据输入,都是用来让ChatGPT越来越能听懂人话。
二、思维链(Chain-of-Thought,CoT)
这个就厉害了,思维链是最令Lord惊艳的能力。这让AI有了学习推导问题的能力,将来甚至可能让计算机拥有拆解复杂问题的能力(后面我们展开讲)。我们先来介绍下思维链是什么。还是用上面情景学习的模式,我们训练AI算小学数学应用题。
不使用思维链的训练模式(Standard Prompting)
输入: 示例1:问题:这个女人叫小美。她有五块糖。她又买了两包糖,每包里面有三块糖,问她现在共有多少块糖。答:11块。
提问:这个男人叫小帅。他有23个苹果,他吃掉了20个又买了6个,问他现在有多少个苹果。
计算机输出:答案是27个(这显然是错误的,你觉得它像个智障)
使用思维链的训练模式(Chain of Thought Prompting)
输入: 示例1:问题:这个女人叫小美。她有五块糖。她又买了两包糖,每包里面有三块糖,问她现在共有多少块糖。答:每包3块,买了2包,3×2等于6,加上原来就有的5块,所以答案是11块。
提问:这个男人叫小帅。他有23个苹果,他吃掉了20个又买了6个,问他现在有多少个苹果。
计算机输出:小帅原本有23个苹果,因为吃掉了20个,所以23 -20 还剩3个,他又买了6个,所以3+6等于9。所以答案是9个。
各位,看到上面两种学习模式的区别了吗?你把你的思考过程告诉模型,模型就会学习你的思考过程,然后具备复杂问题的拆解能力和推导能力。
这让我想起了HBO经典剧集《West World》里面Arnold训练Dolores的方式。下面这个场景,在前几季经常出现:Arnold用一些关键词,让Dolores说出她的思考过程,然后在拆解过程中发现错误,然后纠偏。现在的人工智能训练方式,已经实现了科幻电影里的雏形。 思维链是打破Scaling Law的关键。
三、指令学习
ChatGPT与其他模型相比,做了一件特别的、简单的事,但这件事却让他火爆出圈。这就是让模型学习人类的指令(自然语言指令学习)。我来解释下什么意思。人工智能一直作为计算机领域+数学领域的高精尖存在,核心从业者基本都是博士学历起步,这就导致了两个问题:阳春白雪、曲高和寡。说人话就是,这些博士们研究出了新东西,都在疯狂地发论文或者刷各种评测题(刷榜),以证明自己新研究出来的东西很牛X。但这些评测题都不是人类语言的指令。比如:评测题给你一段话,问模型这段话说了啥(类似做阅读理解)。
可是人类很少会给计算机下这种指令,大家可能会说,我要写个文章,你给我写个草稿,或者我想说一件事,你给我润色下之类的。所以ChatGPT做了一件简单的小事:让全世界的人类用户告诉模型,人类的指令都有啥。这也就是我们作为普通用户每天在跟ChatGPT聊天的内容。
OpenAI收集了海量的C端用户的输入(人类指令),然后请标注员来写答案。这就使得ChatGPT触发了理解人类意图的能力。后来,OpenAI发现请标注员来写答案成本还是很高,他们就通过强化学习(你不用懂的一个词)训练了一个reward模型,通过模型来生成答案,标注员只需要打分即可。这就进一步降低了训练模型的成本。
总结下我们今天介绍的主要内容:
ChatGPT为什么能够成功?是因为他让AI的发展到达了一个新的奇点。过了这个拐点,AI未来的发展可能会有指数级的爆发。 所以ChatGPT赢在了未来想象空间很大,而不是跟你聊天这么简单的一个应用场景上。
今天先说到这儿,后面有机会我们聊聊,人到底是用什么标准来评测AI到底是不是智障的。