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

RLHF(人类反馈的强化学习)

RLHF是什么

RLHF,即基于人类反馈的强化学习,是一种结合强化学习算法与人类主观判断的训练技术。它通过引入人类的偏好和反馈来优化模型的行为和输出,使模型能够生成更符合人类期望的结果。

训练步骤为:

  1. 预训练语言模型:首先需要一个预训练的语言模型,通过大量语料训练出基础模型。例如,ChatGPT的基础模型是GPT-3。

  2. 训练奖励模型:收集人类标注的偏好数据,训练一个奖励模型(Reward Model, RM),该模型能够预测人类对不同输出的偏好分数。

  3. 强化学习微调:利用奖励模型提供的奖励信号,通过强化学习算法(如PPO)对语言模型进行微调,优化模型的输出

RLHF的奖励函数相比于传统强化学习的奖励函数有什么特点

传统强化学习通过环境提供的奖励信号训练Agent,但复杂任务(如自然语言生成)往往难以设计自动化的奖励函数。RLHF 的核心创新在于用人类反馈替代传统奖励函数,通过人类对模型输出的评价,训练一个“奖励模型”(Reward Model),再用这个模型指导强化学习过程,最终让模型的输出更符合人类偏好。该奖励函数满足以下需求:

  1. 能够解决人类 只能识别所需行为,但不一定能提供演示的任务

  2. 允许 非专家用户 进行示教

  3. 能扩展到大规模问题

  4. 用户给出反馈的成本不高

RLHF-PPO 四个模型

  • Actor Model:策略模型,这就是我们想要训练的目标语言模型。

  • Reference Model:参考模型,它的作用是在RLHF阶段给语言模型增加一些“约束”,防止语言模型训歪。我们希望训练出来的Actor模型既能达到符合人类喜好的目的,又尽量让它和SFT模型不要差异太大。即希望两个模型的输出分布尽量相似,通过与Actor Model之间的KL散度控制。

  • Critic Model:评估模型/价值模型,它的作用是期望回报,在RLHF中,我们不仅要训练模型生成符合人类喜好的内容的能力(Actor),也要提升模型对人类喜好量化判断的能力(Critic)。

  • Reward Model:奖励模型,它的作用是计算即时收益。奖励模型可以是人为规定的,也可以用神经网络实现。

其中Actor和Critic Model是需要训练的,Reward和Reference Model是参数冻结的。Actor 和Reference model用同一个sft模型初始化,Reward 和Critic model用同一个奖励模型初始化。

对比PPO、GRPO、DPO:

  • GRPO:一组prompt经过LLM生成N个结果,每个结果打分,超过平均的被接受,反之被拒绝

  • PPO:一组prompt经过LLM生成结果,对结果打分,和上一个的自己比较,有优势被接受,反之被拒绝

  • DPO:提前构造好了拒绝和接受的数据,模型参数往接受的方向调整

介绍GRPO

GRPO的核心思想是通过组内相对奖励来优化策略模型,而不是依赖传统的批评模型(critic model)。具体来说,GRPO会在每个状态下采样一组动作,然后根据这些动作的相对表现来调整策略,而不是依赖一个单独的价值网络来估计每个动作的价值。

这种方法的优势在于:

  • 减少计算负担:通过避免维护一个与策略模型大小相当的价值网络,GRPO显著降低了训练过程中的内存占用和计算代价。

  • 提高训练稳定性:GRPO通过组内比较来估计优势函数,减少了策略更新的方差,从而确保了更稳定的学习过程。

http://www.dtcms.com/a/273407.html

相关文章:

  • Java JDK 下载指南
  • ThinkBook 14s IWL(20RM)OEM系统镜像原厂Win10系统
  • Zero-Shot(零样本学习),One-Shot(单样本学习),Few-Shot(少样本学习)概述
  • CVE-2023-41990/CVE-2023-32434/CVE-2023-38606/CVE-2023-32435
  • Spring事务管理深度解析:原理、实践与陷阱
  • 开发需要写单元测试吗?
  • 关键字前跟空格或首字母, 关键字后跟空格或标点符号; 标点符号后面不是必须跟空格;
  • 无监督光流,unflow, uflow,upflow
  • imx6ull-裸机学习实验14(下)——驱动DDR3和测试
  • 数组和指针回顾,练习与解析
  • OSCP官方靶场-Solstice WP
  • 【第二节】ubuntu server配置静态IP
  • (思维)洛谷 P3081 USACO13MAR Hill Walk 题解
  • 网络安全基础概念以及虚拟环境的搭建
  • alpinelinux的网络配置
  • ZW3D 二次开发-创建六面体方框
  • 力扣面试150题--全排列
  • AOSP自启动拦截框架Intent Firewall
  • 反向传播notes
  • 敏捷测试中的质量闸门如何设置?
  • 位运算算法题
  • 第七讲:C++中的string类
  • 深度学习参数初始化方法详解及代码实现
  • 深度学习×第7卷:参数初始化与网络搭建——她第一次挑好初始的重量
  • ZW3D 二次开发-创建椭球体
  • 灰度发布策略制定方案时可以参考的几个维度
  • 递推+高精度加法 P1255 数楼梯
  • apt -y参数的含义
  • 计算机视觉 之 数字图像处理基础(一)
  • Kubernetes 1.23.6 kube-scheduler 默认打分和排序机制详解