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.mzph.cn/news/181512.shtml

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

相关文章

11.28C++

#include <iostream>using namespace std;int main() {string str;cout << "请输入一个字符串&#xff1a;" << endl;getline(cin,str);int size str.size();int a0,b0,c0,d0,e0;for(int i0; i < size; i){if(str.at(i) > A && str…

Element-ui合并table表格列方法

merageCell({ row, column, rowIndex, columnIndex }) {if (columnIndex 0 || columnIndex 1) {const property columnIndex 0 ? name : firstDeptName;// 获取当前行的property&#xff0c;这里看自己的需要&#xff0c;改成根据哪个去判断const currentPropertyVal row…

Webshell流量分析

Webshell流量分析 常见的一句话木马: asp一句话 <%eval request("pass")%> aspx一句话 <%@ Page Language="Jscript"%><%eval(Request.Item["pass"],"unsafe");%> php一句话 <?php @eval($_POST["pass&…

【华为数通HCIP | 网络工程师】821刷题日记-BFD和VRRP 及重点(1)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

iconfont 使用彩色图标

1、下载iconfont到本地 2、全局安装 iconfont-tools npm install -g iconfont-tools 3、在iconfont解压目录下执行命令、一直回车 iconfont-tools 4、文件拷贝 执行完上述命令后会生成iconfont-weapp目录&#xff0c;将iconfont-weapp目录下的iconfont-weapp- icon.css文件…

android BSP开发之二

1.添加system property 在/device/<vendor>/<project>/system.prop 文件中添加需要的属性。 如在XXX中添加”persist.sys.touch_mode”属性&#xff0c;在system.prop文件中新增一行如下内容&#xff1a; # Property for touch panel mode persist.sys.tou…

【23真题】比985还难的双非!

今天分享的是23年长春工业大学807的信号与系统试题及解析。 本套试卷难度分析&#xff1a;本套试题难度中等偏上&#xff0c;题量不少&#xff0c;难度不小&#xff01;状态方程考察的淋漓尽致。另外还有电路题。这所双非院校的真题比90%的211难&#xff0c;甚至比一部分985更…

Linux 离线安装NFS共享文件

一、检查端口是否被占用 程序默认使用2049端口&#xff0c;如果被占用需要修改端口 二、在线安装&#xff0c;服务器&#xff08;共享端&#xff09;和客户端&#xff08;使用端&#xff09;执行以下命令安装 yum install nfs-utils rpcbind -y 三、离线安装过程 链接&#…

多线程概念及其方法讲解

1 认识多线程 1.1 线程的概念 线程是CPU分配资源的基本单位。当一程序开始运行&#xff0c;这个程序就变成了一个进程&#xff0c;而一个进程相当于一个或者多个线程。当没有多线程编程时&#xff0c;一个进程相当于一个主线程&#xff1b;当有多线程编程时&#xff0c;一个进…

接手了一个外包开发的项目,我感觉我的头快要裂开了~

嗨&#xff0c;大家好&#xff0c;我是飘渺。 最近&#xff0c;我和小伙伴一起接手了一个由外包团队开发的微服务项目&#xff0c;这个项目采用了当前流行的Spring Cloud Alibaba微服务架构&#xff0c;并且是基于一个“大名鼎鼎”的微服务开源脚手架&#xff08;附带着模块代…

2024年NPDP考试费用明细!报名前必看

随着产品开发和管理在各个行业的发展&#xff0c;产品经理认证&#xff08;NPDP&#xff09;逐渐成为了一项重要的职业资质。NPDP认证由国家引进&#xff0c;并由中国国际人才交流基金会负责在国内推广。本文将详细介绍NPDP的报考条件、费用等等&#xff0c;帮助有意参加该考试…

【工具使用】Keil常用的调试操作整理介绍

目录 一、软件调试使用 1.1 基本调试操作 1.2 调试窗口 二、注意事项 一、软件调试使用 1.1 基本调试操作 上文已经说过在线调试和模拟调试的配置过程&#xff0c;但无论是在线还是模拟调试&#xff0c;调试技巧工具的使用都是一样的。 点击红色d&#xff0c;进入调试 可…

C++ 红黑树的封装

一.map/set的封装 在实现了红黑树的部分功能后&#xff0c;我们可以便可以将红黑树作为底层结构来封装map 和 set &#xff0c;但是问题也随之而来。我们都知道map是k-v的数据模型&#xff0c;而set是k的数据模型&#xff0c;我们难道要去使用两棵红黑树来封装吗&#xff1f;显…

Centos7安装配置nginx

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解&#xff08;如有不正确的地方欢迎各位小伙伴在评论区提意见&#xff0c;小编会及时修改&#xff09; Centos7安装配置nginx Nginx介绍 Nginx (engine x) 是一个高性能的 HTTP 和 反向代理 服务&#xff0c;也…

Element-plus消息框显示不正常解决方案

Element-plus消息框显示不正常解决方案 不知道问题出现在哪里&#xff0c;反正就是点击按钮并没有在页面上弹出对应的框&#xff0c;而是在某个角落显示&#xff0c;经常遇到&#xff0c;老是忘记怎么写&#xff0c;记录一下解决方案 // import ./assets/main.css import /st…

使用MAT分析内存泄漏(mac)

前言 今天主要简单分享下Eclipse的Memory Analyzer在mac下的使用。 一、Mat&#xff08;简称&#xff09;干什么的&#xff1f; 就是分析java内存泄漏的工具。 二、使用步骤 1.下载 mac版的现在也分芯片&#xff0c;别下错了。我这里是M2芯片的&#xff0c;下载的Arch64的。 …

在Mysql中,什么是回表,什么是覆盖索引,索引下推?

一、什么是回表查询&#xff1f; 通俗的讲就是&#xff0c;如果索引的列在 select 所需获得的列中&#xff08;因为在 mysql 中索引是根据索引列的值进行排序的&#xff0c;所以索引节点中存在该列中的部分值&#xff09;或者根据一次索引查询就能获得记录就不需要回表&#x…

WPF前端实现人脸扫描动画效果

前言 本章实现的效果主要通过OpacityMask与LinearGradientBrush(径向渐变) 的组合应用来实现。最终实现效果如下: LinearGradientBrush线性渐变画刷 LinearGradientBrush其实很简单,我们只需要关注5个属性,使用这5个属性你就可以完成这个画刷几乎所有的变化。 属性介…

FOC系列(三)----AS5600磁编码器

一、 关于AS5600 1.1 芯片内部框图和引脚功能介绍 具体的内容大家可以查看数据手册&#xff1a;AS5600数据手册&#xff0c;在这里只是对一下重要的地方进行说明。    系统框图如下&#xff1a;    电源设计选项&#xff0c;我在设计时选择的是第二种电源方案&#xff0c…

推荐6款交互设计软件,助你事半功倍!

交互软件可以帮助设计师从“可用性”和“用户体验”的角度优化他们的作品。如果设计师想创建一个令人满意的交互设计作品&#xff0c;一个方便的交互设计软件是必不可少的。当然&#xff0c;交互软件只是我们实现目标的一种手段。根据设计师的个人喜好和方便&#xff0c;选择易…