ChatGPT 是如何工作的:从预训练到 RLHF

        欢迎来到人工智能的未来:生成式人工智能!您是否想知道机器如何学习理解人类语言并做出相应的反应?让我们来看看ChatGPT ——OpenAI 开发的革命性语言模型。凭借其突破性的 GPT-3.5 架构,ChatGPT 席卷了世界,改变了我们与机器通信的方式,并为人机交互开辟了无限可能。随着 ChatGPT 的竞争对手 Google BARD 最近推出,由 PaLM 2 提供支持,这场竞赛已经正式开始。在本文中,我们将深入探讨 ChatGPT 的内部工作原理、它是如何工作的、涉及哪些不同步骤,例如预训练和 RLHF,以及探索它如何理解和生成类似人类的文本具有非凡的准确性。

探索 ChatGPT 的内部运作方式,并探索它如何以极高的准确性理解和生成类似人类的文本。准备好对 ChatGPT 背后的尖端技术感到惊讶,并发现这种强大的语言模型的无限潜力。

本文的主要目标是 -

  1. 讨论 ChatGPT 模型训练涉及的步骤。
  2. 了解使用人类反馈强化学习 (RLHF) 的优势。
  3. 了解人类如何参与改进 ChatGPT 等模型。

ChatGPT 训练概述

ChatGPT 是一种针对对话进行优化的大型语言模型(LLM)。它使用人类反馈强化学习 (RLHF) 构建在 GPT 3.5 之上。它接受了大量互联网数据的训练。

构建 ChatGPT 主要涉及 3 个步骤 -

  1. 预培训法学硕士
  2. LLM(SFT)的监督微调
  3. 根据人类反馈进行强化学习 (RLHF)

第一步是在无监督数据上预训练 LLM (GPT 3.5),以预测句子中的下一个单词。这使得法学硕士能够学习文本的表示和各种细微差别。

预培训法学硕士

语言模型是预测序列中下一个单词的统计模型。大型语言模型是经过数十亿单词训练的深度学习模型。训练数据来自多个网站,如 Reddit、StackOverflow、Wikipedia、Books、ArXiv、Github 等。

不同法学硕士中的数据集和参数。 ChatGPT 使用 GPT-3

我们可以看到上图并了解数据集的侧面和参数的数量。LLM 的预训练计算成本很高,因为它需要大量的硬件和庞大的数据集。在预训练结束时,我们将获得一个 LLM,可以在提示时预测句子中的下一个单词。例如,如果我们提示一个句子“玫瑰是红色的并且”,它可能会回复“紫罗兰是蓝色的”。下图描述了 GPT-3 在预训练结束时可以做什么:

预训练 GPT-3 模型。GPT-3 在预训练结束时可以做什么。

我们可以看到该模型正在尝试完成句子而不是回答它。但我们需要知道答案而不是下一句话。实现这一目标的下一步可能是什么?让我们在下一节中看到这一点。

 

LLM 的监督微调

那么,我们如何让LLM回答问题而不是预测下一个单词呢?模型的监督微调将帮助我们解决这个问题。我们可以告诉模型对给定提示的期望响应并对其进行微调。为此,我们可以创建一个包含多种类型问题的数据集来询问对话模型。人工贴标者可以提供适当的响应,使模型理解预期的输出。这个由成对的提示和响应组成的数据集称为演示数据。现在,让我们看看演示数据中的提示示例数据集及其响应。

LLM 的监督微调

根据人类反馈进行强化学习 (RLHF)

现在,我们将了解 RLHF。在了解RLHF之前,我们先来看看使用RLHF的好处。

为什么选择RLHF?

经过监督微调后,我们的模型应该针对给定的提示给出适当的响应,对吧?很不幸的是,不行!我们的模型可能仍然无法正确回答我们提出的每个问题。它可能仍然无法评估哪个响应是好的,哪个响应不是。它可能必须过度拟合演示数据。让我们看看如果它过度拟合数据会发生什么。

RLHF 在制作 GPT 等模型时有何重要意义

我没有给它任何链接、文章或句子来总结。但它只是总结了一些东西就给了我,这是我始料未及的。

可能出现的另一问题是其毒性。尽管答案可能是正确的,但在伦理和道德上可能并不正确。例如,请看下面的图片,您可能以前见过。当询问下载电影的网站时,它首先回答说这是不道德的,但在下一个提示中,我们可以轻松地操纵它,如图所示。

使用 RLHF 进行微调

好的,现在转到 ChatGPT 并尝试相同的示例。它给了你同样的结果吗?

为什么我们没有得到相同的答案?他们重新训练了整个网络吗?可能不会!RLHF 可能有一个小的微调。您可以参考这个美丽的要点了解更多原因。

奖励模式

RLHF 的第一步是训练奖励模型。该模型应该能够将提示的响应作为输入,并输出一个标量值来描述响应的好坏。为了让机器了解什么是好的响应,我们可以要求注释者用奖励来注释响应吗?一旦我们这样做,奖励不同注释者的反应可能会存在偏差。因此,模型可能无法学习如何奖励响应。相反,注释者可以对模型的响应进行排名,这将在很大程度上减少注释中的偏差。下图显示了来自 Anthropic 的 hh-rlhf 数据集的给定提示的选定响应和拒绝响应。

从 hh-rlhf 数据集选择响应

拒绝来自 hh-rlhf 数据集的响应

该模型尝试根据这些数据区分好的响应和坏的响应。

使用 RL 的奖励模型微调 LLM

现在,我们用近端策略近似(PPO)对法学硕士进行微调。在这种方法中,我们获得初始语言模型和微调迭代的当前迭代生成的响应的奖励。我们将当前语言模型与初始语言模型进行比较,以便语言模型不会偏离正确答案太多,同时生成整洁、干净且可读的输出。KL 散度用于比较两个模型,然后微调 LLM。

模型评估

在每个步骤结束时都会使用不同数量的参数不断评估模型。您可以在下图中看到这些方法及其各自的分数:

模型评估的不同方法

我们可以在上图中比较不同阶段的法学硕士与不同模型大小的表现。正如您所看到的,每个训练阶段后结果都有显着增加。

我们可以用人工智能 RLAIF 来替代 RLHF 中的人类。这显着降低了标签成本,并且有可能比 RLHF 表现更好。让我们在下一篇文章中讨论这个问题。

结论

在本文中,我们了解了如何训练 ChatGPT 等会话式 LLM。我们看到了训练 ChatGPT 的三个阶段,以及基于人类反馈的强化学习如何帮助模型提高其性能。我们也了解每个步骤的重要性,没有这些步骤,法学硕士将是不准确的。

 

经常问的问题

Q1. ChatGPT 如何获取其数据?

答:ChatGPT 从 Reddit、StackOverflow、Wikipedia、Books、ArXiv、Github 等多个网站获取数据。它使用这些数据来学习模式、语法和事实。

Q2。如何使用 ChatGPT 赚钱?

A. ChatGPT本身并不提供直接的赚钱方式。然而,个人或组织可以利用 ChatGPT 的功能来开发可以产生收入的应用程序或服务,例如博客、虚拟助理、客户支持机器人或内容生成工具。

Q3。ChatGPT 实际上是如何工作的?

答:ChatGPT 是一种针对对话而优化的大型语言模型。它接受提示作为输入并返回响应/答案。它使用GPT 3.5和人类反馈强化学习(RLHF)作为核心工作原理。

Q4。ChatGPT 使用什么算法?

答:ChatGPT 在幕后使用深度学习和强化学习。它分三个阶段开发:预训练大型语言模型(GPT 3.5)、监督微调、人类反馈强化学习(RLHF)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Java] 单例设计模式详解

模式定义:保证一个类只有一个实例,并且提供一个全局访问点,时一种创建型模式 使用场景:重量级的对象,不需要多个实例,如线程池,数据库连接池 单例设计模式的实现 1.懒汉模式:延迟…

066、故障处理之热点问题

为什么要解决热点 分布式架构中各个组件的理想状态:资源利用率相对均衡 形成写热点的原因 高频访问的小表SQL执行计划不合理具有顺序增长属性的索引扫描 数据组织模型 例如数据是序列递增,则有可能数据全部都集中一个region上 ,或者集中…

6、用restful风格写controller方法接口,单元测试依赖

编写单元测试,用restful风格写controller方法 单元测试依赖 实际项目开发中,单元测试与业务代码通常都会要求同步进行 TDD测试驱动开发:先编写单元测试,然后努力去开发业务代码去满足所有的单元测试用例。 添加SpringBoot的测试…

Springer独立出版 | 2023年触觉与虚拟现实国际会议(ICHVR 2023)

会议简介 Brief Introduction 2023年触觉与虚拟现实国际会议(ICHVR 2023) 会议时间:2023年12月15日-17日 召开地点:中国北海 大会官网:www.ichvr.org 2023年触觉与虚拟现实国际会议(ICHVR 2023)由东南大学、上海交通大学联合主办;…

Python-ElasticSearch客户端的封装(聚合查询、统计查询、全量数据)

目录 ES Python客户端介绍封装代码测试代码参考 ES Python客户端介绍 官方提供了两个客户端elasticsearch、elasticsearch-dsl pip install elasticsearchpip install elasticsearch-dsl第二个是对第一个的封装,类似ORM操作数据库,可以.filter、.group…

com.android.ide.common.signing.KeytoolException:

签名没问题但是提示Execution failed for task :app:packageDebug. > A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable > com.android.ide.common.signing.KeytoolException: Failed to read ke…

github gitlab 多用户多平台切换

一、背景 我需要用账号1 来登录并管理github 账号 我需要用账号2 来登录并管理gitlab 账号 二、设置账号 邮箱 设置账号1用户名与邮箱 git config --global user.name "miaojiang" git config --global user.email "187133163.com" 三、生成本地密钥…

pycharm配置arcpy环境

目录 1、安装ArcGIS软件2、安装PyCharm3、创建PyCharm项目4、验证ArcPy环境 在GIS开发中, ArcPy是不可或缺的重要组件,而PyCharm作为一款功能强大的Python IDE,为我们提供了更便捷、高效的开发环境。在本文中,我们将详细介绍如何…

sublime配置less的一些坑(1)

仅在sublime的Install Package安装保存less报错 在sublime的Install Package安装less 打开sublime软件,按住CtrlShiftP组合键,弹出的界面中选择Install Package 选中后enter或者回车。等会弹出一个弹窗,大致意思是说你已经成功安装了package control。如果你在此之前已经安装了…

【力扣每日一题】2023.7.31 重排链表

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 给我们一个链表,让我们按照题目要求原地修改重排链表。 那么具体怎么个重排法呢,题目给出了一串式子,其实就是把链表分为前后两段,然后在前半段的节…

企业工程管理系统源码之提高工程项目管理软件的效率

高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中,管理不畅以及不良的项目执行,往往会导致项目延期、成本上升、回款拖后,最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统,确保…

UML/SysML建模工具更新(2023.7)(1-5)有国产工具

DDD领域驱动设计批评文集 欢迎加入“软件方法建模师”群 《软件方法》各章合集 最近一段时间更新的工具有: 工具最新版本:Visual Paradigm 17.1 更新时间:2023年7月11日 工具简介 很用心的建模工具。支持编写用例规约。支持文本分析和C…

小目标检测(1)——大恒(DaHeng)相机操作与控制编程

文章目录 引言正文相关开发库的介绍编程准备配置引用头文件GalaxyIncludes.h配置lib文件 具体编程过程初始化和反初始化枚举设备开关设备 属性控制属性控制器种类 图像采集控制和图像处理采单帧回调采集图像处理流对象属性控制 获取设备事件获取掉线事件通知 样例程序分析补充&…

重生之我要学C++第五天

这篇文章主要内容是构造函数的初始化列表以及运算符重载在顺序表中的简单应用,运算符重载实现自定义类型的流插入流提取。希望对大家有所帮助,点赞收藏评论,支持一下吧! 目录 构造函数进阶理解 1.内置类型成员在参数列表中的定义 …

2023.07.29 驱动开发DAY6

通过epoll实现一个并发服务器 服务器 #include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/epoll.h…

脑电信号处理与特征提取——6.运用机器学习技术和脑电进行大脑解码(涂毅恒)

目录 六、运用机器学习技术和脑电进行大脑解码 6.1 前言 6.2 基于脑电数据的机器学习基础分析 6.3 基于脑电数据的机器学习进阶分析 6.4 代码解读 六、运用机器学习技术和脑电进行大脑解码 6.1 前言 6.2 基于脑电数据的机器学习基础分析 6.3 基于脑电数据的机器学习进阶分…

内网隧道代理技术(十五)之 Earthworm的使用(二级代理)

Earthworm的使用(二级代理) 本文紧接着上一篇文章继续讲解Earthworm工具的使用 (二级代理)正向连接 二级正向代理发生在如下的情况: 1、Web服务器在公网,黑客可以直接访问 2、B机器在内网,黑客不能直接访问 3、Web服务器可以访问内网机器B 4、内网机器B可以访问公司…

flask创建数据库连接池

flask创建数据库连接池 在Python中&#xff0c;您可以使用 Flask-SQLAlchemy 这个扩展来创建一个数据库连接池。Flask-SQLAlchemy 是一个用于 Flask 框架的 SQLAlchemy 操作封装&#xff0c;实现了 ORM(Object Relational Mapper)。ORM 主要用于将类与数据库中的表建立映射关系…

Spring Boot实践三 --数据库

一&#xff0c;使用JdbcTemplate访问MySQL数据库 1&#xff0c;确认本地已正确安装mysql 按【winr】快捷键打开运行&#xff1b;输入services.msc&#xff0c;点击【确定】&#xff1b;在打开的服务列表中查找mysql服务&#xff0c;如果没有mysql服务&#xff0c;说明本机没有…

【数据结构】实验十:哈夫曼编码

实验十 哈夫曼编码 一、实验目的与要求 1&#xff09;掌握树、森林与二叉树的转换&#xff1b; 2&#xff09;掌握哈夫曼树和哈夫曼编码算法的实现&#xff1b; 二、 实验内容 1. 请编程实现如图所示的树转化为二叉树。 2. 编程实现一个哈夫曼编码系统&#xff0c;系统功能…