【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆

这篇具有很好参考价值的文章主要介绍了【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

ChatGPT 能够自动生成类似于人类写作的文本,这一点非常引人注目,也令人意外。但它是如何实现的?为什么它能够如此出色地生成我们认为有意义的文本?我的目的是在这里概述ChatGPT内部的运行情况,并探讨它能够如此出色地产生有意义文本的原因。

首先需要解释的是,ChatGPT的基本目标是尝试产生一个“合理的延续”,无论它当前所拥有的文本是什么。这里的“合理”是指“在浏览了数十亿网页等人类书写的内容后,人们可能会写什么”。

那么假设我们有文本“AI的牛逼之处在于它能够…”,我们可以想象一下扫描数十亿页人类写作的文本(比如在网上和数字化的书籍中),找到所有这个文本的实例,然后看下一个单词出现的频率是多少。ChatGPT实际上是在类似地寻找在某种意义上“匹配”的内容,以生成一个排名列表,列出可能的后续单词和相应的“概率”。
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆


提示:以下是本篇文章正文内容,下面案例可供参考

一、ChatGPT是什么?

ChatGPT写作时的一个显著特点是,它实际上只是一遍又一遍地问自己:“在当前文本的情况下,下一个词应该是什么?”然后每次添加一个单词。更准确地说,它添加的是一个“标记”,可能只是一个单词的一部分,这就是它有时可以“创造新词”的原因。

好的,在每一步中,ChatGPT都会得到一个带有概率的单词列表。但是它应该选择哪个单词来添加到正在撰写的文章(或其他文本)中呢?也许人们认为应该选择“排名最高”的单词(即被分配最高“概率”的单词)。但是这就是玄学开始的地方。因为某种原因(也许有一天我们会对此有科学式的理解),如果我们总是选择排名最高的单词,我们通常会得到一个非常“平淡”的文章,似乎从未“展现出任何创意”(有时甚至是逐字重复)。但是,如果有时(随机地)选择排名较低的单词,我们就会得到一个“更有趣”的文章。

这里有随机性,这意味着如果我们多次使用相同的问题提问,每次都可能得到不同的回答。同时,存在一个特定的所谓“temperature”参数,它决定了低排名单词被使用的频率。对于文章生成来说,实践中发现使用“temperature”为0.8最佳。(需要强调的是,这里没有运用任何“理论”;这只是经验上被发现的有效方法。)

在继续之前,我需要说明的是,出于阐述的目的,我通常不会使用ChatGPT中的完整系统,而是使用更简单的GPT-2系统。该系统有一个很好的特点,即其大小足够小,可以在标准台式计算机上运行。

例如,以下是获取上述概率表格的步骤。首先,我们需要检索底层的“语言模型”神经网络:
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆
稍后,我们将会深入探讨这个神经网络,并讲解它是如何工作的。但现在,我们可以把这个“网络模型”视为黑匣子,应用到我们目前的文本中,并请求该模型认为应该跟随的前五个概率最高的单词:
这个步骤将结果转换为一个格式明确的“数据集”:
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆

如果反复“应用模型”,每一步都添加具有最高概率的单词(在此代码中指定为模型的“决策”),则会发生以下情况:

每次执行时,会做出不同的随机选择,因此文本也会不同。以下是5个示例:
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆

二、那么,如何计算下一个单词的概率?

好的,ChatGPT总是根据概率选择下一个单词。但是这些概率从哪里来呢?让我们从一个更简单的问题开始,考虑逐个字母(而不是单词)生成英语文本。如何确定每个字母的概率呢?

我们可以采取的最简单的方法就是从英文文本中随机取样,并计算不同字母的出现频率。例如,以下是在“猫”(Cat)维基百科文章中计算字母出现次数的结果:

【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆

—这是我们只是根据这些概率生成字母序列时得到的样本:

图片
我们可以通过将空格模拟为字母添加进可选项中,从而将这些序列分为多个“单词”组成的序列:

图片

我们可以通过让“单词长度”的分布与英语中的分布一致来更好地模拟“单词”的生成过程:

图片

这里我们没有得到任何“实际单词”,但结果看起来稍微好了一点。但是,要进一步往下,我们需要做的不仅仅是随机选择每个字母。

例如,我们知道如果有一个“q”,下一个字母基本上必须是“u”。
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆
面这张图展示了英语文本中一对字母(“2-grams”)的概率
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆
分布。图表的横轴为可能的第一个字母,纵轴为可能的第二个字母:
我们可以看到,例如,“q”列除了“u”行之外为空(概率为零)。好的,现在,我们不再一个字母一个字母地生成我们的“单词”,而是使用这些“2-gram”概率,一次生成两个字母来生成它们。以下是结果的一个样本 - 其中恰好包括一些真实存在的单词:

通过足够多的英文文本,我们不仅可以对单个字母或字母对(2-grams)的概率进行相当准确的估计,还可以对更长的字母序列进行估计。如果我们使用逐渐更长的n-gram概率生成“随机单词”,我们会发现它们逐渐变得“更真实”。

让我们现在假设 - 就像 ChatGPT 一样 - 我们处理的是整个单词,而不是单个字母。英语中大约有40,000个常用单词。通过查看大量的英语文本(例如几百万本书,总共几千亿个单词),我们可以估计每个单词的使用频率。利用这个估计,我们可以开始生成“句子”,其中每个单词都是独立随机选择的,其出现概率与在文本语料库中的出现概率相同。以下是我们得到的一个样本:

三, 什么是模型?

假设你想知道(就像加利略在16世纪晚期那样)从比萨斜塔的每层落下的炮弹需要多长时间才能落到地面。那么,你可以在每种情况下进行测量并制作结果表。或者你可以做理论科学的本质:建立一个模型,给出一些计算答案的过程,而不是仅仅测量和记忆每种情况。

让我们想象我们有(有些理想化的)数据,了解炮弹从不同楼层掉落需要多长时间:
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆
我们如何计算出从我们没有明确数据的楼层掉落所需的时间?在这种特定情况下,我们可以使用已知的物理定律来计算。但是假设我们只有数据,而不知道其背后的规律是什么。那么我们可以做出一个数学猜测,例如,也许我们应该使用一条直线作为模型:

【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆
我们可以选择不同的直线,但这条直线平均来看最接近我们所给的数据。从这条直线中,我们可以估计任何一层的落地时间。

我们如何知道在这里尝试使用一条直线呢?在某种程度上,我们并不确定。这只是数学上的一些简单东西,而且我们已经习惯了我们所测量的很多数据能够被数学上的简单事物很好地拟合。当然,我们也可以尝试使用数学上更复杂的东西,例如a + bx + cx^2,在这种情况下,我们可以得到更好的拟合效果:

【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆
永远不存在“model-less model”。您使用的任何模型都具有某些特定的基本结构,然后有一定数量的“旋钮可供调节”(即可以设置的参数)来拟合您的数据。在ChatGPT的情况下,使用了许多这样的“旋钮”——实际上有1750亿个。

值得注意的是,相比于3-grams的60万亿的组合可能性,ChatGPT 的这1750亿个参数,却已足够生成让我们惊讶的文本。

四,如何制作能完成人类任务的模型

我们上面给出的例子涉及到制作数值数据模型,这些数据基本上来自于简单的物理,是几个世纪以来我们已经知道的“简单数学”。但是对于ChatGPT,我们必须制作一种人类大脑产生的语言文本模型。对于这样的任务,我们还没有类似于“简单的数学”工具。那么,这个模型可能是什么样子的呢?

在讨论语言之前,我们先来谈谈另一个类似于人类任务:图像识别。作为一个简单的例子,我们考虑数字图像识别(这是一个经典的机器学习例子)。

首先,我们给每个数字收集一堆样本图像:

然后,为了找出我们输入的图像是否对应于特定的数字,我们可以使用样本图像进行像素逐个比较。但是作为人类,我们显然比像素逐个比较样本更擅长数字识别,因为即使数字是手写的,或者存在各种修改和扭曲,我们仍能够识别它们。

但是这里真正发生了什么?假设我们逐渐模糊一个数字。一段时间内,我们的函数仍然可以“识别”它,例如这里被识别为“2”。但很快它就“失去了”,开始给出“错误”的结果:

但是,究竟发生了什么呢?假设我们逐渐模糊一个数字。在一段时间内,我们的函数仍然可以“识别”它,比如说是“2”。但很快,它就会“失效”,并开始给出“错误”的结果。

但是,我们为什么认为这是“错误”的结果呢?在这种情况下,我们知道我们通过模糊“2”来得到所有这些图像。但如果我们的目标是生成一个能够模拟人类识别图像能力的模型,那么真正需要问的问题是:如果向人类展示这些模糊的图像,而他们并不知道这些图像是如何产生的,那么人类会如何做出判断?

如果我们的函数得到的结果通常与人类的结果一致,那么我们就拥有了一个“好的模型”。而这个非常重要的科学事实是,对于像这样的图像识别任务,我们现在基本上知道如何构造这样的函数。

我们能否“数学证明”它们的有效性?嗯,不行。因为要做到这一点,我们必须拥有一个关于人类视觉感知的数学理论。我们拿“2”图像并改变几个像素。我们可能想象,即使只有几个像素“错位”,我们仍然应该认为这是一个“2”。但这该怎样才算合理呢?这是一个关于人类视觉感知的问题。是的,对于蜜蜂或章鱼,答案无疑会有所不同。

五,神经网络

那么,像图像识别这样的任务,我们的典型模型实际上是如何工作的呢?最流行且最成功的当前方法使用神经网络。神经网络的发明可以看作是大脑如何工作的简单理想化,而它们的形式与现在的使用方式非常接近。

人脑中大约有1000亿个神经元(神经细胞),每个神经元都能够每秒产生一千次的电脉冲。这些神经元以复杂的网络连接在一起,每个神经元都有树状的分支,使其能够向成千上万个其他神经元传递电信号。在粗略的近似中,任何给定神经元是否在某一时刻产生电脉冲取决于它从其他神经元接收到的脉冲,不同的连接会以不同的“权重”进行贡献。

当我们“看到图像”时,光子从图像中落在我们眼睛后面的(“光感受器”)细胞上,这些细胞会在神经细胞中产生电信号。这些神经细胞与其他神经细胞相连接,最终信号经过一系列神经元层次的传递。在这个过程中,我们“识别”图像,最终“形成思想”,认为我们“看到了一个2”(或许最终会像大声说“two”这样的动作)。

前一节中的“黑匣子”函数是这种神经网络的“数学化”版本。它恰好有11个层次(虽然只有4个“核心层”):

【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆
这个神经网络并没有什么特别“理论推导”的地方;它只是在1998年作为一项工程构建而成,并被发现可以工作。(当然,这与我们可能会描述我们的大脑是通过生物进化的过程产生的并没有太大的不同。)

好的,但是这样的神经网络如何“识别事物”呢?关键是"吸引子"的概念。想象一下我们有手写的1和2的图像:

我们希望所有的1“被吸引到一个地方”,所有的2“被吸引到另一个地方”。换句话说,如果一幅图像在某种程度上“更接近1”而不是2,我们希望它最终进入“1的位置”,反之亦然。
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆

一个直观的类比,假设我们有平面上的某些位置,用点表示(在现实中,它们可能是咖啡店的位置)。然后我们可以想象,从平面上的任何一个点开始,我们总是想到达最近的点(也就是去最近的咖啡店)。我们可以通过将平面划分为由理想化的分隔区域来表示这一点:
【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆
所以我们可以将这看作是实现了一种“识别任务”,我们不是像识别给定图像最像哪个数字那样做某些事情,而是直接看哪个点最接近。

那么如何使神经网络“执行识别任务”呢?让我们考虑这个非常简单的情况:

【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆

总结

ChatGPT的基本概念在某种程度上相当简单。从网络、书籍等来源中获取大量人类创造的文本样本,然后训练神经网络生成“类似”的文本。特别地,使它能够从“提示”开始,然后继续生成“与它所受过的训练相似”的文本。

正如我们所见,ChatGPT中的实际神经网络由非常简单的元素组成。神经网络的基本操作也非常简单,本质上是对每个新单词(或单词的一部分)生成文本时,对其已生成的文本产生的输入“通过其元素”(没有任何循环等)进行一次传递。

但是,这个过程的卓越而意想不到的一点是,它可以产生成功“类似”网络、书籍等中存在的文本。它不仅是连贯的人类语言,而且“说出”了“遵循提示”的事情,利用它所“读取”的内容。它并不总是说出“全局上有意义”的话(或与正确的计算相符),它只是根据它训练材料中的内容“听起来对”的话。

ChatGPT的具体工程设计使其相当令人信服。但是,至少在它可以使用外部工具之前,它“仅仅”是从其积累的“传统智慧的统计数据”中提取出一些“连贯的文本线索”。但是,其结果与人类产生的非常相似,这很令人惊奇。正如我所讨论的,这表明某些东西至少在科学上非常重要:人类语言(及其背后的思维模式)在其结构上比我们想象的更简单、更“法则化”。ChatGPT已经隐式地发现了这一点。但我们可以通过语义语法、计算语言等,可能会明确地暴露它。

ChatGPT在生成文本方面所做的工作非常令人印象深刻,其结果通常与我们人类产生的非常相似。那么,这是否意味着ChatGPT像大脑一样工作?其基本的人工神经网络结构最终是以大脑的理想化模型为基础建模的。而且很可能当我们人类生成语言时,许多方面的情况非常相似。

但是,值得注意的是,尽管 ChatGPT 在生成文本方面表现出人类的能力,但其实现方式与大脑有所不同。与人类的大脑和当前计算机的“硬件”有所不同,ChatGPT 不得不采用一种可能非常不同(在某些方面更少效率)的策略进行训练(也就是学习)。此外,还有一点:与典型算法计算中的情况不同,ChatGPT 没有内部的“循环”或“重新计算数据”。这必然限制了它的计算能力,甚至对于当前的计算机也是如此,但对于大脑来说,更是如此。

但就目前而言,看到 ChatGPT 已经能够做到的事情令人兴奋。从某种程度上说,它是基本科学事实的一个很好的例子,即大量的简单计算元素可以做出引人注目和出乎意料的事情。但它也提供了我们在两千年里最好的推动力,去更好地理解人类语言以及其背后的思维过程的基本特征和原则。

总之,ChatGPT 是一种极其强大的自然语言生成系统,它的训练过程基于大量的人类语言文本样本,并采用了深度学习技术。尽管其基本结构与人类大脑的工作方式有所不同,但它已经展示了大量简单计算元素的组合可以产生出令人惊讶的结果。这为我们深入理解人类语言和思维模式的本质提供了有力的推动。文章来源地址https://www.toymoban.com/news/detail-424426.html

到了这里,关于【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 无线路由器为什么需要重启 看完你就知道

    无线路由器已经成为每个家庭中不可或缺的网络设备。使用WiFi网络,无论是上网刷微博,还是在线追剧,亦或是进行在线游戏,经常卡顿的现象是最让人受不了的。有时候WiFi连接不佳,拍两下路由器是没有效果的。我们会重启无线路由器,重启后明显会感觉的网络变得流畅

    2024年02月05日
    浏览(49)
  • RabbitMQ 使用教程(看完就会用了)

    RabbitMQ 是一种消息队列软件,可以用来实现分布式系统中的消息传递、异步任务处理、日志收集等功能。它基于 AMQP(Advanced Message Queuing Protocol)协议,支持多种编程语言和平台。 本文将介绍 RabbitMQ 的基本概念和使用方法,包括: RabbitMQ 的基本概念和架构 如何安装和配置

    2024年02月11日
    浏览(34)
  • Python 绘制热力图——看完就会用

    @使用Python绘制热力图——Pycharm python绘制热力图简单教程,复制代码就能用,需要表格可以留言~~~ 格式如下:(需要这个表的可以留言~在后续操作时仅需改变表格数据就行) 热力图所需的相关矩阵 然后就可以画出这样的图 其中关于\\\"cmap颜色\\\"通常指的是在数据可视化中使用

    2024年02月03日
    浏览(36)
  • 看完就能懂!ElasticSearch-垃圾回收器优化

    当代主流虚拟机(Hotspot VM)的垃圾回收都采用“分代回收”的算法。“分代回收”是基于这样一个事实:对象的生命周期不同,所以针对不同生命周期的对象可以采取不同的回收方式,以便提高回收效率。 新生代:分三个区:一个Eden区,两个Survivor区,默认内存占比8:1:

    2024年04月15日
    浏览(29)
  • 扫雷游戏【敢看完就敢教会你】------- C语言

    目录 一、扫雷游戏介绍 二、实现游戏的前期工作 1.  游戏的原理逻辑 2.  初始化雷区 三、代码实现游戏 1.  实现 test.c 文件 2.  实现 Mine_Sweeper.c 文件 2.1  雷区初始化函数 2.2  埋地雷函数 2.3  展示雷区函数 2.4  排查地雷函数 2.4.1  排查地雷子函数 2.4.2  标记地雷子函数 2

    2024年02月15日
    浏览(29)
  • 2023年最新CUDA安装教程,看完就会(windows版)。

    目录 前言 注意:本教程建立在您已经正确安装了显卡驱动的基础上 第一步,找到对应的CUDA版本 第二步,查看你要安装的pytorch版本对应的cuda版本(如果只需要安装cuda可以跳过) 第二步,下载cuda 第三步,安装CUDNN加速库 尾言 本文概述:正确安装CUDA是用显卡加速深度学习的

    2024年02月14日
    浏览(41)
  • Python以及Pycharm保姆级的下载安装教程,看完就懂

    接下来看看由辉辉所写的关于Python的相关操作吧 目录 🥳🥳Welcome Huihui\\\'s Code World ! !🥳🥳 一.Python的安装 1.下载地址 2.下载步骤 二.Pycharm的安装  1.下载地址 2.下载步骤 Python的下载地址 https://www.python.org/ 注意:如果是自己在浏览器搜索的话,尽量选择自带的浏览器(或者自己

    2024年02月14日
    浏览(47)
  • FPGA时序分析中的建立时间与保持时间(看完就懂)

    总体从时序分析的概念,时序分析模型来分析建立时间与保持时间裕量,通过建立保持时间公式定性分析。 通过分析FPGA设计中各个寄存器之间的数据延时和时钟传输路径的时钟延时的关系,来确保所有寄存器都能正确的寄存数据。 a、寄存器延时Tco:时钟上升沿到达D触发器

    2024年02月08日
    浏览(43)
  • 3.2.3 存储器与CPU的连接(重难点 看完就会)

    本节内容是存储器中的重点和难点,篇幅较长。并不用担忧,看完这片文章,你会对知识点十分了解,并且会用几道题目来巩固一下内容。 由于CPU所要执行的指令和数据都保存在主存当中,并且执行完成后,需要将执行结果保存回主存。二者之间的联系是非常频繁,所以他们

    2024年02月01日
    浏览(51)
  • 如何吸引消费者?电商创业的期间需要解决的三类问题,看完就懂了

    其实每个创业者个人的世界观,定义了你对未来的追求。可能在早期创业的时候,你就是想做一个不错的、赚钱的企业,但后面我把企业分为三类: 一类企业是解决社会问题 二类企业解决的是行业问题 三类企业解决的是老板个人的问题。 什么叫思维?喇叭喊得再响,广告投

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包