ChatGPT到底是如何运作?

自从2022年11月30日发布以来,ChatGPT一直占据着科技届的头条位置,随着苹果的创新能力下降,ChatGPT不断给大家带来震撼,2023年11月7日,首届OpenAI开发者大会在洛杉矶举行,业界普遍认为,OpenAI的开发者大会可能会替代苹果发布会,成为AI时代最引人注目的“科技春晚”。

但ChatGPT的背后到底是如何运作的,它的超强能力究竟是如何形成的?它有什么特别之处?它的竞争对手能超越它吗?这一系列的问题正是本文所要讨论的。

什么是ChatGPT?

ChatGPT全称为Chat Generative Pre-trained Transformer,一个基于深度学习的大型语言模型,其模型结构使用了Transformer网络 。这个网络可以从输入的文本中学习语言的规律和模式,并用这些规律和模式来预测下一个单词或字符。

在chatGPT的训练过程中,chatGPT接受了海量的文本数据,这些数据包括各种来源,例如维基百科、新闻文章、小说、网页等等。这些庞大的数据集被用来形成一个模仿人脑的深度学习神经网络,在学习过程中,chatGPT试图学习这些数据中的语言规则和模式,预测文本序列中的下一个单词或字符,以提高自己的准确性。

当您与chatGPT交流时,您的输入会被转化为一个向量,然后输入到chatGPT的神经网络中。网络会对输入进行一系列的计算和转换,以生成对应的输出向量。最终,输出向量被翻译成文本,以回答您的问题或提供相关信息。
chatGPT的训练和推理过程需要大量的计算资源和数据存储,因此chatGPT通常在云端或大型服务器上运行。它被设计为可扩展和高效,可以处理海量的文本数据,并能够支持多语言和多种自然语言处理任务。
之所以大家对ChatGPT感到很震惊,是因为ChatGPT所做的事情,真正接近了人类理解和运用语言的能力——直接接收自然语言,然后直接回复自然语言,并保证了语言的流畅性与逻辑性。这是人与人的交流方式。

ChatGPT 的工作原理是尝试理解您的提问,然后根据训练的数据输出它预测最能回答您问题的字符串。虽然这听起来相对简单,但它幕后发生的事情的复杂性难以想象。

Transformer 架构

ChatGPT整个工作的核心是“Transformer”,这是一种用于处理自然语言数据的神经网络。神经网络通过互连节点层处理信息来模拟人脑的工作方式。将神经网络想象成一个曲棍球队:每个球员都有一个角色,但他们在具有特定角色的球员之间来回传递冰球,所有人一起努力得分。

AI的算法结构,也是经过了漫长的探索与积累之后,才有了今天Transformer的质变。

第一个阶段:模式匹配,给AI输入一些列的逻辑与规则,AI根据规则来进行判断与推理。代表性有符号逻辑,联结主义等,主要应用在包括象棋和国际象棋等游戏。

第二阶段:机器学习,让计算机不需要显式的程序也可以具备学习的能力,以处理更复杂的任务。代表性的算法包括反向传播、决策树、神经网络和规则引擎等。主要应用在语音识别、图像识别和机器翻译等领域。

第三阶段:人工神经网络,随着数据量的增加和计算能力的提升,一种基于神经网络结构的机器学习算法。这个时期的经典算法包括支持向量机、朴素贝叶斯、卷积神经网络和循环神经网络等。

第四阶段:深度学习神经网络,一种模仿人脑的复杂、多层、加权算法,它能够学习文本数据中的模式和关系,并利用创建类似人类的能力。通过预测任何给定句子中接下来应该出现的文本来做出响应。 代表算法有Transformer。

Transformer 架构在进行预测时,通过使用“自注意力”来权衡序列中不同单词的重要性来处理单词序列。自我注意力类似于读者回顾前一个句子或段落以了解理解书中新单词所需的上下文的方式。转换器查看序列中的所有单词,以了解上下文以及单词之间的关系。

转换器由多层组成,每层又包含多个子层。两个主要子层是自注意力层和前馈层。自注意力层计算序列中每个单词的重要性,而前馈层对输入数据应用非线性变换。这些层帮助转换器学习和理解序列中单词之间的关系。

虽然听起来很复杂,而且解释起来也很复杂,但 Transformer 模型从根本上简化了人工智能算法的设计方式。它允许并行计算(或同时完成),这意味着显着减少训练时间。它不仅使人工智能模型变得更好,而且使它们的生产速度更快、成本更低。

Transformer不使用单词,而是使用“标记”,“标记”是编码为矢量(具有位置和方向的数字)的文本块。两个标记向量在空间中越接近,它们就越相关。类似地,注意力被编码为向量,这使得基于 Transformer 的神经网络能够记住段落前面的重要信息。

GPT-3 接受了大约 5000 亿个标记的训练,这使得它的语言模型能够更轻松地分配含义,并通过将它们映射到向量空间来预测可能的后续文本。许多单词映射到单个标记,但较长或更复杂的单词通常会分解为多个标记。平均而言,令牌的长度大约为四个字符。

预训练与人类反馈强化学习 (RLHF)

Pre-trained的意思是“预训练”,这是 GPT 能够做到它能做的事情的一个非常重要的部分。 人工智能使用两种主要方法进行预训练:监督和非监督。

在 GPT 之前,性能最好的 AI 模型使用“监督学习”来开发其底层算法。他们接受了手动标记数据的训练,例如包含不同动物照片的数据库以及人类编写的每种动物的文本描述。这些类型的训练数据虽然在某些情况下有效,但制作成本非常昂贵,其扩展方式是有限的。人类培训师必须花大量的人力与时间大力气来预测所有的输入和输出。
不可能预测所有会被问到的问题,因此 ChatGPT 使用无监督预训练——这就是游戏规则的改变者。

GPT 采用了生成式预训练,给出了一些基本规则,然后输入大量未标记的数据——几乎是整个开放互联网。然后,它会在“无人监督”的情况下处理所有这些数据,并形成自己对控制文本的规则和关系的理解。

当然,当你使用无监督学习时,你并不真正知道你会得到什么,因此 GPT 也进行了“微调”,使其行为更加可预测和适当。 通过监督式的指令微调+人类反馈的强化学习来让模型的输出变得合理。

训练数据集

在早些时间的一些研究已经证明,随着参数量和训练数据量的增大,语言模型的能力会随着参数量的指数增长而线性增长,这种现象被称为Scaling Law。但是在2022年之后,随着进来对大模型的深入研究,人们发现当模型的参数量大于一定程度的时候,模型能力会突然暴涨,模型会突然拥有一些突变能力,如推理能力、零样本学习能力等。


ChatGPT 是一个独特的模型,除了 Persona-Chat 之外,还有许多其他对话数据集用于微调 ChatGPT。这里有一些例子:

  • 康奈尔电影对话语料库 包含电影脚本中角色之间对话的数据集。它包含 10,000 多个电影角色对之间的 200,000 多次对话,涵盖各种主题和类型。
  • Ubuntu 对话语料库 寻求技术支持的用户与 Ubuntu 社区支持团队之间多轮对话的集合。它包含超过 100 万个对话,使其成为用于对话系统研究的最大的公开数据集之一。
  • DailyDialog 各种主题的人与人对话的集合,从日常生活对话到有关社会问题的讨论。数据集中的每个对话都由几个回合组成,并标有一组情感、情绪和主题信息。

除了这些数据集之外,ChatGPT 还接受了互联网上大量非结构化数据的训练,包括网站、书籍和其他文本源。这使得 ChatGPT 能够从更一般的意义上了解语言的结构和模式,然后可以针对对话管理或情感分析等特定应用进行微调。

自然语言处理(NLP)

解决了准确性的问题,还需要解决交流的“自然流畅”问题。这就是自然语言处理技术,简称NLP,一种使计算机能够理解、解释和生成人类语言的技术。

NLP 的关键挑战之一是处理人类语言的复杂性和歧义性。首先接受您的提问,将其分解为标记,然后使用其基于 Transformer 的神经网络来尝试了解其中最显着的部分是什么,以及您真正要求它做什么。从那里,神经网络再次启动并根据从训练数据和微调中学到的知识生成适当的令牌输出序列。

NLP 算法需要接受大量数据的训练,才能识别并学习语言的细微差别。并且需要不断完善和更新,以跟上语言使用和上下文的变化。

算力

算力是指数据处理和计算的能力,它可以用每秒浮点运算次数(Flops)来衡量。目前,AI大模型主要依赖于GPU或CPU+FPGA、ASIC等算力芯片来实现其高效运行。这些算力芯片是针对人工智能算法做了特殊加速设计的芯片,也被称为AI加速器或计算卡,是AI的算力基础。

ChatGPT需要非常大量的算力(芯片)来支持其训练和部署。据微软消息,为ChatGPT提供计算支持的AI超级计算机,是微软2019年投资10亿美元建造的大型顶级超级计算机,配备了数万台英伟达A100台 GPU,还配备了60多个数据中心,部署了数十万个英伟达GPU辅助。

巨大的用户访问量也给算力带来巨大的性能和成本压力。根据Similarweb数据,今年2月OpenAI访问量已经达到11亿次,而根据Fortune的数据,用户每次与ChatGPT互动产生的云算力成本约0.01美元,如果往低了算,每次访问网站仅进行一次互动,那么单月仅算力成本也要1100万美元。

问题与期待

ChatGPT虽然已经有很强的能力,但上线以后随着使用的人越来越多,也发现了很多问题,对于复杂的推理分析计算类任务,他回答错误的概率仍然非常大。另外,在ChatGPT的训练过程中,使用了RLHF来引导模型按照人类偏好进行学习。然而,这种学习方式也可能导致模型过分迎合人类的偏好,而忽略正确答案。因此大家可以看到ChatGPT经常会一本正经的胡说八道。还有就是数据隐私安全。

虽然 ChatGPT是目前最流行的大型语言模型,但在接下来的几年里,可能会出现更多的竞争。例如,谷歌的Bard、Facebook 的Llama 2 、 Writer 的Palmyra LLM和 Anthropic 的Claude。

相比问题,我们更加期待ChatGPT的未来,它们将不断变得更加善于理解和回应我们人类,非常高效,可以在几乎任何设备上使用它们,比如手机甚至小型设备。它们还将成为特定领域的专家,如医学或法律,这非常酷。

还有,这些语言模型将能够处理不仅是文本,还包括图像和声音,并且将使用世界各地的语言。此外,人们正在努力确保这些AI模型是公平和负责任的,以使其更加开放和减少偏见。

最令人兴奋的是,这些语言模型将成为我们惊人的伙伴,帮助我们完成各种任务,并以无数方式使我们的生活变得更轻松。

参考资料:
1、https://jalammar.github.io/illustrated-transformer/
2、https://zapier.com/blog/how-to-use-google-bard/
3、https://openai.com/chatgpt
4、https://www.zdnet.com/article/what-is-chatgpt-and-why-does-it-matter-heres-everything-you-need-to-know/
5、https://www.yunliebian.com/yingxiao/article-44223-1.html
6、https://www.vinayiyengar.com/2022/08/04/the-promise-and-perils-of-large-language-models/
7、https://babylm.github.io/

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

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

相关文章

走近科学之《MySQL 的秘密》

走近科学之《MySQL 的秘密》 mysql 存储引擎、索引、执行计划、事务、锁、分库分表、优化 1、存储引擎(storage engines) 存储引擎规定了数据存储时的不同底层实现,如存储机制、索引、锁、事务等。 可以通过 show engines 命令查看当前服务…

【JavaSE】:接口(二)

接口 一.对学生进行排序二.Clonable接口三.抽象类和接口的区别四.Object类 一.对学生进行排序 很明显我们直接对学生进行排序是会报错的,因为编译器也不知道你需要按照名字排还是分数排,我们点击报错位置进入sort内部。 在sort内部我们可以看到它把数组转…

泛微OA对接金蝶云星空方案分享(对接场景解析)

分享金蝶云星空跟泛微OA系统集成对接的方案分享,主讲审批流程对接,表单对接的两类场景。分别是金蝶云星空发起申请和泛微发起流程审批,最终实现统一管理。 数据集成主要有以下好处: (1)数据一致性&#xf…

东南大学与OpenHarmony携手共建开源生态,技术俱乐部揭牌成立并迎来TSC专家进校园

11月25日,OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会(以下简称“TSC”)与东南大学携手,于东南大学九龙湖校区金智楼一楼报告厅举办了“东南大学OpenHarmony技术俱乐部成立仪式暨OpenHarmony TSC专家进校园”活动。此次盛会标志着OpenHarmony开源社区和…

Mac M1 安装Docker打包arm64的python项目的镜像包

1、首先安装Docker,到官网下载,选择apple chip版 Docker中文网 官网 2、双击下载的dmg文件,在弹出框中之间拖拽到右边 3、打开docker,修改国内镜像源,位置在配置-DockerEngine "registry-mirrors": ["…

Go字符串类型

一、字符串 1、字符串 Go 语言里的字符串的内部实现使用 UTF-8 编码字符串带的值为双引号(")中的内容,可以在 Go 语言的源码中直接添加非ASCII 码字符 s1 : "hello" s2 : "您好" 2、字符串转义符 Go 语言的字符…

UE4 UE5 使用SVN控制

关键概念:虚幻引擎中使用SVN,帮助团队成员共享资源。 1. UE4/UE5项目文件 如果不需要编译的中间缓存,则删除: DerivedDataCache、Intermediate、Saved 三个文件夹 2.更新、上传

【linux】基本指令(中篇)

echo指令 将引号内容打印到显示屏上 输出的重定向 追加的重定向 输出的重定向 我们学习c语言的时候当以写的方式创建一个文件,就会覆盖掉该文件之前的内容 当我们以追加的方式打开文件的时候,原文件内容不会被覆盖而是追加 more指令 10.more指令…

YOLOv8独家原创改进:自研独家创新MSAM注意力,通道注意力升级,魔改CBAM

💡💡💡本文自研创新改进:MSAM(CBAM升级版):通道注意力具备多尺度性能,多分支深度卷积更好的提取多尺度特征,最后高效结合空间注意力 1)作为注意力MSAM使用; 推荐指数:五星 MSCA | 亲测在多个数据集能够实现涨点,对标CBAM。 在道路缺陷检测任务中,原始ma…

基于51单片机超声波测距汽车避障系统

**单片机设计介绍, 基于51单片机超声波测距汽车避障系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的超声波测距汽车避障系统是一种用于帮助汽车避免碰撞和发生事故的设备,以下是一个基本…

Java面试-框架篇-Mybatis

Java面试-框架篇-Mybatis MyBatis执行流程延迟加载使用及原理一, 二级缓存来源 MyBatis执行流程 读取MyBatis配置文件: mybatis-config.xml加载运行环境和映射文件构造会话工厂SqlSessionFactory会话工厂创建SqlSession对象(包含了执行SQL语句的所有方法)操作数据库的接口, Ex…

从零开始学习typescript——数据类型

数据类型 以前我们用js编写代码的时候,都是直接使用let、var、const 来定义数据类型;js会在运行时来确定数据类型,但是在ts中,可以在声明时就可以指定数据类型。如果你学过其他编程语言,比如c、java就能更好的理解了。…

HTML5原生视频播放器组件video的videocontrolslist属性详解

HTML5提供了内置的视频播放控件,其中videocontrolslist是其中一个很有用的属性。videocontrolslist属性可以用于告诉浏览器在视频播放过程中应该显示哪些默认的用户界面控件。下面我们将从几个方面来介绍videocontrolslist的详细使用。 一、启用videocontrolslist videocont…

格式工厂——万能格式转换器

很多时候,大家从网络上下载的文件不一定是自己想要的类型,比如flv等视频文件,而强行改文件后缀名只会造成文件格式错误,无法打开;而很多文件的格式并不能轻易转换,且很多渠道都需要收费。今天介绍的这款For…

实力登榜!迅镭激光荣膺“江苏省瞪羚企业”称号!

11月24日,江苏省生产力促进中心发布“江苏省独角兽企业和瞪羚企业评估结果”,迅镭激光凭借在技术研发、产品创新、市场服务等方面的取得的领先成就,荣膺“江苏省瞪羚企业”称号! “瞪羚企业”是指以科技创新或商业模式创新为支撑,…

一、Gradle 手动创建一个项目

文章目录 Gradle 介绍Gradle Wrapper Gradle 使用手动安装 Gradle初始化 Gradle 介绍 Gradle 是一个快速的、可信的、适应性强的自动化构建工具,它是开源的。它使用优雅的并且可扩展的描述性语言。其他的介绍在官网可以了解。 Gradle Wrapper 官方建议使用 Gradl…

c语言:模拟实现各种字符串函数

strlen函数: 功能:获取到\0之前的的字符个数。 代码模拟实现函数: //strlen //这里用了递归法, //如abc,1bc,然后11c,接着111,最后读取到\0,1110,得到结果3…

Day40力扣打卡

打卡记录 包子凑数(裴蜀定理 DP) 根据裴蜀定理,存在 c gcd(a, b) 使不定方程ax by c满足条件,如果gcd(a, b) 1即a与b互素的情况下,就会 ax by 1,由于为1可以构造后面的无穷数字,故得到结…

深入了解Java8新特性-日期时间API之ZonedDateTime类

阅读建议 嗨,伙计!刷到这篇文章咱们就是有缘人,在阅读这篇文章前我有一些建议: 本篇文章大概19000多字,预计阅读时间长需要10分钟以上。本篇文章的实战性、理论性较强,是一篇质量分数较高的技术干货文章&…

离散系统的频域分析(数字信号处理实验2-1)

创建具有15 Hz和40 Hz分量频率的信号,叠加两个信号形成混合信号x,使用fft命令绘制x的频域图,标注频率为横坐标,平均能量为纵坐标。 文章目录 一.题目二.实验目的三.实验仪器四.实验原理1.MATLAB使用函数2.离散傅里叶变换(DFT)实验…