ChatGPT:探索RLHF与GPT的完美结合

news2024/11/26 6:21:49

前言

ChatGPT已经发布一周了热度依旧不减,ChatGPT也各种大显神通,为各大网友“出谋划策”,有写周报的,有写绩效的甚至还有写论文的,作为一个NLP从业者,除了好好体验下其中的乐趣,其背后的原理当然也要有所了解,本文就从其技术细节为大家一一揭开奥秘。

ChatGPT的前世

ChatGPT出来之前,相信大家体验过很多智能问答机器人,大部分的评价都是“人工智障”,而ChatGPT则给人一种忽如一夜春风来,千树万树梨花开的感觉,怎么AI突然变得如此智能!实际上,ChatGPT的成功源自于2年前的GPT3+后期的RLHF优化,所以说
请添加图片描述

接下来我们就先简单回顾下GPT3,GPT3是一个基于transformer decoder的生成模型,其参数规模达到了1750亿,并且使用45TB数据进行训练,其预训练任务就是“句子接龙”,给定前文持续预测下一个字,因此只要有干净的文本数据就能作为模型的训练数据。虽然任务简单,但由于模型规模大数据量大,训练成本达到了数千万美元,在模型训练过程中还有一个小插曲,研究人员发现了代码中有一个小bug,但因为训练成本昂贵并未修复这个bug。

GPT3首次把模型的规模带到了千亿级别,开辟了大模型赛道,其次也为NLP带来了一种新的范式prompt,prompt为GPT3带来了0样本、小样本的学习能力,也为BERT base级别的模型带来了一些新的玩法。

请添加图片描述

GPT3在AI圈内掀起了很大的浪花,但是并未出圈,其关键原因在于其存在严重的弱点

  • 可能会产生偏见,因为它是基于现有数据训练的,如果有任何偏见存在于训练数据中,那么它的结果也会受到影响。
  • 模型的训练和使用过程中存在安全漏洞,因为它会存储用户数据,而且它的使用还可能导致机器不可控。

请添加图片描述

这些问题被统一称为misalignment,随着语言模型的规模越来越大,模型的输出很难满足用户的需求,并且对于生成模型来说,如果要生成不同的答案就涉及到采样算法,那这对于生成的内容来说就更难控制了,那么怎么解决这个问题呢?接下来我们就来看看ChatGPT是怎么做到的。

管得住嘴的ChatGPT

在ChatGPT面世前OpenAI还出过一篇paper:Training language models to follow instructions with human feedback,一看这标题就能感觉到肯定少不了人工打标,这篇paper提出了对于GPT3的改进称为InstructGPT,InstructGPT的目标就是要解决GPT3“管不住嘴”的问题,其解决方案叫做RLHF,其包含3个步骤
请添加图片描述

1、Collect demonstration data, and train a supervised policy

GPT3面世后,OpenAI提供了api,付费后即可集成到自己的项目中,用户使用的时候直接采用 prompt的方法做0样本或小样本的预测,这个过程让OpenAI收集到了大量的prompt数据,研究人员从这些prompt中采样一部分,人工对这些prompt做回答,得到的结果称为demonstration即有标签数据,再用这些demonstration继续fine-tuning GPT3,这个过程称为supervised fine-tuning (SFT)。GPT3的预训练阶段使用的是网上海量的数据,这些数据的质量鱼龙混杂,监督学习的目的就是让模型能生成更多符合人类预期的答案,从而尽可能避免生成一些有害的信息。

2、Collect comparison data, and train a reward model

但是监督学习毕竟需要标注大量数据,OpenAI在怎么有钱也不能这么造呀,于是乎OpenAI想了个办法,搞个模型来判断GPT3输出的有没有问题。于是在有了SFT模型后,继续采样prompt,让SFT模型输出多个不同的output,人工对output做排序,把这个结果拿去训练一个RM(reward model),这个模型和SFT结果一样,只是size小一些,paper中提到6B级别的模型比175B级别的模型更加稳定。注意这里的output是一个zero mean的,这样RM模型只要输出一个大于0的值那么就认为GPT3生成的内容是OK的。

请添加图片描述

最后看下loss function,其中 r θ r_{\theta} rθ表示的是RM, x x x表示的是用户输入的内容, y y y表示不同的答案,注意这里有一个组合数 ( K 2 ) \binom{K}{2} (2K) 训练的时候要把同一个组合数中的内容放到一个batch内,不然会出现过拟合的情况,K通常取4到9之间的一个值,可以看到这其实就是一个pairwise模型。

3、Optimize a policy against the reward model using PPO

有了RM,下一步我们就可以用RM的输出结果来反哺SFT模型了,其思路是采用RM的输出值作为reward,基于 RL的思路进行优化,

  • policy:给GPT输入文本后输出结果的过程
  • action:词典
  • observation:输出文本
  • objective function:一共包含三项,其中 r θ r_{\theta} rθ是RM的输出分数,第二项是KL惩罚项,目的是为了让 RL模型的输出结果和SFT模型的输出结果差距不要太大,第三项则是为了保证RL模型能保留好语言模型的能力,整个模型称为PPO-ptx。有了这样的一个模型框架后 ,有新的prompt模型就能做到持续的自迭代。
    请添加图片描述

有多少人工才有多少智能

在RLHF的优化过程中其实存在很多的标注任务,OpenAI把标注这个过程看的其实非常的重,他们组建了一个40人的外包标注团队,并且基于以下标准 对标注人员做了一个严格的筛选:

  • 确保标注人员对信息敏感,OpenAI首先准备了一份自己标注的数据,这些数据包含一些敏感信息,需要标注人员的标注结果和OpenAI认为的敏感信息是尽可能一致的。
  • 排序阶段的标注需要和OpenAI研究人员标注的排序尽可能一致
  • OpenAI构建了一些敏感prompt,让标注人员编写demonstration,研究人员对每个demonstration给一个1-7分的Likert scale(李克特量表),并针对标注人员计算平均分数。
  • 询问标注人员对于哪些话题或者文化群体更能识别出敏感话题

基于以上4个标准OpenAI筛选出了个标注团队,可见只有高质量的数据才能给模型带来质的提升。

最后看看整体的效果,基于PPO-ptx的模型效果提升明显,特别是6B规模的模型效果出色。

请添加图片描述

思考

ChatGPT火了之后,大家都在讨论能否把ChatGPT应用到自己的业务中或者能否把RL应用到业务中减少些人力标注成本,这里也说说我自己对这两个问题的想法。

  • ChatGPT规模比较大,想直接落地难度还是很高的,仅仅算力就已经挡住了大部分人,但是从上文的效果图中也能看到,6B规模的模型在RLHF的思路下效果也是不错的,所以如果真的想朝着这个方向去落地,可以考虑下6B规模的模型,目前抱抱脸也有很多同规模大小的开源语言模型可以尝试下,不过RLHF的标注成本也不低能否承受也需要提前考虑清楚。

  • RL真的适合应用在NLP应用中码?我觉得还是要看场景,在ChatGPT中RL其实解决的是misalignment问题,GPT3本身已经具备了较强的生成能力,只是说容易“胡言乱语”,RL的任务只是纠正GPT3的这个缺点,并且RM的上限决定了GPT3能把这个缺点改进多少。所以说RL也不是万能的,在我看来ChatGPT使用RL更多是为了尽可能节约人工标注成本。

ChatGPT应该只是OpenAI的压轴戏,让我们一起期待23年初的GPT4能带给我们带来怎样的惊喜。

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

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

相关文章

基于Java实现(APP)智能停车场管理系统【100010044】

移动应用开发系统设计说明书 服务集成流程详细设计 实现功能 序号功能点描述1新增用户2注册用户3修改场地信息4列出场地信息5新增认证车辆6列出认证车辆7删除认证车辆8车辆进入信息录入9停车记录列表展示10出停车场信息录入 参数说明 User 用户信息实体参数 字段名称字段类…

壳聚糖-三聚磷酸钠(CTS-STPP)|SN-117M标记甘露糖偶联葡聚糖胺

壳聚糖-三聚磷酸钠(CTS-STPP)|SN-117M标记甘露糖偶联葡聚糖胺 中文名称:壳聚糖-三聚磷酸钠 英文名称:CTS-STPP 纯度:95% 存储条件:-20C,避光,避湿 外观:固体或粘性液体 包装:瓶装/袋装…

实战 | 基于OpenCV的停车场空余车位实时监测系统(详细步骤 + 源码)

导 读 本文主要介绍如何使用Python和OpenCV实现一个停车场空余车位实时监测系统,并包含详细步骤和源码。 背景介绍 介绍实现步骤之前,先来看看测试视频(小型停车场实时监控画面): ,时长00:28 我们的目标是实时检测停车场剩余空位…

DAMA-CDGA/CDGP数据治理工程师证书含金量杠杠滴

DAMA-CDGA/CDGP数据治理工程师证书含金量杠杠滴 DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决&a…

Linux常用操作 | 权限网络进程主机... | 系统性学习 | 无知的我费曼笔记

无知的我正在复盘Linux。。。 下面是我总结的 Linux 知识的初阶版思维导图,后续会不断补充 文章目录Linux常用操作软件安装systemctl软链接日期时区ntpip地址主机名配置VMware固定IPps命令kill命令nmap命令netstat命令ping命令wget命令curl命令top命令df命令iosta…

Ubuntu 建立 http server

1.執行 sudo apt install apache2 2.檢查Apache sudo systemctl status apache2 看到active說明運行正常 3.調整UFW防火牆 允許Apache遠端連接 查看 sudo ufw app list 允許HTTP/HTTPs傳輸 sudo ufw allow in "Appach Full" 4.測試 在網頁上打開 http://{你的…

汇编伪指令

目录 段的定义(重点) 定位方式 汇编地址计数器 $ ORG 例题 段寄存器的设定(重点) 源程序的结束(重点) 过程的定义(了解) 掌握 过程定义伪指令 PROC, ENDP 段定…

QT—常用容器 QStringList,QVector,QMap,QHash,QVariant

QStringList 元素添加 可以直接添加元素&#xff0c;也可也使用append( )方法在末尾追加元素 QStringList weekList<<"星期一"<<"星期二"<<"星期三"; weekList.append("星期四"); qDebug()<<weekList; 元素…

LeetCode刷题复盘笔记—一文搞懂动态规划之123. 买卖股票的最佳时机 III问题(动态规划系列第二十二篇)

今日主要总结一下动态规划的一道题目&#xff0c;123. 买卖股票的最佳时机 III 题目&#xff1a;123. 买卖股票的最佳时机 III Leetcode题目地址 题目描述&#xff1a; 给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能…

小程序地图插入图标后 怎么实现点击图标弹出窗口

1问题描述本次博客的要解决的问题是&#xff1a;小程序地图插入图标后 怎么实现点击图标弹出窗口如图&#xff1a;2算法描述点击标记点获取数据想要在地图等页面上显示弹窗&#xff0c;是使用的是marke的方法&#xff0c;点击标记点获取数据先在wxml里写好布局文件<view cl…

可强占RCU

可强占RCU前言前言 RCU机制属于无锁编程的一种&#xff0c;在访问读端临界区时不需要加锁&#xff0c;故不存在上面提到的锁的问题&#xff0c;所以拥有极好的扩展性&#xff0c;且可以多个读者同时存在。那为什么不用RCU锁取代其他锁呢&#xff1f;前面说到读端不用加锁&…

光纤耦合装置的公差分析

摘要 在现代光学中&#xff0c;光纤存在于各种光学系统中&#xff0c;能够将多少光耦合到光纤中一直是人们关注的问题。耦合效率对系统的对准十分敏感&#xff0c;特别是对于芯径相对较小的单模光纤。在本例中&#xff0c;我们选择了一个设计良好的光纤耦合透镜&#xff0c;并根…

ARM异常处理(异常源的分类、异常的响应流程)

目录 一、异常的概念 1、什么是异常&#xff1f; 2、处理异常时&#xff0c;处理器要考虑哪些问题&#xff1f; 二、ARM异常源 1、异常源的分类 2、异常模式 三、ARM异常响应 1、CPSR寄存器内容备份&#xff08;自动执行&#xff09; 2、修改CPSR的值&#xff08;自动…

广告倒排服务极致优化

作者 | XY 导读 漏斗优化是检索系统不变的话题&#xff0c;过去一年来&#xff0c;广告漏斗优化一改往日做“加法”&#xff0c;而通过简化漏斗&#xff0c;提升全系统一致性。如百度这样庞大的广告库规模、高流量规模以及复杂的业务规则&#xff0c;要做到极简的漏斗层次&…

206367-33-1,抗菌肽pBD-1

pBD-1 是一种来源于猪组织的内源性组成型表达的抗菌肽 (AMP)&#xff0c;尤其在猪黏膜上皮部位表达。pBD-1 具有抗菌作用&#xff0c;并且有助于猪黏膜和系统宿主防御。pBD-1 is an endogenous and constitutively expressed antimicrobial peptide (AMP) from porcine tissues…

rocketmq源码-consumer拉取消息(push模式)

前言 在前面consumer启动的博客中&#xff0c;有说过&#xff0c;在启动过程中&#xff0c;有两个比较重要的逻辑&#xff0c;分别是负载均衡和拉取消息的service&#xff0c;这篇博客&#xff0c;主要记录拉取消息的service&#xff0c;因为前面的demo和这篇笔记中的demo&…

电磁场知识整理------2022/12/14

电磁场知识整理1、数学基础麦克斯韦方程2、麦克斯韦方程组的近似情况2.1 恒定电场2.2 恒定电流场2.3 恒定磁场2.4 动态电磁场2.5 时谐电磁场3、电磁辐射与电磁波写在最后学习资源&#xff1a;慕课上浙大的工程电磁场与波。 工程电磁场与波 1、数学基础 正交坐标系&#xff1a;…

Android 线上卡顿监控

文章目录1. 卡顿与ANR的关系2. 卡顿原理3. 卡顿监控3.1 WatchDog3.2 Looper Printer3.2.1 监控TouchEvent卡顿3.2.2 监控IdleHandler卡顿3.2.3 监控SyncBarrier泄漏4. 小结平时看博客或者学知识&#xff0c;学到的东西比较零散&#xff0c;没有独立的知识模块概念&#xff0c;而…

leetcode 375. 猜数字大小 II-【python3详细图解】递归+记忆化搜索与动态规划

题目 我们正在玩一个猜数游戏&#xff0c;游戏规则如下&#xff1a; 我从 1 到 n 之间选择一个数字。你来猜我选了哪个数字。如果你猜到正确的数字&#xff0c;就会 赢得游戏 。如果你猜错了&#xff0c;那么我会告诉你&#xff0c;我选的数字比你的 更大或者更小 &#xff0c…

二十、JavaScript——逻辑非

! 逻辑非- &#xff01;可以对一个值进行非运算 - 它可以对一个布尔值进行取反操作 true 变成 false false 变成 true - 如果对一个非布尔值进行取反&#xff0c;它会将其先转换为布尔值&#xff0c;再进行取反操作 可以利用这个特点将其他类型转换为布尔值 <script>/*! …