NLP_ChatGPT的RLHF实战

文章目录

  • 介绍
  • 小结


介绍

ChatGPT 之所以成为ChatGPT,基于人类反馈的强化学习是其中重要的一环。而ChatGPT 的训练工程称得上是复杂而又神秘的,迄今为止,OpenAl也没有开源它的训练及调优的细节。
从 OpenAl已经公开的一部分信息推知,ChatGPT的训练主要由三个步骤组成,如下图所示。

原文:
在这里插入图片描述

译文:
在这里插入图片描述

  • 第1步,先使用大量数据(从Prompt数据库中抽样)通过监督学习在预训练的 GPT-3.5基础上微调模型,得到一个初始模型,就是监督学习微调模型(Supervised Fine-Tune Model,SFT)——暂且把它命名为“弱弱的ChatGPT”。

  • 第2步,请标注人员为初始模型“弱弱的ChatGPT”对同一问题给出的不同答案排序,评估这些答案的质量,并为它们分配一个分数。然后使用这些数据训练出一个具有人类偏好的奖励模型(Reward Model,RM)–这个奖励模型能够代替人类评估 ChatGPT 的回答大概会得到多少奖励。

  • 第3步,初始化“弱弱的ChatGPT”模型,从Prompt数据库中抽样,与模型进行对话。然后使用奖励模型对“弱弱的ChatGPT”模型的输出进行打分。再将结果反馈给“弱弱的 ChatGPT”模型,通过近端策略优化(Proximal Policy Optimization, PPO)算法进一步优化模型。

不过,这还没完,此时ChatGPT模型经过优化,能生成更高质量的回答,那么,再回到第1步用优化后的ChatGPT初始化模型,就得到更好的SFT模型;用更好的 SFT 在第2步中取样,又得到更好的回答;对更高质量的回答进行排序、评分后,就能训练出更好的奖励模型,于是获得更好的反馈……这样不断循环,ChatGPT 就一步接着一步,在接受人类的反馈的同时,不断自我优化,一波接一波,越变越强。

小结

ChatGPT训练三阶段:
阶段1:收集数据,通过监督学习微调模型
阶段2:收集模型生成的数据,训练一个奖励模型
阶段3:通过奖励模型以PPO强化学习算法优化策略,得到优化后的模型


学习的参考资料:
(1)书籍
利用Python进行数据分析
西瓜书
百面机器学习
机器学习实战
阿里云天池大赛赛题解析(机器学习篇)
白话机器学习中的数学
零基础学机器学习
图解机器学习算法

动手学深度学习(pytorch)

(2)机构
光环大数据
开课吧
极客时间
七月在线
深度之眼
贪心学院
拉勾教育
博学谷
慕课网
海贼宝藏

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

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

相关文章

最小生成树(Kruskal算法及相关例题)

1.Kruskal算法概念以及基本思路 (1)概念: 克鲁斯卡尔算法是求连通网的最小生成树的另一种方法。它的时间复杂度为O(ElogE)(E是图G的边的总数),适合于求边稀疏的网的最小生成树 。 其基本思想是&#xff…

Python 异常处理语句

Python 是一门广泛应用于软件开发和数据科学领域的高级编程语言。在编写程序的过程中,难以避免地会遇到各种错误和异常情况。Python 提供了丰富的异常处理机制,帮助开发者优雅地应对异常,使程序具有更好的稳定性和可靠性。本文将深入探讨 Pyt…

生成式AI相关知识记录

一、简述开发步骤 开发一个生成式AI模型通常涉及以下步骤: 1. **需求分析与目标设定**: - 确定应用领域和目标,例如文本生成、图像生成、音乐创作等。 - 分析应用场景的具体需求,包括输出质量、速度、多样性、可控性等因素…

SORA:OpenAI最新文本驱动视频生成大模型技术报告解读

Video generation models as world simulators:作为世界模拟器的视频生成模型 1、概览2、Turning visual data into patches:将视觉数据转换为补丁3、Video compression network:视频压缩网络4、Spacetime Latent Patches:时空潜在…

LEETCODE 164. 破解闯关密码

class Solution { public:string crackPassword(vector<int>& password) {vector<string> password_str;for(int i0;i<password.size();i){password_str.push_back(to_string(password[i]));}//希尔排序int gappassword.size()/2;while(gap>0){for(int i…

安卓TextView 拖动命名

需求&#xff1a;该布局文件使用线性布局来排列三个文本视图和一个按钮&#xff0c;分别用于显示两个动物名称以及占位文本视图。在占位文本视图中&#xff0c;我们为其设置了背景和居中显示样式&#xff0c;并用其作为接收拖放操作的目标 效果图&#xff1b; 实现代码 第一布…

NSSCTF Round#18 RE WP 完整复现

1. GenshinWishSimulator 恶搞原神抽卡模拟器 看到软件的界面&#xff0c;大致有三种思路&#xff1a; 修改石头数量一直抽&#xff0c;如果概率正常肯定能抽到&#xff08;但是估计设置的概率是0&#xff09;在源码里找flag的数据把抽卡概率改成100%直接抽出来 Unity逆向&am…

mpack简明教程

文章目录 摘要MessagePack简介MPACK的简单使用在定长的buffer存储不定长的数据读取截断的数据 摘要 本文先简单介绍MessagePack的基本概念。 然后&#xff0c;介绍一个MessagePack C API - MPack的通常使用。 接着尝试对MPack截断数据的读取。 注&#xff1a;本文完整代码见…

springboot187社区养老服务平台的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

优化策略模式,提高账薄显示的灵活性和扩展性

接着上一篇文章&#xff0c;账薄显示出来之后&#xff0c;为了提高软件的可扩展性和灵活性&#xff0c;我们应用策略设计模式。这不仅仅是为了提高代码的维护性&#xff0c;而是因为明细分类账账薄显示的后面有金额分析这个功能&#xff0c;从数据库后台分析及结合Java语言特性…

记录一次涩涩情侣飞行棋密码破解

注本公众号&#xff0c;长期推送技术文章 知攻善防实验室 红蓝对抗&#xff0c;Web渗透测试&#xff0c;红队攻击&#xff0c;蓝队防守&#xff0c;内网渗透&#xff0c;漏洞分析&#xff0c;漏洞原理&#xff0c;开源 工具&#xff0c;社工钓鱼&#xff0c;网络安全。 81篇原…

【后端高频面试题--Nginx篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;后端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 后端高频面试题--Nginx篇 往期精彩内容什么是Nginx&#xff1f;为什么要用Nginx&#xff1f;为…