一文读懂人工智能:ChatGPT的基本工作原理

晓昀科技分享 2024-02-24 21:49:15

最近,chatGPT的文字生成视频Sora是个非常热门的话题。Sora又出自OpenAI公司,人们称为开放人工智能研究中心,是一个美国人工智能研究实验室,由非营利组织OpenAI公司和其营利组织子公司OpenAI合伙人所组成。为什么OpenAI又一次出圈了呢?这次我们从人工智能聊天机器人ChatGPT开始,聊聊机器学习。我大学时学习的就是计算机软件开发,至今一直在这个领域工作。我会尽量用生活中的例子来解释机器学习的一些概念,这也算是人工智能的第二篇科普文章。(第一篇:请各位看官移步:一文读懂人工智能:分类与现状)。

首先,我们来谈谈机器学习。机器学习是让计算机能够自我学习的一种方法,它可用于众多领域,如预测电影票房、预测房价、识别人脸,甚至让计算机能够自动玩游戏。因为标题是谈ChatGPT基本原理,我们会主要谈大语言模型,以便帮助大家更深入地理解大语言模型G(生成)P(训练)T(转换)的运作过程。

那么,机器是怎么学习的呢?我们可以从学习方式的不同,分成:

监督学习(Supervised Learning):从有标签的数据中学习模型,用于预测或分类新的数据。

无监督学习(Unsupervised Learning):从没有标签的数据中学习模型,用于发现数据的结构或模式。

大白话来说,监督学习就好比我们小时候学习骑自行车的过程。当你是一个孩儿时候,你可能会有一个指导者(比如你的父母,哥哥或姐姐),他们会告诉你什么时候踩脚踏板,什么时候把牢自行车把,什么时候刹车,甚至他们会在后面护着衣架,怕你掉下来。在这个过程中,你不断地接收反馈并调整你的行为。这就类似于监督学习,你的父母正在“监督”你的学习过程,并在你犯错时提供反馈。

无监督学习呢?我们再回到上面学骑自行车的例子,但是这回你没有指导者。你只有一辆自行车,你需要独自练习并学习如何骑它。那么,你通过各种摔,有一天总算能骑出500米了。你通过自己试错和自我调整,会发现一些关于骑自行车的内在规律,例如你需要保持自行车的平衡,或者你需要在转向时降低速度。这就相当于无监督学习的过程。你在没有外界直接指导的情况下,自我学习并发现规律。

简单来说,监督学习就像有一位老师在旁边指导你如何做正确的预测,而无监督学习则更像自我探索,通过观察和发现找出数据的内在规律。监督学习和无监督学习是机器学习领域的两个基本类型。除此之外,还有一些混合学习模式,比如半监督学习、自监督学习和强化学习。这些方法的目标都是让机器能够像人一样学习,随着时间和练习不断提高知识和技能。

不同的学习方式

然后,我们来谈谈机器学习模型。在机器学习领域,我们可以把模型看作一个函数,也就是一个有输入有输出的黑盒子。我们只关心它能不能针对输入给出正确的输出。比如,你也可以把机器学习模型想象成一个学习烹饪的新手。一开始,他有一些食材(这就是训练数据),他还有一本烹饪书,上面有各种烹饪方法和技巧(这就是机器学习算法)。通过尝试各种食材和烹饪方式的组合,并根据口感进行反馈调整(这就是训练过程),他最后会变得越来越会做菜(这就是模型表现的提升)。然后这个新手在未来遇到新的食材时,就能根据他之前的学习经验做出美味的菜肴(这就是预测或决策)。如果这个新手遇到新的食材,给你做出来的是药,那么,这个学习模型就是失败的,你需要重新调整模型里的各种算法参数。

有了上面这些基础知识的了解,我们来谈谈ChatGPT的基本原理是什么?

当下,流行的语言模型是基于一种叫做神经网络的技术。它是一种使用人工神经网络技术来理解和生成语言的工具。你可以把它理解成人脑里的一个神经单元、一个有几个输入和一个输出的黑盒子或者想象成一位语言学习者,他通过阅读大量的书籍或文章,学习语言中的规则。例如:哪些词经常会在一起出现,或者一个句子通常是如何结束的。然后,这个模型就可以用学到的规则来写出自己的句子,或者预测你可能想说的下一句话。假设你正在学习一门儿新的语言,例如英语。在学习过程中,你可能会读很多的书和文章来学习新的词汇和语法规则。当你读得越多,你就会越明白哪些单词可能在一起出现,或者一个句子通常会如何结束。这就是你的大脑神经通过学习和记忆来建立一个“语言模型”。现在,如果有人给你一个句子的开头,比如"我今天早上...",你可能会猜测下一句可能是"吃了一个苹果"或“喝了一杯茶”,因为根据你的学习经验,这是一个比较合理的接下来的句子。这就是基于神经网络的语言模型所做的事情:通过学习大量的语言资料,模型能够预测下一个最可能的词或句子。

因此,基于神经网络的语言模型就像是一个学习并生成语言的工具,它可以帮助ChatGPT理解和生成文本,从而在语言处理方面,发挥重要作用。这就是ChatGPT的基本工作原理。

学习过程

那么,问题来了,ChatGPT的工作过程又是怎么样的呢?这就得谈谈训练一个神经网络的过程,这里面涉及两个非常重要的概念,我们接着往下看。

在计算机中,训练一个神经网络的过程是这样的:我们可以把这个神经网络想象成有多个输入和一个输出的多层的黑盒子。

首先,我们会为一个黑盒子的输入变量随机分配一个0到1之间的权重值。然后,我们会根据这些权重值和输入变量,计算出一个输出值。这就完成了一轮前向传播(传递到下一层黑盒子)。但是,这个输出值可能并不准确,所以我们需要计算出这个输出值和真实值之间的偏差,这就是损失函数的作用。

接下来,我们需要找到一个方法,让这个偏差尽可能的小。这就需要用到梯度下降的方法。梯度,其实就是损失函数在当前点的斜率,它指向的方向就是函数值增加最快的方向。我们就可以沿着梯度的反方向,也就是函数值减小最快的方向,来更新我们的权重值,使得偏差尽可能的小。

但是,这个过程并不是一帆风顺的。因为神经网络的层数可能非常多(ChatGPT的神经网络层数是175亿),这就可能导致梯度爆炸或者梯度消失的问题(就像上面那个烹饪新手学习完烹饪技能后,遇到新材料给你做出药或者什么也做不出的情况)。为了解决这个问题,人们提出了残差网络的概念。残差网络的思想其实很简单,就是在计算每一层的输出的时候,我们不仅要考虑这一层的输入,还要考虑前面一层的输出。比如,你正在参加一场马拉松比赛,比赛过程就像是神经网络的层层计算,你跑过的每一个路段就像是神经网络的一层。在理想状态下,你需要依次跑过所有路段,从而完成全程。这就像在普通的神经网络中,信息需要经过每一层的处理,然后才能到达下一层。然而,马拉松比赛是很枯燥和辛苦的,特别是在中后段。跑步者可能会耗尽体力,甚至在比赛中退下来。这就像在深度神经网络中,信息在传递过程中可能会因为梯度消失或梯度爆炸而丧失或者变形,进而影响训练效果。为了解决这一问题,比赛组织者设计了一些瞬移门,让参赛者可以直接从某一个路段跳到后面的路段,这样参赛者就可以避开一些消耗体力的路段,保持体力来完成比赛。这个瞬移门就像是残差网络中的"跳跃连接",使得前面的信息可以直接跳过一些层传递到后面的层,从而避免了信息在传递过程中的丧失。这样,我们就可以保证梯度的稳定性,避免梯度爆炸或者梯度消失的问题。残差网络,已经成为了几乎所有大型模型的必备结构。

总的来说,神经网络的训练就是一个不断调整权重,使得输出值尽可能接近真实值的过程。这个过程需要耐心和时间,但是,只要我们选择合适的模型结构和超参数,就有可能训练出一个非常准确的模型。这就是神经网络的基本原理。

为了使神经网络更快的收敛,我们来谈谈反向传播算法。反向传播算法是一种在神经网络中优化权重(也就是调整神经网络中各个连接的强度)的方法。这个算法通过比较模型的预测值和实际值之间的差距,然后反向从输出层向输入层逐层调整各个连接的权重,以减少这个差距。我们可以用一个箭靶的例子来理解这个概念:想象你在参加一个射箭的比赛,目标是尽可能接近靶心。每次你放箭后,你都会看箭是否射中靶心。如果箭偏离了靶心(这就像神经网络的预测值与实际值的差距),你就会分析箭离靶心的距离和方向,然后调整你下一次射箭的角度或力度(就像调整神经网络中的权重)。然后你再射一次,观察结果,并再次根据射偏的距离和方向进行调整。这个反复的过程就像是反向传播算法的运作过程。通过系统的反复调整,你的箭头会离靶心越来越近。同理,通过反向传播算法,神经网络的预测值也会越来越接近实际值,这就是我们说的模型训练。

所以,反向传播算法基本上就是一个在神经网络中持续减小误差的过程,从而使得模型的预测值尽可能接近实际值。

人们与人工智能机器交流

总的来说,刚开始,ChatGPT被给予了大量的文本数据,就像一个孩子被读了很多的故事书,吸收了大量的信息和模式。通过学习这些资料,ChatGPT知道了单词的含义,句子的结构,甚至一些复杂的语言模式和语境。这就相当于上面谈到的训练神经网络,通过各种算法使大语言模型收敛,稳定。

然后,当有人向ChatGPT提问或发起对话时,ChatGPT就会像一个故事会话者一样,结合已经学到的知识和模式,来形成一种最可能的回答。在这个过程中,ChatGPT会考虑所有可能的回答,然后选择出最可能的那一个。就像故事会话者在讲故事时,可能会考虑到很多种情节的发展,但最终会选择最吸引听众,最符合故事逻辑的那一个。

0 阅读:14

晓昀科技分享

简介:每周追踪最新的人工智能新闻,科技技术和应用案例!