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.rhkb.cn/news/443812.html

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

相关文章

Oracle 闪回版本(闪回表到指定SCN)

1.创建目录 mkdir /u01/app/oracle/flash 2.配置FRA alter system set db_recovery_file_dest_size15G; alter system set db_recovery_file_dest/u01/app/oracle/flash; 3.设置闪回参数--确保可以闪回48h内的数据库 alter system set db_flashback_retention_target2880; 4…

望繁信科技成功签约国显科技 流程挖掘助力制造业智造未来

近日,上海望繁信科技有限公司(简称“望繁信科技”)成功与深圳市国显科技有限公司(简称“国显科技”)达成合作。国显科技作为全球领先的TFT-LCD液晶显示及Mini/Micro LED显示产品供应商,致力于为笔记本、手机…

经典蓝牙BLE版本区别:【图文讲解】

蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙(BLE)。 1:蓝牙4.0 BLE 4.0版本是3.0版本的升级版本&a…

uniapp学习(004-1 组件 Part.2生命周期)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第31p-第p35的内容 文章目录 组件生命周期我们主要使用的三种生命周期setup(创建组件时执行)不可以操作dom节点…

Solidity优质例子(二)物流的增删改查智能合约(附truffle测试)

本合约非常适合新手学习,其包含了基本的增删改查功能以及各个方式的不同之处的总结,本套合约我也编写了truffle测试,学习truffle测试的小伙伴也有福了~ 该合约的主要作用是通过区块链技术实现物流追踪系统的透明化、自动化与防篡改特性&#…

乐歌E5,E6系列升降桌质量如何?2024推荐必买的四款热销型号

在数字化时代,电脑桌成为了我们日常生活和工作中不可或缺的一部分。然而,长时间坐在固定高度的电脑桌前,不仅会影响我们的工作效率,还可能对身体健康造成不良影响。因此,一款能够电动升降的电脑桌显得尤为重要。 乐歌…

RabbbitMQ篇(环境搭建 - 下载 安装)(持续更新迭代)

目录 一、Windows 1. 下载安装程序 2. 安装配置erlang 3. 安装rabbitMQ 4. 验证 二、Linux 1. 下载rpm包 1.1. 下载Erlang的rpm包 1.2. 下载socat的rpm包 1.3. 下载RabbitMQ的rpm包 2. 安装 2.1. 安装Erlang 2.2. 安装socat 2.3. 安装RabbitMQ 3. 启动RabbitMQ服…

【含开题报告+文档+PPT+源码】基于SpringBoot的社区家政服务预约系统设计与实现【包运行成功】

开题报告 社区家政服务是满足居民日常生活需求的重要组成部分,在现代社会中发挥着越来越重要的作用。随着城市化进程的不断加速,社区家政服务需求量呈现持续增长的趋势。然而,传统的家政服务模式存在一些问题,如预约流程繁琐、信…

【Python自动化测试】如何才能让用例自动运行完之后,生成一张直观可看易懂的测试报告呢?

小编使用的是unittest的一个扩展HTMLTestRunner 环境准备 使用之前,我们需要下载HTMLTestRunner.py文件 点击HTMLTestRunner后进入的是一个写满代码的网页,小编推荐操作:右键 --> 另存为,文件名称千万不要改 python3使用上述…

手撕AVL树

🔥个人主页🔥:鱼骨不是鱼翅-CSDN博客 🌈收录专栏🌈:高阶数据结构_鱼骨不是鱼翅的博客-CSDN博客 🔖 学如逆水行舟,不进则退 目录 一.AVL树的概念 二.平衡因子 三.平衡二叉树怎么调…

自动驾驶系列—从IMU到惯性定位算法:自动驾驶精准定位的幕后科技

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

哪些因素会影响移动电源自动测试的结果?-纳米软件

一、USB 连接线对移动电源测试结果的影响 在移动电源输出电压的测试中,辅助用的 USB 连接线对测试的影响常常被测试工程师所忽视。不同的 USB 线缆连接可能会导致移动电源输出电压的测试结果不同。这是因为不同的 USB 线缆在材质、长度、线径等方面存在差异&#xf…

C语言 | Leetcode C语言题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; struct hashTable {int key;int val;UT_hash_handle hh; };int fourSumCount(int* A, int ASize, int* B, int BSize, int* C, int CSize, int* D, int DSize) {struct hashTable* hashtable NULL;for (int i 0; i < ASize; i) {for (…

分辨率提高4到8倍!AI高清修复工具-upscayl使用方法!

你还在为手中的模糊照片苦恼吗&#xff1f; 是不是想把老照片或低分辨率的图片用于大尺寸印刷&#xff0c;却因为画质糟糕而无从下手&#xff1f; 现在你不再需要高深的Photoshop技能&#xff0c;也不用花费巨资找人修图。借助AI高清修复工具Upscayl&#xff0c;只需几秒钟&am…

C语言预处理详解(上)(30)

文章目录 前言一、预定义符号二、#define定义标识符三、#define定义宏四、#define的替换规则五、带有副作用的宏六、宏和函数的对比七、#undef的作用八、# 和#的作用##的作用 总结 前言 C语言的入门学习差不多要到尾声了&#xff0c;感觉如何呢~   前文说编译的第一步就是预编…

计算机网络:计算机网络概述 —— 描述计算机网络的参数

文章目录 数据量性能指标速率带宽数据传输速率 吞吐量时延分析时延问题 时延带宽积往返时间利用率丢包率丢包的情况 抖动可用性可靠性安全性 计算机网络是现代信息社会的基础设施&#xff0c;其性能和可靠性对各类应用至关重要。为了理解和优化计算机网络&#xff0c;我们需要深…

python习题2

1、输出一个年份&#xff0c;判断其是不是闰年 #输入一个年份&#xff0c;判断其是否是闰年 y eval(input()) if y%4 0 and y%100 ! 0:print("是") elif y%4000:print("是") else:print("不是") 2、模拟智能客服&#xff1a; 按1查询账户余额…

【linux】麒麟v10安装prometheus监控(ARM架构)

Prometheus介绍 Prometheus 是一个开源的系统监控和警报工具包&#xff0c;最初由 SoundCloud 开发&#xff0c;现在是一个独立的开源项目&#xff0c;并且是云原生计算基金会&#xff08;CNCF&#xff09;的一部分。Prometheus 以其强大的数据模型和灵活的查询语言&#xff0…

Jedis多线程环境报错:redis Could not get a resource from the pool 的主要原因及解决办法。

本篇文章主要讲解&#xff0c;Jedis多线程环境报错&#xff1a;redis Could not get a resource from the pool 的主要原因及解决办法。 作者&#xff1a;任聪聪 日期&#xff1a;2024年10月6日01:29:21 报错信息&#xff1a; 报文&#xff1a; redis Could not get a resou…

[SQL] 安装

一 Windows 1.1 下载 进入Mysql的官方网站,点击下载->找到社区版本 选择对应操作系统进行下载。 点击下载 选择直接下载即可 1.2 安装 选择Full安装&#xff1a; MySQL服务器、客户端程序和其他附加工具如果只需要服务端那就选择Server only即可 点击执行,等待组件下载完…