先進的多文檔問答(MDQA)框架HiQA:大幅降低區分度低的復雜多文檔RAG的幻覺問題 原創
背景
檢索增強生成(RAG)迅速推進了語言模型領域,特別是在問答(QA)系統。通過在響應生成階段集成外部文檔,RAG顯著提高了語言模型的準確性和可靠性。這種方法提高了響應的質量,并降低了幻覺的頻率,其中模型生成了錯誤或誤導性的信息。然而,這些方法表現出有限的檢索精度時,面對眾多的難以區分的文件,在其實際應用中提出了顯著的挑戰。為了應對這些新出現的挑戰,本文提出HiQA,一個先進的多文檔問答(MDQA)框架,集成級聯元數據到內容和多路由檢索機制。
簡介
大型語言模型 (LLMs) 在多個領域,包括文檔問答 (QA) 得到了廣泛應用。然而,使用 LLMs 進行 QA 仍面臨諸如幻覺問題、及時性問題和預訓練不足的挑戰。檢索擴增生成(RAG)是一種有前景的解決方案。普通的基于 RAG 的 QA 系統將文檔表示為非結構化文本塊,但在處理大量、內容相似或復雜的文檔時,這種方法遇到了限制。多文檔問答提出了更大的挑戰,因為它需要考慮文檔間的關系和差異。我們將此問題確定為“無法區分的多文檔中的RAG降級”。
多文檔QA場景中性能下降的實驗驗證。使用88個文檔進行測試,每個文檔包含88個問題中的一個。使用普通RAG和GPT-4設置(塊大小=400,top-k=5)。查詢單個文檔上的每個問題時,只有一個錯誤答案。然而,一起查詢所有88個文檔會導致30個錯誤答案,這表明隨著文檔數量的增加,性能會顯著下降。結果如下圖所示:
數據擴充被視為可以改進響應的潛在解決方案,可增強原始文件以改善響應,如下圖所示:
我們的直觀想法是,在文檔QA中使用RAG的關鍵是匹配知識的“關鍵塊”來回答文檔中的查詢(Q)。這類似于射箭,其中查詢充當箭頭,我們需要確保關鍵知識在目標區域內。因此,通過將“定義”文本合并到塊中,我們可以調整它們的分布,使查詢嵌入更容易擊中關鍵塊。
HiQA
PDFTriage 通過提取文檔的結構元素并將其轉換為可檢索的元數據,解決了結構化文檔的多文檔QA任務。PDFTriage 對元數據的使用可以被描述為一種硬分區技術。這種策略相當于在信息檢索之前對子集進行剪枝和選擇。這樣的措施被實施以通過減小段的大小來改進檢索精度。然而,在涉及復雜任務(如跨文檔搜索)的場景中,在硬分區方法中,有用的知識有可能在檢索之前丟失。
為了解決這一挑戰,我們提出了HiQA(分層上下文增強RAG多文檔QA),結合一種新的文檔解析和轉換方法。這種方法包括一個基于元數據的增強策略,以增強塊的可擴展性,以及一個復雜的多路由檢索機制。專門為多文檔環境量身定制,我們的方法旨在提高知識檢索的精度和相關性,克服傳統的基于向量的檢索系統的固有局限性。這種增強顯著提高了基于RAG的系統在管理多文檔問答(MDQA)的復雜需求方面的性能。我們的方法框架如下圖所示:
最初,每個文檔經過Markdown格式化器的處理,根據其固有的章節結構將其轉換為[章節元數據:章節內容]對(稱為片段),然后以Markdown格式存儲。隨后,我們提取片段的層次結構,并將元數據級聯到每個章節中,以構建我們的數據庫。最后,我們使用多路徑檢索方法來增強RAG。由于層次增強先于檢索,因此它提供了一種可擴展的解決方案,可以無縫集成各種嵌入或檢索方法。
方法
我們提出的HiQA系統由三個組件組成:Markdown格式化器(MF),分層上下文增強器(HCA)和多路徑檢索器(MRR)。MF模塊處理源文檔把它轉換成一個markdown文件,一個片段序列。不是將文檔分成固定大小的塊,而是每個片段對應于一個自然的章節,包括章節元數據和內容。HCA模塊從markdown中提取分層元數據并將其組合,形成級聯元數據,從而增強每個片段的信息。MRR模塊采用多路徑檢索方法來找到最合適的片段,然后將其作為上下文輸入提供給語言模型。
Markdown格式化器
由于我們提出的方法需要獲取層次結構信息,因此源文檔必須經過結構解析。因此,Markdown因其出色的結構化文檔格式化功能而被選中。因此,我們引入了Markdown格式轉換器,將源文檔轉換為富含結構化元數據的Markdown文檔。
Markdown Formatter使用LLM進行文檔解析。使用LLM的決定是由其通過利用歷史信息處理跨頁面連貫上下文的能力以及其語義理解和標點符號使用的能力驅動的。這些功能可以實現精確的章節分割和有效的表格數據恢復,充分利用LLM的高級語義理解功能。
當進入長上下文時,存在精度損失、遺忘、指令弱化、幻覺等問題。為了確保輸出內容的結構連貫、準確并與原始文檔一致,我們采用了滑動窗口技術,窗口大小為W,步長為W,附加填充為K。
為了得到高質量的文檔處理結果,使用指令進行生成markdown核心思想如下:
- 將文檔中的每一章,無論其級別如何,都視為Markdown中的一級標題,并附上數字標識符。將每章視為一個知識片段,而不是固定大小的塊。
- 設置正確的章節編號,后面跟著章節標題。
- 通過Markdown語法生成表格并記錄表格標題。
分層上下文增強器(Hierarchical Contextual Augmentor, HCA)
使用級聯文檔結構在數據處理過程中進行文本增強,從Markdown文件中提取層次結構元數據,并將其級聯到每個章節,形成增強的段落。具體步驟包括:
- 使用深度優先搜索遍歷章節樹,連接和傳遞元數據。
- 對文本、表格和圖像等不同類型的段落進行不同的處理。
多路徑檢索器(Multi-Route Retriever, MRR)
我們提出了我們的多路徑檢索方法的QA任務,集成了各種技術,以提高精度的知識檢索廣泛的文檔語料庫。具體來說,我們使用以下三種方法實現了檢索:
- 向量相似性匹配:使用Elasticsearch和BM25。
- 關鍵詞匹配:使用預訓練的關鍵實體檢測模型提取關鍵詞。
- 補償向量相似性限制:結合基于頻率的檢索技術和關鍵詞排名策略。
如果兩個文檔非常相似(比如“iPhone10”的說明書和“iPhone15”的說明書),傳統的方法可能會遇到問題。因為它們主要通過計算文檔之間的"向量相似性"來辨別文檔的差異,但這種方法對于一些只有細微差別(例如生產日期或電池容量)的文檔區分效果并不理想。
為了解決這個問題,我們引入了一個新的工具——稱為Lucene索引。這個工具更多地關注每個詞語(或者叫令牌)在文檔中出現的頻率,而不是單純的計算整體相似度。這樣就可以更有效地區分那些在大部分內容都很相似,但在某些細節上有所不同的文檔。
除此之外,我們還使用了其他的策略來提升檢索的準確性,比如利用命名實體識別和人類專家設置的關鍵詞來給相關的部分賦予更大的權重。這意味著,如果搜索“iPhone15”這個關鍵詞,那么所有包含“iPhone15”的部分會被認為更重要,因此在檢索結果中的排名會更高。
驗證效果
結論
我們介紹了HiQA,一種新的框架,專門設計用于解決現有的RAG在多文檔問答(MDQA)環境中的局限性,特別是在處理不可區分的多文檔時。HiQA采用了軟分區策略,該策略利用文檔的結構性元數據進行有效的塊拆分和嵌入增強,并采用多路徑檢索機制來增強檢索效率。我們廣泛的實驗驗證了我們的方法的魯棒性和有效性,有助于更深入地理解嵌入空間內的文檔段分布的理論。
?
本文轉載自公眾號AI 博物院 作者:longyunfeigu
