ChunkRAG:比CRAG提升10個點(diǎn)準(zhǔn)確率
1. RAG目前存在的問題
RAG系統(tǒng)前前發(fā)展取得了一定的成果,但是仍然存在一個問題:在獲取文檔時會檢索到不相關(guān)或關(guān)聯(lián)較弱的信息。目前的檢索技術(shù),即使是重排序和查詢重寫,不但不能濾除檢索文檔中的大量無關(guān)信息塊,還致使響應(yīng)生成出現(xiàn)一系列諸如事實(shí)不準(zhǔn)確、不相關(guān)以及幻覺等問題。
傳統(tǒng)上RAG 系統(tǒng)會檢索大量整個文檔的文本或者其中冗長的部分,認(rèn)為這些冗長片段可能包含相關(guān)信息。然而,這類系統(tǒng)極少單獨(dú)審視檢索到的文檔的章節(jié)或段落,所以很可能會有不相關(guān)或只是部分相關(guān)的信息流入生成階段。
語言模型生成流暢文本時無法驗(yàn)證所用信息,這讓情況更糟。相關(guān)或誤導(dǎo)性的片段嚴(yán)重扭曲此類模型的結(jié)果,降低了系統(tǒng)的可靠性,尤其在開放領(lǐng)域問答和多跳推理等關(guān)鍵任務(wù)中。
圖片
上圖展示了RAG系統(tǒng)檢索過程中有沒有過濾機(jī)制的差別。
? 沒有塊過濾時,像其他法國城市這類不相關(guān)信息會被包含在響應(yīng)里。
? LLM 驅(qū)動的塊過濾能去除不必要內(nèi)容,給出準(zhǔn)確答案“法國的首都是巴黎”。
一些檢索相關(guān)的方法,如糾正性 RAG(CRAG)和 Self-RAG,試圖通過優(yōu)化檢索過程來克服這些難題。CRAG 著重在檢索出錯后進(jìn)行“更正”檢索,Self-RAG 在生成階段引入自我反思機(jī)制以減少不準(zhǔn)確性。這兩種方法都在文檔層面操作,對單個檢索到的文本塊缺乏足夠過濾。這種文檔級別的方式提高了檢索的整體相關(guān)性,卻無法阻止不相關(guān)的塊被納入生成的響應(yīng)中。如果無法掌控檢索內(nèi)容的粒度,RAG 系統(tǒng)仍易將不良或誤導(dǎo)性信息納入輸出,最終影響性能。
為了解決該問題,作者提出了LLM 驅(qū)動的塊過濾,即 ChunkRAG,在粒度上比傳統(tǒng)系統(tǒng)更精細(xì),實(shí)際上支持對檢索信息進(jìn)行塊級過濾。
2. 什么是ChunkRAG?
ChunkRAG的目的是借助一種新穎的細(xì)粒度過濾機(jī)制,來降低檢索增強(qiáng)生成(RAG)系統(tǒng)所生成回應(yīng)中的不相關(guān)性與幻覺。分為兩個階段:語義分塊與高級過濾

上圖展示了ChunkRAG的整體框架。
2.1 語義分塊(Semantic Chunking)
語義分塊是基礎(chǔ)步驟,將輸入文檔轉(zhuǎn)化為有語義意義的單元,以利于有效檢索和評估。此階段包含三個子流程:
?輸入準(zhǔn)備:先運(yùn)用 NLTK 的 sent_tokenize 函數(shù)把文檔切分成句子。接著,給每個句子賦予一個通過預(yù)訓(xùn)練嵌入模型(比如 text-embedding-3-small)生成的嵌入向量。
?分塊形成:依據(jù)句子間的語義相似度(通過余弦相似度衡量)把連續(xù)的句子組合成分塊。如果連續(xù)句子間的相似度低于閾值($ heta=0.7$),就創(chuàng)建一個新分塊。每個分塊還進(jìn)一步限制在 500 個字符以內(nèi),以保障后續(xù)階段的效率。
?分塊的嵌入生成:每個分塊都用上述相同的預(yù)訓(xùn)練嵌入模型來表示。生成的分塊嵌入存儲在向量數(shù)據(jù)庫中,方便在查詢階段高效檢索。
2.2. 混合檢索與高級過濾
在檢索和過濾階段,將傳統(tǒng)的 RAG 組件與先進(jìn)的微調(diào)技術(shù)加以融合,以保障強(qiáng)大且高質(zhì)量的檢索效果?;旌蠙z索和過濾階段詳情如下:
?檢索器初始化與查詢重寫:初始化一個能夠?qū)⒂脩舨樵兣c塊嵌入作對比的檢索器。為提升查詢效能,運(yùn)用 GPT-4omini 進(jìn)行查詢重寫步驟,保證查詢與所存儲的嵌入高度匹配。這能讓檢索過程的召回率和精度更出色。
?初始過濾:檢索到的塊首先通過 TF-IDF 評分與余弦相似度的組合方式進(jìn)行過濾。冗余度高(相似度>0.9)的塊被剔除。其余的塊依據(jù)它們與重寫查詢的相似度來排序。
?相關(guān)性評分與閾值設(shè)定:為進(jìn)一步優(yōu)化相關(guān)性,大型語言模型(LLM)為每個塊賦予初始相關(guān)性分?jǐn)?shù)。這些分?jǐn)?shù)經(jīng)自我反思和批評模型加以細(xì)化,該模型依照特定領(lǐng)域的啟發(fā)式規(guī)則調(diào)整分?jǐn)?shù)。通過分析分?jǐn)?shù)分布設(shè)定最終的動態(tài)閾值,并且只有超過此閾值的塊得以保留。
?混合檢索策略:為最大程度提升檢索成效,采用了融合 BM25 和基于 LLM 的檢索方法的雙重檢索策略。集成方法采用均等權(quán)重(各 0.5)來平衡關(guān)鍵字和語義檢索。此外,利用 Cohere 的重新排名模型(rerank-englishv3.0)對檢索到的塊進(jìn)行排名,解決“Lost in the middle”的問題,增強(qiáng)可能被降低優(yōu)先級的中心上下文的相關(guān)性。
2.3 響應(yīng)生成與評估
篩選過后,剩余的塊會被當(dāng)作上下文來生成最終的響應(yīng):
?響應(yīng)生成:LLM 依據(jù)篩選后的上下文塊生成響應(yīng)。生成期間,嚴(yán)格限制只使用檢索到的信息,從而最大程度減少幻覺風(fēng)險(xiǎn)。
?評估:針對一組預(yù)先驗(yàn)證過的答案,對生成的響應(yīng)進(jìn)行準(zhǔn)確性評估。
3. 效果如何
將 ChunkRAG 與現(xiàn)有的檢索增強(qiáng)生成(RAG)方法的性能進(jìn)行評估。
圖片
如上圖所示,ChunkRAG 大幅超越同類別 RAG方法,相較于最接近的 CRAG(準(zhǔn)確率 54.9),ChunkRAG方法性能提升了 10 個百分點(diǎn)。
雖說 10 個百分點(diǎn)的提升看似不大,但在實(shí)際應(yīng)用中,卻意味著輸出效果呈指數(shù)級提升。
ChunkRAG之所以能有顯著的提升,主要得益于塊級過濾和細(xì)粒度相關(guān)性評估。把文本劃分成有語義的塊,減少了不相關(guān)或弱相關(guān)信息的生成。在處理塊過濾的上下文相關(guān)數(shù)據(jù)時,生成事實(shí)準(zhǔn)確且連貫的響應(yīng)的能力大幅增強(qiáng)。
再者,自我反思的 LLM 評分方法(即模型給自己打分然后做出相應(yīng)改變),使得檢索錯誤大幅減少。不像常規(guī)檢索方法在文檔部分級別沒有過濾機(jī)制,我們的方法能夠提取出更有意義和相關(guān)的信息,直接影響生成響應(yīng)的可靠性。
4. 局限性
ChunkRAG 雖有優(yōu)勢,但也存在不少需留意的短板。
? ChunkRAG高度依賴塊分割的成效以及用于塊相關(guān)性評估的嵌入質(zhì)量。分割中的差錯可能會產(chǎn)生無關(guān)數(shù)據(jù),致使響應(yīng)質(zhì)量下降。
? 多層次評分的成本——在初始層面整合 LLM 與評論 LLM 評估——可能頗高,尤其是在將該方法拓展至更大的數(shù)據(jù)集或者在實(shí)時系統(tǒng)中部署時。
? 盡管 ChunkRAG 在運(yùn)用 PopQA 數(shù)據(jù)集時取得了積極成果,但由于資源有限,其在其他領(lǐng)域的可用性驗(yàn)證以及在處理長格式生成任務(wù)時的表現(xiàn)尚未得到深入剖析。未來的研究應(yīng)當(dāng)聚焦于優(yōu)化 ChunkRAG 的計(jì)算效率,以及在不同數(shù)據(jù)集和實(shí)際應(yīng)用中的評估。
本文轉(zhuǎn)載自??大語言模型論文跟蹤??

















