【RAG 論文】UPR:使用 LLM 來做檢索后的 re-rank

論文:Improving Passage Retrieval with Zero-Shot Question Generation

????

EMNLP 2022, arXiv:2204.07496

Code: github.com/DevSinghSachan/unsupervised-passage-reranking


論文:Open-source Large Language Models are Strong Zero-shot Query Likelihood Models for Document Ranking

????

EMNLP 2023, arXiv:2310.13243

Code: github.com/ielab/llm-qlm


一、UPR 論文速讀

關于 Improving Passage Retrieval with Zero-Shot Question Generation 這篇論文

論文提出了一個基于 LLM 的 re-ranker:UPRUnsupervised Passage Re-ranker),它不需要任何標注數據用于訓練,只需要一個通用的 PLM(pretrained LM),并且可以用在多種類型的檢索思路上。

給定一個 corpus 包含所有的 evidence documents,給定一個 question,由 Retriever 來從 corpus 中檢索出 top-K passages,re-ranker 的任務就是把這 K 個 passages 做重新排序,期待重排后再交給 LLM 做 RAG 能提升效果。

20240514214210

本論文的工作中,使用 LLM 來為每一個 passage 計算一個 relevance score,然后按照 relevance scores 來對這些 passages 做排序。passages z i z_i zi? 的 relevance score 的計算方式是:以 passage z i z_i zi? 為條件,計算 LLM 生成 question q q q 的 log-likelihood log ? p ( q ∣ z i ) \log p(q|z_i) logp(qzi?)

20240514211839

關于為什么使用 p ( q ∣ z ) p(q|z) p(qz) 來計算 relevance score 而非用 p ( z ∣ q ) p(z|q) p(zq),原因在于在假設 log ? p ( z i ) \log p(z_i) logp(zi?) 是都一樣的話,按照 Bayes 公式來算的話, p ( q ∣ z ) p(q|z) p(qz) p ( z ∣ q ) p(z|q) p(zq) 呈正相關的關系。此外,使用 p(q|z) 允許模型利用交叉注意力機制(cross-attention)在問題和段落之間建立聯系。而且實驗發現使用 p ( q ∣ z ) p(q|z) p(qz) 效果更好。

20240514212620

其實從感性上想一想,也是通過 prompt 讓 LLM 去計算 p ( q ∣ z ) p(q|z) p(qz) 來建模 question 和 passage 更合理。

二、開源 LLM 本身就是強 zero-shot 的 QLM re-ranker

QLMQuery Likelihood Model) 是指,通過計算特定 question 下 document 的概率來理解 docs 和 queries 的語義關系。QLM re-ranker 就是借助這個概率得出相關性分數從而做出排名,進而實現 re-rank。前面介紹的 UPR 就是一種 QLM re-ranker。

在前面介紹的 UPR 中,使用了 T0 LLM 模型作為 QLM 從而實現了有效的 re-rank,但是由于 T0 在許多 QG(Question Generation) 數據集上做了微調,所以該工作不能完全反映通用的 zero-shot 的 QLM ranking 場景。

本工作研究了使用 LLaMA 和 Falcon 這兩個 decoder-only 的模型作為 QLM 來做 re-rank 任務的表現,這兩個 LLM 都沒有在 QG 數據集上做訓練。

2.1 多種 QLM re-ranker

本文工作設計了多種 QLM re-ranker,下面分別做一個介紹。

1)Zero-shot QLM re-ranker

類似于前面 UPR 的做法,借助于 QLM 計算出一個 relevance score,計算方法也一樣(以 retrieved doc 為條件的 question 的概率):

20240514214509
2)BM25 插值的 re-ranker

除了使用 QLM 計算出來的分數 S Q L M S_{QLM} SQLM?,還融入第一階段的檢索器 BM25 給出的相關性分數,兩者通過權重共同計算最終的 relevance score:

20240514214721
3)Few-shot QLM re-ranker

在前面 zero-shot 的基礎上,使用 LLM 時,設計一個 prompt template 并加入一些 few-shot exemplars。

2.2 實驗

論文詳細介紹了多個實驗,感興趣可以參考原論文,這里列出幾個結論:

  • 在 QG 數據集(NS NARCO 數據集)上微調的 retriever 和 re-ranker 在所有數據集上表現都由于 zero-shot 的 retriever 和 QLM re-ranker,這是意料之中的,因為這些方法會受益于大量人工判斷的 QA 訓練數據,其知識可以有效地遷移到測試數據集中。
  • zero-shot 的 QLM 和經過 QG 指令微調的 QLM 表現出相似的競爭力,這一發現時令人驚訝的,這說明 pretrained-only 的 LLM 就具有強大的 zero-shot QLM 排名的能力。
  • 如果 QG 任務沒有出現在指令微調的數據中,那么指令微調反而會阻礙 LLM 的 QLM re-rank 能力。猜測原因在于,指令微調的模型往往更關注任務指令,而較少關注輸入內容本身,但是評估 Query Likelihood 的最重要信息都在文檔內容中,所以指令調優不利用 LLM 的 Query Likelihood 的估計。
  • BM25 插值策略的改進究竟有沒有用,取決于具體的 LLM 模型。

2.3 一個有效的 ranking pipeline

這篇論文工作(原文 4.3 節)還提出了一個有效的 ranking pipeline。

在第一階段的 retriever 中,將 BM25 和 HyDE 結合作為 zero-shot first-stage hybird retriever,然后再使用 QLM 做 re-rank。

經過實驗發現,這種方法可以與當前 SOTA 模型表現相當,重要的這種方法不需要任何訓練。

總結

這兩篇論文給了我們使用 LLM 來做 QLM re-rank 的思路,展現了通用的 LLM 本身具備強大的 QLM re-rank 的能力。

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

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

相關文章

【HR】阿里三板斧--20240514

參考https://blog.csdn.net/haydenwang8287/article/details/113541512 頭部三板斧 戰略能不能落地、文化能不能得到傳承、人才能不能得到保障。 頭部三板斧適用的核心場景有三個:一是戰略不靠譜;二是組織效率低、不聚心;三是人才跟不上。對…

c++ 各版本特性介紹

c C是一種高級編程語言,以其強大的功能、靈活性和高效性而聞名。它是由Bjarne Stroustrup在20世紀80年代初期在貝爾實驗室開發的,作為C語言的一個擴展。C不僅包含了C語言的所有特性,還引入了面向對象編程(OOP)的概念&…

基于Vue3+ElementPlus項目,復制文字到剪貼板功能實踐指南,揭秘使用js-tool-big-box工具庫的核心優勢

在前端開發項目中,很多時候有那么一個場景,就是要求將一段文案復制下來,這段文案可能是一串很長的id,可能是一條命令語句,可能是一小段文案,復制到剪貼板上。這樣有利于用戶復制到其他地方去,使…

自然資源-城鄉規劃行業未來二十年將何去何從?

自然資源-城鄉規劃行業未來二十年將何去何從? 城鄉規劃行業未來風口在以下幾個方向,看好啦!緊跟國家發展戰略和政策背景。 1.大數據的城市規劃應用。 包含:公共數據平臺的搭建CIM,數據賦能治理,城市規劃中大數據應用的研究 等…

微軟必應bing國內官方代理商,廣告賬戶如何開戶?

微軟必應Bing作為全球知名的搜索引擎之一,其廣告平臺為眾多企業提供了廣闊的市場空間和精準的推廣機會。對于中國內地的企業而言,通過必應Bing開展國內廣告推廣不僅能夠觸及更廣泛的潛在客戶群體,還能有效提升品牌影響力。通過微軟必應Bing國…

【算法作業】均分卡牌,購買股票

問題描述 John 有兩個孩子,在 John病逝后,留下了一組價值不一定相同的魔卡, 現在要求你設計一種策略,幫John的經管人將John的這些遺產分給他的兩個孩子,使得他們獲得的遺產差異最小(每張魔卡不能分拆&#…

搜索引擎的設計與實現(三)

目錄 5 系統詳細實現 5.1實現環境配置 5.2功能實現 5.2.1 建立索引 5.2.2 文件搜索實現 5.2.3 數據庫的連接配置 5.2.4 數據庫搜索實現 5.2.5 后臺數據編輯實現 前面內容請移步 搜索引擎的設計與實現(二) 免費源代碼&畢業設計論文 搜索…

git-刪除workspace.xml的跟蹤

問題描述 .gitignore 文件內容如下: .pyc *.pyc user_files/ .vscode/ __pycache__//.idea/misc.xml /.idea/modules.xml /.idea/inspectionProfiles/profiles_settings.xml /.idea/inspectionProfiles/Project_Default.xml /.idea/batrp_webbackend-server-dev.i…

NARUTO 復現記錄

1 環境配置 下載項目,一定要 git 下載全項目,下載完后要檢查third_parities 里面的coslam和neural_slam_eval 文件全不全。 git clone --recursive https://github.com/oppo-us-research/NARUTO.git 環境配置 注意 bash scripts/installation/conda…

番外篇 | 利用PyQt5+YOLOv5來搭建目標檢測系統(附可視化界面+功能介紹+源代碼)

前言:Hello大家好,我是小哥談。PyQt5是一個Python綁定的Qt庫,是用于創建圖形用戶界面(GUI)和其他應用程序組件的工具包。PyQt5提供了許多GUI元素,如按鈕、文本框、標簽等,也提供了許多Qt的功能,如網絡、數據庫、XML等。通過PyQt5可以在Python中使用Qt的豐富功能和強大的工…

克服虧損的負面影響 學學現貨白銀止損的方法

一個多月以前,現貨黃金的上漲還十分強勁,一度還逼近歷史的高位30大關。但是我們看近半個月以來,現貨白銀價格出現了調整。很多在高位買入的投資者都承受了較大的虧損,這時候就凸顯出了現貨白銀止損的作用。如果投資者能夠通過近期…

Git 基礎使用(2) 分支管理

文章目錄 分支概念分支使用查看分支分支創建分支切換分支合并合并沖突分支刪除 分支管理快進模式分支策略內容保存錯誤處理 分支概念 (1)分支概念 Git分支是指在版本控制系統Git中,用來表示項目的不同工作流程或開發路徑的一個重要概念。通過…

【cmake】Windows 環境下編譯第三方依賴源碼(以編譯Xerces庫為例)

第三方依賴源碼的編譯分為兩種,一種是使用 Configure 腳本編譯,另一種是使用 CMakeLists.txt 編譯。Xerces 3.2.3 的編譯方式是 CMakeLists.txt 腳本編譯。 必要軟件: CMake (CMake | Download)Visual Studio 2019&a…

前端AJAX講解

目錄 1.AJAX是什么? 2.異步交互和同步交互 3.AJAX常見應用情景和優缺點 4.AJAX的優缺點 5.AJAX發送異步請求(四步操作) 6.經典案例 1.AJAX是什么? AJAX即“Asynchronous JavaScript and XML”(異步的JavaScript與…

指針基礎實踐

文章目錄 1.聲明指針2.初始化指針3.指針地址和大小,值4.指針解引用,修改值5.指針指向堆內存,修改值6.申請堆內存并釋放7.數組釋放8.指針運算9.指針遞增10.指針遞減11.指針常量12.常量指針13.常量指針指向常量 1.聲明指針 2.初始化指針 3.指針地址和大小…

【數據結構】二叉樹(Binary Tree)

文章目錄 一、樹的概念及結構二、二叉樹的概念及結構1.二叉樹的概念2.特殊的二叉樹3.二叉樹的性質 三、二叉樹的存儲順序存儲鏈式存儲 四、二叉樹的實現1.創建二叉樹2.二叉樹的遍歷前序遍歷中序遍歷后序遍歷層序遍歷根據遍歷順序創建二叉樹 3.二叉樹的基本操作1.總結點個數2.二…

ctfshow之_萌新web9至web10

一、訪問在線靶場ctfshow 1、web9 如下圖所示,進入_萌新賽的web9問題,題目提醒flag在config.php中: 如上圖所示,可以get傳參,且傳入的參數需要正則匹配system、exec、highlight,且不區分大小寫&#xff0…

C++設計模式|創建型 5.原型模式

1.什么是原型模式? 原型模式?種創建型設計模式,該模式的核?思想是基于現有的對象創建新的對象,?不是從頭開始創建。 在原型模式中,通常有?個原型對象,它被?作創建新對象的模板。新對象通過復制原型對象的屬性和狀…

Mac IDEA 自動補全mybatis sql語句

導航 Mac IDEA 自動補全mybatis sql語句一、點擊IDEA 右側Database選項二、選擇添加對應數據庫三、輸入數據庫信息和方案四、輸入數據庫信息和方案五、成功 Mac IDEA 自動補全mybatis sql語句 背景: 想在Mapper中,能夠實現自動檢索數據庫表和對應的字段…

QT日志類SimpleQtLogger的簡單記錄

在現代軟件開發中,日志記錄是必不可少的部分。它不僅幫助開發者在調試和維護軟件時了解程序的運行狀態,還能提供關鍵的錯誤信息。對于使用Qt框架開發應用程序的開發者來說,選擇一個合適的日志庫至關重要。本文將詳細介紹Qt日志庫SimpleQtLogg…