顛覆直覺:Top N 越大,RAG效果可能越差
一、RAG 系統的背景與挑戰
在自然語言處理(NLP)領域,大型語言模型(LLMs)如 GPT、BERT 等已經展現出了強大的文本生成、問答和摘要能力。然而,這些模型也存在一些顯著的局限性。
? 首先,LLMs 的知識是靜態的,這意味著它們無法及時更新以反映新信息,導致生成的回答可能過時。
? 其次,LLMs 有時會生成聽起來合理但事實上錯誤的回答,這種現象被稱為“幻覺”。
? 最后,LLMs 在涉及高級專業領域的知識時,往往缺乏足夠的深度。
為了應對這些挑戰,檢索增強生成(Retrieval-Augmented Generation, RAG)系統應運而生。RAG 系統通過引入檢索組件,使 LLMs 能夠動態地利用外部知識源,從而生成更準確、更及時的回答。
RAG 系統已經在多個行業中得到廣泛應用,尤其是在企業內部文檔查詢等場景中。然而,盡管 RAG 系統的應用日益廣泛,關于其最佳配置的研究卻相對缺乏,特別是在上下文大小、基礎 LLM 選擇以及檢索方法等方面。
二、試驗結果
RAG 系統通常由兩個主要組件構成:檢索器(Retriever)和生成器(Reader):
? 檢索器負責從外部知識庫中檢索相關的上下文片段,這些片段隨后被傳遞給生成器
? 生成器基于這些上下文生成最終的回答。
作者重點探討了這三個方面(檢索器、上下文、生成器)對系統整體性能的影響。
首先研究了上下文大小對生成器問答能力的影響。結果表明:隨著上下文片段數量的增加,系統的性能逐步提升,但當片段數量達到 10 到 15 個時,性能開始趨于穩定,甚至在某些情況下會出現下降。這一現象表明,過多的上下文片段可能會導致信息過載,反而影響生成器的表現。
2.1 黃金片段測試
圖片
上圖展示了四個較大尺寸的大語言模型(LLMs)在使用黃金片段后的表現,四個模型分別是GPT3.5、GPT-4o、Llama 3 70B、Mixtral (8x7B)。
所有模型都呈現出相似的模式:
? 從較低的零樣本性能開始,僅使用一個上下文片段就能顯著提升性能。
? 大多數模型在所有三個評估指標上逐步且穩定地改進。
2.2 封閉式測試
使用了包含八千篇PubMed文章的小型知識庫,這些文章在BioASQ中被用作黃金證據。
圖片
實驗結果如上表所示,模型性能與之前有所下降。即使是表現最佳的Mixtral模型,其性能也平均下降。
盡管如此,隨著選擇的top k片段數量的增加,性能仍然逐步提升,表明更多的上下文信息能夠帶來更好的表現。
這一點在top-10設置中尤為明顯,因為選擇的證據片段越多,選中用于生成理想答案的黃金證據片段的概率就越高。
2.3 開放式測試
使用約1000萬篇PubMed文章作為檢索的知識庫。其目的是觀察:
(1)在開放式設置下,性能與使用黃金證據的封閉式設置相比有多大差異;
(2)不同檢索器對性能的影響。
圖片
圖片
上表結果顯示:
? 開放式檢索顯然是最具挑戰性的設置,整體平均得分最低。
? 使用BM25檢索文檔的最終性能略優于語義搜索。
3. 結論
3.1 檢索技術
圖片
從上表可以看出,BM25在整體性能上表現更優。由于BM25基于關鍵詞匹配,這種檢索技術優化了搜索結果的精確度(precision)而非召回率(recall),從而確保檢索到的文檔更有可能討論問題中提到的相同概念(關鍵詞)。
優化精確度并將查詢關鍵詞與知識庫中的內容匹配,可以提升性能。特別是在生物醫學領域等關鍵應用中,優化精確度和生成穩健的答案可能比語義搜索提供的召回率更為重要。
注:
? ROUGE-L 是一種基于最長公共子序列(LCS)的評估指標,主要用于衡量生成文本與參考文本之間的相似性。它關注生成文本中與參考文本匹配的最長連續子序列,側重于召回率(Recall),即生成文本中有多少內容與參考文本一致。
? BERTScore 是一種基于預訓練語言模型(如 BERT)的評估指標,通過計算生成文本與參考文本在語義空間中的相似性來評估質量。它使用 BERT 模型將文本編碼為向量,然后計算生成文本與參考文本之間的余弦相似度。相比 ROUGE 等基于詞匯重疊的指標,BERTScore 更能捕捉語義層面的相似性,適合評估生成文本的語義準確性。
? Ent.% 是基于自然語言推理(Natural Language Inference, NLI)模型的評估指標,用于衡量生成文本與參考文本之間的邏輯一致性(蘊含關系)。NLI 模型會判斷生成文本是否邏輯上蘊含(Entailment)參考文本的內容。
3.2 內部知識與外部知識的沖突
圖片
上表中開放式檢索的一個有趣現象:GPT和Mixtral在零樣本答案(無上下文片段)中的得分高于提供多達10個上下文片段的答案。
這種現象的一個可能解釋是:盡管在語料庫中發現的片段可能與問題在語義上相似,但它們并不總是提供所有重要信息。
當僅使用普通提示時,LLM基于其“內部”知識生成答案:反映了LLM從大規模預訓練語料庫中積累的知識。
因此,LLM的內部知識答案可能比RAG設置中的答案更具信息量,因為在RAG設置中,LLM被指示僅使用提供的短片段來回答問題。隨著更多片段的加入,RAG答案的信息量開始超越LLM的內部知識。
圖片
以上表中的第一個示例為例,Mixtral基于內部知識生成的答案提到了純化和IgG,與黃金答案一致,而基于top-3片段生成的答案則是不完整的。
一般來說,瓶頸通常與錯誤的檢索有關——有時檢索到的片段根本沒有回答問題,尤其是對于BioASQ中復雜的生物醫學術語。
另一方面,普通設置下的LLM總是基于其最佳知識提供答案,因此在檢索不佳的情況下表現更好。在上表的第二個示例中顯而易見。
展示了LLM內部知識與傳遞給它們的上下文知識之間沖突的已知挑戰,也是一個有趣的未來研究方向。
3.3 上下文飽和
圖片
上表中的另一個發現是,性能提升存在一定的上限。
隨著不斷增加上下文片段的數量,增加到20個時,性能趨于停滯,而在檢索到30個上下文片段時,性能略有下降。
當達到飽和點后,向提示中添加更多上下文只會導致回答中的噪音和混淆。
證實了文獻中的先前發現,即在長提示中,上下文可能會“迷失在中間”,并在LLM回答問題時被忽略。
注:本論文代碼和數據已開源:https://github.com/jvladika/ContextRAG
本文轉載自??大語言模型論文跟蹤??,作者:HuggingAGI
