模型调优
大语言模型调优是通过准备训练数据,并在已有的预训练模型上进行调优,包括 llama、千问等模型,从而可以让模型学习到私有知识或者增强模型的已有知识。因此,如果要想训练一个效果好的模型,我们就需要提供大量的训练数据,数据格式包括问题和答案,例如下面这个例子,这种方式叫做 SFT(Supervised Fine Tuning):
{"instruction": "列举消费者决策过程的五个阶段。","input": "","output": "消费者决策过程的五个阶段包括问题识别阶段、信息搜索阶段、替代方案评估阶段、购买决策阶段和购后评估阶段。在问题识别阶段,消费者会感知到需求并开始搜索信息。在信息搜索阶段,消费者会寻找更多信息来帮助他们选择产品。在替代方案评估阶段,消费者会评估可用选择并权衡各种选项。在购买决策阶段,消费者会做出购买决策。最后,在购后评估阶段,消费者会评估自己的购买,并决定是否满意自己的决策,或者是否需要再次购买。"},{"instruction": "改写给定句子,使用适当的隐喻使其具有与原句相同的意义。","input": "跳入游泳池就像是跳入冰水中一样。","output": "跳入游泳池就像跳入冰浴中一样。"},
上面这两条是取自alpaca_data_zh_51k中文数据集。SFT 并不能保证模型的回答和用户想要一致,RLHF(reinforcement learning from human feedback),这种方式是通过用户反馈对模型的参数进行调优,本文将介绍RLHF 中的 DPO 和 PPO 两种方式是如何进行调优的。
PPO(Proximal Policy Optimization)
PPO是一个比较复杂的训练方式,需要训练奖励模型,通过奖励模型对模型的回答进行打分,通过得分对测试进行调优,最终目标是提高得分。策略模型中包含了 Actor模型和 Critic模型,就像大脑中的两种意识,一个负责决策,一个负责总结得失。
DPO(Direct Preference Optimization)
直接偏好优化(DPO)是一种在强化学习和机器学习中使用的方法,旨在基于人类偏好直接优化策略,而无需依赖预定义的奖励模型。这种方法通过人类反馈来指导学习过程,确保所学策略符合人类的偏好和期望。这在难以定义明确的奖励函数或人类满意度和偏好至关重要的场景中尤为有用。如上图所示,在 DPO 不需要奖励模型的训练,DPO 直接用用户的返回进行优化。
总结
RLHF 相比于 SFT 可以根据用户的反馈进行优化,从而提高了模型的效果。虽然,RL 提高了模型的效果,数据还是起到非常重要的作用。想要调优一个效果很好的私有模型,数据准备的工作,无论 SFT 还是 RL 门槛都很高。