學(xué)習(xí)過濾上下文以增強(qiáng)檢索輔助生成
Title: Learning to Filter Context for Retrieval-Augmented Generation 論文簡要 :
本文提出了一種名為FILCO的方法,通過識(shí)別有用的上下文和訓(xùn)練上下文過濾模型,改進(jìn)了生成模型的上下文質(zhì)量,從而解決了檢索系統(tǒng)不完美導(dǎo)致的上下文過度或不足的問題,提高了生成輸出的質(zhì)量,并在多個(gè)知識(shí)密集型任務(wù)上取得了優(yōu)于現(xiàn)有方法的結(jié)果。
背景信息:
論文背景: 在開放領(lǐng)域的問答和事實(shí)驗(yàn)證等任務(wù)中,即時(shí)檢索相關(guān)知識(shí)已被證明是可靠系統(tǒng)的重要組成部分。
過去方案: 然而,由于檢索系統(tǒng)并不完美,生成模型需要根據(jù)部分或完全不相關(guān)的段落生成輸出。這可能導(dǎo)致對(duì)上下文的過度或不足依賴,并導(dǎo)致生成輸出中的問題,如幻覺。過去的方法往往將檢索到的段落無差別地提供給生成模型,而忽略了上下文的質(zhì)量。
論文的Motivation: 為了解決上述問題,本文提出了FILCO方法,通過識(shí)別有用的上下文和訓(xùn)練上下文過濾模型,改進(jìn)了生成模型的上下文質(zhì)量。FILCO方法在多個(gè)知識(shí)密集型任務(wù)上進(jìn)行了實(shí)驗(yàn),并在抽取式問答、復(fù)雜的多跳和長篇問答、事實(shí)驗(yàn)證和對(duì)話生成任務(wù)上取得了優(yōu)于現(xiàn)有方法的結(jié)果。
方法:
a. 理論背景:
本文提出了FILCO方法,通過識(shí)別有用的上下文并訓(xùn)練上下文過濾模型,改善了給生成器提供的上下文質(zhì)量。
b. 技術(shù)路線:
本文介紹了三種Oracle過濾策略,包括字符串包含、詞匯重疊和條件交叉互信息。選定的文本段用于訓(xùn)練上下文過濾模型,并生成帶有過濾上下文的輸出。
字符串包含(STRINC)
:這種策略根據(jù)文本片段t是否包含輸出o來進(jìn)行二元判斷。如果包含,就選擇該文本片段作為過濾后的內(nèi)容。這種策略適用于提取式的任務(wù),比如NQ和TQA,因?yàn)樗鼈兊拇鸢竿ǔJ窃谥С治臋n中出現(xiàn)的。
詞匯重疊(LEXICAL)
:這種策略計(jì)算文本片段t和輸出o之間的單詞重疊程度,用F1分?jǐn)?shù)來表示。重疊程度越高,表示主題相似性越高,對(duì)生成有更大的幫助。這種策略適用于需要基于知識(shí)生成響應(yīng)的任務(wù),比如對(duì)話生成和事實(shí)驗(yàn)證。
條件交叉互信息(CXMI)
:這種策略借鑒了Fernandes et al. (2021)提出的條件交叉互信息分?jǐn)?shù),用來衡量給定文本片段t和查詢q的組合輸入,模型生成期望輸出o的概率與僅給定查詢q的輸入的概率之比。這個(gè)比值越大,表示文本片段t對(duì)生成o越有貢獻(xiàn)。這種策略可以克服詞匯屏障,適用于所有的任務(wù),但是計(jì)算代價(jià)較高。
文本跨度(也就是文本片段)是指一段文本中的一部分,通常是一個(gè)句子或一個(gè)短語,它包含了一些有用的信息。在這篇文章中,作者使用了文本跨度來過濾從維基百科檢索到的段落,以提供更精確的上下文給生成模型。例如,對(duì)于一個(gè)問題“英國的第一條鐵路是什么時(shí)候建成的?”,作者會(huì)選擇包含答案的文本跨度“最早的英國鐵路是一個(gè)馬車系統(tǒng),一個(gè)由馬拉的木制軌道系統(tǒng),由德國礦工在英格蘭坎布里亞的卡爾德貝克使用,可能從1560年代開始。”,而不是整個(gè)段落。這樣可以減少輸入的長度,提高生成的準(zhǔn)確性。
結(jié)果:
a. 詳細(xì)的實(shí)驗(yàn)設(shè)置:
作者使用FLAN-T5和LLAMA 2作為實(shí)驗(yàn)的基礎(chǔ)模型架構(gòu),對(duì)上下文過濾任務(wù)(Mctx)和最終生成任務(wù)(Mgen)進(jìn)行了微調(diào)。
b. 詳細(xì)的實(shí)驗(yàn)結(jié)果:
FILCO方法在所有數(shù)據(jù)集上顯著提高了生成性能,尤其對(duì)于抽象生成任務(wù)的改進(jìn)更為顯著。過濾后的上下文長度減少了44-64%,并且對(duì)于所有任務(wù),過濾后的上下文的精度更高。