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 的出现为我们带来了机遇和挑战,我们需要正确认识和对待它,充分发挥其优势,同时积极应对其带来的挑战,推动人工智能技术的健康发展,为人类社会的进步做出贡献。

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

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

相关文章

国内经典多模态大模型工作1——Qwen-VL系列(Qwen-VL、Qwen2-VL解读)

Qwen-VL 论文标题:《Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond》 论文链接:https://arxiv.org/pdf/2308.12966.pdf 项目:https://github.com/QwenLM/Qwen-VL/tree/master 模…

DAMA数据管理知识体系(第13章 数据质量)

课本内容 13.1 引言 语境图 图13-1 语境关系图:数据质量业务驱动因素 1)提高组织数据价值和数据利用的机会。2)降低低质量数据导致的风险和成本。3)提高组织效率和生产力。4)保护和提高组织的声誉。 提机会、降成本、增…

3D看车如何实现?有哪些功能特点和优势?

3D看车是一种创新的汽车展示方式,它利用三维建模和虚拟现实技术,将汽车以更真实、更立体的形式呈现在消费者面前。 一、3D看车的实现方式 1、三维建模: 通过三维建模技术,按照1:1的比例还原汽车外观,包括车身线条、细…

yolov8/9/10/11模型在中医舌苔分类识别中的应用【代码+数据集+python环境+GUI系统】

yolov8、9、10、11模型在中医舌苔分类识别中的应用【代码数据集python环境GUI系统】 背景意义 目前随着人们生活水平的不断提高,对于中医主张的理念越来越认可,对中医的需求也越来越多。 传统中医的舌诊主要依赖于医生的肉眼观察,仅仅通过这…

大数据新视界 --大数据大厂之 GraphQL 在大数据查询中的创新应用:优化数据获取效率

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

《Programming from the Ground Up》阅读笔记:p181-p216

《Programming from the Ground Up》学习第10天,p181-p216总结,总计34页。 一、技术总结 第10章主要讲计算机是如何计算的,如十进制、二进制、八进制、十六进制以及浮点数和负数的表示。属于比较基础的内容,如果有一定基础&…

(Linux和数据库)1.Linux操作系统和常用命令

了解Linux操作系统介绍 除了办公和玩游戏之外不用Linux,其他地方都要使用Linux(it相关) iOS的本质是unix(unix是付费版本的操作系统) unix和Linux之间很相似 Linux文件系统和目录 bin目录--放工具使用的 操作Linux远程…

2023 CCPC哈尔滨 报告

比赛链接:Dashboard - 10.6组队训练赛-2023CCPC哈尔滨站 - Codeforceshttps://codeforces.com/group/w6iGs8kreW/contest/552949 做题数:3 题 三题都是队友写的。所以来补一下 B L J。 B题: B. Memory Little G used to be a participant …

计算机毕业设计 内蒙古旅游景点数据分析系统的设计与实现 Python毕业设计 Python毕业设计选题 Spark 大数据【附源码+安装调试】

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

Http 协议和 RPC 协议有什么区别?

Http 协议和 RPC 协议有什么区别? 三个层面来述说: 从功能特性来说: HTTP是一个属于应用层的超文本传输协议,是万维网数据通信的基础,主要服务在网页端和服务端的数据传输上。 RPC是一个远程过程调用协议&#xff0…

安装Unity3D并配置VisualStudio

安装Unity3D并配置VisualStudio 由于近期课程要求,需要在电脑上安装Unity3D并配置VisualStudio,所以顺便写了本篇博文 1.下载Unity Hub 首先我们找到Unity中文官网,下载Unity Hub,它可以帮助我们管理我们的Unity项目和版本&#…

c++11~c++20 thread_local

线程局部存储是指对象内存在线程开始后分配,线程结束时回收且每个线程有该对象自己的实例,简单地说,线程局部存储的对象都是独立各个线程的。实际上这并不是一个新鲜个概念,虽然C一直没因在语言层面支持它,但是很早之前…

处理Java内存溢出问题(java.lang.OutOfMemoryError):增加JVM堆内存与调优

处理Java内存溢出问题(java.lang.OutOfMemoryError):增加JVM堆内存与调优 在进行压力测试时,遇到java.lang.OutOfMemoryError: Java heap space错误或者nginx报错no live upstreams while connecting to upstream通常意味着应用的…

【斯坦福CS144】Lab4

一、实验目的 完成一个网络接口实现。 二、实验内容 完成一个网络接口实现,其大部分工作是:为每个下一跳IP地址查找(和缓存)以太网地址。而这种协议被称为地址解析协议ARP。 三、实验过程 在minnow目录下输入git merge origin/check4-startercode获…

DAMA数据管理知识体系(第15章 数据管理成熟度评估)

课本内容 15.1 引言 概要 能力成熟度评估(Capability Maturity Assessment,CMA)是一种基于能力成熟度模型(Capability Maturity Model,CMM)框架的能力提升方案,描述了数据管理能力初始状态发展到…

简易登录注册;测试类;postman测试;

项目是如何创建的,最简易的登陆注册功能是怎么实现的,数据库不能明文存放密码,密码经过了怎么样的处理存入数据库 前端使用nodejs18 后端项目需要等待maven加载完相关依赖,后端使用java17 1后端 1.1 创建项目所需要的数据库 内…

Sentinel最全笔记,详细使用步骤教程清单

一、Sentinel的基本功能 1、流量控制 流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意时间到来的请求往往是随机不可控的,…

Unity转Unreal5之从入门到精通 Spline(样条曲线)组件的使用

前言 Spline 组件 能编辑 样条曲线,定义一条路径,路径上的点可以通过距离起点的长度获取,因此可以实现 物体沿路径连续移动 的效果或者 物体沿路径分布 的效果。 今天我们就来实现一个简单的Spline样条曲线的Demo 实现一个沿路径运动的功能 1.新建一个基于 Actor 的蓝图…

ICE/TURN/STUN/Coturn服务器搭建

ICE 当我们想要实现在公网环境下的语音/视频通话功能时,就需要用到ICE交互式连接建立。ICE不是一种协议,整合了 STUN 和 TURN 两种协议(用于 NAT 穿透)的框架。 ICE的主要目标是解决NAT(网络地址转换)穿越…

[ C++ ] C++ 类和对象 -- 类的六个默认成员函数

目录 1.构造函数 2.析构函数 3.拷贝构造函数 4.赋值操作符重载 5.两个取地址操作符的重载 在C中当你创建一个空类,那这个空类是什么都没有吗?不是的,编译器会默认帮你生成六个成员函数 1.构造函数 构造函数是特殊的成员函数,…