《ChatGPT是怎样炼成的》

news2024/11/25 6:52:22

ChatGPT 在全世界范围内风靡一时,我现在每天都会使用 ChatGPT 帮我回答几个问题,甚至有的时候在一天内我和它对话的时间比和正常人类对话还要多,因为它确实“法力无边,功能强大”。

ChatGPT 可以帮助我解读程序,做翻译,提供思路等等。

所以我就很好奇 ChatGPT 是怎么训练得到的,怀揣着好奇心,我带着大家一探究竟。

当然,ChatGPT 的论文还没有正式发布,想要完美解读它现在是不可能的,不过我们知道 ChatGPT 和 Open AI 的另一项工作 InstructGPT 息息相关。

这是 ChatGPT 官网上面的模型训练过程。

这是 InstructGPT 论文中的模型训练过程。

对比这两张图片,不能说一模一样,只能说完全一致。

所以我们就按照 InstructGPT 的论文讲一讲 ChatGPT 吧。

1. 学习文字接龙🐉

GPT (Generative Pre-trained Transformer) 模型就是在海量的文本数据上学习文字接龙,通过训练掌握基于前文内容生成后续文本的能力。这样的训练不需要人类标注数据(自监督学习),只需要给一段话的上文同时把下文遮住,将 GPT 模型的回答与语料中下文的内容做对比,进行优化。

在这里插入图片描述

如上图所示,我们输入“我爱”让 GPT 做文字接龙,绿色柱子的高低理解为输出概率的大小,GPT 的输出最有可能是“你”,当然也可能是“吃”或“玩”。

GPT 的输出通常是通过概率采样得到的。在生成文本时,模型根据前面的文本内容和当前的上下文,计算每个可能的输出单词的概率分布。然后,模型会根据这个概率分布对下一个单词进行采样,得到最终的输出单词。在采样的过程中,模型通常使用一种称为 “softmax” 的函数来转换概率分布,从而确保所有可能的输出单词的概率总和为1。

由于采样的过程是基于随机性的,因此即使提供相同的输入和上下文,模型生成的文本输出也可能会有所不同。使用概率采样可以产生更有趣、更有意思的文本输出。这就可以解释为什么 ChatGPT 对于相同的问题往往会有不一样的答案,当然,概率采样也可能会导致一些质量较低的输出,例如语法错误、重复和不相关的单词。

2. 人类老师的引导👮

只是让 GPT 自己做自监督的文字接龙是有局限性的,因为机器是没有感情的,因为 GPT 不知道什么样的答案是有效的,所以需要人类力量的介入,引导 GPT 生成有用的答案。

  1. 首先,我们从问题数据集(prompt dataset)中挑出一些问题。
  2. 让真正的人类(labeler)给出这些问题的正确答案。
  3. 这样就形成了有标签的数据集,这些数据用于微调 GPT-3.5,这个过程也称作 supervised fine-tuning (SFT)

3. 模仿人类老师的喜好📊

可是人类的力量也是有限的,我们不可能让人类老师给出所有问题的答案,但是我们可以给 GPT 生成的答案进行评分,这就相对轻松很多了。

  1. 比如,我们让刚刚训练好的 SFT 模型回答相同的问题四次,这样就产生了四个不同的答案 A、B、C、D 。
  2. 然后人工对这些答案进行评分或者说是评级(rank),比如 D > C > A = B 。
  3. 这样就又形成了一部分数据来训练 reward model(RM),从而训练出一个符合人类评价标准的 Reward 模型。
  4. 这样下次 GPT 生成答案就不需要人工评分了,直接把答案放到 Reward 模型中去就可以自动判断答案的好坏了。
  5. 如下图所示,对于相同问题的不同答案,Reward Model 学习到了在合理的答案上面打“高分”,在不合理的答案上打“低分”。

4. 强化学习💪

根据 Reward Model 的打分结果,继续优化 SFT 模型。

使用强化学习的技术调整 GPT 模型参数,使 GPT 生成的答案通过 Reward Model 可以得到最高的 Reward,重复这个过程,ChatGPT 就训练出来了。

5. RLHF👏

所以 ChatGPT 是一种通过 RLHF 训练得到的语言模型,Reinforcement Learning from Human Feedback (RLHF) 是一种基于人类反馈的强化学习方法,它通过与人类交互来获得任务的奖励信号,从而实现任务的学习。

RLHF 通过与人类交互来获得任务的奖励信号(Reward),并通过基于梯度的强化学习算法来优化策略,实现任务的学习。与传统的强化学习方法相比,RLHF不需要为任务定义奖励函数,因此更具有实际应用的价值。

6. 使用ChatGPT做个总结🐹

  1. ChatGPT是一种基于神经网络的自然语言处理模型,它可以生成类似于人类语言的对话,并被广泛用于聊天机器人、智能客服等应用领域。该模型使用了预训练的方式进行训练,可以自动学习语言的规则和模式,从而能够生成自然流畅的对话。
  2. ChatGPT在社会中产生了广泛的影响。首先,它为人工智能在自然语言处理领域的应用开辟了新的道路。它可以帮助人们更加便捷地获取信息、解决问题、进行娱乐等,进一步提高了人们的生活质量。其次,它也推动了人工智能技术的发展和普及,为人工智能技术在更多领域的应用提供了借鉴和参考。
  3. 未来,ChatGPT在技术上还有很大的发展空间。一方面,可以通过增加模型的深度和复杂度,来提高模型的精度和泛化能力。另一方面,可以通过结合其他技术,如图像识别、情感分析等,进一步提升模型的功能和性能。此外,ChatGPT也可以与其他技术结合,如语音识别、自然语言生成等,来实现更加人性化的交互方式,为人们提供更加便捷的服务和体验。
  4. 总之,ChatGPT是一种重要的自然语言处理技术,对社会产生了广泛的影响,未来也有着广阔的发展前景。它为人们提供了更加便捷、高效、智能化的服务和体验,有望在不久的将来成为人们日常生活中必不可少的一部分。同时,ChatGPT的发展也将推动人工智能技术的发展,为人们带来更多的福利和发展机会。

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

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

相关文章

2023爱分析·一体化HR SaaS市场厂商评估报告:北森

目录 1.研究范围定义 2. 一体化HR SaaS市场分析 3.厂商评估:北森 4.入选证书 1.研究范围定义 研究范围 伴随数字化转型走向深入,企业人力资源数字化也进入快速发展阶段,人力资源的价值也得到了重新审视和定义。政策层面,《…

jmeter学习笔记二(jmeter函数与后置处理器)

Jmeter重要的函数 ${__counter(,)} 计数器 ​ ${__counter(TRUE,)} 默认加1; TRUE,每个用户有自己的计数器;FALSE,使用全局计数器 ​ 计数器元件,可以设置起始值,间隔值,最大值。运行结果超过最大值时&a…

Spark Shuffle解析

1 Shuffle的核心要点 1.1 ShuffleMapStage与ResultStage ShuffleMapStage与ResultStage 在划分stage时,最后一个stage称为finalStage,它本质上是一个ResultStage对象,前面的所有stage被称为ShuffleMapStage。 ShuffleMapStage的结束伴随着…

16 Nacos服务端服务注册源码分析

Nacos服务端服务注册源码分析 服务端调用接口 我们已经知道客户端在注册服务的时候实际上是调用的NamingService.registerInstance这个方法来完成实例的注册,而且在最后我们也告诉了大家实际上从本质上讲服务注册就是调用的对应接口nacos/v1/ns/instance&#xff…

浅谈一下mysql8.0与5.7的字符集

修改字符集 修改步骤 在MySQL8.0版本之前,默认字符集为1atin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为ut8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL8.0开始,数据库的默认编码将改…

《强化学习导论》之6.5 Q-Learning

Q-Learning:Off-Policy TD Control强化学习的早期突破之一是开发了一种称为Q学习的非策略TD控制算法(Watkins,1989)。其最简单的形式,定义为(6.8)在这种情况下,学习的动作-值函数Q直接近似于最优动作-值函数&#xff0…

【C++PrimerPlus】第三章 处理数据

文章目录前言内容目录3.1 简单变量3.1.2 变量名3.1.2 整形3.1.3 整形short,int,long,long long3.1.4 无符号类型3.1.5 选择整形类型3.1.6 整形字面值3.1.7 C如何确定常量的类型3.1.8 char类型:字符和小整数3.1.9 bool类型3.2 const修饰符3.3浮点数3.3.1 书写浮点数3…

【存储】存储协议

存储协议SCSI协议SCSI协议和存储系统SCSI协议寻址方式iSCSI产生的原因--->基于IP网络的SCSIiSCSI启动器-->目标器模型iSCSI体系结构iSCSI和SCSI、TCP和IP的关系SAS协议为什么要发展SASSAS协议层次结构SAS特点SAS的可扩展性SAS与其他传输技术的比较FCFC协议结构FC拓扑结构…

vueCli实现一个自定义loader

生活只会欺负穷人,爱情也是 webpack 作为前端项目的打包工具,具有很好的学习价值。下面来学习下其中的 Loader Loader可以帮助webpack将不同类型的文件转换为webpack可识别的模块 webpack中Loader使用:https://www.webpackjs.com/loaders/…

用VAE生成图像

用VAE生成图像自编码器AE,auto-encoderVAE讲讲为什么是log_var为什么要用重参数化技巧用VAE生成图像变分自编码器是自编码器的改进版本,自编码器AE是一种无监督学习,但它无法产生新的内容,变分自编码器对其潜在空间进行拓展&#…

二、Redis安装配置(云服务器、vmware本地虚拟机)

一、自己购买服务器 自己购买阿里云、青牛云、腾讯云或华为云服务器, 自带CentoOS或者Ubuntu环境,直接开干 二、Vmware本地虚拟机安装 1、VMWare虚拟机的安装,不讲解,默认懂 2、如何查看自己的linux是32位还是64位 getconf L…

云HIS医院管理系统源码 云HIS系统源码 SaaS模式 springboot开发

▶ SaaS运维平台多医院入驻强大的电子病历模板 ,有源码,有演示! ▶ 云HIS系统技术框架: 总体框架: SaaS应用,全浏览器访问 前后端分离,多服务协同 服务可拆分,功能易扩展 ▶ 云HI…

初阶C语言——实用调试技巧【详解】

文章目录1. 什么是bug?2. 调试是什么?有多重要?2.1 调试是什么?2.2 调试的基本步骤2.3 Debug和Release的介绍3.学会使用快捷键4.调试的时候查看程序当前信息4.1 查看临时变量的值4.2 查看内存信息4.3 查看调用堆栈4.4 查看汇编信息…

混凝土搅拌站远程监控解决方案

一、项目背景 随着大规模的基础设施建设,对混凝土搅拌设备的需求量日益增加,对其技术指标的要求也日益提高,其技术性能将直接关系到工程的质量和使用寿命。而混凝土生产的质量是在生产过程中形成的,而非最终强度的检测。混凝土生…

10 面向接口编程(上):一切皆服务,服务基于协议

按照面向接口编程的理念,将每个模块看成是一个服务,服务的具体实现我们其实并不关心,我们关心的是服务提供的能力,即接口协议。那么框架主体真正要做的事情是什么呢?其实是:定义好每个模块服务的接口协议&a…

That引导的宾语从句

That引导的宾语从句指的是that为宾语从句的引导词。宾语从句:置于动词、介词等词性后面,在句子中起宾语作用的从句叫做宾语从句。宾语从句分为三类:动词的宾语从句,介词的宾语从句和形容词的宾语从句。 一、that引导的宾语从句(在…

《数据万象带你玩转视图场景》第一期:avif图片压缩详解

前言随着硬件的发展,不管是手机还是专业摄像设备拍出的图片随便可能就有几M,甚至几十M,并且现在我们处于随处可及的信息海洋里,海量的图片带来了存储问题、带宽问题、加载时延问题等等。对图片信息进行有效的压缩处理无疑会极大的…

ARM架构Ubuntu下使用Docker安装MySQL

大家好,我是中国码农摘星人。 欢迎分享/收藏/赞/在看! 由于ARM架构的限制,许多软件还没有做到完全适配,CentOS、MySQL等软件安装频繁出错。于是决定做一栏相关软件环境安装的文章。 基础信息 Apple M1 ProUbuntu 22.04 运行 使…

Python 如何安装 MySQLdb ?

人生苦短 我用python Python 标准数据库接口为 Python DB-API, Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库, 你可以选择适合你项目的数据库: GadFlymSQLMySQLPostgreSQLMicrosoft SQL Serve…

来 CSDN 三年,我写了一本Python书

大家好,我是朱小五。转眼间已经来 CSDN 3年了,其中给大家一共分享了252篇Python文章。 但这三年,最大的收获还是写了一本Python书! 在这个自动化时代,我们有很多重复无聊的工作要做。想想这些你不再需要一次又一次地做…