[論文閱讀]REPLUG: Retrieval-Augmented Black-Box Language Models

REPLUG: Retrieval-Augmented Black-Box Language Models

REPLUG: Retrieval-Augmented Black-Box Language Models - ACL Anthology

NAACL-HLT 2024

在這項工作中,我們介紹了RePlug(Retrieve and?Plug),這是一個新的檢索增強型語言模型框架,其中語言模型被視為黑盒,檢索組件被添加為一個可調優的即插即用模塊。?給定一個輸入上下文,RePlug首先使用一個現成的檢索模型從外部語料庫中檢索相關的文檔。?檢索到的文檔被添加到輸入上下文的前面,并輸入到黑盒語言模型中以進行最終預測。?由于語言模型上下文長度限制了可以添加的文檔數量,我們還引入了一種新的集成方案,該方案使用相同的黑盒語言模型并行編碼檢索到的文檔,使我們能夠輕松地用計算換取準確性。?如圖1所示,RePlug非常靈活,可以與任何現有的黑盒語言模型和檢索模型一起使用。

還介紹了RePlug LSR(RePlug?with?LM-Supervised?Retrieval),這是一種訓練方案,它可以進一步改進RePlug中的初始檢索模型,并利用來自黑盒語言模型的監督信號。?核心思想是使檢索器適應語言模型,這與之前的工作(Borgeaud et al., 2022)相反,后者使語言模型適應檢索器。?我們使用了一個訓練目標,該目標更傾向于檢索能夠提高語言模型困惑度的文檔,同時將語言模型視為一個凍結的黑盒評分函數。

REPLUG

新的檢索增強型LLM范式,其中語言模型被視為黑盒,檢索組件被添加為一個可能可調優的模塊。

給定一個輸入上下文,RePlug首先使用檢索器從外部語料庫中檢索一小組相關文檔。 把每個檢索到的文檔與輸入上下文串聯起來,通過LLM并行處理,并集成預測概率

文檔檢索

使用基于雙編碼器架構的稠密檢索器,編碼器把輸入內容和文檔進行編碼:對待編碼內容的token的最后一個隱藏層表示進行平均池化,實現編碼映射

使用余弦相似度計算嵌入的相似度

輸入重構

考慮到語言模型的上下文窗口大小,將所有top-k文檔添加到問題x前面的方案從根本上受到我們能夠包含的文檔數量(即k)的限制。

?為了解決這個限制,我們采用了一種如下所述的集成策略。?

假設𝒟′?𝒟包含k個與x最相關的文檔,將每個文檔d∈𝒟′添加到x前面,分別將此連接傳遞給LM,然后集成所有k次的輸出概率。?形式上,給定輸入上下文x及其前k個相關文檔𝒟′,下一個符元y的輸出概率計算為加權平均集成:

其中°表示兩個序列的連接,權重λ?(d,x)基于文檔d和輸入上下文x之間的相似度得分:

雖然這種集成方法需要運行LLM的生成總共k次,但是在每個檢索到的文檔和輸入上下文之間執行交叉注意力,因此相對把所有的k個內容添加到x前面來說,并不會產生額外的計算成本開銷

REPLUG LSR:稠密檢索器訓練

進一步提出了RePlug LSR(使用LM監督檢索的RePlug),它調整了RePlug中的檢索器,利用LM本身來提供關于應該檢索哪些文檔的監督。

可以看作是調整檢索文檔的概率,以匹配語言模型輸出序列困惑度的概率。

也就是說希望檢索器找到導致困惑度得分更低的文檔

檢索器的訓練包括四個步驟:

檢索文檔并計算檢索似然;通過語言模型對檢索到的文檔進行評分;通過最小化檢索似然和LM的評分分布之間的KL三度來更新檢索模型參數;異步更新數據存儲索引。

1.計算檢索似然

從給定輸入上下文x的語料庫𝒟中檢索k相似度得分最高的文檔𝒟′?𝒟。?然后計算每個檢索到的文檔d的檢索似然:

γ是一個控制softmax溫度的超參數。?理想情況下,檢索似然是通過對語料庫𝒟中的所有文檔進行邊緣化計算的,但在實踐中這是不可行的。?因此,我們通過僅對檢索到的文檔𝒟′進行邊緣化來近似檢索似然。

2.計算語言模型似然

使用LM作為評分函數來衡量每個文檔在多大程度上可以改善LM的困惑度。?具體來說,我們首先計算P_L?M?(y∣d,x),即給定輸入上下文x和文檔d時,真實實況輸出y的LM概率。概率越高,文檔di在改善LM的困惑度方面就越好。?然后,我們計算每個文檔d的語言模型似然值,如下所示:

其中β是另一個超參數。

3.損失函數

給定輸入上下文x和相應的真實續寫y,計算檢索似然值和語言模型似然值。?密集檢索器通過最小化這兩個分布之間的KL散度進行訓練:

?是一組輸入上下文。?在最小化損失時只能更新檢索模型參數

4.數據存儲索引的異步更新

因為檢索器中的參數在訓練過程中被更新,之前計算的文檔嵌入不再是最新的。每T個訓練步驟重新計算文檔嵌入并使用新的嵌入重建高效的搜索索引。?然后我們使用新的文檔嵌入和索引進行檢索,并重復訓練過程。

訓練設置

使用Contriever作為RePlug的檢索器

對RePlug LSR,還是使用Contriever檢索器,使用GPT3作為監督語言模型來計算語言模型似然

訓練數據:

使用從Pile訓練數據(Gao等人,2020)中采樣的80萬個,每個包含256個符元的序列作為我們的訓練查詢。?每個查詢被分成兩部分:前128個符元用作輸入上下文x,后128個符元用作真實延續y。?對于外部語料庫D,我們從Pile訓練數據中采樣了3600萬個,每個包含128個符元的文檔。?為避免簡單的檢索,我們確保外部語料庫文檔與從中采樣訓練查詢的文檔不重疊。

訓練細節

預先計算外部語料庫D的文檔嵌入,并創建一個FAISS索引以進行快速相似性搜索。

給定一個查詢x,從FAISS索引中檢索前20個文檔,并使用0.1的溫度計算檢索似然和語言模型似然。

使用Adam優化器訓練檢索器,學習率為2e-5,批量大小為64,預熱比例為0.1。每3000步重新計算一次文檔嵌入,并對檢索器進行總共25000步的微調。

實驗

對語言建模和下游任務(MMLU,開放域問答)進行了評估

1.語言建模

數據集:Pile數據集(Gao et?al., 2020)是一個語言建模基準,包含來自網頁、代碼和學術論文等不同領域的文本資源。?遵循先前的工作,我們報告每個子集域的每UTF-8編碼字節比特數(BPB)作為指標。

基線:將GPT-3和GPT-2系列語言模型作為基線。?來自GPT-3的四個模型(Davinci、Curie、Baddage和Ada)是只能通過API訪問的黑盒模型。

在基線上添加了RePlug和RePlug LSR。?我們隨機下采樣Pile訓練數據(128個符元的3.67億個文檔),并將它們用作所有模型的檢索語料庫。?由于Pile數據集已努力對訓練集、驗證集和測試集中的文檔進行去重(Gao et al., 2020),因此我們沒有進行額外的過濾。?對于RePlug和RePlug LSR,我們使用長度為128符元的上下文進行檢索,并采用集成方法在推理過程中整合前10個檢索到的文檔。

結果:

RePlug和RePlug LSR都顯著優于基線。?這表明,僅僅向凍結的語言模型(即黑盒設置)添加檢索模塊就能有效提高不同大小的語言模型在語言建模任務上的性能。?此外,RePlug LSR始終比RePlug有較大優勢。?具體來說,RePlug LSR在8個模型上的平均結果比基線提高了7.7%,而RePlug提高了4.7%。?這表明進一步使檢索器適應目標語言模型是有益的。

2.MMLU

數據集:MMLU一個多項選擇問答數據集,涵蓋了來自57個任務的考試題,包括數學、計算機科學、法律、美國歷史等。?這57個任務被分為4個類別:人文科學、STEM、社會科學和其他。?遵循?Chung等人 (2022a)?的方法,我們在5-shot上下文學習環境中評估?RePlug。

基線:第一組基線是包括Codex、PaLM和 Flan-PaLM在內的最先進的大語言模型 (LLM)。(這三個模型在MMLU排行榜上位列前三。)第二組基線由檢索增強型語言模型組成。只包含Atlas因為沒有其他檢索增強型LLM在MMLU數據集上進行過評估。?Atlas同時訓練檢索器和語言模型,我們認為這是一個白盒檢索LM設置。

只將RePlug和RePlug LSR添加到Codex,因為其他模型如PaLM和Flan-PaLM不對公眾開放。?我們使用測試問題作為查詢,從維基百科(2018年12月)中檢索10個相關的文檔,并將每個檢索到的文檔添加到測試問題前面,從而產生10個單獨的輸入。?然后將這些輸入分別饋送到語言模型中,并將輸出概率進行集成。

結果:

RePlug?和?RePlug LSR?分別將原始 Codex 模型的性能提高了 4.5% 和 5.1%。?此外,RePlug LSR?大大優于之前的基于檢索的語言模型 Atlas,證明了我們提出的黑盒檢索語言模型設置的有效性。?盡管我們的模型略微遜于 Flan-PaLM,但這仍然是一個不錯的結果,因為 Flan-PaLM 的參數數量是它的三倍。?我們預計,如果我們能夠訪問該模型,RePlug LSR?可以進一步改進 Flan-PaLM。即使在 STEM 類別中,RePlug LSR?也比原始模型高出 1.9%。?這表明檢索可以提高語言模型的解決問題的能力。

3.開放域問答

數據集:NQ和TriviaQA是兩個開放域問答數據集,包含從維基百科和網絡收集的問題和答案。考慮了少樣本設置,其中模型只提供幾個訓練示例;以及全數據設置,其中模型提供所有訓練示例。

基線:第一組模型由強大的大型語言模型組成,包括Chinchilla、PaLM和Codex。?所有這些模型都在少樣本設置下使用上下文學習進行評估,其中Chinchilla和PaLM使用64個樣本進行評估,Codex使用16個樣本進行評估。第二組用于比較的模型包括檢索增強型語言模型,例如RETRO、R2-D2和Atlas。所有這些檢索增強型模型都在訓練數據上進行了微調,無論是在少樣本設置下還是使用全訓練數據。?具體來說,Atlas在少樣本設置下使用64個示例進行了微調。

在Codex中添加了RePlug和RePlug LSR,并使用維基百科(2018年12月)作為檢索語料庫,以在16樣本的上下文學習中評估模型。?與語言建模和MMLU中的設置類似,我們使用我們提出的集成方法結合前10個檢索到的文檔。

結果:

RePlug LSR在NQ上將原始Codex的性能顯著提高了12.0%,在TQA上提高了5.0%。?它優于之前的最佳模型Atlas(使用64個訓練示例進行了微調),在少樣本設置下達到了新的最先進水平。?但是,這個結果仍然落后于在完整訓練數據上微調的檢索增強型語言模型的性能。?這可能是由于訓練集中存在近似重復的測試問題(例如,Lewis等人 (2021)?發現NQ中32.5%的測試問題與訓練集重疊)。

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

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

相關文章

Mysql的深度分頁查詢優化

一、深度分頁為什么慢? 當執行 SELECT * FROM orders ORDER BY id LIMIT 1000000, 10 時: MySQL 會掃描前 1,000,010 行,丟棄前 100 萬行,僅返回 10 行。偏移量(offset)越大,掃描行數越多&…

最新扣子(Coze)案例教程:Excel數據生成統計圖表,自動清洗數據+轉換可視化圖表+零代碼,完全免費教程

大家好,我是斜杠君。 知識星球群有同學和我說每天的工作涉及很多數據表的重復操作,想學習Excel數據表通過大模型自動轉數據圖片的功能。 今天斜杠君就帶大家一起搭建一個智能體,以一個銷售行業數據為例,可以快速實現自動清洗Exc…

Uniapp 中緩存操作指南

在 Uniapp 中,你可以使用三種方式操作緩存:同步方法、異步方法和 Vuex 持久化存儲。以下是詳細的設置、獲取和清除緩存的方法: 1. 同步方法 設置緩存 uni.setStorageSync(key, value); // 示例 uni.setStorageSync(token, abc123); 獲取緩存 const value = uni.getStor…

k8s的yaml文件里的volume跟volumeMount的區別

volume 是 Pod 級別的資源,用于定義存儲卷。它是一個獨立于容器的存儲資源,可以被一個或多個容器共享使用。volume 的定義位于 Pod 的 spec.volumes 部分。 特點 獨立性:volume 是 Pod 的一部分,而不是容器的一部分。它獨立于容…

梅毒單陽能否通過國企體檢?

國企體檢通常會參照公務員體檢標準進行,梅毒檢測是其中的常規項目。 一、明確“梅毒單陽”的定義 檢測指標解析 TPPA陽性RPR陰性:可能為既往感染已治愈,或極早期/晚期梅毒; RPR陽性TPPA陰性:需警惕假陽性&#xff08…

Python 爬蟲實戰 | 企名科技

文章目錄 一、企名科技1、目標網站2、網站特點3、確定解密位置4、扣js代碼 一、企名科技 1、目標網站 網址:https://wx.qmpsee.com/articleDetail?idfeef62bfdac45a94b9cd89aed5c235be目標數據:獲取消費行業研究下面的13篇文章數據 2、網站特點 服…

Pikachu靶場

本質是信任了不可信的客戶端輸入。防御核心: 永不信任客戶端提交的權限參數(如 user_id, role)。強制服務端校驗用戶身份與操作權限。定期審計權限模型,避免業務迭代引入新漏洞。 水平越權 1,按照網站的提示要求登錄 進…

C++區別于C語言的提升用法(萬字總結)

1.namespace產生原因 在C語言中,變量,函數,以至于類都是大量存在的,因此會產生大量的名稱存在于全局作用域中,可能產生很多沖突,至此c的祖師爺為避免命名沖突和名字的污染,造出來了關鍵字names…

數據庫day-07

一、實驗名稱和性質 子查詢 驗證 設計 二、實驗目的 1.掌握子查詢的嵌套查詢; 2.掌握集合操作 3.了解EXISTS嵌套查詢方法; 三、實驗的軟硬件環境要求 硬件環境要求: PC機(單機) 使用的軟件名稱、版本號以及模塊…

【前端】【業務場景】【面試】在前端開發中,如何實現文件的上傳與下載功能,并且處理可能出現的錯誤情況?

前端文件上傳與下載攻略 本文目標&#xff1a;幫你快速掌握文件上傳 & 下載的核心實現方式&#xff0c;并在常見出錯場景下保持“優雅不崩潰”。 一、文件上傳 1. 基礎結構 <input type"file" id"fileInput" /> <button id"uploadBtn&…

Kafka 消息積壓監控和報警配置的詳細步驟

Kafka 消息積壓監控和報警配置的詳細步驟示例&#xff0c;涵蓋常用工具&#xff08;如 Prometheus Grafana、云服務監控&#xff09;和自定義腳本方法&#xff1a; 一、監控配置 方法1&#xff1a;使用 Prometheus Grafana kafka-exporter 步驟1&#xff1a;部署 kafka-ex…

【C++】內存管理:內存劃分、動態內存管理(new、delete用法)

文章目錄 一、C/C中的內存劃分二、C語言中動態內存管理方式三、C中動態內存管理方式1、new、delete基本用法(1)、內置類型(2)、自定義類型 2、operator new與operator delete函數3、new和delete的實現原理&#xff08;1&#xff09;內置類型&#xff08;2&#xff09;自定義類型…

C# 實戰_RichTextBox選中某一行條目高亮,離開恢復

C# 中控件richtextbox中某一行的條目內容高亮&#xff0c;未選中保持不變。當鼠標點擊某一行的條目高亮&#xff0c;離開該條目就恢復默認顏色。 運行效果&#xff1a; 核心代碼實現功能&#xff1a; //高亮指定行的方法private void HighlightLine(RichTextBox rtb,int lineI…

Vue3 ref與props

ref 屬性 與 props 一、核心概念對比 特性ref (標簽屬性)props作用對象DOM 元素/組件實例組件間數據傳遞數據流向父組件訪問子組件/DOM父組件 → 子組件響應性直接操作對象單向數據流&#xff08;只讀&#xff09;使用場景獲取 DOM/調用子組件方法組件參數傳遞Vue3 變化不再自…

視頻匯聚平臺EasyCVR賦能高清網絡攝像機:打造高性價比視頻監控系統

在現代視頻監控系統中&#xff0c;高清網絡攝像機作為核心設備&#xff0c;其性能和配置直接影響監控效果和整體系統的價值。本文將結合EasyCVR視頻監控的功能&#xff0c;探討如何在滿足使用需求的同時&#xff0c;優化監控系統的設計&#xff0c;降低項目成本&#xff0c;并提…

【C++】 —— 筆試刷題day_21

一、愛麗絲的人偶 題目解析 現在存在n個玩偶&#xff0c;每個玩偶的身高是1、2、3......n&#xff1b; 現在我們要對這些玩偶進行排序&#xff08;如果x人偶&#xff0c;它左右兩邊的玩偶一個比x高、一個比x矮&#xff0c;那這個玩偶就會爆炸&#xff09;。 我們不想要任何一個…

詳解.vscode 下的json .vscode文件夾下各個文件的作用

1.背景 看一些開源項目的時候,總是看到vscode先有不同的json文件,再次做一下總結方便之后查看 settings.json肯定不用多說了 vscode 編輯器分為 全局用戶配置 和 當前工作區配置 那么.vscode文件夾下的settings.json文件夾肯定就是當前工作區配置了 在此文件對單個的項目進行配…

手動實現legend 與 echarts圖交互 通過js事件實現圖標某項的高亮 顯示與隱藏

通過html實現legend的樣式 提供調用echarts的api實現與echarts圖表交互的效果 實現餅圖element實現類似于legend與echartstu表交互效果 效果圖 配置代碼 <template><div style"height: 400px; width: 500px;background-color: #CCC;"><v-chart:opti…

Spring Boot 配置源詳解(完整版)

Spring Boot 配置源詳解&#xff08;完整版&#xff09; 一、配置源加載順序與優先級 配置源類型優先級順序&#xff08;從高到低&#xff09;對應配置類/接口是否可覆蓋典型文件/來源命令行參數&#xff08;--keyvalue&#xff09;1&#xff08;最高&#xff09;SimpleComman…

【無人機】無人機遙控器設置與校準,飛行模式的選擇,無線電控制 (RC) 設置

目錄 1、遙控器校準 1.1、校準步驟 2、飛行模式選擇&#xff0c;遙控器通道映射 2.1、配置步驟 1、遙控器校準 在校準無線電系統之前&#xff0c;必須連接/綁定接收器和發射器。綁定發射器和接收器對的過程是特定于硬件的&#xff08;有關說明&#xff0c;請參閱 RC 手冊&…