DPO直接偏好函數的學習解讀

DPO, Direct Preference Optimization,采用直接優化策略滿足人類偏好,使得LLM對于給定輸入,生成能用輸出的概率高于生成不能用輸出的概率。

1)DPO優化目標

在DPO訓練過程中,模型通過最大化可用回答相對于不可用回答的偏好分數的對數似然來優化。

L_{DPO}(\theta) = \mathbb{E}_{(x, y_w, y_l) \sim D} [log \sigma(\beta \cdot r(x, y_w, y_l))]

其中:

D是偏好數據集。

σ是sigmoid函數。

β控制KL散度懲罰項強度的超參數,平衡模型生成高質量響應和保持與參考模型接近之間的關系。

優化目標是通過最小化損失 L_DPO?來增大模型對好回答?𝑦_𝑤的偏好,同時降低對差回答?𝑦_𝑙的偏好。這導致模型傾向于提升?𝑦_𝑤的概率,同時抑制?𝑦_𝑙 的概率。

2)DPO獎勵函數

DPO獎勵函數

r(x, y_w, y_l) = {log{\frac{\pi_{\theta}(y_w|x)}{\pi_{\text{ref}}(y_w|x)}}}-{log{\frac{\pi_{\theta}(y_l|x)}{\pi_{\text{ref}}(y_l|x)}}}

3)傳統RL獎勵函數

對于一個給定策略π_θ,其生成響應y的獎勵函數r(x,y)由策略模型π_θ與參考模型π_ref(通常是SFT后模型)之間的對數概率比表示。

r(x, y) \propto log \frac{?{\pi_{\theta}}(y|x)}{?{\pi_{\text{ref}}}(y|x)}

傳統RL獎勵函數r(x, y)是策略優化中KL散度懲罰的一個重要結果,在RL中加入KL懲罰項,即最大化

\mathbb{E}[reward - \beta KL(\pi_{\theta}||\pi_{\text{ref}})]

時,最優策略πθ?的形式為:

{\pi}_{\theta}^{*}(y|x) \propto {\pi}_{\text{ref}}(y|x)exp(\frac{1}{\beta}r(x, y))

從這個式子反推得到獎勵函數r(x,y),與策略模型與參考策略的對數概率比成正比關系。

4)DPO學習解讀

從DPO優化目標和獎勵函數可見,DPO樣本的輸入和輸出為prompt + chosen + rejected,prompt用x表示,chosen表示的是可用輸出,rejected表示的是不可用輸出。通過最大化DPO目標函數,直接鼓勵模型生成更偏好的響應,同時懲罰生成不偏好的響應,無需顯式地訓練一個獎勵模型。

reference

---

DPO在代碼優化任務上性能糟糕的原因分析

https://inuyashayang.github.io/AIDIY/RLHF_Pages/DPO_Problem/

深度強化學習中的DPO算法:理論與實踐

https://juejin.cn/post/7511915154032967706

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

[2305.18290] Direct Preference Optimization: Your Language Model is Secretly a Reward Model

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85673.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85673.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【開源初探】基于 Qwen2.5VL的文檔解析工具:docext

源碼地址: https://github.com/NanoNets/docext 概述 docext 是一個由視覺語言模型(vlm)提供支持的全面的本地文檔智能工具包。vlm 使用的是基于 Qwen2.5VL-3B 的模型,應該是在此模型基礎上進行的微調。 它提供了三個核心功能&…

Python 正確重載運算符(增量賦值運算符)

增量賦值運算符 Vector 類已經支持增量賦值運算符 和 * 了,如示例 13-15 所示。 示例 13-15 增量賦值不會修改不可變目標,而是新建實例,然后 重新綁定 >>> v1 Vector([1, 2, 3]) >>> v1_alias v1 # ? >>> …

XCUITest + Objective-C 詳細示例

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】

redis分布式鎖 Redisson在電商平臺開發中的實際應用

目錄 概述 Redis分布式鎖的實現方式 1. 基于SETNX命令(String類型) 2. 使用SET命令的NX和EX參數(推薦方式) 3. 基于Lua腳本實現復雜邏輯 4. RedLock算法(多節點Redis實現) Redisson的分布式鎖 Redis…

joomla 使用nginx服務器只能打開首頁,其他頁面404的解決方案

最近一個客戶將Joomla4網站從原先的Apache服務器改為Nginx服務器,整個過程一切順利,但還原網站后發現只能打開首頁,其他頁面都是404。這個問題需要修改nginx的配置文件來解決。 偽靜態 在Apache中使用.htaccess來完成偽靜態路由的轉發&…

湖北理元理律師事務所企業債務紓困路徑:司法重整中的再生之道

中小企業債務危機常呈現“擔保鏈擴散”特征,單一債務可能引發企業崩盤。湖北理元理律師事務所通過預重整制度與企業債務重組技術,探索出“司法保護商業談判”的紓困模式。 一、企業債務風險處置四步法 緊急止血 申請司法保護:通過訴前調解…

利用DeepWiki高效閱讀項目源碼

想獲取更多高質量的Java技術文章?歡迎訪問Java技術小館官網,持續更新優質內容,助力技術成長 技術小館官網 DeepWiki 是一個強大的工具,專為程序員提供開源項目源碼的結構化文檔和 AI 驅動的問答功能,幫助快速理解復雜…

django rest_framework 前端網頁實現Token認證

rest_framework提供了幾種認證方式:Session、Token等。Session是最簡單的,幾乎不用寫任何代碼就可以是實現,Token方式其實也不復雜,網上的教程一大把,但是最后都是用Postman這類工具來實現API調用的,通過這…

面試題-函數類型的重載是啥意思

在 TypeScript 中,函數重載(Function Overload) 是指為同一個函數提供多個不同的調用簽名(參數類型和返回值類型的組合),但函數體只有一個實現。這樣可以讓函數在不同的輸入下表現出不同的行為,…

磐基PaaS平臺MongoDB組件SSPL許可證風險與合規性分析(上)

#作者:任少近 文章目錄 1.背景與問題1.1.背景1.2.問題 3.SSPL條款解讀分析3.1.條款0:定義條款3.2.條款一:源代碼條款3.3.條款二:基本授權條款3.4.條款三:反規避保護條款3.5.條款四:逐字傳播條款3.6.條款五…

「Linux文件及目錄管理」輸入輸出重定向與管道

知識點解析 輸入/輸出重定向 標準輸入(stdin):默認從鍵盤讀取,文件描述符為0。標準輸出(stdout):默認輸出到終端,文件描述符為1。標準錯誤(stderr):默認輸出到終端,文件描述符為2。重定向符號: >:覆蓋輸出到文件(如command > file)。>>:追加輸出…

【Node】最佳Node.js后端開發模板推薦

Node.js 后端開發模板推薦 以下是幾個優秀的Node.js后端模板,它們都適合二次開發,各自有不同的特點和適用場景: 1. Express基礎模板 Express Generator (官方工具) 官方提供的快速搭建工具基礎MVC結構簡單易上手 npm install express-ge…

HALCON相機標定

相機標定簡介: 首先,相機會產生畸變,即實際圖像和拍攝圖像不一致,可以是凸性也可以是凹性形變,相機標定的過程就是將畸變圖像還原為原始圖像,并將圖像中的像素坐標轉換為世界坐標。 形如:相機內…

Solidity 入門教程(二):值類型全解 —— 布爾、整數、地址與字節數組

在上一章中,我們寫下了第一個 Solidity 合約并在 Remix 中成功運行。本章我們將深入了解 Solidity 中的幾種常用值類型(Value Types),并通過示例代碼在 Remix 進行驗證。 一、Solidity 中的三種數據類型 在 Solidity 中&#xf…

16.大數據監控

0.說明 監控主要構成。 軟件版本。 1.exporter監控配置 1.1 node_exporter 啟動命令 nohup ./node_exporter &服務 創建文件 /etc/systemd/system/node_exporter.service: [Unit] DescriptionPrometheus Node Exporter Wantsnetwork-online.target Aft…

Tomcat項目本地部署(Servlet為例)

在Windows上部署 在idea中打開項目 首先我們需要準備一個Servlet項目,我之前的Servlet項目是用eclipse寫的,這種情況下如果用idea直接打開的話會出現左側目錄無法顯示的情況,這個時候我們就需要用別的方法打開 打開項目管理 如下圖&#…

安裝MySQL 5.7導入數據,修改密碼,創建賬號并授權

1. 準備工作 sudo yum update -y sudo yum install -y wget libaio numactl 2. 下載 MySQL 5.7 二進制包 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz 3. 創建 MySQL 用戶和組 sudo groupadd mysql sudo useradd -r -g m…

基礎RAG實現,最佳入門選擇(八)

RAG重排序 RAG重排序技術以提高RAG系統中的檢索質量。重新排序充當初始檢索后的第二個過濾步驟,以確保最相關的內容用于響應生成。 重排序的關鍵概念 1.初始檢索:使用基本相似度搜索的第一遍(準確度較低但速度更快) 2.文檔評分…

Spring Boot 常用注解整理

Spring & Spring Boot 常用注解整理 現代的 Spring 與 Spring Boot 應用大量使用注解來簡化配置、管理組件和實現各種框架功能。本文系統整理了常用的 Spring/Spring Boot 注解,按照功能分類進行介紹。每個注解都會涵蓋其含義、提供來源、應用場景以及代碼示例…

深入理解 Cross-Entropy 損失函數:從原理到實踐

在深度學習中,損失函數是衡量模型性能的關鍵指標之一。對于多分類問題,Cross-Entropy 損失函數 是最常用的選擇之一。它不僅能夠有效衡量模型輸出與真實標簽之間的差異,還能通過梯度下降法指導模型的優化。本文將深入探討 Cross-Entropy 損失…