Chatgpt 原理解构
一、背景知识
1. 自然语言处理的发展历程
自然语言处理在不同时期呈现出不同的特点和发展态势。萌芽期,艾伦・图灵在 1936 年提出 “图灵机” 概念,为计算机诞生奠定基础,1950 年他提出著名的 “图灵测试”,预见了计算机处理自然语言的潜力。1956 年,乔姆斯基的形式语言理论和香农的信息论模型为自然语言处理的发展铺平了道路,这一时期的研究成果为后续自然语言处理技术的发展提供了重要的理论基础。
发展期,自然语言处理融入人工智能研究领域,分为基于规则方法的符号派和采用概率方法的随机派两大阵营。这一时期,两种方法的研究都取得了长足的发展,如宾夕法尼亚大学研制成功的 TDAP 系统和布朗美国英语语料库的建立等。
低速的发展期,虽然自然语言处理的研究进入低谷,但仍取得了一些成果,如基于隐马尔可夫模型的统计方法在语音识别领域获得成功,话语分析也取得重大进展。
复苏融合期,90 年代中期以后,计算机速度和存储量大幅增加以及 Internet 商业化和网络技术发展,促进了自然语言处理研究的复苏与发展。2001 年神经语言模型出现,2008 年多任务学习、2013 年 Word 嵌入和 NLP 的神经网络、2014 年序列到序列模型、2015 年注意力机制和基于记忆的神经网络、2018 年预训练语言模型等不断推动自然语言处理技术的进步。
2. 大型语言模型的发展历程
大型语言模型的发展历程与自然语言处理紧密相关。早期阶段主要是基于规则的方法,处理少量数据。随着技术的发展,进入基于统计的阶段,如 N-Gram 等模型,但容易出现数据稀疏等问题。2017 年 Transformer 发布后,大语言模型进入基于神经网络的阶段,参数量增长迅速。以 GPT-3 为例,2020 年发布的 GPT-3 算力消耗费用达到千万美元级别,预训练数据量达到 45TB,实际参数量达到 1750 亿。大语言模型通过数据信息容量巨大、底层模型结构优秀、模型训练方法完善等关键突破,实现了性能的大幅提升。未来,大语言模型有望呈现超线性发展趋势,并形成全新产业形态,为各个行业带来巨大的变革和机遇。
二、ChatGPT 同类产品
1. BlenderBot3
BlenderBot3 是 Meta 推出的聊天机器人,具有以下特点和优势。首先,它可以与人交互并接收反馈以提高对话能力。基于 Meta AI 公开提供的 OPT-175B 语言模型构建,规模是其前身 BlenderBot 2 的 58 倍。融合了人格、共情和知识等对话技能,并通过利用长期记忆和搜索互联网来进行有意义的对话。
在与 ChatGPT 的对比方面,BlenderBot3 有一些独特之处。它的模型所有部分,包括代码、数据集等全部公开,可供所有人使用。用户在与 BlenderBot3 聊天时,可以点击机器人给出的回答,查看这句话在互联网上的出处。然而,BlenderBot3 也存在一些问题,例如在回答问题时可能会出现错误信息或负面言论。
2. LaMDA
LaMDA 是谷歌推出的一系列专门用于对话的基于 Transformer 的模型。它具有 1370 亿个参数,并使用 1.56 万亿个公开对话数据进行训练。
LaMDA 的运行方式是通过微调采用 Transformer 架构的专用对话神经语言模型而构建,可以利用外部知识源展开对话。在对话时,LaMDA 生成器会对面向的上下文生成几个候选回应,然后 LaMDA 分类器预测每个候选回应的质量和安全分数,最后根据这两项数据的排名选出最佳回应。
在谷歌产品中的应用方面,LaMDA 被用于提高谷歌的对话服务质量,为用户提供更安全、更高质量的对话体验。与 ChatGPT 相比,LaMDA 在参数规模上具有一定优势,但在实际应用中,两者各有特点。
3. sparow
Sparrow 是由 DeepMind 开发的聊天机器人,具有自动执行重复性任务和流程、学习和适应能力强、提供多种定制选项和集成等功能。
Sparrow 的功能特色包括:旨在正确回答用户的问题,同时减少不安全和不适当回答的风险。通过使用人类判断进行训练,使其比基线预训练语言模型更有帮助、更正确和更无害。在自然语言处理领域,Sparrow 为解决语言模型产生不正确、带偏见或潜在有害输出的问题提供了一种新的思路和方法。与 ChatGPT 相比,Sparrow 在回答问题的准确性和安全性方面可能更具优势,但在语言的丰富性和创造性方面可能还有待提高。
三、ChatGPT 的工作原理
1. 预训练与提示学习阶段
ChatGPT 在大规模文本数据上进行预训练,学习语言的通用表示。其预训练数据来源广泛,包括互联网上的各种文本内容,如新闻、博客、小说等。据统计,ChatGPT 的预训练数据量达到了数百 GB 甚至更多。通过对如此庞大的数据进行学习,ChatGPT 能够掌握语言的语法、语义和常见的表达方式。
在提示学习阶段,ChatGPT 根据特定任务进行调整,以更好地适应不同的对话场景。例如,当用户提出一个问题时,ChatGPT 会根据问题的关键词和上下文,利用预训练阶段学到的知识,生成一个初步的回答。然后,通过不断调整回答的内容和形式,使其更符合用户的需求。
2. 结果评价与奖励建模阶段
在这个阶段,ChatGPT 收集相同上文下根据回复质量进行排序的数据。具体来说,随机抽取一大批 Prompt,使用第一阶段微调模型,产生多个不同的回答。然后,标注人员对这些回答进行排序,形成训练数据对。
接下来,训练奖励模型。奖励模型的作用是预测标注者更喜欢哪个输出。通过使用 pairwise loss 来训练奖励模型,可以给出相对精确的奖励值。这一步使得 ChatGPT 从命令驱动转向了意图驱动,引导 ChatGPT 输出符合人类预期的内容。
例如,对于一个问题 “今天天气怎么样?”,ChatGPT 可能会生成多个回答,如 “今天天气很好。”“今天天气晴朗。”“今天天气不错。” 标注人员会根据回答的质量进行排序,奖励模型会学习这些排序结果,从而能够预测出在不同情况下,标注者更倾向于哪个回答。
3. 强化学习与自我进化阶段
在这个阶段,ChatGPT 使用 PPO 强化学习策略微调模型。具体步骤如下:
首先,利用上段训练好的奖励模型,靠奖励打分来更新预训练模型参数。在数据集中随机抽取问题,使用 PPO 模型生成回答,并用上一阶段训练好的 RM 模型给出质量分数。
然后,将回报分数依次传递,从而产生策略梯度,通过强化学习的方式来更新 PPO 模型参数。整个过程迭代数次直到模型收敛。
强化学习算法可以简单理解为通过调整模型参数,使模型得到最大的奖励(reward),最大奖励意味着此时的回复最符合人工的选择取向。而对于 PPO,它是一种新型的强化学习策略优化算法,具有实现简单、易于理解、性能稳定、能同时处理离散 / 连续动作空间问题、利于大规模训练等优势。
通过不断地进行强化学习和自我进化,ChatGPT 能够不断优化回复质量,提高对话的准确性和流畅性,更好地满足用户的需求。
四、算法细节
1. 标注数据
ChatGPT 的训练数据标注工作至关重要。据了解,其训练数据由标注师分别扮演用户和聊天机器人产生人工精标的多轮对话数据,以及根据回复质量排序的数据等。
数据标注的过程复杂且工作量庞大。标注师需要对大量的文本数据进行精细处理,例如对不同类型的回复进行质量排序。这就如同为一座巨大的知识宝库进行分类整理,以便让 ChatGPT 能够更好地从中学习和提取信息。
有研究指出,为了训练 ChatGPT,OpenAI 的合作伙伴 Sama 雇佣了肯尼亚、乌干达和印度的外包员工。这些标注员每 9 个小时要阅读和标注 150 - 200 段文字,段落长度从 100 个单词到 1000 多个单词不等。薪酬方面,Sama 为 OpenAI 雇佣的数据标签员工支付的时薪在 1.32 美元 - 2 美元之间,具体取决于资历和表现。
2. 建模思路
ChatGPT 基于 Transformer 架构,采用 “预训练 + 微调” 的方法,通过自监督学习、遮蔽语言模型和强化学习等技术,生成准确、连贯和有意义的对话内容。
Transformer 架构是一种仅依赖于注意力机制而不使用循环或卷积的简单模型,它在性能方面表现出色,具有更好的并行度和更短的训练时间。在预训练阶段,ChatGPT 通过自监督学习在大规模文本数据上学习语言的通用表示,掌握语言的语法、语义和常见表达方式。遮蔽语言模型则通过随机遮蔽部分文本,让模型预测被遮蔽的部分,进一步提高模型对语言的理解能力。
在微调阶段,ChatGPT 根据特定任务进行调整,以更好地适应不同的对话场景。强化学习则通过奖励模型和策略优化算法,不断优化回复质量,使模型输出更符合人类预期。
3. 存在的问题
尽管 ChatGPT 取得了巨大的成功,但它仍然存在一些问题。
首先,简单逻辑问题错误依旧明显。在处理一些需要逻辑推理的问题时,ChatGPT 可能会给出错误的答案。例如,在数学问题上,根据亚利桑那州立大学副教授的一项研究,ChatGPT 的准确率低于 60%。
其次,有时会给出看似合理但不正确或荒谬的答案。这是因为 ChatGPT 是基于大量数据进行训练的,它可能会受到数据中的偏见和错误信息的影响。
此外,ChatGPT 的部分回复废话较多、句式固定。在回答问题时,它可能会重复之前提出的观点,或者使用一些固定的句式,这可能会让人类读者感到不和谐。
抵抗不安全的 prompt 能力较差也是一个问题。如果用户输入一些不安全或不适当的提示,ChatGPT 可能会给出不恰当的回复,这可能会带来一定的风险。
五、关于 chatpgt 的思考
ChatGPT 的出现无疑给社会带来了巨大的冲击和变革。从社会层面来看,它极大地提高了信息处理和交流的效率。例如,在客服领域,ChatGPT 可以快速响应客户的问题,为企业节省大量人力成本。据统计,一些企业在引入 ChatGPT 后,客服响应时间缩短了 50% 以上,客户满意度也有显著提升。同时,它也为人们的日常生活提供了便利,如帮助人们撰写邮件、文案等,节省了时间和精力。然而,它也带来了一些挑战,如虚假信息的传播和就业岗位的调整。
在教育领域,ChatGPT 既带来了机遇也带来了挑战。一方面,它可以作为学生的学习助手,提供在线学习资源,支持学生自主学习,改善教学方式。例如,学生可以通过与 ChatGPT 对话,获取知识和解答疑惑,提高学习效率。但另一方面,它也可能导致学生作弊行为的增加,影响学生的独立思考能力。因此,教育工作者需要引导学生正确使用 ChatGPT,培养学生的批判性思维和创新能力。
在科技领域,ChatGPT 推动了自然语言处理技术的发展,为人工智能的进一步发展奠定了基础。未来,ChatGPT 有望在提升语境理解能力、生成文本的多样性和创造性、增强对话系统的实时学习与适应能力、提高跨语言和文化交流能力、提升计算效率及环保性、增强个性化和定制能力等方面取得突破。例如,通过改进算法和模型结构,让 ChatGPT 具备更人性化的推理能力,包括因果关系推理、逻辑演绎能力,更好地把握长对话的上下文、对复杂情境的准确识别和更精细化的情绪感知。
然而,ChatGPT 的发展也面临着一些挑战。首先,数据隐私和安全问题是一个重要的挑战。由于 ChatGPT 需要大量的数据进行训练,这些数据可能包含个人隐私信息,如果处理不当,可能会导致数据泄露和隐私侵犯。其次,伦理道德问题也需要引起关注。例如,ChatGPT 可能会被用于不道德的目的,如传播虚假信息、进行网络攻击等。此外,ChatGPT 的发展也可能加剧社会不平等,因为只有具备一定技术和资源的人才能充分利用它的优势。
为了应对这些挑战,我们需要采取一系列措施。在技术方面,加强数据隐私和安全保护技术的研发,确保用户数据的安全。在伦理道德方面,制定相关的规范和准则,引导 ChatGPT 的合理使用。在教育方面,加强对学生的数字素养教育,培养学生正确使用人工智能技术的能力。在社会层面,加强对人工智能技术的监管,确保其发展符合社会的利益和价值观。
总之,ChatGPT 的出现为我们带来了机遇和挑战,我们需要正确认识和对待它,充分发挥其优势,同时积极应对其带来的挑战,推动人工智能技术的健康发展,为人类社会的进步做出贡献。
相关文章:

Chatgpt 原理解构
一、背景知识 1. 自然语言处理的发展历程 自然语言处理在不同时期呈现出不同的特点和发展态势。萌芽期,艾伦・图灵在 1936 年提出 “图灵机” 概念,为计算机诞生奠定基础,1950 年他提出著名的 “图灵测试”,预见了计算机处理自然…...

【每日刷题】Day135
【每日刷题】Day135 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. LCR 011. 连续数组 - 力扣(LeetCode) 2. 【模板】二维前缀和_牛客题霸_牛客…...

Linux运维01:VMware创建虚拟机
视频链接:05.新建VM虚拟机_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1nW411L7xm/?p14&spm_id_from333.880.my_history.page.click&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.点击“创建虚拟机” 2.选择“自定义(高级࿰…...

服务器平均响应时间和数据包大小关系大吗?
服务器的平均响应时间与数据包大小有一定的关系,但这只是影响响应时间的众多因素之一。具体来说,数据包大小对服务器响应时间的影响可以从以下几个方面来理解: 1. 数据传输时间 影响: 较大的数据包需要更多的时间在网络上传输,因此…...

Vue入门-指令学习-v-show和v-if
v-show: 作用:控制元素的显示隐藏 语法:v-show"表达式" 表达式值true显示,false隐藏 v-if 作用:控制元素的显示隐藏(条件渲染) 语法: vif"表达式" 表达式tr…...

nacos多数据源插件介绍以及使用
概述 在微服务架构中,服务配置的集中管理和动态调整是至关重要的。Nacos 提供了配置管理和服务发现的功能,其中配置管理支持动态数据源的切换,增强了其在复杂环境中的适用性。默认情况下,Nacos 支持 MySQL 和Derby,但…...

国庆档不太热,影视股“凉”了?
今年国庆档票房止步21亿元,属实有点差强人意。 根据国家电影局统计,2024年国庆档(2024年10月1日至7日)全国电影票房为21.04亿元,观影人次为5209万,总票房成绩、观影总人次同比均有所下滑。 作为传统观影高…...

QtDesign预览的效果与程序运行的结果不一致的解决方法
存在的问题 使用Qt designer软件设计出来的界面,与转换成python程序运行出来的结果不一致,具体看下图 Qt designer预览结果 程序运行出来的结果 原因分析 我自己的电脑是2560*1600分辨率的屏幕,采用的是200%的缩放比例,出现这种…...

模运算和快速幂
文章目录 模运算快速幂 模运算 模运算是大数运算中的常用操作。如果一个数太大,无法直接输出,或者不需要直接输出,则可以对它取模,缩小数值再输出。取模可以防止溢出,这是常见的操作。 取模运算一般要求a和m的符号一…...

【机器学习】——神经网络与深度学习:从基础到应用
文章目录 神经网络基础什么是神经网络?神经网络的基本结构激活函数 深度学习概述什么是深度学习?常见的深度学习算法 深度学习的工作流程深度学习的实际应用结论 引言 近年来,神经网络和深度学习逐渐成为人工智能的核心驱动力。这类模型模仿人…...

Unity各个操作功能+基本游戏物体创建与编辑+Unity场景概念及文件导入导出
各个操作功能 部分功能 几种操作游戏物体的方式: Center:有游戏物体父子关系的时候,中心点位置 Global/Local:世界坐标系方向/自身坐标系方向 :调试/暂停/下一帧 快捷键 1.Alt鼠标左键:可以实现巡游角度查看场景 2.鼠标滚轮…...

QT入门教程攻略 QT入门游戏设计:贪吃蛇实现 QT全攻略心得总结
Qt游戏设计:贪吃蛇 游戏简介 贪吃蛇是一款经典的休闲益智类游戏,玩家通过控制蛇的移动来吃掉地图上的食物,使蛇的身体变长。随着游戏的进行,蛇的移动速度会逐渐加快,难度也随之增加。当蛇撞到墙壁或自己的身体时&…...

Linux No space left on device分析和解决
报错解释: "No space left on device" 错误表示你的Linux设备(通常是磁盘分区)上没有剩余空间了。这可能是因为磁盘已满,或者inode已满。磁盘空间是指磁盘上的实际空间,而inode是用来存储文件元数据的数据结…...

Qt实现Halcon窗口显示当前图片坐标
一、前言 Halcon加载图片的窗口,不仅能放大和缩小图片,还可以按住Ctrl键显示鼠标下的灰度值,这种方式很方便我们分析缺陷的灰度和对比度。 二、实现方式 ① 创建显示坐标和灰度的widget窗口 下图的是widget部件,使用了4个label控…...

构建宠物咖啡馆:SpringBoot框架的实现策略
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理基于Spring Boot的宠物咖啡馆平台的设计与…...

Qt开发环境的搭建
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Qt开发环境的搭建 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. Qt开发工具概述 Qt…...

docker-compose查看容器日志和实时查看日志
要查看 docker-compose up 过程中容器启动的错误日志,可以使用以下方法: ### 1. **使用 docker-compose logs 命令** 1. 在终端中进入包含 docker-compose.yml 文件的目录。 2. 运行以下命令来查看所有容器的日志: bash docker-compose…...

MVC、MVP和MVVM之间的区别
MVC(Model-View-Controller)隔开业务和UI(一对一) 角色划分: Model:负责处理数据和业务逻辑,通常包括数据的存储、检索和更新等操作。 View:负责展示用户界面,接收用户输…...

uni-app 打包成app时 限制web-view大小
今天对接一个uni-app的app 内置对方h5 web-view的形式 需要对方在web-view顶部加点东西 对方打的app的web-view始终是全屏的状态,对方表示做不到我要的效果 emmmmmm。。。。。。 于是乎 自己搭了个demo 本地h5跑起来审查了下代码,发现web-view是给绝对定位了 于是乎 我想外层…...

智能指针(2)
目录 答题格式: 几个易错点 可能问法四: 问题分析: 问题解答: 上回文说到,weak_ptr的功能和区别,并且进行了分析,我们接着进行解答。 答题格式: int main() { std::we…...

[含文档+PPT+源码等]精品基于Nodejs实现的家教服务小程序的设计与实现
基于Node.js实现的家教服务小程序的设计与实现背景,主要源于以下几个方面: 一、家教市场的现状与需求 随着教育竞争的日益激烈,家庭对子女教育质量的重视程度不断提升,家教服务已成为许多家庭不可或缺的一部分。然而,…...

electron打包报错-winCodeSign无法下载
electron打包报错-winCodeSign下载问题 问题描述 downloaded urlhttps://registry.npmmirror.com/-/binary/electron-builder-binaries/winCodeSign-2.6.0/winCodeSign-2.6.0.7z duration1.577s⨯ cannot execute causeexit status 2outerrorOutERROR: Cannot create s…...

给Windows系统设置代理的操作方法
一、什么是代理 网络代理是一种特殊的网络服务,允许一个网络终端通过这个服务与另一个网络终端进行非直接的连接,而提供代理服务的电脑系统或其它类型的网络终端被称为代理服务器。 代理服务器是网络信息的中转站,代理服务器就像是一个很大的…...

高质量带货短视频素材来源推荐
在抖音带货时,寻找高质量视频素材至关重要。今天,我为大家分享五个可以下载高清无水印带货短视频素材的网站,帮助你轻松获取灵感和素材! 蛙学网 蛙学网作为国内领先的短视频素材平台,提供多种类的带货短视频素材。无论…...

torchvision.transforms.Resize()的用法
今天我在使用torchvision.transforms.Resize()的时候发现,一般Resize中放的是size或者是(size,size)这样的二元数。 这两个里面,torchvision.transforms.Resize((size,size)),大家都很清楚,会将图像的h和w大小都变成size。 但是…...

简单认识 redis -数据类型命令
一.Redis 键(key) 不能存在相同名称的key //SET KEY_NAME value 设置一个键 127.0.0.1:6379> set runoobkey redis OK 127.0.0.1:6379> get runoobkey redis "redis" //DEL KEY_NAME 删除键 127.0.0.1:6379> DEL redis (integer) 0 127.0.0.1:6379>…...

Python 语言学习——应用1.2 数字图像处理(第二节,变换)
目录 1.基础知识 1.图像几何变换概念 2.图像几何变换方式 3.插值运算 4.几何变换步骤 2.各类变换 1.位置变换 2.形状变换 3.代数运算 3.实战演练 1.基础知识 1.图像几何变换概念 在图像处理过程中,为了观测需要,常常需要对 图像进行几何变换&am…...

【QT Quick】页面布局:手动定位与坐标系转换
在这篇教程中,我们将详细介绍在 QT Quick 中如何手动定位元素以及坐标系转换的概念和应用。手动定位不仅仅是指定 x、y 坐标,更涉及坐标系的管理。我们会从最基本的手动定位开始,逐步扩展到更复杂的坐标系转换操作。 坐标系 默认坐标系&…...

uniapp自定义导航,全端兼容
我们在用uniapp 开发应用的时候,有的页面需要自定义导航, 1.如果普通的直接使用uni 扩展柜组件的 uni-nav-bar 也基本够用, 2.如果稍微带点自定义的这个值无法支持的,特别在小程序端,胶囊是会压住右边的按钮的 自定…...

[论文阅读] DVQA: Understanding Data Visualizations via Question Answering
原文链接:http://arxiv.org/abs/1801.08163 启发:没太读懂这篇论文,暂时能理解的就是本文提出了一个专门针对条形图问答的数据集DVQA以及一个端到端模型SANDY,模型有两个版本,Oracle和OCR。主要解决的问题是固定词表无…...