ReFT论文浅读

ReFT: Reasoning with Reinforced Fine-Tuning

核心贡献:

  1. 使用和SFT相同的训练数据上(不需要额外造数据 以及 不需要额外的 reward model), 这种使用强化学习的强化微调技术,比单纯用SFT训练出的模型更好。
  2. 做了实验,说ReFT结合多数投票 和 奖励模型排序 的方法,可以进一步提升ReFT的效果。

Q: 为什么要用这种 在线强化学习的方式? 和 直接造一批数据,进行离线强化学习方式 有什么区别?:
A: 这种在线强化学习的方式,在学习的过程中,每一次梯度更新之后,生成的负样本干扰性都会更强。
这就是离线强化学习 和 在线强化学习 最大的差别。

训练数据:

完整的训练数据,是带cot的数据, 格式为(x, e, y),其中x为原始question, e是cot的思考步骤, y 是最终生成的数值答案。注意y是可以在e中提取出来的。
训练数据 可以参照下面图中的样例(画红线部分 已经标记出来 x, e, y )

训练数据样例 以及 训练过程

SFT 和 ReFT的对比图

SFT只训练一条推理路径(训练集给出的标注路径); ReFT自己采样生成多条推理路径,通过对比最后的答案,给出不同路径的reward。


SFT 和 ReFT 的 对比

ReFT算法(伪代码)

ReFT包含两个阶段:

  1. 使用sft进行1-2个epoch的热身,使得模型在原本的数据集领域(math),有一个基本的推理能力。(sft阶段的训练数据是x, e)
  2. 进行完热身之后,接着在线的强化学习,主要做法是,针对同一个问题question, 采样多种cot推理路径,验证这些推理路径的答案,给予reward, 没有使用额外的reward model。(rl 阶段的训练数据是 x, y)。
    1. 这个阶段的值模型value model 采用的是在第一个阶段产生的策略模型 加上一个线性头,输出一个值。
    2. 对于奖励值reward, cot中间步骤的reward都是0, 只有最后一步根据生成的完整cot,提取答案,和训练数据中的真实值对比,用0或1 给予奖励,表示正确与否。
    3. 还给了一个特殊的奖励,0.1,数学问题中,如果可以从最后的cot中抽取中数值类型的答案,但是答案不正确,给予0.1的奖励,用来激励模型,多多生成这种可以抽取数值的答案。(参照下面奖励函数r)
ReFT 算法步骤
奖励函数

实验结果:

  1. 这里说明一下
  • Offline Self-Training (Offline-ST). 使用之前的SFT模型,对一个问题采样多个COT推理路径, 只保留答案验证正确的那些, 再将这些数据与原来的数据进行结合,然后再进行微调。
  • Online Self-Training (Online-ST). 和ReFT一样也有预热,之后继续进行训练(在线的)。
    • 在每个训练step中,模型首先为一个batch采样CoT,只保留那些是正确答案的CoT。生成的batch包含了采样的CoT和真实答案的CoT。然后,我们使用监督微调目标 𝐿𝑆𝐹𝑇 (论文中有提供公式) 在这个batch上更新模型参数。
    • 与ReFT相比,Online-ST没有利用负反馈(即错误答案的反馈),也没有专门的机制来防止模型显著偏离初始模型,这可能会过拟合和训练不稳定性。
ReFT与其他训练方式的效果对比
  1. 作者还对比了多数投票和reward model 排序的效果。可以看出:
  • rerank的效果要好于voting
  • ReFT的效果要好于SFT(不管是voting 还是 rerank)


    image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容