当前位置: 首页 > news >正文

【论文复现上新】NeurIPS 2023! 经典论文! DPO:你的语言模型,其实就是个奖励模型 | 强化学习 | 微调策略

01 论文概述

1.jpg

论文名称:

Direct Preference Optimization: Your Language Model is Secretly a Reward Model

—— DPO:你的语言模型,其实就是个奖励模型

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

👉Lab4AI 链接:

https://www.lab4ai.cn/paper/detail?utm_source=jssq_bky&id=b7f869b397904e6a95f01b7e3ad6f044&type=paper

2.png

🌟 简介

在大型语言模型(LLM)的对齐技术中,基于人类反馈的强化学习(RLHF)曾是黄金标准。然而,RLHF 流程极其复杂:它需要先训练一个独立的奖励模型(Reward Model)来学习人类偏好,然后再使用强化学习(如 PPO)来微调语言模型以最大化这个奖励。这个过程不仅计算昂贵,而且训练过程极不稳定。

于 2023 年发布的 "直接偏好优化" (Direct Preference Optimization, DPO) 论文提出了一种颠覆性的、更简单的对齐范式。DPO 的核心洞见是:​我们完全不需要一个显式的奖励模型,也不需要强化学习​。通过一个精妙的数学推导,作者证明了可以直接利用人类偏好数据(即“选择的”和“拒绝的”回答对),通过一个简单的分类损失函数来直接优化语言模型本身。这篇论文揭示了,在优化的过程中,语言模型自身就隐式地充当了奖励模型的角色,从而极大地简化了对齐过程。

🔍 优势

  • 极致简化DPO 将 RLHF 复杂的“奖励建模 -> 强化学习”两阶段流程,简化为一步式的、类似监督微调(SFT)的直接优化过程。
  • 稳定高效完全摒弃了强化学习,从而避免了其训练不稳定、超参数敏感等问题。DPO 的训练过程像常规微调一样稳定,且计算成本更低。
  • 性能卓越实验证明,DPO 不仅在实现上更简单,其最终模型的性能通常能与甚至超越经过复杂 RLHF 调优的模型。
  • 理论优雅为偏好学习提供了坚实的理论基础,清晰地揭示了语言模型策略与隐式奖励函数之间的直接关系。

🛠️ 核心技术

  • ​偏好模型的重新参数化 (Reparameterization of the Reward Model)​DPO 的理论基石。它首先基于 Bradley-Terry 等偏好模型建立奖励函数与最优策略(LLM)之间的关系。
  • 从奖励优化到直接偏好优化通过数学推导,DPO 将最大化奖励的目标函数,巧妙地转换为了一个直接在偏好数据上进行优化的损失函数。这个损失函数的形式类似于一个简单的二元分类任务。
  • ​隐式奖励函数 (Implicit Reward Function)​推导出的 DPO 损失函数表明,优化过程实际上是在最大化一个由当前策略(被优化的 LLM)和参考策略(初始 SFT 模型)的比值所定义的​隐式奖励​。这意味着语言模型自身的变化直接反映了奖励的变化,无需外部奖励模型。
  • ​类似 SFT 的实现 (SFT-like Implementation)​DPO 的最终损失函数非常简洁,可以直接用于微调语言模型。训练数据是 (prompt, chosen_response, rejected_response) 三元组,模型的目标是最大化 chosen_response 的概率,同时最小化 rejected_response 的概率。

02 论文原文阅读

您可以跳转到Lab4AI.cn上进行查看。👉 文末点击阅读原文,即可跳转至对应论文页面~

  • Lab4AI.cn 提供免费的AI 翻译和AI 导读工具辅助论文阅读;

  • 支持投稿复现,动手复现感兴趣的论文;

  • 论文复现完成后,您可基于您的思路和想法,开启论文创新。

    3.jpg
    4.png

03 一键式论文复现

Lab4AI.cn上已上架了此篇复现案例,【登录平台】即可体验论文复现。

👉Lab4AI 平台复现链接(或者点击阅读原文):

https://www.lab4ai.cn/paper/detail?utm_source=jssq/_bky&id=5ff4513f94e1408aae0afd05f797d242&type=paper
image.png
6.png

🛠️ 实验部署

本实验环境已为您精心配置,开箱即用。

  • 💻 ​代码获取​:项目复现代码已存放于 /codelab/direct-preference-optimization/code 文件夹中。
  • 🧠 ​模型说明​:/codelab/direct-preference-optimization/model 文件夹中存放了用于 DPO 训练的初始 SFT 模型。
  • 📊 ​数据说明​:/codelab/direct-preference-optimization/dataset 文件夹中包含了用于实验的人类偏好数据集(如 Anthropic HH-RLHF)。
  • 🌐 ​环境说明​:运行所需的所有依赖已预安装在 /envs/dpo/ 环境中,您无需进行任何额外的环境配置。

🚀 环境与内核配置

请在终端中执行以下步骤,以确保您的开发环境(如 Jupyter 或 VS Code)能够正确使用预设的 Conda 环境。

1. 在 Jupyter Notebook/Lab 中使用您的环境

  • 为了让 Jupyter 能够识别并使用您刚刚创建的 Conda 环境,您需要为其注册一个“内核”。
  • 首先,在您已激活的 Conda 环境中,安装 ipykernel 包:
    conda activate dpopip install ipykernel
    
  • 然后,执行内核注册命令。
    # 为名为 dpo 的环境注册一个名为 "Python(dpo)" 的内核kernel_install --name dpo --display-name "Python(dpo)"
    
  • 完成以上操作后,刷新您项目中的 Jupyter Notebook 页面。在右上角的内核选择区域,您现在应该就能看到并选择您刚刚创建的 "Python(dpo)" 内核了。

2. 在 VS Code 中使用您的环境

  • VS Code 可以自动检测到您新创建的 Conda 环境,切换过程非常快捷。
  • 第一步: 选择 Python 解释器
    • 确保 VS Code 中已经安装了官方的 Python 扩展。
    • 使用快捷键 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (macOS) 打开命令面板。
    • 输入并选择 Python: Select Interpreter
  • 第二步: 选择您的 Conda 环境
    • 在弹出的列表中,找到并点击您刚刚创建的环境(名为 dpo 的 Conda 环境)。
    • 选择后,VS Code 窗口右下角的状态栏会显示 dpo,表示切换成功。此后,当您在 VS Code 中打开 Jupyter Notebook (.ipynb) 文件时,它会自动或推荐您使用此环境的内核。

Lab4AI.cn 来送礼啦~

✅ 注册有礼,注册即送 30 元代金券

https://www.lab4ai.cn/register?utm_source=jssq/_bky立即体验

✅ 入群有礼,入群即送 20 元代金券

👇

群.jpg

http://www.hskmm.com/?act=detail&tid=32455

相关文章:

  • 使用 LLVM-Mingw 编译的 Qt 应用程序部署指南:拷贝必要库到 exe 目录
  • 盒子模型
  • 2025年10月16日权威信息公布:西安买房必看新楼盘口碑排行榜TOP10权威发布
  • 多通道采集仪 振弦、温度、模拟量 基建健康 监测工程结构安全
  • 2025 年碳晶板厂家最新推荐榜权威发布:涵盖木纹 / 白色 / 全屋整装等品类,西南及全国优质品牌甄选指南
  • 题解:qoj7837 挑战积和式
  • 2025年10月国内权威信息公布:西安第四代住宅新房/学区房/地铁口买房性价比楼盘/地铁口新房价格/交大附中附近住宅/低总价新房推荐/带露台高性价比四代宅推荐口碑排行榜TOP10揭晓
  • 力扣459.重复的子字符串
  • IC 设计签核揭秘 - 保障流片无忧的秘诀
  • JavaScriptDay3
  • 2025 年标识标牌制造厂家最新推荐排行榜:解读行业头部企业产能与技术实力,精选优质品牌供订做参考
  • 四输入六输出的欠驱动系统建模与仿真
  • DocumentFormat.OpenXml + MiniWord:Word 文档合并与内容赋值的优雅组合
  • CSS三大特性
  • HolmesGPT 正式上线 丨 KubeSphere 助力云原生智能排障新体验
  • MAUI开发安卓应用,采用PC的chrome浏览器调试平板网页
  • 【SPIE出版 | 高校主办,有ISSN、ISBN号 】第四届交通运输工程前沿国际学术会议(FTTE 2025)
  • 【学习笔记】回文自动机初步总结
  • 【学习笔记】回滚莫队初步总结
  • MATLAB中基于 S-V模型进行毫米波信道建模与仿真
  • python之模块
  • 2025 年电动阀门厂推荐榜:电动/气动/高压/真空阀门厂,上海巨良阀门凭技术与口碑领跑行业
  • 认知与困境
  • 【学习笔记】线性基
  • x86_64架构__rdtsc指令
  • KTT
  • AT_joisc2021_c フードコート (Foodcourt)
  • SPP question regarding Issues Due To Gaming Spoofers
  • 类型安全ORM的高并发场景解决方案 - 实践
  • L06_mybatis读取MySQL数据库(懵逼版)