
2022年11月,ChatGPT横空出世,其用户数在短短两天内就达到了100万,两个月后更是突破了1亿,刷新了之前由TikTok保持的记录。
数学天才Stephen Wolfram马上表现出对ChatGPT的强烈兴趣,作为Mathematica软件的开发者,1991年曾写了一本1000多页的巨著《一种新科学》,主张万事皆计算。这个时代,能够得到Wolfram认可的,或许只有ChatGPT了。在ChatGPT发布后的短短3个月内,他就写了两篇长文,《这就是ChatGPT》这本书就是由这两篇长文汇编整理面来的。
我从网上找到他的大部头巨著,这里仅仅引用29页的一张图。生成这个图案只有非常简单的几条规则,左边的图案好像有点规律,右侧的图形则非常随机,简单的规则可以生成复杂的系统。

这个图案已经应用于剑桥北站的建筑上。
ChatGPT的运作原理:词语接龙
ChatGPT的算法其实非常简洁,它只是每次添加一个词或标记(token),它可以根据所见的文本生成“合理的延续”。所谓合理,就是基于它所接触的10亿个网页上的内容,生成更有可能的文本。它在每一次添加词的时候,并非严格依据词频,也有一定的随机性,因此即使是相同的对话,也可能产生不同的内容。
下面是"The best thing about AI is its ability to"的一种合理的延续:

ChatGPT学习了互联网上的大量资料,建立了一个庞大的模型库,称为“大语言模型”,即LLM(Large Language Model)。GPT3在刚发布的时候,它知道2021年9月前的知识,当前GPT3.5的知识已经更新到2022年1月。
人工神经网络
给定一组散点,想找出这些点的数学规律,常用的算法是最小二乘法的多项式曲线拟合。

对于目标函数不是线性函数的时候,神经网络机器学习算法是一种不错的选择。但是,神经网络算法在设计神经元层次结构和一些参数的时候,需要一定的经验和技巧,另外,还需要大量的数据和计算资源进行学习训练。
实际上,我在1999年的时候就曾接触过BP神经网络,只不过感觉用它来预测油气储层不太靠谱,就没深入研究。没想到,20多年后,GPU和深度学习让神经网络算法有了新的活力。

图像识别
计算机擅长数值计算,对于自然语言的文本对话,一直以来并没有有效的算法。计算机科学家先从一个比较简单的数字图像算法来逐步逼近更复杂的问题。
对于一幅灰度图像,里面只有一个手写数字,我们想得到一个输出,结果是0-9的整数值。

现在已经发现了一种神经网络算法,可以有效地解决这个问题。下图是一个中间层为11层(不包括输入层和输出层)的卷积神经网络,已经能够快速且准确地识别上面的灰度图像。

第11层的输出是一个向量,有10个元素,代表这个图像与0~9的相似程度,相似度最大的索引就是我们想要的结果。例如,某个输出为:

在这个向量中,索引为4的元素是1.0,表示这个图像几乎可以确认为“4”。
上面的神经网络仍然有些复杂,作者构建了一个更简单的任务,拟合一个(x,y)为输入的二维向量,输出只有-1,0,1这样一个函数。

随着采用更加复杂的神经网络,可以非常逼近我们的目标函数。这里的神经网络只有几十条神经元,而ChatGPT的原理也是类似的,只是它有1750亿个神经元。

ChatGPT的原理也是类似的,不过它把文本处理转换为数学计算,把大量的词放在N维空间里。
神经网络的训练
训练神经网络可以称为一门艺术,需要大量的试错过程。监督学习需要准备大量的训练数据,并添加标签。ChatGPT具有无监督学习的优势。神经网络训练时会处理大量的数组,因此GPU在这方面非常擅长。作者认为,训练算法还可以优化,即使采用8位或更小精度的浮点数,也可以得到不错的结果。
Yann LeCun、Corinna Cortes和Christopher J.C. Burges在20世纪90年代创建了MNIST(Modified National Institute of Standards and Technology)数据集,这个数据集的前身是NIST的手写数字数据库,MNIST对其进行了修改和规范化,使其更适合机器学习和模式识别研究。
MNIST数据集包含60,000张28x28像素的灰度手写数字图像用于训练,10,000张用于测试。MNIST被广泛用于教学、算法原型验证以及在学术界和工业界中评估各种机器学习算法的性能。表现较好的算法包括卷积神经网络(如LeNet-5)、深度神经网络和支持向量机等。
而ChatGPT是无监督的神经网络,并不需要人工标记,可以理解为输入是大量网页的一段文本,输出为未遮住的完整文本。
评估训练效果需要使用损失函数,目标是通过大量训练使损失函数的值不断减小,快速下降并迅速收敛的损失函数表明算法的性能更优。
在神经网络的学习训练中,还经常提到超参数(Hyperparameters)的概念。超参数是指在模型训练之前需要设置的参数,它们不是由模型自身学习得到的,而是由人为设定的。前面讲的神经元连接的权重可以称为模型的参数(Parameters),是通过学习训练得到的。
超参数的设置对于模型的性能和训练过程至关重要,不同的超参数组合可能会导致完全不同的模型性能。Scikit-learn中也包含了一个基本的神经网络模型,称为多层感知器(MLP,Multilayer Perceptron)模型,它的常用超参数包括:
- hidden_layer_sizes:隐藏层的大小和数量。
- activation:激活函数的类型。
- solver:用于优化权重的求解器。
- alpha:L2正则化的参数。
- learning_rate:学习率,用于更新权重的速度。
- max_iter:最大迭代次数。
- batch_size:批量大小。
- tol:停止训练的误差容差。
计算不可约性
有些事情是计算不可约的,这是Wolfram提出的一个备受争议的理论。简言之,即使应用最简单的规则,也可能产生极其复杂和无法预测的模式。康威的生命游戏、天气预报以及非对称加密算法都是这方面的例子。

康威生命游戏有些任务,我们以前认为很难,但现在看来,“人类语言”和“写文章”这些事情,用计算机来做,其实并不困难。可能在计算机看来,写文章还是一个计算深度较浅的问题。
ChatGPT的内部原理
生成式预训练模型(GPT)使用了Transformer架构,对大规模文本数据进行预训练,它引入了“注意力”机制,它允许模型在处理每个输入标记时,动态地关注输入序列的不同部分,并根据需要赋予不同的权重。这种机制使得模型能够捕捉到输入序列中不同部分之间的复杂依赖关系,从而更好地理解上下文,使得其回答更像人类。【这一段我也是问ChatGPT得到的回答,仍然不知道注意力机制的具体原理】
GPT包括预训练和微调两个阶段。在预训练阶段,模型通过阅读大量文本数据,学习到语言的统计规律和语义信息。在微调阶段,模型通过在特定任务上进行少量的监督学习,调整自身参数,以适应具体任务的要求。
人类大脑大约有1000亿个神经元,100万亿个连接,GPT-3已经拥有1750亿个权重,GPT-4据称有1.8亿个参数,能够处理更复杂和更长的文本序列。
可能因为ChatGPT的神经元实在太多了,你如果对它进行简单的提问,它经常会一本正经地胡说八道。所以,在与ChatGPT对话的时候,给它更多的提示词,用于唤起它的某些记忆,这样它的回答感觉才更合理一些。好像ChatGPT本来已经存储这些信息,但你需要给它提供一条大致的路径,让它在某个区域内“唤醒”这些内容。
ChatGPT与Wolfram的结合
ChatGPT的表现虽然惊人,但在某些任务上可能并不完美。例如:数学计算。有些非常简单的加减运算,ChatGPT也会搞错(不过新版的GPT好像已经有所改进)。
再比如,编程语言中的括号匹配方面,神经网络通过大量学习,好像也可以基本学会这个括号匹配规则,但它仍不严谨,此时,Wolfram的严谨符号体系可以大显身手。
人类语言是不精确的,而Wolfram试图建立一种形式化语言来描述世界上尽可能多的事物。ChatGPT在进行某些任务时可能犯错,而Wolfram则擅长进行有条理的精确计算。ChatGPT结合Wolfram语言,可能会带来更多的惊喜。
GPT-4已经可以使用Wolfram插件进行数学公式运算,Wolfram | Alpha也可以直接使用自然语言进行提问。
智能革命
另外一本书《ChatGPT:人类新纪元》认为ChatGPT将开启第4次科技革命,称为智能革命,前三次科技革命分别是机械革命、电力革命和信息革命。
GPT来了,我们再也回不到过去,当前谷歌、度娘搜索傍身,对于每个人来说,GPT马上也会是标配,人工智能附体,强者更强,弱者更弱。GPT会成为提高生产力的超强工具,所有行业可以用GPT重塑一遍。
智能革命已经到来,我们是否会因此而失业?我们该如何面对?沃尔弗拉姆给出了如下建议:
- 发掘新的可能性,找到自己感兴趣且能创造价值的东西。
- 提出有价值的问题比找到问题的答案更加重要。
- 拥有广泛的知识背景,并能清晰地思考和表达复杂问题。
- 直接学习所有详细的知识已经变得不必要了,我们可以在更高的层次上学习和工作,抽象掉许多具体的细节。
- 学会使用多种工具(包括通用人工智能)来做事,提高工作效率和创新能力。