清华大学提出IFT对齐算法,打破SFT与RLHF局限性

2024-05-30 00:52

本文主要是介绍清华大学提出IFT对齐算法,打破SFT与RLHF局限性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

监督微调(Supervised Fine-Tuning, SFT)和基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)是预训练后提升语言模型能力的两大基础流程,其目标是使模型更贴近人类的偏好和需求。

考虑到监督微调的有效性有限,以及RLHF构建数据和计算成本高昂,这两种方法常常被结合使用。但由于损失函数、数据格式的差异以及对辅助模型的需求,两个方法之间存在范式鸿沟,仅能通过串联的方法实现模型的训练。

清华大学最近提出将SFT与RLHF合二为一,引入了一种统一的对齐算法,称为直观微调(Intuitive Fine-Tuning,IFT),它以类似人类的方式直观地建立策略偏好估计,让模型在看到问题后,能够对完整答案有一个模糊的感知。相较于SFT,IFT更接近真实的策略偏好,因此在性能上达到了与SFT和RLHF结合使用相当甚至更好的对齐效果。

并且相比SFT+RLHF,RLHF仅依赖于正样本和单个策略,从预训练的基础模型开始进行对齐,大大提高了计算效率,降低了训练成本。

图片

IFT无需额外的数据收集或处理,其效率仅次于SFT,且表现出与其它对齐算法相当甚至更优的性能,这使得IFT在偏好数据难以获取或成本高昂的领域中也具有极高的实用价值。

论文标题:
Intuitive Fine-Tuning:Towards Unifying SFT and RLHF into a Single Process

论文链接
https://arxiv.org/pdf/2405.11870

3.5研究测试:
hujiaoai.cn
4研究测试:
askmanyai.cn
Claude-3研究测试:
hiclaude3.com

预备知识

为了对SFT和RLHF有更深入和统一的理解,作者试图通过在马尔可 夫决策过程 (MDP) 框架下定义偏好估计和状态-动作对优化,来解释SFT和RLHF之间的相似性和差异。

马尔科夫决策过程

马尔可夫决策过程(MDP)在语言模型中的应用可以被简洁地描述为一个五元组 。这里, 是由词汇表的有序排列形成的状态空间, 是基于分词器定义的词汇动作空间。 是转移矩阵,它描述了从一个状态转移到另一个状态时生成特定词汇的概率。 代表在特定状态执行动作后获得的奖励,而  是基于给定指令的初始状态分布。

语言建模的核心目标是训练一个策略 ,其对应的转移矩阵为 ,以模仿人类策略的转移矩阵 ,使两者变得完全一致:

图片

这个过程也可以用状态-状态转移矩阵来表示,其中等同于,但表示从一个状态到另一个状态的转移概率:

图片

偏好估计

当给定初始指令 ρ 时,可以定义策略  的偏好  为一个映射:

图片

在对齐阶段,模型偏好逐渐接近人类偏好:

图片

由于真正的偏好难以获取,通常通过模型和人类的偏好估计来进行对齐。为了让偏好变得可优化,每个策略的偏好也可以表示为:

图片

在这里, 表示由初始状态 ρ限定的条件状态空间,因此可以通过转移矩阵来优化模型偏好。本文将这种方法叫做Transition Optimization。接下来将详细描述这个过程。

Transition Optimization

理想情况下,希望在受到ρ约束的状态空间中,使模型和人类的状态动作转移矩阵保持一致:

图片

这相当于以下由状态-状态转移矩阵表示的格式:

图片

然而,考虑到有限的数据,只有表示数据集中包含的状态-动作/状态-状态对的矩阵元素才会对齐。给定指令为ρ、答案长度为N的目标样本,目标为:

图片

同样等价于:

图片

图片

其中,初始状态对应于ρ,并且最优的转换矩阵ρρ与模型θρρ在初始状态下的值均为1。因此,损失函数可以通过比较模型和人类的转换矩阵差异来推导得出。

从SFT 到RLHF

按照上述框架,本文重新表述了SFT、PPO和DPO,具体形式见下表:

图片

更易理解的版本如下图所示:

图片

图中的符号*和θ分别表示人类和模型。其中π(),。与PPO和DPO相比,SFT使用偏离模型分布的先验,导致对模型偏好的估计更有偏差。IFT利用临时剩余连接实现了比SFT更接近的估计,同时保持了SFT的数据和计算效率。

为了比较它们的差异,首先引入一个基本定理和推论:

定理: 对于一组事件 Z,任何事件 z ∈ Z的概率在0到1之间,如果所有事件相互独立,它们的概率之和等于1,最有可能的事件的概率大于或等于其他任何事件的概率:

语言模型作为一个概率估计模型,可以推论:语言模型倾向于给自己的一致性预测分配更高的概率,而非人类偏好。也就是说在给定相同初始指令的情况下,语言模型倾向于给自己生成的内容分配更高的概率,而不是目标答案。

图片

图片

SFT虽然提供了人类偏好的无偏估计,但对模型来说是带有偏见的估计。这是由于在预测每个后续token时使用了错误的先验状态所导致的。SFT 的状态转换优化目标为:

图片

但是在对齐与时,这导致了模型的过渡概率和偏好估计过高,从而影响了SFT的优化进程。因此,需要RLHF进行进一步的偏好校准。

PPO提供了模型偏好的无偏估计,同时采用逐步无偏的人类偏好估计:

图片

初始时,这种估计存在偏差,但随着模型随着时间逐渐与人类偏好一致,它变得越来越无偏。因此, 相对于SFT, PPO在模型优化中的过渡阶段提供了更接近实际情形:

图片

DPO理论上在所有情况下都能提供最佳估计,即使不进行奖励建模。然而,获取在线的成对偏好数据代价高昂,因为需要实时从模型中获取负样本并由人类进行偏好标注。因此,主流实现往往依赖优化模型外的非同分布的 off-policy 负样本,这可能导致偏好估计偏差和过渡优化不足,从而产生不稳定和次优的结果。

提出新方法

虽然SFT在数据和计算方面都很高效,但它在偏好估计和转移优化方面的近似效果较差。另一方面,以PPO和DPO为代表的RLHF在近似效果上做得更好,但这需要付出构建偏好数据的代价。因此,本文将结合两者的优点,提出了——Intuitive Preference Estimation直觉偏好估计。

直觉偏好估计

SFT和RLHF之间的关键区别在于是否对每个初始指令的模型偏好分布进行了采样。与RLHF不同,SFT中用于先验的目标答案的中间状态可能远离模型偏好,从而导致较差的结果。

为了获得更接近模型偏好的状态估计,作者引入了一个基于模型的分布扰动函数δθ,用于纠正偏差状态:

图片

这也可以解释为一个时间上的残差连接。通过这种方法,模型不仅能根据目标答案的中间状态预测下一个 token,还能仅凭初始指令发展出对整个答案生成的直观理解,从而得出更精确的偏好估计:

图片

动态关系传播

随着改进的偏好估计,可以实现了更接近原始目标的过渡优化过程:

图片

这可以通过量化模型与人类之间过渡差异的损失函数进行优化:

图片

与SFT相同,每个目标中间状态的优化目标的概率为1。因此损失函数可以重写为:

图片

这使得并行实现变得更加容易。并且通过这个损失函数优化的目标在对策略进行在线学习的情况下,隐含地满足贝尔曼方程。这确保了优化过程更接近RLHF。它还保证了优化目标不仅反映了当前 token 的预测准确性,而且考虑了当前选择对后续生成的影响,帮助模型获得对生成的直观理解,以及更好的因果性和事实遵循性。

实验

实验设置

本文选择UltraChat-200k 作为单目标数据集,UltraFeedback-60k 作为配对数据集。在Mistral-7B-v0.1 基础模型和已在UltraChat-200k上经过微调的版本Mistral-7B-sft-beta上进行实验。

考虑两种训练场景:一、单独使用RLHF训练;二、先用SFT再用RLHF顺序训练。在第一种场景中,直接使用基础模型Mistral-7B-v0.1与UltraFeedback进行对齐,并从UltraChat中随机抽取60k数据用于补充SFT和IFT,这两种方法仅使用目标数据。第二种场景则更为常见:首先使用SFT对Mistral-7B-sft-beta进行微调,随后再利用UltraFeedback通过RLHF进行进一步微调,该模型已先用SFT在UltraChat上微调过。

评估基准选用广泛使用的Open-LLM LeaderBoard和基于语言模型的评估,包括Alpaca-Eval和Alpaca-Eval-2。

实验结果与分析

实验结果如下所示:

图片

在基于LLMs的基准测试上。在顺序训练场景中,SFT+DPO仍然取得最高分,IFT的表现略逊一筹。但是,当直接从基础模型进行调整时,IFT不仅表现出色,而且与序列方法相当。这表明,IFT使用最少的数据和计算资源就达到了不错的效果。

图片

在开放LLM排行榜的聊天模板评估中,当使用相同的调参方法时,IFT在所有方法中实现了最高的平均分数。直接使用IFT使用最少的数据和计算资源进行对齐,但在所有方法中显示出最好的性能

IFT更擅长生成任务

从以上的实验结果,作者还发现在Open-LLM基准测试中,IFT更擅长生成任务,但在多选任务上则相对较弱;相反,DPO在多选任务上表现更佳。

这种差异可能源于两种任务不同的评估指标以及IFT和DPO的训练目标差异。多选任务通过评估模型对每个完整正确答案的似然度来度量性能,而生成任务要求模型根据Token构建最终答案,更能体现因果关系和推理能力。

DPO侧重于指令与完整答案的映射,而IFT则更强调Token间的因果关系,因此在需要模型逐Token探索的生成任务中表现更佳,而在多选这样的分布映射任务上,DPO则表现更优。

考虑到这一点,作者在ARC-Challenge中将其转换为生成任务,问题和候选答案会提前显示,答案将从模型生成中提取。在不改变基准测试分布的情况下,IFT在该设置中显示出优势。总的来说,IFT在不同任务上保持了最佳平衡,实现了最高的平均得分。

SFT+RLHF甚至不如单独使用SFT

传统的RLHF方法在指令跟随能力的增强方面表现出色,但使用SFT+RLHF的顺序训练方法需要更多的超参数的权衡,因此这种方法表现明显较差,甚至不如单独使用SFT。ORPO和IFT通过直接在基础模型上进行对齐,避免了超参数的权衡,从而实现更好的性能。

IFT的效率和扩展潜力

IFT不仅在性能上出众,甚至超越其他方法,更在多个方面展现了其高效性。与SFT和ORPO相似,IFT无需依赖参考模型,从而显著节省了GPU内存和计算资源。

更值得一提的是,IFT和SFT是仅有的两种无需偏好数据进行对齐的方法,这一特性带来了诸多优势:减少了GPU上同步存储和计算对偶数据的压力,降低了内存消耗和训练时间;同时,省去了生成负样本和标注偏好标签的繁琐过程,大大降低了对齐成本。此外,IFT仅依赖目标答案进行对齐,为流程扩展提供了可能性,进一步彰显了预训练技术的核心优势。

冰湖环境测试

Frozen-Lake Environment(冰湖环境)是一个经典的强化学习环境,常用于演示和测试强化学习算法。在这个环境中,一个agent试图在一个几乎结冰的湖面上找到一个礼物,游戏在找到礼物 或掉入洞中时结束。有限的状态和动作数量使得使用经典强化学习方法可以容易地得出最优策略。

为了模拟参数化策略的对齐,作者使用一个两层全连接神经网络,并设计了一个包含一个最优和一个次优轨迹的环境。最优的参数 化策略使用先前获得的最优状态-动作概率进行训练,然后比较各种来自语言模型的微调方法。通过计算最优和训练策略参数之间的 均方误差(MSE)距离来评估性能。

图片

实验结果显示,IFT在优化方面显著优于SFT和ORPO,但略逊于DPO。这主要归因于在探索网格与agent偏好对齐方面,DPO > IFT> ORPO > SFT。尽管ORPO考虑了从策略中采样的负轨迹,但其直接融入SFT损失并使用融合系数,一定程度上削弱了其效果。相比之下,DPO、ORPO和IFT探索的网格更为广泛,有助于agent更深入地理解环境。

结语

本文首先将SFT和一些典型的RLHF方法解释为一个统一的框架,即偏好估计和过渡优化。接着,提出了一种高效且有效的方法 IFT, 它直接从基础模型开始,使用无偏好标签的数据实现对齐。

通过实验来看,IFT可以使用更少的资源与成本实现与其他方法相当甚至更优的效果,为预训练技术的发展提供了一种新思路。

这篇关于清华大学提出IFT对齐算法,打破SFT与RLHF局限性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015119

相关文章

代码随想录算法训练营:12/60

非科班学习算法day12 | LeetCode150:逆波兰表达式 ,Leetcode239: 滑动窗口最大值  目录 介绍 一、基础概念补充: 1.c++字符串转为数字 1. std::stoi, std::stol, std::stoll, std::stoul, std::stoull(最常用) 2. std::stringstream 3. std::atoi, std

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

大林 PID 算法

Dahlin PID算法是一种用于控制和调节系统的比例积分延迟算法。以下是一个简单的C语言实现示例: #include <stdio.h>// DALIN PID 结构体定义typedef struct {float SetPoint; // 设定点float Proportion; // 比例float Integral; // 积分float Derivative; // 微分flo

LeetCode 算法:二叉树的中序遍历 c++

原题链接🔗:二叉树的中序遍历 难度:简单⭐️ 题目 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围 [0, 100] 内 -100 <= Node.

【Java算法】滑动窗口 下

​ ​    🔥个人主页: 中草药 🔥专栏:【算法工作坊】算法实战揭秘 🦌一.水果成篮 题目链接:904.水果成篮 ​ 算法原理 算法原理是使用“滑动窗口”(Sliding Window)策略,结合哈希表(Map)来高效地统计窗口内不同水果的种类数量。以下是详细分析: 初始化:创建一个空的哈希表 map 用来存储每种水果的数量,初始化左右指针 left

ROS2从入门到精通4-4:局部控制插件开发案例(以PID算法为例)

目录 0 专栏介绍1 控制插件编写模板1.1 构造控制插件类1.2 注册并导出插件1.3 编译与使用插件 2 基于PID的路径跟踪原理3 控制插件开发案例(PID算法)常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。 🚀详情:《ROS2从入门到精通》 1 控制插

算法与数据结构面试宝典——回溯算法详解(C#,C++)

文章目录 1. 回溯算法的定义及应用场景2. 回溯算法的基本思想3. 递推关系式与回溯算法的建立4. 状态转移方法5. 边界条件与结束条件6. 算法的具体实现过程7. 回溯算法在C#,C++中的实际应用案例C#示例C++示例 8. 总结回溯算法的主要特点与应用价值 回溯算法是一种通过尝试各种可能的组合来找到所有解的算法。这种算法通常用于解决组合问题,如排列、组合、棋盘游

【图像识别系统】昆虫识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50

一、介绍 昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集(‘蜜蜂’, ‘甲虫’, ‘蝴蝶’, ‘蝉’, ‘蜻蜓’, ‘蚱蜢’, ‘蛾’, ‘蝎子’, ‘蜗牛’, ‘蜘蛛’)进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一

【数据结构与算法 经典例题】使用队列实现栈(图文详解)

💓 博客主页:倔强的石头的CSDN主页               📝Gitee主页:倔强的石头的gitee主页    ⏩ 文章专栏:《数据结构与算法 经典例题》C语言                                   期待您的关注 ​​ 目录  一、问题描述 二、前置知识 三、解题思路 四、C语言实现代码 🍃队列实现代码:

算法11—判断一个树是不是二叉查询树

问题: 给定一个二叉树,判断它是否是二叉查询树。 思路: 要判断是否是二叉查询树,标准就是看每一个节点是否满足:1、左节点及以下节点的值比它小;2、右节点及以下节点的值比它大。当然,前提是子节点都存在的情况。所以,我们需要从根节点不断向下递归,只要所有节点都满足,那么就是BST,否则,就不是。 代码: [java]  view plain copy pri