简单理解 ChatGPT 和模型训练

news2024/11/17 15:55:24

介绍

        这些令人着迷的对话机器人使用自然语言理解来理解输入。NLU 是自然语言处理的一个子集,使机器能够理解自然语言(文本/音频)NLU 是大多数 NLP 应用程序(例如机器翻译、语音识别、构建聊天机器人等)中的关键组件。NLU 的基础是语言模型。

在本文中,我们将讨论 Open AI、GPT 及其变体的最先进语言模型,以及它如何导致 ChatGPT 的突破。本文涵盖的一些要点包括:

  • 了解 ChatGPT 及其模型训练流程。
  • 了解 GPT 架构的简史 - GPT 1、GPT 2、GPT 3 和 InstructGPT。
  • 深入理解人类反馈强化学习(RHLF)。

GPT家族概述

最先进的语言模型架构是 Transformer。变压器的工作原理不亚于魔法。OpenAI 提出了这样一种 Transformer,即生成式预训练 Transformer 模型,俗称 GPT。

GPT是以自我监督的方式开发的。该模型在大量数据集上进行训练,以预测序列中的下一个单词。这称为休闲语言建模。然后,该语言模型在下游任务的监督数据集上进行微调。

GPT家族

 

OpenAI 发布了三个不同版本的 GPT,即 GPT-1、GPT-2 和 GPT-3,以生成类似人类的对话。3 个版本的 GPT 大小不同。每个新版本都是通过扩大数据和参数来进行训练的。

指导GPT

 

GPT-3 被称为自回归模型,经过训练只能通过查看过去的值来进行预测。GPT-3 可用于开发大型应用程序,例如搜索引擎、内容创建等等。但为什么GPT-3没能实现类人对话呢?让我们来看看吧。

为什么要指导GPT?

GPT-3 失败有两个主要原因。

GPT-3 的问题之一是模型输出与用户指令/提示不一致。简而言之,GPT-3 无法生成用户偏好的响应。

例如,给出提示“用几句话向 6 岁的孩子解释登月”,GPT-3 会生成如下图所示的不需要的响应。这种反应背后的主要原因是模型被训练来预测句子中的下一个单词。GPT-3 并未经过训练来生成人类偏好的反应。

指导GPT

 

另一个问题是,它可能会生成不安全和有害的评论,因为它无法控制文本。

为了解决这两个问题(对齐和有害评论),训练了一种新的语言模型来应对这些挑战。我们将在下一节中了解更多相关信息。

 

什么是InstructGPT?

InstructGPT 是一种语言模型,可生成用户首选的响应,以实现安全通信。因此,它被称为符合以下指令的语言模型。它使用一种称为“人类反馈强化学习”(RLHF) 的学习算法来生成更安全的响应。

来自人类反馈的强化学习是一种深度强化学习技术,它考虑了人类的学习反馈。人类专家通过从模型生成的响应列表中提供最可能的人类响应来控制学习算法。通过这种方式,代理可以模仿安全且真实的响应。

但为什么要根据人类反馈进行强化学习呢?为什么不使用传统的强化学习系统呢?

传统的强化学习系统需要定义奖励函数,以了解智能体是否朝着正确的方向前进,并旨在最大化累积奖励。但是,在现代强化学习环境中将奖励函数传达给代理非常具有挑战性。因此,我们不是为代理定义奖励函数,而是训练代理根据人类反馈学习奖励函数。这样,代理就可以学习奖励函数并理解环境的复杂行为。

在下一节中,我们将了解人工智能领域最热门的话题之一——ChatGPT。

 

ChatGPT 简介

ChatGPT 现在是数据科学领域的热门话题。ChatGPT 只是一个模仿人类对话的聊天机器人。它可以回答向它提出的任何问题并记住之前发生的对话。例如,给出提示“决策树代码”,ChatGPT 会响应 Python 中决策树的实现,如下图所示。这就是 ChatGPT 的力量。最后我们会看到更多搞笑的例子。

聊天GPT

 

 

根据 Open AI 的说法,ChatGPT 是 InstructGPT 的兄弟模型,它经过训练可以遵循提示中的说明并提供详细的响应。它是 InstructGPT 的修改版本,在模型训练过程中进行了更改。它可以记住之前发生的对话,然后做出相应的响应。

现在让我们看看 Instruct GPT 和 ChatGPT 有何不同。尽管纳入了来自人类反馈的强化学习,但 InstructGPT 并未完全对齐,因此仍然是有毒的。因此,这导致了 ChatGPT 的突破,数据收集设置发生了变化。

 

 

ChatGPT 是如何构建的?

ChatGPT 的训练方式与 InstructGPT 类似,但数据收集有所不同。现在让我们了解每个阶段的工作原理。

在第一步中,我们在包含一对提示和相关答案的数据集上微调 GPT-3。这是一项有监督的微调任务。相关答案由专家贴标者提供。

下一步,我们将学习奖励函数,帮助智能体决定什么是对的,什么是错的,然后朝着目标的正确方向前进。奖励函数是通过人类反馈学习的,从而确保模型生成安全、真实的响应。

以下是奖励建模任务涉及的步骤列表 -

  1. 针对给定的提示生成多个响应
  2. 人工贴标员会比较模型生成的提示列表,并将其从最好到最差进行排名。
  3. 然后使用该数据来训练模型。

在最后一步中,我们将使用近端策略优化算法(PPO)学习针对奖励函数的最优策略。PPO 是 Open AI 引入的一类新型强化学习技术。PPO 背后的想法是通过避免太大的策略更新来稳定代理训练。

聊天GPT

 

模型训练涉及的步骤

来源:https://openai.com/blog/chatgpt/

 

ChatGPT 的搞笑提示

现在,我们将看看 ChatGPT 生成的一些搞笑提示。

提示1:

聊天GPT

 

提示2:

聊天GPT

 

提示3:

聊天GPT

 

 

结论

这将我们带到了文章的结尾。在本文中,我们讨论了 ChatGPT 以及如何使用深度强化学习技术对其进行训练。我们还介绍了 GPT 变体的简史以及它们如何导致 ChatGPT。

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

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

相关文章

【Docker】Docker安装Elasticsearch服务的正确方式

文章目录 1. 什么是Elasticsearch2. Docker安装Elasticsearch2.1 确定Elasticsearch的版本2.2. Docker安装Elasticsearch2.3. 给Elasticsearch安装中文分词器IKAnalyzer(可选的) Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套&…

无门槛使用GPT+Cloud Studio辅助编程完成Excel自动工资结算

目录 前言一、Cloud Studio产品介绍1.1 注册Cloud Studio 二、项目实验2.1 选择合适的开发环境2.2 实验项目介绍2.3 实验步骤 前言 chatgpt简单介绍: ChatGPT是一种基于GPT的自然语言处理模型,专门用于生成对话式文本。它是OpenAI于2021年发布的,在广泛…

移动端购物车模块设计

效果图 技术栈 vue3、vant4、element-plus 源码如下 页面布局 <template><!-- 地址 start--><AddressList class"address"/><!-- 地址 end--><!-- 购物车商品列表 start--><van-swipe-cell class"goods-cell" v-for…

DevOps系列文章之 java调用python脚本

在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件&#xff08;推荐&#xff09; 调用python脚本中的函数 简单介绍 官网地址 首页 | (jython.org) Jython项目提供了Java中的Python实现&#xff0c; 为Python提供了…

ffplay——QT项目移植

一、ffmpeg源码编译 参考&#xff1a; https://blog.csdn.net/sgzed/article/details/119850119 在生成时做了一些修改&#xff1a; ./configure --toolchainmsvc --enable-shared --enable-postproc --enable-gpl --prefixwindows 二、对文件做调整 ffplay只需要三个文件&…

超越极限!YOLOv5引入FasterNet主干网络,目标检测速度飙升

目录 一、背景介绍1.1 目标检测算法简介1.2 YOLOv5简介及发展历程 二、主干网络选择的重要性2.1 主干网络在目标检测中的作用2.2 YOLOv5使用的默认主干网络 三、FasterNet简介与原理解析3.1 FasterNet概述3.2 FasterNet的网络结构3.2.1 基础网络模块3.2.2 快速特征融合模块3.2.…

好用的备忘录app如何使用预设提醒功能?

备忘录的预设提醒功能是什么意思呢&#xff1f;就是在使用的过程中&#xff0c;提前预设好常用的提醒的时间&#xff0c;比如明天某个时间点、下周某个时间点等等&#xff0c;在需要设置提醒的时候&#xff0c;就可以直接使用。好用的备忘录app如何使用预设提醒功能&#xff1f…

什么是SCRUM认证体系 ?

Scrum认证是一个针对个人职业发展的认证体系&#xff0c;基础级认证主要面向Scrum的三个角色&#xff1a;Scrum Master、Scrum Product Owner 和 Developers。Scrum认证体系由Scrum官方机构—国际Scrum联盟&#xff08;ScrumAlliance.org&#xff09;制定和维护&#xff0c;Scr…

HCIP——重发布及路由策略实验

重发布及路由策略实验 一、实验拓扑二、实验要求三、实验思路三、实验步骤1、配置接口IP地址以及环回地址2、配置动态路由协议3、重发布4、更改接口类型5、配置路由策略 一、实验拓扑 二、实验要求 1、使用双点双向重发布2、所有路由器进行最佳选路3、存在备份路径&#xff0c…

第三章 ref与reactive

ref ref 变为响应式数据shallowRef 浅层响应式数据&#xff08;响应式到 .value为止&#xff09;isRef 判断是否为ref响应式数据triggerRef 强制触发依赖更新customRef 自定义ref函数 <template><div class"App">{{ stu }}<button click"chang…

Java并发编程第3讲——线程安全

目录 1 线程安全 1.1 谈谈你对线程安全的理解 1.2 Java中操作共享数据分类 1.2.1 不可变&#xff08;Immutable&#xff09; 1.2.2 绝对线程安全&#xff08;Thread-safe&#xff09; 1.2.3 相对线程安全&#xff08;Thread-compatible&#xff09; 1.2.4 线程兼容&…

外观模式——提供统一入口

1、简介 1.1、概述 在软件开发中&#xff0c;有时候为了完成一项较为复杂的功能&#xff0c;一个类需要和多个其他业务类交互&#xff0c;而这些需要交互的业务类经常会作为一个完整的整体出现&#xff0c;由于涉及的类比较多&#xff0c;导致使用时代码较为复杂。此时&#…

leetcode剑指offer75题

1 替换空格 var replaceSpace function(s) {const str s.split( );return str.join(%20) };2 左旋转字符串 var reverseLeftWords function(s, n) {const s1 s.slice(n)const s2 s.slice(0,n)return s1s2 };3 表示数值的字符串 //\d 匹配整数 1次或多次 //(\.\d*)? 满足小…

【腾讯云 Cloud studio 实战训练营】真正做到让你的开发成本只在编码

文章目录 写在前面CODINGCloud studio工具在线编码运行项目代码上传Cloud Studio 开发贪吃蛇写在最后 写在前面 期待已久的体验活动终于来了&#xff0c;Clound Studio用了才知道有多爽&#xff0c;Cloud Studio 是基于浏览器的集成式开发环境 (IDE)&#xff0c;为开发者提供了…

第二课:数据类型与变量

一. 数据类型 整型 byte short int long 小数 float double 字符 char 布尔 boolean 1.不论在16位&#xff0c;32位还是64位系统&#xff0c;int都占用4个字节&#xff0c;long都占用8个字节 &#x1f446;可移植性&#xff0c;可以跨平台运行&#xf…

【黑马头条之redis实现延迟任务】

本笔记内容为黑马头条项目的延迟任务精准发布文章部分 目录 一、实现思路 二、延迟任务服务实现 1、搭建heima-leadnews-schedule模块 2、数据库准备 3、安装redis 4、项目集成redis 5、添加任务 6、取消任务 7、消费任务 8、未来数据定时刷新 1.reids key值匹配 …

“智能算式批改系统”开发与部署优化

“智能算式批改系统”开发与部署优化 摘要 本次大作业搭建并实现了“智能算式批改系统”的开发与部署优化。“智能算式批改系统”是一款集yolo目标检测、paddleocr识别和四则运算判别算法的智能批改系统。该系统能够对上传包含四则运算题的页面进行批改&#xff0c;包括识别出…

【Docker】Docker安装Kibana服务

文章目录 1. 什么是Kibana2. Docker安装Kibana2.1. 前提2.2. 安装Kibana Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套&#xff08;质量有保证&#xff0c;内容详情&#xff09; 1. 什么是Kibana Kibana 是一款适用于Elasticsearch的数据可视化和管…

PyTorch深度学习实战(7)——批大小对神经网络训练的影响

PyTorch深度学习实战&#xff08;7&#xff09;——批大小对神经网络性能的影响 0. 前言1. 批处理概念2. 批处理的优势3. 批大小对神经网络性能的影响3.1 批大小为 323.2 批大小为 30,000 小结系列链接 0. 前言 在神经网络中&#xff0c;批( batch )是指一次输入网络进行训练或…

微服务体系<2> ribbon

1. 什么是负载均衡 比如说像这样 一个请求打在了nginx上 基于nginx进行负载分流 这就是负载均衡但是负载均衡分 服务端负载均衡和客户端负载均衡 客户端负载均衡 我user 从注册中心拉取服务 拉取order列表&#xff0c;然后发起getOne()调用 这就是客户端负载均衡 特点就是我…