为期12天的OpenAI,在第二天的时候发布了一个名叫“强化学习微调”的技术。不同于传统的监督微调(SFT),强化微调不仅仅是让模型“记住答案”,而是通过高质量的任务数据与参考答案,强化模型的推理能力,使其在特定领域中学会如何找到正确答案。
可以将强化微调理解为赋予AI一套复杂的规则和思考框架,让它通过反复实践和推理,逐步掌握解决问题的有效方法。这种训练方式使用两个核心数据集:微调数据集与测试数据集。模型首先通过微调数据集进行学习,再通过测试数据集验证其推理能力,找出不足之处并进行针对性调整。通过这种反复迭代的自我训练与验证,模型的推理能力不断提升,最终在特定领域达到极高的专业水平。
强化微调不仅提升了模型解决同类问题的能力,还显著增强了其在特定领域的准确性。例如法律、保险、医疗、金融和工程等领域,这些任务通常具有明确的“正确答案”,而强化微调正是为解决此类需求量身定制的利器。这种方法让AI在复杂任务中展现出更强大的适应性和专业性,助力各行业实现高效、精准的智能化应用。
OpenAI调用强化学习微调步骤
强化学习微调((Reinforcement Fine-Tuning)不同于以往的有监督微调算法,从它的名字中就可以知道,它是一种基于强化学习算法去做微调。目前OpenAI将把这项技术放到明年进行正式发布,如果想要申请尝试以下,可以去到官网填写申请单:
下面是OpenAI针对强化学习微调这个技术进行的现场演示。
第一步,打开OpenAI的官网,选择微调方法Reinforcement和基础模型o1-mini:
第二步,进行训练数据准备。
一般来说,要准备自己的数据集,用jsonl格式进行存储。在实际演示过程中,准备的是一个“遗传病”数据集,数据集可能包含患者的症状和已知的致病基因。构造成类似于下面这种json格式
这个数据中,会把数据划分成训练数据集和验证数据集,模型最后会根据验证集去苹果收敛效果。
在强化学习中,需要一个评估器去评估模型生成的效果。说白了也就是给结果进行打分。评分器会根据模型的答案和正确答案的差距来打分,分数在0到1之间,分数越高说明模型预测得越准。用户可以选现成的评分器,也可以自己设置一个。
第三步,设置模型训练参数。可以设置batch size、学习率learning rate、迭代步数epochs等。当然也可以默认这些参数。
第四步,模型启动训练后,可以看到微调过程的结果。
在控制面版中,也可以看到评估训练的最终结果。新微调过后的模型,得分在31%,已经超越了o1推理模型的效果了。
对于OpenAI所使用的强化学习微调方法,目前还没有放出来详细的细节。不过网上都认为这个技术来自于今年年初字节发布的一篇论文。OpenAI 的具体做法可能跟论文里描述的有所不同,可能名字一样,技术类似也说不定。
Demo中的一些局限性
OpenAI展示的Demo中的案例其实是比较简单的,从这里也能看到其局限性。“遗传病”的分类排查,在医学上很重要,但其实它是已知科学问题中最简单的一种。“遗传病”的诊断通常有明确的基因指标和相对标准化的判断流程。深度学习中能用少量数据让模型自动学会这个诊断过程,是因为这个数据集本质上已经集成了很多专家的经验,说白了就是简单的决策树,基本上只用几十个例子就能进行简单的诊断分类。
这种问题本质上就是一个简单的选择题,选项不多又容易区分的话,模型掌握起来就简单多了。
这个示例还避开了强化学习中最麻烦的奖励建模环节,随便弄个评分规则就行,比如答对给一分,答错不给分。
但是遇到现实的问题通常没那么简单,没有固定选项,也没有标准答案。怎么确定行动,问题该怎么提,新科学概念怎么定义和命名,这些才是最难也最具挑战的科学难题。而且实际生产数据通常都有噪声,不是简单的选择题,决策过程也不清晰。这些问题往往单靠强化学习微调可能也不能够很好的进行解决。
什么是强化学习微调?
强化学习微调((Reinforcement Fine-Tuning)不同于以往的有监督微调算法,从它的名字中就可以知道,它是一种基于强化学习算法去做微调。
连OpenAI的CEO奥特曼都把这个微调算法称为是2024年大模型最厉害的技术发展,只需要准备少量的训练数据,就可以帮助你训练出一个专业领域的大模型
强化学习微调,最早可以来自于2024的ACL论文上,主要是由字节跳动提出来的。
强化学习微调说得简单一点,其实就是把下游微调和强化学习这两种技术融合起来。在传统的下游微调任务中,如果使用带有思维链(CoT)标注的数据进行训练,虽然能够提升模型的推理能力,但是因为每个问题通常只有一个标注的推理路径,模型无法学习到多样化的推理方式。
论文中提到的强化学习微调ReFT方法包括两个阶段:
预热阶段(Warm-up): 首先,模型在CoT数据上进行的有监督微调训练,使其初步具备生成数学问题解答的能力,但不要求高度准确。
强化学习阶段:在此阶段,模型通过在线强化学习(论文中使用了PPO算法)进一步微调。模型针对每个问题自动生成多种推理路径,并根据与真实答案的匹配程度给予奖励,从而学习到多样化的推理方式。
下图其实很清晰的展示出有监督微调和强化学习微调的区别,有监督微调往往只有一个正确的思维路径,而强化学习微调则可以生成多个思维路径,给模型进行打分然后学习。
从结果上看,在多个数据集上的实验显示,强化学习微调方法在准确性和泛化能力方面均优于传统的有监督微调方法。此外,结合推理阶段的策略(如多数投票和重新排序)可以进一步提升模型性能。
写在最后
强化学习微调技术,单独来看就是把强化学习和微调进行了融合,两个概念不算新鲜,但是融合在一起的威力确实超出人们的想象。
但是想要使用强化学习微调,需要高质量的数据和答案作为基础,但这些数据往往很难搞到,特别是医疗、法律、金融这种专业又敏感的领域。如果数据质量不高或者不够用,训练效果会大打折扣。
而且搞不好,数据量不够,模型可能太过依赖训练数据集里的模式,导致在实际应用中遇到稍微不同的情况就“答非所问”。就算有测试数据集验证,如果测试集设计不全面,还是没法解决这个问题。所以说,想要用好这个技术,并不是那么容易。
最后总结一下,强化微调就是“术业有专攻”,在标准化任务上很能打,但代价高、适应面窄,还有过拟合的风险。未来如果能解决数据成本和泛化能力的问题,这个方法可能会更实用一些。
好了,以上就是本期的所有内容了,我是leo,我们下期再见~