大模型-微调与对齐-RLHF

news2024/11/14 11:39:18

一、简介

1、RLHF
  • 全称:基于人类反馈的强化学习
  • 目的:实现人类对齐
  • 过程:利用收集到的人类反馈数据指导大模型微调
2、RLHF流程

1、收集人类对于不同模型的输出偏好
2、使用人类反馈数据集来训练奖励模型
3、基于奖励模型使用强化学习算法微调大模型

3、RLHF算法系统
  • 组成部分
    • 需要与人类价值观对齐的模型
    • 基于人类反馈数据学习的奖励模型
    • 用于大模型训练的强化学习算法
  • 奖励模型
    • 作用:为强化学习过程提供指导信号,反应人类对于语言模型生成文本的偏好
    • 来源:
      • 使用人类偏好数据对已有奖励模型进行微调
      • 使用人类偏好数据
    • 最新研究:使用与当前大模型参数量相同或更大的大模型作为奖励模型,效果会更好,这种奖励模型可以更好的理解待对齐模型的知识与能力范围
  • 强化学习算法:目前常用PPO算法
4、RLHF关键步骤
  • 监督微调
    • 使用高质量指令数据进行监督微调
    • 指令数据构成
      • 任务描述
      • 示例输出
    • 指令数据来源:
      • 人类标注员对特定任务的编写
      • 大模型生成
  • 奖励模型训练
    • 训练过程
      1、使用语言模型针对任务指令生成一定数量的候选输出
      2、邀请标注员对于输出文本进行偏好标注
      3、使用标注好的数据进行训练
  • 强化学习训练
    • 过程:使用奖励模型对待对齐模型的输出文本进行奖励或惩罚来实现对齐,判断奖励或惩罚的方式是根据KL散度来判断

二、人类反馈数据的收集

1、标注人员选择
  • 较高教育水平、出色语言熟练度,避免研究人员与标注员之间意图不匹配
  • 使用InstructGPT对标注进行打分,以筛选出与研究人员标注更加一直的标注人员
2、人类反馈形式
  • 基于评分的人类反馈
    • 评分方式
      • 标注员直接对待对齐大模型输出进行打分
      • 使用已对齐的大模型对待对齐大模型输出进行打分
  • 基于排序的人类反馈
    • 人类标注员根据个人偏好对待对齐大模型的输出结果进行排序
    • 使用Elo等级分对待对齐大模型的输出结果进行排序

三、奖励模型训练

1、简介
  • 奖励模型概念:基于语言模型设计,模仿人类标注员对待对齐模型生成的内容进行质量评分,实现对人类偏好分数的预测
  • 奖励模型作用:替代人类在RLHF训练过程中试试提供反馈
  • 训练数据:人类偏好数据
2、训练方法
  • 打分式:
    • 训练方法:奖励模型如何根据输入问题,对输出结果进行打分,以保证与人类打分结果尽量一致
  • 对比式:
    • 训练方法:人类标注员需要仅需要标注两个输出,标注一个为正例,一个为负例,然后奖励模型学习这个过程即可。
    • 特点:该方式标注难度低,
    • 应用情况:实际训练过程中使用量大
  • 排序式
    • 训练方法:人类标注员对多个输出进行排序,奖励模型学习过程类似对比式
    • 特点:奖励模型能够学习到更多的全局关系,更好拟合人类偏好
3、训练策略
  • 目的:提升奖励模型对于人类偏好的拟合能力
  • 方法:
    1、目标函数优化
    2、选取合适的基座模型
    3、设置合理的奖励计算形式
  • 目标函数优化
    • 策略描述:将模型最佳输出的损失作为正则项,从而缓解奖励模型在二元分类任务上的过拟合问题
  • 选取合适的基座模型:可以尝试选取更大参数量的基座模型来进行奖励模型的训练,更大的模型通常能更好的判断模型输出质量,提供更准确的反馈信号
  • 设置合理的奖励计算形式:
    • 训练策略:针对不同对齐标准,配置多个奖励模型,并配置组合策略计算奖励

四、强化学习训练

1、简介
  • 重要性:RLHF中的核心算法
  • 强化学习目标:旨在训练一个智能体,该智能体与外部进行多轮交互,通过学习合适的策略进而最大化从外部环境获得奖励,大模型通过强化学习训练,逐步使自己的回复能获得奖励模型更好的分数,从而更加匹配人类的期望
  • 强化学习算法
    1、策略梯度
    2、PPO算法
2、策略梯度
  • 简介:一种基础的强化学习算法,训练模型在于外界交互过程中学习到更好的更好的更新策略
  • 特点:较低的数据利用率和鲁棒性
  • 在线策略的训练方式:策略模型与外界模型进行交互,获得奖励分数后,对自身进行优化,即在线策略的训练方式。
  • 离线策略的训练方式:PPO算法使用了该方式,即一个策略模型用于获取奖励分数,另一个策略模型负责根据分数进行优化
3、PPO算法
  • 简介:基于策略梯度算法,使用优势估计来更加准确的评估决策轨迹可以获得的奖励,并使用了重要性采样来进行离线策略训练
  • 特点:
    • 为了保证采样稳定,PPO算法通过在目标函数中加入梯度裁剪以及相关的惩罚项来减小采样误差
    • PPO算法在奖励模型与策略模型的基础上,又引入了参考模型和评价模型,进行相关的优化工作
  • 关键步骤
    • 优势估计:引导模型从当前的所有决策中选择最佳决策
    • 重要性采样:在离线策略的训练方式中,需要使用策略模型与外界进行交互并采样决策轨迹,使用采样得到的决策轨迹近似估算策略模型与外部交互时能得到的奖励的期望
    • 基于梯度裁剪的目标函数:通过裁剪策略比率的变化范围,防止策略更新过于激进
    • 基于KL散度的目标函数:使用KL散度作为惩罚项来限制策略模型的更新幅度
  • 训练策略
    • 目的:提升PPO算法训练的稳定性和训练效率
    • 提升方面
      1、模型初始化
      2、效率提升
    • 模型初始化:模型先经过指令微调、监督微调等方式完成一定优化,同时可以进行多轮RLHF,在过程中可以不断优化奖励模型
    • 效率提升:
      • 将RLHF过程中用到的模型部署在不同GPU上,提升执行效率
      • 采用束搜索解码算法加速采样解码算法执行过程

五、代表性RLHF工作介绍

1、InstructGPT
  • 训练过程:
    1、收集指令数据并使用有监督微调进行训练
    2、收集人类反馈训练奖励模型
    3、使用PPO算法和奖励模型对待对齐大模型进行强化学习,使用第二步得到的奖励模型对第一步监督微调过后的大模型进行微调
    4、后两个步骤可以迭代多次
2、LLaMA-2
  • 训练过程
    1、收集人类反馈数据,从开源与闭源两个方向着手
    2、奖励模型训练
    3、强化学习过程,使用拒绝采样微调算法与PPO算法进行多轮迭代微调

六、进阶RLHF

1、基于过程监督的RLHF
  • 数据集:基于OpenAI发布的经过细粒度标注过程的数据集PRM800K
  • RLHF训练方法:专家策略搜索的过程中,过程监督奖励模型基于当前的状态和决策轨迹,对专家策略的下一步决策进行打分,辅助待专家策略选取更好的决策。随后,蒸馏阶段,进一步使用第一阶段由专家策略生成的样本对待对齐大模型进行监督微调
  • 过程监督奖励模型的拓展功能:
    1、对多条输出按人类偏好进行排序
    2、能够考虑候选输出中每个组成部分的信息,选择更好的中间步骤
2、基于AI反馈的强化学习
  • 特点:使用AI生成的反馈代替人类反馈
  • 使用已对齐大模型生成的反馈:
    • 训练过程:
      1、使用经过RLHF训练之后的大模型生成一系列经过算法处理过的高质量的问题与回复数据
      2、使用上一步生成的数据对待对齐大模型进行监督微调
      3、使用一个偏好模型对微调后的模型输出进行评估,并根据评估结果训练一个奖励模型
      4、使用上一步训练好的奖励模型的反馈对待对齐大模型进行强化学习训练
  • 使用待对齐大模型进行自我反馈:
    • 训练过程
      1、使用策略模型生成对输入文本生成多个回复,然后使用提示引导策略模型进行打分,根据分数高低,划分为正例和负例,多次迭代生成强化学习所用的数据集
      2、使用DPO算法对策略模型进行训练

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

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

相关文章

Jenkins安装自定义插件

看到这个博客,你可能遇到跟我一样的问题:直接使用jenkins插件时,在线安装的插件可能版本不符合要求。 怎么办呢 找到相关插件的版本 https://plugins.jenkins.io/build-name-setter/ 下载相应版本 安装

uniapp—android原生插件开发(4uniapp引用aar插件)

本篇文章从实战角度出发,将UniApp集成新大陆PDA设备RFID的全过程分为四部曲,涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程,轻松应对安卓原生插件开发与打包需求! 一、将android程序打包成aar插件包 直接使…

FFMPEG录屏(22)--- Linux 下基于X11枚举所有显示屏,并获取大小和截图等信息

众人拾柴火焰高,github给个star行不行? open-traa/traa traa is a versatile project aimed at recording anything, anywhere. The primary focus is to provide robust solutions for various recording scenarios, making it a highly adaptable tool…

国标GB28181视频平台EasyCVR私有化部署视频平台对接监控录像机NVR时,录像机“资源不足”是什么原因?

EasyCVR视频融合云平台,是TSINGSEE青犀视频“云边端”架构体系中的“云平台”系列之一,是一款针对大中型项目设计的跨区域、网络化、视频监控综合管理系统平台,通过接入视频监控设备及视频平台,实现视频数据的集中汇聚、融合管理、…

ENSP OSPF和BGP引入

路由协议分为:内部网关协议和外部网关协议。内部网关协议用于自治系统内部的路由,包括:RIP和OSPF。外部网关协议用于自治系统之间的路由,包括BGP。内部网关协议和外部网关协议配合来共同完成网络的路由。 BGP:边界网关路由协议(b…

template和span标签的使用

一&#xff1a;template template是模板占位符&#xff0c;可帮助我们包裹元素&#xff0c;而且循环过程当中&#xff0c;template不会被渲染到页面。 <div>ABC</div> <template v-for"(item, index) in 5"><div>{{ index }}</div>&…

备战软考Day05-数据库系统基础知识

一、基本概念 1.数据库 数据库(Database&#xff0c;缩写为DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储&#xff0c;具有较小的冗余度、较高的数据独立性和易扩展性&#xff0c;并可为各种用户共享。 2.数据…

Odoo:免费开源的钢铁冶金行业ERP管理系统

文 / 开源智造 Odoo亚太金牌服务 简介 Odoo免费开源ERP集成计质量设备大宗原料采购&#xff0c;备件设材全生命周期&#xff0c;多业务模式货控销售&#xff0c;全要素追溯单品&#xff0c;无人值守计量物流&#xff0c;大宗贸易交易和精细化成本管理等方案&#xff1b;覆盖…

[免费]SpringBoot+Vue3校园宿舍管理系统(优质版)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue3校园宿舍管理系统(优质版)&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue3校园宿舍管理系统(优质版) Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术的不断发展&…

Oracle的字符串函数

Oracle Ascii()函数 在Oracle中&#xff0c;Ascii()函数可以返回代表指定字符的数字值代码&#xff0c;那么Ascii()函数具体该如何实用呢&#xff1f; Ascii()函数语法 ASCII( single_character )参数 single_character&#xff1a;指定的字符来检索NUMBER代码。 如果输入多…

cesium 3DTiles之pnts格式详解

Point Cloud 1 概述 点云&#xff08;Point Cloud&#xff09;瓦片格式用于高效流式传输大规模点云数据&#xff0c;常用于 3D 可视化中。每个点由位置&#xff08;Position&#xff09;和可选的属性定义&#xff0c;这些属性用来描述点的外观&#xff08;如颜色、法线等&…

记录一次非常奇怪的MIME type of “text/html“报错

报错现象 访问指定地址&#xff0c;一直转圈打不开&#xff0c;打开游览器控制台发现有如下报错&#xff1a; Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “text/html”. Strict MIME type checking i…

git新手使用教程

git新手使用教程 一、安装和初始化配置2、新建仓库3.工作区域和文件状态4.添加和提交文件5 git reset回退版本6 使用git diff查看差异7 使用git rm删除文件8 .gitignore忽略文件9 注册GitHub账号10 SSH配置和克隆仓库11 关联本地仓库和远程仓库12 Gitee的使用 由B站视频教程整理…

《TCP/IP网络编程》学习笔记 | Chapter 10:多进程服务器端

《TCP/IP网络编程》学习笔记 | Chapter 10&#xff1a;多进程服务器端 《TCP/IP网络编程》学习笔记 | Chapter 10&#xff1a;多进程服务器端进程概念及应用并发服务端的实现方法理解进程进程ID通过调用 fork 函数创建进程 进程和僵尸进程僵尸进程产生僵尸进程的原因销毁僵尸进…

推荐一款DBF文件查看器:DBF Viewer 2000

DBF Viewer 2000是一款强大、简洁且易于使用的 DBF(Clipper、dBase、FoxBase、Foxpro、Visual Foxpro、Visual DBase、VO、DB2K)文件浏览器和编辑器。 软件特点&#xff1a; - 能够快速、有效地浏览和编辑各种类型的 DBF 文件。 - 支持多种文件格式&#xff0c;包括 dBase、V…

基于构件的软件开发、软件维护、区块链技术及湖仓一体架构的应用

目录 试题一 论基于构件的软件开发方法及其应用 试题二 论软件维护方法及其应用 试题三 论区块链技术及应用 试题四 论湖仓一体架构及其应用 相关推荐 试题一 论基于构件的软件开发方法及其应用 基于构件的软件开发(Component-Based Software Development&#xff0c;CBSD…

SCRFD算法解读及环境安装实践

论文地址&#xff1a;https://arxiv.org/abs/2105.04714&#xff0c;accepted by ICLR-2022 工程地址&#xff1a;https://github.com/deepinsight/insightface/tree/master/detection/scrfd 下一篇博客&#xff0c;如何用SCRFD训练自己的数据 文章目录 1、算法解读2、环境安装…

在IntelliJ IDEA中创建带子模块的SpringBoot工程

前言 在项目开发中&#xff0c;一个工程往往有若干子工程或模块&#xff0c;所以主工程一般是一个容器&#xff0c;本文介绍在IntelliJ IDEA中创建带多模块的SpringBoot工程的详细步骤。 1、首先打开IntellJ IDEA&#xff08;以下简称IDEA&#xff09;,创建一个新项目。假定新…

深入剖析输入URL按下回车,浏览器做了什么

DNS 查询 首先,是去寻找页面资源的位置。如果导航到https://example.com, 假设HTML页面被定位到IP地址为93.184.216.34 的服务器。如果以前没有访问过这个网站&#xff0c;就需要进行DNS查询。 浏览器向域名服务器发起DNS查询请求&#xff0c;最终得到一个IP地址。第一次请求…

提升百度排名的有效策略与技巧解析

内容概要 提升百度排名对于网站的成功至关重要。首先&#xff0c;了解百度排名的基本原则&#xff0c;掌握搜索引擎是如何评估网页质量的&#xff0c;是优化过程中不可或缺的一部分。搜索引擎越来越倾向于将用户需求放在首位&#xff0c;因此提供高质量的内容和良好的用户体验…