ChatGPT如何获取的超能力?
ChatGPT对人类语言的“理解”的超能力,确实非常惊艳,真的有了语言“智能”,那么这种超能力是如何获取到的呢?
用第一性原理来思考,“概率思维”是它能获取此种超能力的根本原因。也许,人类真的就是一种概率思维的高级动物。而ChatGPT深刻理解了这一点,加上它的超级计算能力,将概率思维发挥到了一个和人类差不多的水平。
说到概率思维,不得不说这个人和这个公式。
对,就是贝叶斯和贝叶斯公式。
D表示观察到的现象或收集到的证据(数据),H表示可能得到的结论或是假设,X表示后面的模型,对应到ChatGPT,就是后面的大语言模型(LLM,Large Language Model),用Transformer来表达。
这是概率思维的基础,当然就是ChatGPT的基础。那么ChatGPT是如何炉火纯青的使用的呢?
世界上的语言的形式,都是由字(Letters)组成词(Words),然后词组成词组(Phrases),然后词组组成句子(Sentences),然后句子组成段落(Paragraphs),最后段落组成文章(Articles or Chapters)。
比如这篇文章的标题,“ChatGPT如何获取的超能力”是一个句子,是由
ChatGPT、如何、获取、的、超、能力
组成的。这些词,可以做各种的排列组合,比如“ChatGPT的超能力如何获取”,“超能力的ChatGPT如何获取”,“的能力超获取ChatGPT如何”,“超获取如何能力ChatGPT”,等等,那么为什么我们选择了上面的标题,而没有选择其它的组合,是因为在我的大脑中的大模型(LLM)下,“ChatGPT如何获取的超能力”的概率最大。下面详细解释。
给定一些初始提示或语境序列 x=x1,x2,...,xk,ChatGPT被预训练来估计文本中出现的文本序列 y=y1,y2,...,yt 的概率P(y|x, chatgpt-llm)。由于训练数据比较大,来直接估计P(y|x, chatgpt-llm)是不切实际的,所以通常使用概率链规则来将其分解为条件概率的乘积。
通常通过两边求log将乘法转换成加法。
其中 y<t 是序列 y1,...,yt-1 的文本词。从这些条件概率中,可以推断出,语言建模相当于在一个句子中给定前面的词来预测每个词。
选择哪个排列组合最合适的时候,可以有不同的策略,有贪婪搜索(Greedy Search),集束搜索(Beam Search),温度采样(Temperature Sampling),等等。
贪婪搜索就是每次选择每个决策时间点上概率最大的选项。
这个策略的问题是容易产生重复的输出序列。
集束搜索就是每次选择每个决策时间点上概率最高的几个选项,常说的top k。比如,如下图,每次选择概率最高的两个选项。这个显然增加了搜索和计算的路径,贪婪搜索只有一条路径,而集束搜索则会指数级增长。
Top k 工作机理。
温度采样是通过添加一个温度参数T来轻松控制输出的多样性。
通过调整T,可以控制概率分布的形状。当T<<1时,分布在原点周围变得尖锐,罕见的词被压制。当T>>1时,分布变得平缓,每个词的可能性接近。
ChatGPT基于以上描述的概率思维来获取它的超能力的。
首先,ChatGPT有人类语言中的所有词(又称token),这是它的搜索空间。
然后,精心选择高质量的文本数据(包括代码),训练Transformer模型,需要很多的GPU算力,进行大量的矩阵运算,达到预定的训练目标即可结束训练。这里,Transformer模型是一个包含所有token的概率模型或开放空间。
然后再用含有人类反馈的强化学习(RLHF)来进一步调整Transformer模型来适应人类的价值观和使用规则。现在,Transformer模型被人类调教后的包含所有token的概率模型或限制空间。
最后,执行任务的时候,就是给出一些提示tokens,或上下文context,在Transformer构成的所有token的限制空间中使用贪婪,集束,温度采用等策略来找到概率最大的可能的token的排列组合。这个组合,就是看到的ChatGPT的输出。在这个过程中,生成的部分的排列组合,会和之前的上下文一起作为新的上下文引导新的搜索。
简而言之,ChatGPT是在一个由人类语言所有token组成的概率空间中,通过计算概率,寻找一个满足当前上下文和限制条件的一个近似最优的token的组合序列。
获取最新的科技和后面的思考,扫二维码关注我的视频号。
微信扫码关注该文公众号作者