自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題

發(fā)布于 2024-3-28 14:30
瀏覽
0收藏
當(dāng)前研究關(guān)注大型語言模型在處理已知和未知問題時的知識邊界。主要問題可分為四類:單一已知問題可通過模型內(nèi)部知識解決,單一未知問題需調(diào)用外部工具獲取知識,組合已知問題需要復(fù)雜推理,而組合未知問題則包含其他可能性。如何選擇使用外部檢索或模型內(nèi)部知識來回答問題是個挑戰(zhàn)。一種方法是樸素RAG,另一種是先評估問題的確定性或不確定性,然后調(diào)用生成-讀取或檢索-讀取。然而,這兩種方法都有局限性,簡單地調(diào)用外部檢索并不能保證性能,而將問題二元分類過于簡化。為此,本文研究者提出了CuQA數(shù)據(jù)集和Self-dc框架,使模型能夠自適應(yīng)地選擇不同方法,提高性能和效率。

現(xiàn)有的工作非常關(guān)注大模型本身的知識邊界,以達(dá)成對于大模型known和unknown的問題能夠進(jìn)行不同的處理。簡單來說,有四大類主要的問題

  • Single known: 簡單的通過大模型內(nèi)部的知識即可解決,比如常見的generate-then-read方法
  • Single unknown: 需要調(diào)用外部工具如搜索引擎等獲取外部知識進(jìn)行解決,比如retrieve-then-read方法
  • Compositional known: 需要進(jìn)行復(fù)雜推理,比如compositional reasoning將問題進(jìn)行分解
  • Compositional unknown: 這個問題是其中最為復(fù)雜的,因為一個compositional unknown 問題包括其他所有可能性,比如一個compositional known和single unknown的結(jié)合等。

對于一個復(fù)合問題,我們什么時候利用外部檢索,什么時候促使大模型產(chǎn)生已知的知識,以回答當(dāng)前的問題?

為了解決這個問題,可以不加區(qū)分地使用外部檢索方法,也就是樸素RAG,也可以首先評估關(guān)于該問題的大型語言模的確定性或不確定性,隨后根據(jù)評估調(diào)用生成-讀取或檢索-讀取。

例如,《Can llms express their uncertainty? an empirical evaluation of confi-dence elicitation in llm》,這個工作列舉了多種方式,基于語言的Verbalized,基于一致性的Consistency-based,以及它們的混合方法Hybrid。

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

這兩種方法都有自己的局限性,例如,簡單地對每個問題調(diào)用外部檢索并不能保證更好的性能,而且會浪費(fèi)大量已知知識浪費(fèi),而且在存在迭代檢索的情況下,也會帶來嚴(yán)重的效率問題。此外,將問題分為已知和未知的二元對立過于簡化了問題的復(fù)雜性,在某些情況下并不可行以及效果并不佳。

例如,如圖1所示,一個組合未知問題由已知和未知子問題組成。因此,它將退化為簡單地自動調(diào)用每個問題的檢索,因為未知的組成仍然是llm的未知問題。

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

“先檢索后讀取”和“再生成后讀取”是開放域問答中處理未知和已知問題的兩種典型解決方案,前者檢索需要的外部知識,后者提示大語言模型生成編碼在參數(shù)中的內(nèi)部已知知識,但也存在一些由已知或未知的子問題組成的未知問題。

此外,簡單的二元分類(已知或未知)變得次優(yōu)且效率低下,因為它會對每個組成未知問題過多地調(diào)用外部檢索。

為此,《Self-DC: When to retrieve and When to generate? Self Divide-and-Conquer for Compositional Unknown Questions》提出了第一個組合未知問答數(shù)據(jù)集(CuQA),并引入了一個自分而治(Self-dc)框架,使llm能夠自適應(yīng)地按需調(diào)用不同的方法,從而提高了性能和效率。

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

論文題目: 

Self-DC: When to retrieve and When to generate? Self Divide-and-Conquer for Compositional Unknown Questions 

論文鏈接: 

??https://arxiv.org/pdf/2402.13514??

一、主要實現(xiàn)思路

Self-DC主要采用的是自我分而治之的思路,如圖2所示:

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

一般來說,給定一個問題,首先得到大模型對該問題的置信度分?jǐn)?shù),然后可以相應(yīng)地選擇處理當(dāng)前問題的方式。具體地,其將置信度評分分為 [0,α-β],(α-β,α+β),[α+β,1] 三個范圍,其中 α 和 β 是超參數(shù)。因此,當(dāng)置信度分?jǐn)?shù)落在左側(cè) ([0,α?β]) 或右側(cè) ([α+β,1]) 時,可以分別調(diào)用檢索-讀取或生成-讀取來回答。

此外,當(dāng)遇到不確定或令人困惑的問題時,將問題分解成幾個子問題,旨在減少不確定性。為了保證迭代不溢出,設(shè)置了幾個終止條件:1)子問題數(shù)為1,即可能是單個問題;2)迭代深度的次數(shù)小于一個預(yù)定義的 t ,在這種情況下,簡單地將當(dāng)前子問題視為未知問題,然后調(diào)用retrieve-then-read。然后,將所有子問題的答案結(jié)合起來,以提示大模型獲得原始問題的最終答案。

對應(yīng)的偽代碼如下:

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

二、關(guān)于回復(fù)置信度的估計

使用兩種類型的方法來提示LLM本身獲得置信度分?jǐn)?shù)來回答問題。

一種是基于語言化的方法verbalize-based,直接指示llm在問題的答案之后輸出從0到100的置信水平,置信水平表示確定性的程度,然后將置信度分?jǐn)?shù)重新映射到區(qū)間[0,1]。提示如下:

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

另一種是基于概率probability-based的方法,還利用概率信息來計算置信分?jǐn)?shù)。首先使用幾個單詞提示llm生成答案,然后得到生成內(nèi)容中第 i 個token的概率 pi ,根據(jù)如下公式獲取序列中概率的平均值作為置信度分?jǐn)?shù)。

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

這個思路很有意思,啟發(fā)來自于 《A stitch in time saves nine: Detecting and mitigating hallucinations of llms by validating low-confidence generation.》,這個工作也是一個幻覺緩解框架,其思想在于:給定輸入,迭代地從模型中生成句子,并主動檢測和減輕幻覺。在檢測階段,首先識別重要概念,計算模型在其上的不確定性,然后通過檢索相關(guān)知識驗證不確定性概念的正確性。在緩解階段,使用檢索到的知識作為證據(jù)來修復(fù)幻覺句子。最后,將修復(fù)后的句子附加到輸入(以及之前生成的句子)上,并繼續(xù)生成下一個句子。

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

其中的不確定估計是我們在這里要討論的重點,該工作認(rèn)為,GPT-3等模型也在其預(yù)測中提供logit輸出值,因此可以采用這些logit輸出值來檢測幻覺。這個logit輸出值可以通過對每個標(biāo)記位置的logit值應(yīng)用softmax函數(shù)來獲得這些概率。例如,記為 p1, p2, p3,…,pn 分別表示 n 個token的位置。

可以取平均值(Average of Token Probabilities)

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

概率的歸一化積(Normalized Product of Token Probabilities)

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

取概率的最小值作為分?jǐn)?shù)(Minimum of Token Probabilities)

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

為此,還加入 α 和 β 兩個參數(shù)來控制不確定性的范圍以提高Self-DC的魯棒性和靈活度。

三、針對問題的不同操作

根據(jù)不同的置信度,精心設(shè)計了幾個功能來完成組合性問答任務(wù),包括幾個模塊

先生成后閱讀generate-then-read: 首先提示大模型從維基百科生成背景文檔來回答給定的問題,然后要求大模型通過引用生成的段落來回答問題。對應(yīng)的prompt如下:

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

先檢索后閱讀retrieve-then-read: 在第一步使用檢索器檢索外部知識,然后要求LLM根據(jù)檢索到的文章來回答問題,對應(yīng)的prompt如下:

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

問題分解decompose: 提示大模型將總體問題分解為幾個較小的子問題,這些子問題的答案共同有助于得出原始總體問題的答案,類似于Press等人(2023)和Xu等人(2023),這種用法很常見,其實就是query-expansion的處理。

這塊對應(yīng)的prompt如下:

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)


典型的分析工作,可以參考 《Measuring and Narrowing the Compositionality Gap in Language Models》,如下所示,通過提示大模型,針對某個問題進(jìn)行分解,可以得到一些細(xì)分問題,從而提升性能。

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)


迭代問答combine-sub-qas:分解后,調(diào)用main函數(shù)進(jìn)入下一個迭代,為了得到每個子問題的答案,可以將所有子問題的答案合并得到原始問題的答案,對因的prompt如下:

何時檢索,何時生成?Self-DC:自我分治解決復(fù)合問題-AI.x社區(qū)

四、總結(jié)

RAG個大系統(tǒng),就像當(dāng)時KG一樣,都說要替代掉,但其本身是個大系統(tǒng),依舊是要往前走的,要有工程觀和落地觀念。

本文主要關(guān)注RAG的一個工作,也重新溫習(xí)了使用大模型對自身生成內(nèi)容置信度估計的方案,與之前介紹內(nèi)容不同的是,除了使用verblized based方案之外,還可以利用token的預(yù)測概率,如均值等,這些都是很好玩的思路。

此外,self-DC這套方案,前置要求大模型的置信準(zhǔn)確性,也融合了問題擴(kuò)展等思路,但也存在一些問題,例如,簡單問題和難問題之間存在著很大的差距,如該工作所說的, 對大模型的依賴性太強(qiáng),當(dāng)使用verblized based方法時,在gpt-3.5-turbo-1106上,發(fā)現(xiàn)超過65%的情況下置信度得分為0,大約20%的情況下置信度得分超過0.9。但當(dāng)使用gpt-3.5-turbo-instruct,趨勢相反,給出0.9更高的頻率(≈45%),也就是說,大模型似乎要么高估了正確性,要么直接承認(rèn)不確定性并拒絕回答。此外,細(xì)粒度置信分?jǐn)?shù)(即0.82,0.61)相當(dāng)罕見,使得β的細(xì)粒度選擇毫無意義。

另一方面,當(dāng)使用probb方法時,有更多的細(xì)粒度置信信號,并且大多數(shù)落在<0.5部分(≈90%)。結(jié)果表明,gpt-3.5-turbo-1106在不確定性估計方面優(yōu)于gpt-3.5-turbo-instruct,prob方法優(yōu)于動詞方法,獲得了更準(zhǔn)確的置信度分?jǐn)?shù),分解次數(shù)受置信度分?jǐn)?shù)的影響很大,這可能又會落入到一個閾值的調(diào)節(jié)怪圈里。

所以說,在NLP領(lǐng)域,并不存在一個放之四海而皆準(zhǔn)的防范,都是需要特事特辦,都是一堆補(bǔ)丁,即便有了長文本,也有一堆RAG的補(bǔ)丁要做。

Illustration From IconScout By Delesign Graphics

本文轉(zhuǎn)載自??將門創(chuàng)投??,作者:劉煥勇????

收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦