ChatGPT到底是如何运作?

news2024/11/20 6:21:19

自从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.coloradmin.cn/o/1263665.html

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

相关文章

2021年12月 Scratch图形化(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共15题,每题2分,共30分) 第1题 下图两个积木的值分别是? A:false true B:false false C:true true D:true false 答案:A 第2题 小猫和小狗是非常好的朋友,他们发明了一种加密方法:用两位数字代表字母。…

【Linux进阶之路】进程间通信

文章目录 一、原理二、方式1.管道1.1匿名管道1.1.1通信原理1.1.2接口使用 1.2命名管道 2.共享内存2.1原理2.2接口使用 3.消息队列原理 4.信号量引入原理 总结 一、原理 进程间的通信是什么?解释: 简单理解就是,不同进程之间进行数据的输入输出…

python之pyqt专栏7-信号与槽3

在上一篇文章中python之pyqt专栏6-信号与槽2-CSDN博客中,我们可以了解到对象可以使用内置信号,这些信号来自于类定义或者继承过来的。我们可以对这些信号可以通过connect连接槽函数。 需求 现在有一个需求,有两个UI界面“untitled.ui”和“u…

微信小程序开发——项目开发入门

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 概述 本文重点介绍微信小程序开发者工具的下载与安装与项目开发入门。 下载开发者工具 请在官方网站下载微信小程序开发工具;图示如下: 请依据实际…

基于mvc的大学生家教信息网站系统php+vue

运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框架:Thinkphp5 前端框架:vue.js 服务器:apache 数据库:mysql 数据库工具:Navicat/phpmyadmin 开发软件:hbuilderx/vscode/Dreamweaver/PhpSt…

[SaaS] 淘宝AI淘淘秀

AIGC技术在淘淘秀场景的探索与实践关键词:图像类AI创新应用、用户轻松创作、内容分享、结合商家品牌。https://mp.weixin.qq.com/s/-3a3_nKeKGON-9-Prd7JKQ 1.生成模版 利用定制的prompt,生成一些比较好的素材图片案例。 最终的用的是通义万相。 2.仿…

不会代码也能拿高薪?掌握面试法宝,轻松10000+

快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由 C.A.R.Hoare 在 1962 年提出。 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后…

基于springBoot+mysql实现的竞赛管理系统

基于springBootmysql实现的竞赛管理系统,演示地址:系统登录 - 软件学院比赛管理系统 管理员账号:1,密码:1 包括比赛管理,队伍管理,教师管理,经费管理,学生管理,比赛结果,…

《2023全球隐私计算报告》正式发布!

2023全球隐私计算报告 1、2023全球隐私计算图谱2、国内外隐私计算相关政策3、隐私计算技术的最新发展4、隐私计算技术的合规挑战5、隐私计算的应用市场动态6、隐私计算开源整体趋势7、隐私计算的未来趋势 11月23日,由浙江省人民政府、商务部共同主办,杭州…

银行各类计算公式汇总

一、存款准备金 存款准备金,分为法定存款准备金和超额存款准备金(主要构成是存放央行及现金,不包括存放同业资金)。下表为目前最新的各类银行业金融机构存款准备金水平。 法定存款准备金率是指中央银行规定的,存款性…

有没有不含亚硫酸盐的葡萄酒?

没有完全不含亚硫酸盐的葡萄酒,有机葡萄酒和生物动力葡萄酒中也会含有少量天然 亚硫酸盐。因为它是在发酵过程中产生的一种化合物,所以不可能酿造无亚硫酸盐的葡萄酒。 在大多数葡萄酒国家都有葡萄酒法律规定,如果葡萄酒超过特定的亚硫酸盐水…

Node.js 事件循环:定时任务、延迟任务和 I/O 事件的艺术

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

使用 watch+$nextTick 解决Vue引入组件无法使用问题

问题描述: 很多时候我们都需要使用第三方组件库,比如Element-UI,Swiper 等等。 如果我们想要在这些结构中传入自己从服务器请求中获取的数据就会出现无法显示的问题。 比如我们在下面的Swiper例子中,我们需要new Swiper 才能让…

WordPress自动采集伪原创发布工具

在当今数字化时代,随着信息爆炸式增长,网站内容的更新速度飞快。对于拥有WordPress网站的用户而言,如何轻松而又快速地批量采集伪原创内容成为一项具有挑战性的任务。本文将专心分享一些方法和技巧,帮助WordPress用户实现批量采集…

python学习过程中一些问题记录总结

工作机器上安装了 两个环境 使用anaconda3 时配置仓库地址不能 拉取到 cv2 DBUtils 使用python2 时 版本低,拉取不到 解决办法,python2不支持下载最新版本的,需要指定下载一个老的版本即可,下个1.3的就OK了 pip install DBU…

【随笔】OpenFlow概述

SDN之前的网络结构 硬件 操作系统 网络功能(交换机、路由器、防火墙、VPN、NAT、OSPF、BGP、Traffic Engineering) 北向是SDN应用 SDN控制器 底层是SDN数据面(通用硬件) openflow OPEN NETWORKING FOUNDATION 支持开放的SDN平台,一直使用的是openflow协议。 op…

Vue 双向数据绑定

之前通过v-bind来完成的数据绑定&#xff0c;属性值和表达式进行绑定&#xff0c;表达式的值发生变化了属性值也跟着发生变化。 单向数据绑定&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>首页</titl…

rss服务搭建记录

layout: post title: RSS subtitle: vps搭建RSS服务 date: 2023-11-27 author: Sprint#51264 header-img: img/post-bg-universe.jpg catalog: true tags: - 折腾 文章目录 引言RSShub-dockerRSS-radarFreshrssFluent reader获取fever api配置Fluent Reader同步 结语 引言 一个…

ArrayList源码全面解析

一、概述 ArrayList 是 java 集合框架中比较常用的数据结构,继承自 AbstractList&#xff0c;实现了 List 接口。底层采用数组来实现。ArrayList 实现了java.io.Serializable接口&#xff0c;这意味着ArrayList支持序列化&#xff0c;能通过序列化去传输。 1.1、底层数据结构…

从 Rust 程序员的早期使用印象看 Go

Go vs Rust 我在过去的几周开始使用 Go。这是我第一次在一个较大且严肃的项目中使用 Go。之前我对 Go 有过很多了解&#xff0c;并且在研究 Rust 的特性时&#xff0c;曾经使用例子和玩具程序。然而&#xff0c;真正的编程经验是完全不同的。 我认为写写我对它的印象会很有趣。…