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

文章目录

  • 前言
  • 一、ChatGPT是什么?
  • 二、那么,如何计算下一个单词的概率?
  • 三, 什么是模型?
  • 四,如何制作能完成人类任务的模型
  • 五,神经网络
  • 总结


前言

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

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

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


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

一、ChatGPT是什么?

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

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

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

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

例如,以下是获取上述概率表格的步骤。首先,我们需要检索底层的“语言模型”神经网络:
在这里插入图片描述
稍后,我们将会深入探讨这个神经网络,并讲解它是如何工作的。但现在,我们可以把这个“网络模型”视为黑匣子,应用到我们目前的文本中,并请求该模型认为应该跟随的前五个概率最高的单词:
这个步骤将结果转换为一个格式明确的“数据集”:
在这里插入图片描述

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

每次执行时,会做出不同的随机选择,因此文本也会不同。以下是5个示例:
在这里插入图片描述

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

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

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

在这里插入图片描述

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

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

图片

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

图片

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

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

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

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

三, 什么是模型?

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

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

在这里插入图片描述
我们可以选择不同的直线,但这条直线平均来看最接近我们所给的数据。从这条直线中,我们可以估计任何一层的落地时间。

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

在这里插入图片描述
在这里插入图片描述
永远不存在“model-less model”。您使用的任何模型都具有某些特定的基本结构,然后有一定数量的“旋钮可供调节”(即可以设置的参数)来拟合您的数据。在ChatGPT的情况下,使用了许多这样的“旋钮”——实际上有1750亿个。

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

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

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

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

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

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

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

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

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

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

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

五,神经网络

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

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

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

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

在这里插入图片描述
这个神经网络并没有什么特别“理论推导”的地方;它只是在1998年作为一项工程构建而成,并被发现可以工作。(当然,这与我们可能会描述我们的大脑是通过生物进化的过程产生的并没有太大的不同。)

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

我们希望所有的1“被吸引到一个地方”,所有的2“被吸引到另一个地方”。换句话说,如果一幅图像在某种程度上“更接近1”而不是2,我们希望它最终进入“1的位置”,反之亦然。
在这里插入图片描述

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

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

在这里插入图片描述

总结

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8716.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多平台发布文章怎么做?自媒体多平台发内容教程分享

目前很多小伙伴着手做自媒体全部都是在一些自媒体视频或是时尚博主的推荐下才了解到做自媒体可以为自己创造收入,刚开始做得时候或许只是会弄两三个账户,察觉收入也并不高,便不愿意去做相应的事情了,确实目前做自媒体的人太多了&a…

自媒体文章同步该怎么做?有什么办法可以一键同步到多自媒体平台

在自媒体行业当中,有很多人的苦恼就是应该如何将自己的创作内容同时发布在各大媒体上,应该进行什么样的步骤才能够进行同步。那我们需要在各大平台进行授权,才能够进行同时发布,不仅非常的繁琐,而且在管理账户方面更容…

自媒体一篇文章能多平台发布吗?

如今是全民自媒体时代,只要热爱创作,并且懂得网络知识的人们,就可以成为自媒体人,自媒体这个行业存在竞争,能否在竞争中脱引而出,能否利用自媒体平台赚钱,与个人眼光、写作水平以及所用工具存在…

头条发布文章如何一篇文章发布道30+自媒体平台?

很多从事自媒体工作的朋友都会借助工具来帮助自己工作,这种工具能批量发布30多个平台的工具,很多人都应该听说过头条号,也是一个著名的自媒体平台。许多作者已经在使用了,收入相当可观。许多自媒体工作室经营多个账号,…

自媒体平台批量文章采集

多个平台自媒体文章采集,今日头条、微信公众号、知乎、豆瓣、小红书这些自媒体平台明天都会产出海量的优质文章,通过对这些平台相关文章进行采集,能获取大量的热门素材,不管是自己创作还是内容分析,都十分便利。 多个平…

自媒体同篇文章多平台发布,自媒体人提高效率利器

写完文章发布后,也需要同步到其他平台。在这种重复发布的一个工作操作当中,我们可以同时发布到各个平台,这样会减少我们的宝贵创作时间。如果在没有一件同时发布之前,我们做自媒体行业是比较困难的。其中。也有这么一款软件&#…

自媒体原创文章多平台发布操作方法教程!

我相信很多自媒体朋友可能会有问题,因为他们已经注册了多个多媒体平台。在我们写完一篇文章后,我们需要将其逐一复制粘贴到每个平台的编辑器中。这么多的帐户没有多个平台的一键发布工具的帮助,我们每天都会登录该帐户。现在,让我…

自媒体人如何打造出爆文?这3种类型的文章最容易爆

爆文是一直是自媒体人的终极目标,要想打造出爆文却不是那么容易的事,借助热点无疑是热点爆文的一种速成法,今天就给大家分享几个自媒体爆文写作的技巧! 01 综合热点文 第一种就是综合热点文——热点话题有可预测性,也…

自媒体平台图文创作建议和技巧

自媒体博主在自媒体平台进行图文创作时,需要注意哪些方面才能创造出更好的内容获得更多的关注呢?今天跟大家分享自媒体创作中的一些图文创作建议和技巧。 一、确定目标受众 首先需要明确自己要传达的信息和目标受众。要考虑读者的兴趣、需求和阅读习惯&…

竟能秒出软文?突袭全球的ChatGPT会给媒体行业带来怎样的震荡?

从国外传出ChatGPT的消息以来,#可能被ChatGPT取代的10大职业#,#ChatGPT真能替代人吗#,#国内距离首个ChatGPT还有多远#等诸多话题热度极高。 一个人工智能工具罢了,为何引发众人关注? 1 功能强大 ChatGPT上知天文下知地理&#x…

小爱音箱接入chatgpt

文章目录 前言一、安装Homeassistant二、安装hacs三、集成XiaoMi Miot Auto、Node-RED Companion四、安装Node-Red五、导入json文件及配置节点六、查看小爱音箱输入输出的实体ID七、部署测试 前言 本次实现是通过搭建部署 homeassistant nodered mqtt 实现小爱音箱接入chatg…

ChatGPT神器!三步让你轻松阅读论文文档

引言 您是否曾经因为阅读论文而感到困难和无从下手?ChatDOC是一款专为您设计的人工智能工具,帮助您快速理解论文内容。通过上传文档,利用ChatGPT技术,您只需3个简单步骤,即可快速阅读论文,提高阅读效率。立…

ChatGPT 快速阅读论文:3 个步骤让你轻松阅读论文文档

ChatGPT 快速阅读论文:3 个步骤让你轻松阅读论文文档 一、引言二、什么是 ChatDOC三、如何使用 ChatDOC3.1 主要功能3.2 表格/文本分析3.3 人工智能对话最后附使用地址:本教程收集于:AIGC从入门到精通教程 一、引言 你是否曾经因为阅读论文而感到困难和无从下手?ChatDOC 是…

论文怎么写

论文是一种理性思维的表达方式,它要求具备一定的逻辑性和问题解决能力。论文的写作可以分为以下几个步骤: 1. 确定研究主题和问题:选择一个有足够探讨价值的研究主题,明确研究问题和目的,列出问题清单。 2. 确立研究目…

基于马尔可夫过程的一种新型混合PSO粒子群算法(SCI二区高被引文献)介绍及算法复现(使用chatgpt)

以下是一篇算法领域的SCI二区文献(原文见附件),介绍了一种使用Markov概率转移矩阵对种群拓扑结构进行加权的粒子群算法,相比于标准PSO算法该算法提高了全局覆盖率,更容易跳出局部最优,但是在局部最优点由于…

AI写作 | 对Chatgpt用哪些提示方式才能让它写一篇优秀的小红书笔记?

作为AIGC创业者,我们全心投入到对ChatGPT的最新技术应用的探索中。自去年12月起,我们一直专注于这个领域。在这个时间段里,我有幸参与了一本来自国外的提示词艺术书籍的翻译任务,并编撰了一本收录着88个实际案例的小册子。通过这些…

如何用ChatGPT写Shell脚本

因为最近下班前都要拿机子搞压测,所以这段时间对shell脚本比较感兴趣,用chatGPT写shell脚本很方便。 如下是一些案列 比如我需要写一个批处理:写一个批处理在当前文件夹下建立20个文件夹每个文件夹里面有一个文本文档文本文档的第一句话是hel…

针对二维码解析库的 Fuzzing 测试

背景 在四月份的时候出了那么一个新闻,说微信有一个点击图片就崩溃的 bug,当时各大微信群里都在传播导致手机各种闪退。 由于当时笔者正在忙着卷 Java Web,没有第一时间去蹭这个热点,不过当时也稍微了解了一下 crash 的原理。最近…

服务器硬件测试 如何查看系统信息及测试使用工具

硬件长稳 一、查看硬件信息 sar(sar命令,好一个大宝剑_7750783的技术博客_51CTO博客超全) 使用 yum install sysstat 命令安装 #sar命令来对系统作一个了解,该命令是系统维护的重要工具,主要帮助我们掌握系统资源的使…