首页 > 其他分享 >DPO: Direct Preference Optimization 直接偏好优化(学习笔记)

DPO: Direct Preference Optimization 直接偏好优化(学习笔记)

时间:2024-01-15 10:13:59浏览次数:38  
标签:模型 Direct RLHF 奖励 偏好 Optimization Preference DPO 优化

学习参考:链接1  

一、为什么要提出DPO

  在之前,我们已经了解到基于人类反馈的强化学习RLHF分为三个阶段:全监督微调(SFT)、奖励模型(RM)、强化学习(PPO)。但是RLHF面临缺陷:RLHF 是一个复杂且经常不稳定的过程,首先拟合反映人类偏好的奖励模型,然后使用强化学习微调大型无监督 LM,以最大化这种估计奖励,而不会偏离原始模型太远。为解决这一问题,提出一个直接偏好优化 (DPO) 的新算法:通过利用奖励函数与最优策略之间的映射关系,证明这个受限的奖励最大化问题可以通过单阶段的策略训练来精确优化,本质上是在人类偏好数据上解决一个分类问题。DPO是稳定的、性能和计算成本轻量级的,无需拟合奖励模型,在微调期间从 LM 中采样,或执行显着的超参数调整。通过实验表明:DPO 进行微调超过了 RLHF 效果,并提高了摘要和单轮对话的响应质量。

二、什么是DPO

DPO,一种基于人类偏好优化语言模型的新方法。与RLHF不同,DPO不依赖于明确的奖励建模或强化学习。它针对与RLHF相同的目标,但提供了一种更简单、更直接的培训方法。

DPO的工作原理:增加偏好样本的对数概率与减小非偏好样本响应的对数概率。它结合了动态加权机制,以避免仅使用概率比目标时遇到的模型退化问题。

DPO依赖于理论上的偏好模型,如Bradley-Terry模型,来测量奖励函数与经验偏好数据的对齐程度。与传统方法不同,传统方法使用偏好模型来训练奖励模型,然后基于该奖励模型训练策略,DPO直接根据策略定义偏好损失。给定一个关于模型响应的人类偏好数据集,DPO可以使用简单的二元交叉熵目标来优化策略,无需在训练过程中明确学习奖励函数或从策略中采样。具体推导见链接1  

(1)原RLHF的优化目标:最大化奖励和最小化参考策略的KL散度

(2)DPO优化目标:利用了从奖励函数到最优策略的解析映射,允许直接使用人类偏好数据进行简化的优化过程

该目标增加了对偏好$y_w$的可能性,并减少了非偏好$y_l$的可能性。这些示例按照隐式奖励模型的评级加权,由$\beta$缩放.

DPO重新参数化等效于具有隐式奖励函数:

参数模型$\pi_{\theta}$的优化等效于在此变量更改下的奖励模型优化。

(3)DPO在干什么?

为了从原理上理解 DPO,分析损失函数LDPO的梯度。 相对于参数 θ 的梯度可以写为:

其中是由语言模型$\pi_{\theta}$和参考模型$\pi_{ref}$隐士定义的奖励函数。直观上,损失函数 LDPO 的梯度增加了偏好$y_w$ 的可能性,并降低了非偏好$y_l$的可能性。更重要的是,样例的权重是通过隐式奖励模型$\hat{r}_{\theta}$对非偏好的评分高多少来衡量的,按 β 进行缩放,即隐式奖励模型认为策略模型错误的程度,考虑到 KL 约束的强度。 我们的实验表明了这种加权的重要性,因为没有加权系数的这种方法的简单版本可能会导致语言模型退化。

(4)DPO outline

 

标签:模型,Direct,RLHF,奖励,偏好,Optimization,Preference,DPO,优化
From: https://www.cnblogs.com/lemonzhang/p/17910358.html

相关文章

  • mac下golang打包到Linux上执行报错:No such file or directory
    本地mac打包golang二进制文件到linux服务器报错:-bash:./atmp-linux:Nosuchfileordirectory很奇怪,明明可执行文件在当前目录下,为什么会找不到呢?使用列出动态库依赖的lld(listdynamicdependencies)命令查看了下,发现:lddatmp-linux发现报错:./atmp-linux:errorwhile......
  • Windows: AD active directory
     gpmc.mscgpms.mscstandsforGroupPolicyManagementConsole,ItisaMicrosoftManagementConsole(MMC)snap-inthatprovidesasingleadministrativetoolformanagingGroupPolicyacrossanorganization.TheGroupPolicyManagementConsoleisusedtoc......
  • 浏览器读取计算机文件信息 showDirectoryPicker
    效果图代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>选择电脑文件夹</title&g......
  • VMware Cloud Director 10.3.1 - 云计算调配和管理平台
    VMwareCloudDirector10.3|2021年7月15日|内部版本18296069(已安装内部版本18295834)VMwareCloudDirector10.2|2020年10月15日|内部版本17029810(已安装内部版本17008054)VMwareCloudDirector10.1|2020年4月9日|内部版本15967253(已安装内部......
  • windows下logstash从文件中读数据写入es报错 Error: No such file or directory - :/d
    [2023-12-22T17:26:50,327][ERROR][logstash.javapipeline][main][897a6c7006446c97daa2ee44df7541701882ceece289ce428fcfac8aa982a0c5]Apluginhadanunrecoverableerror.Willrestartthisplugin.Pipeline_id:mainPlugin:<LogStash::Inputs::Filestar......
  • Proximal Policy Optimization (PPO): A Robust and Efficient RL Algorithm
    1.背景介绍ProximalPolicyOptimization(PPO)是一种强化学习(ReinforcementLearning,RL)算法,它在许多实际应用中表现出色,具有较强的鲁棒性和效率。在这篇文章中,我们将详细介绍PPO的核心概念、算法原理、具体实现以及潜在的未来趋势和挑战。1.1强化学习简介强化学习是一种......
  • 【五期李伟平】CCF-B(TFS'23)Consensus Reaching Process With Multiobjective Optimiza
    PengWu,FengenLi,JieZhao,etal.ConsensusReachingProcessWithMultiobjectiveOptimizationforLarge-ScaleGroupDecisionMakingWithCooperativeGame[J].IEEETransactionsonFuzzySystems2023:293-306.  本文针对大规模群体决策(LSGDM)中的共识达成......
  • C# Directory.Delete – 删除目录
    原文链接:https://pythonjishu.com/qxepdysexyunich/C#中的Directory.Delete()方法用于删除指定路径下的目录,其中包括目录中所有的文件和文件夹。该方法支持递归删除目录及其子目录,同时也支持保留目录树中的空目录。该方法存在多个重载形式,可以根据传入的参数实现多种不同的删除操......
  • auto{x}与auto(x)---一位中国小伙为cppreference作出的贡献
      C++作为一门静态类型语言,是需要程序员声明变量类型的。然而来到了C++11,auto的诞生使得变量声明变得及为方便,尤其是对于比较长的模板类型,auto一定程度上为代码编写者减轻了负担。到了C++23,突然来了个新特性:auto{x}/auto(x),这又是个什么东西,它的motivation又是什么?   首先......
  • shared_preferences缓存
    封装import'dart:convert';import'package:shared_preferences/shared_preferences.dart';classJSpUtil{JSpUtil._internal();//私有的构造方法,防止外部实例化factoryJSpUtil()=>_instance;//工厂方法,返回JSpUtil唯一实例staticlatefinalJSpU......