当前位置: 首页 > news >正文

InstructGPT的流程介绍

1. Step1:SFT,Supervised
Fine-Tuning,有监督微调。顾名思义,它是在有监督(有标注)数据上微调训练得到的。这里的监督数据其实就是输入Prompt,输出相应的回复,只不过这里的回复是人工编写的。这个工作要求比一般标注要高,其实算是一种创作了。
2. Step2:RM,Reward
Model,奖励模型。具体来说,一个Prompt丢给前一步的SFT,输出若干个(4-9个)回复,由标注人员对这些回复进行排序。然后从4-9个中每次取2个,因为是有序的,就可以用来训练这个奖励模型,让模型学习到这个好坏评价。这一步非常关键,它就是所谓的Human
Feedback,引导下一步模型的进化方向。
3. Step3:RL,Reinforcement Learning,强化学习,使用PPO策略进行训练。
PPO,Proximal Policy Optimization,近端策略优化,是一种强化学习优化方法,它背后的主要思想是避免每次太大的更新,提高训练的稳定性。具体过程如下:首先需要初始化一个语言模型,然后丢给它一个Prompt,它生成一个回复,上一步的RM给这个回复一个打分,这个打分回传给模型更新参数。这里的这个模型在强化学习视角下就是一个策略。这一步有个很重要的动作,就是更新模型时会考虑模型每一个Token的输出和第一步SFT输出之间的差异性,要让它俩尽量相似。这是为了缓解强化学习可能的过度优化。
在这里插入图片描述

LLM的输出怎么评价:

三大原则:有帮助(helpful)、真实性(truthfulness)和无害性(harmlessness)
对大部分任务,无害和真实比有帮助更加重要。
对于边界 Case 的指导原则是:你更愿意从试图帮助你完成此任务的客户助理那里收到哪种输出?这是一种设身处地的原则,把自己假想为任务提出者,然后问自己期望得到哪种输出。

参考:
https://yam.gift/2023/02/19/NLP/2023-02-19-ChatGPT-Labeling/

http://www.lryc.cn/news/325878.html

相关文章:

  • docker容器下部署hbase并在springboot中通过jdbc连接
  • Qt——智能指针实战
  • Unity Mobile Notifications推送问题
  • C++_回文串
  • 【阅读论文】When Large Language Models Meet Vector Databases: A Survey
  • 兼职副业大揭秘:六个潜力满满的赚钱途径
  • C++ Qt开发:QUdpSocket实现组播通信
  • excel 表中有图片并在筛选特定行时,只显示该行的图片
  • 【QA】MySQL多表查询详解
  • 【Entity Framework】 EF三种开发模式
  • 数据分析---SQL(5)
  • 《剑指 Offer》专项突破版 - 面试题 93 : 最长斐波那契数列(C++ 实现)
  • 代码随想录算法训练营第五十五天|583. 两个字符串的删除操作、72. 编辑距离
  • StringRedisTemplate Autowired注入为空解决
  • c语言:文件操作
  • C#事件实例详解
  • 零基础机器学习(3)之机器学习的一般过程
  • 用java做一个双色球彩票系统
  • 某对象存储元数据集群改造流水账
  • 前端理论总结(js)——filter、foearch、for in 、for of 、for的区别以及返回值
  • 【JavaEE初阶系列】——多线程案例一——单例模式 (“饿汉模式“和“懒汉模式“以及解决线程安全问题)
  • 革新水库大坝监测:传统软件与云平台之比较
  • C++模版(基础)
  • MySQL驱动Add Batch优化实现
  • 手撕算法-数组中的第K个最大元素
  • 【vue】computed和watch的区别和应用场景
  • ARM.day8
  • SpringCloud Gateway工作流程
  • 西井科技与安通控股签署战略合作协议 共创大物流全新生态
  • CCCorelib 点云RANSAC拟合球体(CloudCompare内置算法库)