2022年底,ChatGPT(Generative Pre-trained Transformer)横空出世,迅速火遍大江南北,与过往传统的聊天机器人不同,ChatGPT拥有更为出色的自然语言理解与生成能力,能够为用户提供更为高效、准确、愉悦的交互体验,刷新了人们对于人工智能(Artificial Intelligence,简称AI)的认识,引起了全社会广泛的讨论。那么,ChatGPT为何能做到如此智能呢?本文将以最通俗、最浅显的的语言从0到1带你了解ChatGPT背后的工作原理。
ChatGPT是人工智能研究领域中自然语言处理(Natural Language Processing, NLP)研究领域的一部分,在了解ChatGPT工作原理之前,首先让我们先了解下人工智能的一些相关知识:
什么是人工智能?
什么是人工智能?简单来说就是一种能够让计算机表现出像人一样智能的科学与技术。那么如何让计算机表现出人的智能呢?简单来说就是通过大量的数据来训练一个模型(模型简单理解就是一个数学函数,训练模型就是利用大量的训练数据来调整这个数学函数的参数),让其呈现出最佳表达,从而能够根据新的输入预测出正确的输出。这不就和我们上学时背诵《鹅鹅鹅》这首诗一样吗?也是经过大量的背诵、纠正、再背诵,最终才背会《鹅鹅鹅》这首诗的。
机器学习方式分类
上文提到了“训练”的概念,是指给机器“喂”大量数据的过程。这里的“训练”一词是以人为主体的表示,如果以“机器”为主体,则称之为“学习”,如同马戏团里驯兽师训练母猪爬树,也可以表达为马戏团里的母猪学习爬树,是同样的道理。机器学习知识的方式主要分为三种:分别是有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)和强化学习(Reinforcement Learning)。
有监督学习
有监督学习,顾名思义,就是机器的学习过程会被监督,就如同你在家学习,父母拿着正确答案在旁边看着一样,你每做完一题,父母都会判断你这个题做的是否正确,不正确的话打回重做。在机器学习领域,指的是我们在给机器提供训练数据时,提供的数据是带有标签或类别信息的,这样机器才能够学习输入和输出之间的映射关系,从而对新的输入进行预测。有监督学习的应用场景非常广泛,如图像识别、股价预测等。
无监督学习
无监督学习,顾名思义,就是机器的学习过程不会被监督,即提供给机器训练的数据是未被标记的数据,由机器自己通过某些算法发现数据之间的潜在结构与规律。如给定机器一些词语:苹果、香蕉、菠萝、猴子、大象、老虎,机器可以自动发现这些词语的内在联系与区别,从而能够把苹果、香蕉、菠萝归为一类,把猴子、大象、老虎归为一类(之所以机器能够把苹果、香蕉、菠萝归为一类是因为他们被转化为机器语言表达后相似度极高,而与猴子、大象、老虎的相似度极低)。无监督学习的应用场景有异常检测、推荐系统等。
强化学习
强化学习是除有监督学习、无监督学习外的第三种机器学习方式,是一种让机器自己学习如何做出正确决策的方式。就像我们玩《飞机大战》这个游戏一样,不同的操作会得到环境的不同反馈(扣分或加分),基于环境反馈,我们会不断调整、优化自己的操作,最终达到获取最高分的目的。强化适用于那些目标不确定、环境动态变化、需要长期规划的问题,如自动驾驶、机器人控制、游戏AI等。
人工神经网络分类
上文提到模型就是一个数学函数,但如果模型仅仅只是一个数学函数的话,那未免也太过简单了,不能处理复杂的问题,更不能模拟出人这个复杂生物的智能。实际上的模型是由非常多的数学函数以网状或更加复杂的形状形成的一个拓扑结构,由于这种拓扑结构与人的神经网络结构非常相似,我们称之为人工神经网络(Artificial Neural Network,ANN)。人工神经网络根据实际应用场景的不同发展出多种形态,应用最广泛的神经网络有:前馈神经网络(Feedforward Neural Network, FNN)、卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Network,RNN)。
前馈神经网络
前馈神经网络也被称为多层感知器(Multilayer Perceptron, MLP),是一种最简单且最原汁原味的经典神经网络,它由多个神经元层组成,每一层神经元接收上一层的输出作为输入,通过权重和激活函数计算得出输出,传递给下一层神经元。前馈神经网络通常由输入层、若干个隐藏层和输出层组成。每个神经元的计算公式可以表达为Y=f(a1*x1 a2*x2 a3*x3 …… an*xn b),其中x为输入,a为权重,b为偏置,f为激活函数(如ReLU函数、sigmoid函数等)。在训练过程中,神经网络通过学习调整权重和偏置,使得预测结果与真实值之间的误差最小化。前馈神经网络最经典例子就是数字识别,即我们随便给出一张上面写有数字的图片并作为输入,由它最终给出图片上的数字到底是几。
卷积神经网络
卷积神经网络常用于处理具有网格状结构的数据,如图像、音频、文本等。卷积神经网络通过卷积操作(一种数学计算如加减乘除等,卷积是用自定义卷积核数据与输入数据进行卷积计算,和卷积核相同的数据将会被保留并放大)对输入数据进行特征提取,从而减少参数数量和计算量,同时提高了模型的准确性和泛化能力。其基本组成部分包括卷积层、池化层和全连接层。其中,卷积层通过卷积操作对输入数据进行特征提取,池化层则对卷积层的输出进行降采样,减少特征数量和计算量,全连接层(就是上文所说的前馈神经网络)则将特征映射到输出类别上。卷积神经网络由于其强大的特征提取能力被广泛的应用于图像识别上(前馈神经网络能够处理体积小、简单的图像,但对于体积大、复杂的图像还是得由卷积神经网络来处理)。
循环神经网络
循环神经网络是一类具有循环连接的神经网络,能够处理序列数据,如语音、文本和时间序列数据等。与前馈神经网络不同,它能够将网络前一序列的输入保留下来,作为本次序列输入的一部分,使其具有记忆能力,从而实现对序列数据的建模和预测。循环神经网络由于其具有记忆的特点被广泛应用于自然语言处理领域。
介绍完人工智能相关的知识后,接下来让我们来一起探索下ChatGPT的工作原理:
ChatGPT
ChatGPT介绍
ChatGPT即Generative Pre-trained Transformer,生成式预训练 Transformer,是由OpenAI团队开发的一种基于自然语言处理技术的大型语言模型。它采用了Transformer神经网络架构,通过在大规模语料库中进行无监督预训练,从而学习到语言的内在规律和模式。这里需要说明一下用于描述ChatGPT的几个单词:
- 什么叫生成式模型?
生成式模型是机器学习中区别于判别式模型的另一种常见模型。判别式模型关注如何将输入数据映射到标签或类别,例如分类、回归等问题;而生成式模型则关注如何学习数据的分布,以便生成新的数据。ChatGPT属于生成式模型是因为它能够从大量的语料库中学习到复杂的语言结构和上下文信息,生成新的符合语言规则和语境的文本。
- 什么叫预训练?
预训练模型是指在大规模的数据集上通过无监督学习方式训练得到的模型,该模型能够学习到数据集的统计规律,并提取出数据中的特征。ChatGPT就是首先从大规模的语料库中通过无监督的训练方式学习语言的内在规律和模式的。
- 什么叫大模型?
大模型指的是具有非常庞大的参数量和计算量的机器学习模型。这些模型通常需要在大规模的数据集上进行训练,以便能够学习到数据中的复杂模式和规律,并在各种任务中取得优秀的性能表现。ChatGPT由于其拥有1750亿个参数和超过45TB的训练数据所以被称之为大模型。
- 什么叫语言模型?
语言模型区别与图像模型、语音模型等,是一种用来预测自然语言文本序列的概率分布的计算模型。简单来说,它就是一个能够根据前面的文本内容预测下一个可能出现的词或字的模型。语言模型通常被用于自然语言处理任务,比如语音识别、机器翻译、文本生成、文本分类等。
ChatGPT的本质
ChatGPT的本质可以简单地理解为一个“单词接龙”游戏,也就是你给出上半句,ChatGPT帮你预测下一句。正如我们使用的各种智能输入法软件一样,当我们输入完一个字词后,输入法会自动帮我们联想出你接下来可能要输入的字词。和智能输入法一样,ChatGPT之所以能够帮你预测到下一句,也是基于先前经过了大量文本的学习,了解到某个字词后面接哪个字词的概率最大,于是乎就输出概率最大的那个字词(实际上ChatGPT并不是总是输出概率最大的那个字词,而是会偶然选取出现概率不是最大的那些字词,这样ChatGPT的回答才会显得丰富多彩,而不是一成不变)。
如果ChatGPT仅仅只能预测一个字词后面的字词,那么不管它预测的有多准确,也无法做到我们现在为之惊叹的“智能”。所以,ChatGPT并不是仅仅依赖前一个字词预测下一个字词,而是能依据整个上下文预测下一个字词。比如“今天天气很好,我的心情很_____”,这里如果仅仅只看最后一句,则预测出“愉快”、“糟糕”等都有可能,但如果结合前文“今天天气很好”,那这里预测出“愉快”的概率会更大。ChatGPT正是借助于这种对语言规则和上下文的理解能力,才能做到如今的大放异彩。那么,ChatGPT这种能力是怎么训练生成的呢?这就不得不提NLP发展历史上跨时代的模型-Transformer模型了。
Transformer模型
Transformer是一种用于自然语言处理的神经网络模型,由Google提出,目的主要是为了解决循环神经网络在处理长序列时存在的一些问题(简单来说就是循环神经网络无法记住一段文本中较早的单词,所以才演进出了Transformer这种神经网络模型)。Transformer模型的核心是自注意力机制(self-attention mechanism),它可以帮助计算机更好地理解数据中不同元素之间的关系。举个例子,当计算机阅读一段文字时,自注意力机制可以帮助计算机自动地找出哪些单词与其他单词之间的关系更密切,从而更好地理解这段文字。
微调
虽然ChatGPT的训练数据集很大,但也不可能完全覆盖所有的可能情况和场景,如果要让ChatGPT在某些领域表现的更好,可以使用微调(fine-tuning)的方法。微调是指在已经训练好的模型上,使用一小部分针对特定任务的数据集,对模型进行再训练的过程。这样,模型可以通过针对特定任务的训练数据集,进一步学习和优化自己的参数,从而在特定任务上表现更好。比如我们在一个通用大语言模型的基础上加入一些服务器领域的专业知识进行训练,训练过程中模型会进一步调整自己的参数,让其回答更偏向于一个服务器领域的专家。
总结
简而言之,人工智能离不开三个要素:训练模型、训练数据和训练方式(学习方式)。其中模型就是一个复杂的数学函数,训练就是这个数学函数通过计算大量的训练数据不断调整自身参数使函数最大程度拟合训练数据的过程。训练方式指的是机器学习数据的方式,分为有有监督学习、无监督学习和强化学习。ChatGPT就是一个使用了45TB的训练数据在一个具有1750亿个参数的Transformer训练模型下采用无监督学习、有监督学习、强化学习等多种训练方式而训练出来的产物。得益于模型参数、训练数据的巨大,使得ChatGPT训练出来的的效果出乎人意料,从而掀起了人工智能新一轮的狂潮。
写在最后
本文是一个非专业人士写的一篇关于ChatGPT背后工作原理的非正式文章,文章内容比较浅显,没有涉及过多的专业技术与细节,仅以一个作者的视角逐步叙述了人工智能及ChatGPT的相关知识,适合非专业领域的想了解ChatGPT工作原理的小白用户阅读。如文中有任何理解、陈述不对的地方,欢迎斧正。
最后的最后,附上一句关于如日中天的ChatGPT很富有哲理的一段话:“人工智能之所以能再次走红,是 ChatGPT 开始能做一些人类本身就力所能及的事情,而不是做人类做不到的事情,这是人工智能发展的一个转折点。”