大模型對齊方法筆記四:針對領域問答來進行知識對齊方法KnowPAT

KnowPAT

KnowPAT(Knowledgeable Preference AlignmenT) 出自2023年11月的論文《Knowledgeable Preference Alignment for LLMs in Domain-specific Question Answering》,主要針對領域問答來進行知識對齊。

在領域問答有兩個挑戰:希望輸出滿足用戶的要求、輸出充分利用領域知識庫。為了解決這些挑戰,提出了如下圖的三階段的KnowPAT框架。

在這里插入圖片描述

假設有一個QA數據集 D = ( q i , a i ) ∣ i = 1 , 2 , … , N \mathcal{D} = {(q_i, a_i) | i=1,2,\ldots,N} D=(qi?,ai?)i=1,2,,N q i q_i qi? a i a_i ai?是問答對,在論文中是對應的云端產品使用相關問答對,是由人工收集和標注的。

如果直接在數據集 D \mathcal{D} D上微調LLM M \mathcal{M} M(即通常所說的SFT),設prompt 模板為 I \mathcal{I} I,則優化目標如下(式中的 a i , j a_{i, j} ai,j? a i a_i ai?的第j個token, P M P_{\mathcal{M}} PM?是模型 M \mathcal{M} M預測的token概率)。
L f t = ? 1 ∣ a i ∣ ∑ j = 1 ∣ a i ∣ log ? P M ( a i , j ∣ I , q i , a i , < j ) \mathcal{L}_{f t}=-\frac{1}{\left|a_i\right|} \sum_{j=1}^{\left|a_i\right|} \log P_{\mathcal{M}}\left(a_{i, j} \mid \mathcal{I}, q_i, a_{i,<j}\right) Lft?=?ai?1?j=1ai??logPM?(ai,j?I,qi?,ai,<j?)

對于領域相關任務,一般會有一個領域知識庫(domain KB) B \mathcal{B} B,現在流行的RAG就是領域領域知識庫來讓LLM在領域相關問題上回答更準確的一種解決方法。而KnowPAT采用的是如下三部分的框架來利用領域知識。

無監督知識檢索

設有語義相似度檢索器 H \mathcal{H} H,對于每個問題 q i q_i qi?從KB B \mathcal{B} B中檢索出top-k條最相似的知識并記為 K \mathcal{K} K?, 相似性以檢索器編碼后向量間的余弦相似度來衡量。

偏好數據集構建

偏好數據集分為風格偏好數據集(style preference set, SPS) P s \mathcal{P}_s Ps?和知識偏好數據(knowledge preference set, KPS) P k \mathcal{P}_k Pk?

風格偏好數據集 P s \mathcal{P}_s Ps?構建過程

  1. 選擇l-1個不同的LLM記為 M 1 , M 2 , … , M l ? 1 \mathcal{M}_1,\mathcal{M}_2,\ldots,\mathcal{M}_{l-1} M1?,M2?,,Ml?1?,不同LLM的文本理解和表達能力不一樣,所以可以生成不同風格的回答。
  2. 將上一步LLM生成的l-1個回答和金標準回答構成長度為l的風格偏好數據集 P s = { b 1 , b 2 , … , b l } \mathcal{P}_s = \{b_1, b_2,\ldots,b_l \} Ps?={b1?,b2?,,bl?}
  3. 為了與知識偏好數據集的長度一致,論文中取l為4,選了3個模型:ChatGPT、ChatGLM-6B、Vicuna-7B。
  4. 設金標準回答為 b 1 b_1 b1?,ChatGPT生成的回答為 b 2 b_2 b2?、ChatGLM-6B生成的回答為 b 3 b_3 b3?、Vicuna-7B生成的回答為 b 4 b_4 b4?,作者使用規則來確定這四個回答的偏好分數,認為三個模型的能力ChatGPT>ChatGLM>Vicuna,所以這四個回答的偏好分數順序為 r 1 > r 2 > r 3 > r 4 r_1 > r_2 > r_3 > r_4 r1?>r2?>r3?>r4?

知識偏好數據集 P k \mathcal{P}_k Pk?構建過程

  1. 對于問題a從知識庫KB中檢索出3個知識組合 K 1 \mathcal{K_1} K1? K 2 \mathcal{K_2} K2? K 3 \mathcal{K_3} K3? K 1 \mathcal{K_1} K1?是top-k最相似的知識, KaTeX parse error: Undefined control sequence: \O at position 16: \mathcal{K_2}= \?O?是空集表示不包括任何檢索知識, K 3 \mathcal{K_3} K3??表示top-k+1至top 2k相似的知識。
  2. 將不同的知識組合與prompt模板 I \mathcal{I} I一起輸入到LLM M \mathcal{M} M生成答案,生成的三個答案與金標準一起組成知識偏好數據 P k = { c 1 , c 2 , c 3 , c 4 } \mathcal{P}_k = \{c_1, c_2, c_3,c_4 \} Pk?={c1?,c2?,c3?,c4?}
  3. 設金標準回答為 c 1 c_1 c1?,使用 K 1 \mathcal{K_1} K1?生成的回答為 c 2 c_2 c2?、使用 K 2 \mathcal{K_2} K2?生成的回答為 c 3 c_3 c3?、使用 K 3 \mathcal{K_3} K3?生成的回答為 c 4 c_4 c4?,作者發現與問題不那么相似的知識很容易誤導LLM,所以這四個回答的偏好分數順序為 r 1 > r 2 > r 3 > r 4 r_1 > r_2 > r_3 > r_4 r1?>r2?>r3?>r4?

微調和偏好對齊

前面構建的偏好數據集里偏好分數 r i r_i ri?代表了偏好度,希望模型 M \mathcal{M} M能夠對齊偏好。模型在給定prompt模板和問題 q i q_i qi?后對每個回答token的平均對數似然如下式 S i S_i Si?表示,分數越高表示模型認為回答有更高的概率:
S i = ? 1 ∣ a i ∣ ∑ j = 1 ∣ a i ∣ log ? P M ( a i , j ∣ I , q i , a i , < j ) \mathcal{S}_{i}=-\frac{1}{\left|a_i\right|} \sum_{j=1}^{\left|a_i\right|} \log P_{\mathcal{M}}\left(a_{i, j} \mid \mathcal{I}, q_i, a_{i,<j}\right) Si?=?ai?1?j=1ai??logPM?(ai,j?I,qi?,ai,<j?)
KnowPAT先設計了如下的對齊目標,目的是為了對比偏好答案和非偏好答案,偏好分數只用來決定不同答案的順序。式中的 σ \sigma σ是sigmoid函數。

L a l i g n = ? ∑ i = 1 ∣ P ∣ ? 1 ( log ? σ ( S i ) + log ? ∑ r j < r i σ ( ? S j ) ) \mathcal{L}_{align}=- \sum_{i=1}^{|\mathcal{P}|-1} \left( \log \sigma (\mathcal{S}_i) + \log \sum_{r_j < r_i}\sigma (-\mathcal{S}_j) \right ) Lalign?=?i=1P?1? ?logσ(Si?)+logrj?<ri??σ(?Sj?) ?

考慮到不同的回答的文本質量和偏好等級不一樣,作者設計了如下式的自適應權重來控制每個偏好回答的影響,式中的 S m a x S_{max} Smax? S m i n S_{min} Smin?是偏好數據集里的最大和最小偏好分數。

μ i = S i ? S m i n S m a x ? S m i n \mu_i = \frac {S_i - S_{min}}{S_{max} - S_{min}} μi?=Smax??Smin?Si??Smin??

使用自適應權重后,不同偏好分數的回答的影響可以動態調整,對齊目標相應地變為下式:
L a l i g n = ∑ i = 1 ∣ P ∣ ? 1 μ i ( log ? ( 1 + e ? S i ) + log ? ∑ r j < r i log ? ( 1 + e S j ) ) \mathcal{L}_{align}= \sum_{i=1}^{|\mathcal{P}|-1} \mu_i \left( \log (1 + e^{-\mathcal{S}_i} )+ \log \sum_{r_j < r_i}\log ( 1 + e^{ \mathcal{S}_j}) \right ) Lalign?=i=1P?1?μi? ?log(1+e?Si?)+logrj?<ri??log(1+eSj?) ?

KnowPAT的訓練目標為對齊損失和微調目標之和,超參數 λ \lambda λ作為對齊損失的系數, P ? 1 \mathcal{P}-1 P?1用來歸一化對齊損失。
L = L f t + λ ∣ P ∣ ? 1 L a l i g n \mathcal{L} = \mathcal{L}_{ft} + \frac{\lambda} {|\mathcal{P}| -1} \mathcal{L}_{align} L=Lft?+P?1λ?Lalign?

注:1. 有一點疑問是前面構建了兩個偏好數據集,微調里沒有詳細說明是一起訓練還是分別訓練,只寫了一句看起來像是分別訓練的話:For each preference set constructed in the previous section, the model is trained and optimized with such an objective. 2. 風格偏好數據集與RRHF的數據構建思路是一樣的,論文代碼也是基于RRHF的,不過對齊目標函數有所區別

參考資料

  1. KnowPAT: arxiv, github

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

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

相關文章

Notepad++ 常用

File Edit search view Encoding Language Settings Tools Macro Run Plugins Window 文件 編輯 搜索 視圖 編碼 語言 設置 工具 宏 運行 插件 窗口 快捷方式 定位行 &#xff1a;CTRL g查找&#xff1a; CTRL F替換&am…

小白也能看得懂的基于HTML+CSS+JS實現的五子棋小游戲

五子棋是一種起源于中國的傳統棋類游戲&#xff0c;具有悠久的歷史。 基本規則 棋盤&#xff1a; 五子棋通常在一個 15x15 的棋盤上進行&#xff0c;但也可以在更大的棋盤上進行。棋盤上的每個交叉點稱為一個“點”。 棋子&#xff1a; 五子棋使用黑白兩色的棋子。兩名玩家分別…

【競技寶】歐冠:多特搶開局失敗,皇馬展示頂級防守反擊

本賽季歐冠決賽結束,皇馬在上半場被壓制的情況下,2比0擊敗多特蒙德奪得隊史第15座歐冠冠軍獎杯。比賽中多特蒙德已經展現出了不俗的狀態,可是面對老辣的皇馬他們還是敗下陣來,皇馬用頂級的防守反擊給多特上了一課。通過這場比賽,相信球迷們也清楚當今足壇硬實力不可或缺。 在許…

《Effective C++》《資源管理——14、在資源管理類中小心copying行為》

文章目錄 1、Terms14:Think carefully about copying behavior in resource-managing classes方法一&#xff1a;禁止復制方法二&#xff1a;對底層資源使出“引用計數法”方法三&#xff1a;復制底部資源方法四&#xff1a;轉移底部資源的擁有權 2、總結3、參考 1、Terms14:Th…

7-18 對象關系映射(orm_name)---PTA實驗C++

一、題目描述 一開始看到對象關系映射&#xff0c;其實我是拒絕的。這三個詞湊一塊&#xff0c;能是給C初學者的題嗎&#xff1f; 再仔細讀需求&#xff0c;才發現在課設項目已經用過這功能。Object Relational Mapping&#xff08;ORM&#xff09;就是面向對象&#xff08;O…

計算機基礎之:LSM樹

使用過hbase、cassandra之類nosql數據庫的小伙伴對LSM樹結構應該有所耳聞&#xff0c;那么這種數據結構有哪些優劣勢呢&#xff0c;本文做下簡單介紹。 LSM&#xff08;全稱&#xff1a;Log-Structured Merge Tree&#xff09;是一種廣泛應用于現代數據庫和存儲系統的數據結構…

《平淵》· 柒 —— 大道至簡?真傳一句話,假傳萬卷書!

《平淵》 柒 "真傳一句話, 假傳萬卷書" 對于 "大道至簡"&#xff0c;不少專家可能會說出一大堆亂七八糟的名詞, 比如這樣&#xff1a; 所謂 "大道" 即支撐天地運轉的 "系統自動力"&#xff0c;更具體地來說&#xff0c;即是天地人以…

快手游戲《無盡夢回》官宣開測:熱血動作肉鴿來襲

易采游戲網最新消息&#xff1a;5月30日11:00&#xff0c;快手自研的夢境主題動作冒險手游《無盡夢回》正式宣布開啟測試。此次測試名為“肉鴿進化實驗”&#xff0c;旨在測試多角色技能交會的玩法。游戲將開放32人同局競技&#xff0c;讓玩家在激烈的戰斗中角逐出唯一的勝利者…

HTML如何讓文字底部線條不緊貼在文字下面(既在內容下方又超出內容區域)

hello&#xff0c;大家好&#xff0c;星途星途今天給大家帶來的內容是如何讓文字底部線條不緊貼在文字下面。 話不多說&#xff0c;先上效果圖 簡單來說就是padding和margin的區別。 在網頁設計中&#xff0c;有時我們想要給某個元素添加一個裝飾性的線條&#xff0c;比如底部…

過濾器、監聽器、攔截器的區別

過濾器、監聽器、攔截器的區別 過濾器&#xff08;filter&#xff09;、監聽器&#xff08;Listener&#xff09;是JavaWeb的三大組件。而攔截器&#xff08;Interceptor&#xff09;是Spring框架中的。 我們主要是要分清除過濾器和攔截器的區別&#xff1a; 實現原理&#…

overleaf 寫參考文獻引用

目錄 1、 新建.bib 文件 2、導入引用 3、在文檔中引用參考文獻 4、生成參考文獻列表 1、 新建.bib 文件 在Overleaf項目中&#xff0c;你可以選擇導入現有的 .bib 文件或在項目中創建一個新的 .bib 文件來管理你的參考文獻。 導入.bib 文件&#xff1a; 在項目文件樹中點擊…

11. RBAC權限管理從零到一實現(二)

前端頁面已提交至git https://github.com/SJshenjian/cloud-web默認用戶名密碼admin 1

MySql 數據類型選擇與優化

選擇優化的數據類型 更小的通常更好 一般情況下盡量使用可以正確存儲數據的最小類型。更小的數據類型通常更快&#xff0c;因為它們占用更少的磁盤&#xff0c;內存和CPU緩存&#xff0c;并且處理時需要的CPU周期也更少。但也要確保沒有低估需要存儲值的范圍。 簡單就好 簡單的…

【自然語言處理】【Scaling Law】Observational Scaling Laws:跨不同模型構建Scaling Law

相關博客 【自然語言處理】【Scaling Law】Observational Scaling Laws&#xff1a;跨不同模型構建Scaling Law 【自然語言處理】【Scaling Law】語言模型物理學 第3.3部分&#xff1a;知識容量Scaling Laws 【自然語言處理】Transformer中的一種線性特征 【自然語言處理】【大…

jmeter性能優化之tomcat配置與基礎調優

一、 修改tomcat初始和最大堆內存 進入到/usr/local/tomcat7-8083/bin目錄下&#xff0c;編輯catalina.sh文件&#xff0c;&#xff0c;默認堆內存是600m&#xff0c;初始堆內存和最大堆內存保持一致&#xff0c; 可以更改到本機內存的70%&#xff0c;對于Linux系統&#xff0…

conda創建虛擬環境并激活

1 conda activate base 2 conda creat -n aaa python** 3 conda activate aaa 4 interpreter里面去選擇剛搞好的編譯器 ...../conda.exe

【SpringBoot】四種讀取 Spring Boot 項目中 jar 包中的 resources 目錄下的文件

本文摘要&#xff1a;四種讀取 Spring Boot 項目中 jar 包中的 resources 目錄下的文件 &#x1f60e; 作者介紹&#xff1a;我是程序員洲洲&#xff0c;一個熱愛寫作的非著名程序員。CSDN全棧優質領域創作者、華為云博客社區云享專家、阿里云博客社區專家博主。公粽號&#xf…

【操作系統】Windows平臺捕獲崩潰現場底層原理,附代碼親測MiniDumpWriteDump

MiniDumpWriteDump 是一個Windows API函數&#xff0c;它屬于DbgHelp.dll庫&#xff0c;用于生成程序崩潰時的內存轉儲文件&#xff08;MiniDump&#xff09;。這個函數是Windows平臺下用于捕獲程序崩潰時的內存狀態的常用方法之一。以下是MiniDumpWriteDump函數的原理和工作流…

【C++】ios::sync_with_stdio(false) 與 cin.tie(nullptr) 加速 IO

一、前言 之前寫題遇到大數據量&#xff08;cin、cout 數據量級達到 1e5、1e6 &#xff09;&#xff0c;因為考慮 IO 性能報錯 TLE&#xff0c;故選擇 scanf、printf 替代 cin、cout&#xff0c;以解決問題。一直以來沒有深入研究其中原因&#xff0c;只知關鍵詞——同步&…

設計模式(十三)行為型模式---命令模式

文章目錄 命令模式簡介結構UML圖具體實現UML圖代碼實現 命令模式簡介 命令模式&#xff08;command pattern&#xff09;也叫動作模式或者事務模式。它是將請求&#xff08;命令&#xff09;封裝成對象&#xff0c;使得可以用不同的請求對客戶端進行參數化&#xff0c;具體的請…