42. 【实战】使用 DPO 进行人类偏好对齐训练#

42.1. 任务背景#

在大模型训练过程中,监督微调(Supervised Fine-Tuning,SFT)通常用于让基础模型快速具备特定任务能力和基本指令对齐能力,是模型从”能生成”走向”会回答”的关键步骤。然而,SFT 让模型学会了”说人话”和遵循指令格式,但它本质上是在模仿训练数据中的文本分布,当我们想要在更泛化的场景下评判回答优劣时就会力不从心——它只能判断”像不像范例”,却无法区分两个合格回答中哪个更符合人类真实偏好。

因此需要引入直接偏好优化(Direct Preference Optimization,DPO),通过人类标注的”好/坏”对比数据,直接教会模型”答得好”而非仅仅”答得对”,从而在开放场景中输出真正受用户欢迎的结果。

42.2. 任务目标#

本次任务将在 Qwen2.5-0.5B 基座模型上,通过 DPO 训练让模型在问答中更倾向于生成人类偏好(带有 emoji)的结果,使得模型的问答结果更显生动、活泼、友好。

  • 基础模型:Qwen2.5-0.5B-Instruct

  • 微调方式:LoRA

  • 微调框架:Swift

微调前:

🧑用户问题:建议一个有力的名言。

🤖模型回答:爱因斯坦曾说过:“在危机中,创造力比知识更重要。” 这句名言告诉我们,当面临困难和挑战时,要敢于创新,敢于尝试新方法,才能突破困境,取得成功。

微调后:

🧑用户问题:建议一个有力的名言。

🤖模型回答:“在危机中,创造力比知识更重要。” —— 爱因斯坦👨‍🔬📚 这句名言告诉我们,当面临困难和挑战时,要敢于创新🚀,敢于尝试新方法💡,才能突破困境🌟,取得成功🏆。希望你在生活中也能勇于创新,不断进步!🚀🌟

42.3. 学习收获#

完成本次任务,你将能够:

  • 理解 DPO 的核心原理:掌握如何利用人类偏好数据引导模型对齐优化,清晰辨析 DPO 与 SFT 在训练目标上的本质差异。

  • 明确 DPO 训练的数据需求:熟悉 DPO 所需的数据格式(prompt、chosen、rejected),并掌握构造高质量人类偏好对比数据的方法。

  • 掌握 DPO 的标准训练流程:理解 DPO 训练前为何需要先进行 SFT 微调——让模型具备基本的指令跟随能力,为后续偏好学习提供稳定可靠的起点。

  • 了解 DPO 训练中的指标含义:通过了解 rewards/chosenrewards/rejected 等指标的含义,理解 DPO 训练的目标。

42.4. 获取源码#

点击下方链接,获取任务完整源码 👇👇👇


○ 如果你觉得这篇文章有所帮助,欢迎将本文链接推荐给更多人——无论是分享到朋友圈、博客、社群,还是任何你常逛的地方。每一次转发,都会让它在搜索结果中更容易被有需要的人看到。