RAG沒有銀彈!四級難度,最新綜述覆蓋數據集、解決方案,教你「LLM+外部數據」的正確使用姿勢

新智元報道

編輯:LRS

【新智元導讀】論文提出了一種RAG任務分類法,將用戶查詢分爲四個級別,並討論了將外部數據集成到LLMs中的三種主要方式。從簡單的事實檢索到複雜的推理任務,每個級別都有其獨特的難點和解決方案,需要不同的技術和方法來優化性能。

受參數量和知識更新的限制,大模型在執行很多真實場景下的任務時,都需要連接外部數據源,檢索增強生成(RAG)技術也逐漸獲得業內的關注。

但並不是接入外部數據即可萬事大吉,有很多用戶查詢非常難處理,從檢索相關數據、準確解釋用戶意圖,再到充分利用LLMs的推理能力都需要進行優化處理,才能得到一個相對滿意的RAG系統來執行復雜任務,並不存在一種萬能的解決方案。

在實踐中,如果RAG效果不佳,通常是由於未能準確識別任務的核心問題,或者是因爲該任務本身就需要混合多種技術才能解決,必須將複雜任務拆解開才能獲得更好的表現。

最近,最新的RAG綜述根據「所需的外部數據類型」和「任務的主要焦點」將用戶查詢分爲四個級別:顯式事實查詢、隱式事實查詢、可解釋理由查詢和隱含理由查詢,並在文中對四個難度的問題進行定義,提供相關數據集,總結關鍵難點以及能有效解決該難點的技術。

論文鏈接:https://arxiv.org/abs/2409.14924

文中還討論了將外部數據集成到LLMs中的三種主要形式:上下文、小模型和微調,分析各自的優勢、侷限性以及適合解決的問題類型。

級別1:顯式事實查詢(explicit fact queries)

例:2024年夏季奧運會將在何處舉行?

Where will the 2024 Summer Olympics be held?

這類查詢是最簡單的形式,不需要額外的推理,主要考察模型定位和提取相關信息的能力,要求模型正確檢索數據以提供準確的回覆。

常見的問題形式包括:

1. 給定一系列學術論文:在論文X中使用了什麼方法來解決Y問題?(What method was used in Paper X to solve problem Y?)

2. 給定一系列關於公司X的最新新聞和文章:公司X的人工智能戰略是什麼?(What’s the AI strategy of company X?)

RAG主要難點

1. 數據處理困難:外部數據通常是高度非結構化的,包含表格、圖像、視頻等多種模態,將數據進行分段(segmenting)或分塊(chunking)處理時,仍然需要保持原始上下文和意義。

2. 數據檢索困難:從大型非結構化數據集中檢索相關數據段可能會耗費大量計算資源,並且容易出錯,主要難點在於開發出高效準確的檢索機制。

3. 評估困難:如果評估RAG系統的性能,特別是組件級別的性能,是一項複雜的任務,需要開發出能夠準確評估數據檢索和響應生成質量的指標。

由於RAG已經算是一個相對成熟的領域,目前已經有大量的文獻和工具來應對上述難題,文中介紹了一些實用和有影響力的RAG增強功能,以及可能在RAG之外採用的替代技術解決方案。

級別二:隱式事實查詢(implicit fact queries)

例:堪培拉所在的國家現在哪個黨派佔多數?

What is the majority party now in the country where Canberra is located?

解析:堪培拉位於澳大利亞,再檢索澳大利亞的多數黨。

查詢仍然圍繞事實性問題,但答案並沒有明確地出現在任何某一個文本段落中,而是需要通過常識推理、結合多個事實來得出結論,所需的信息可能分散在多個段落中。

主要難點

1. 適應性檢索量(Adaptive retrieval volumes):不同的問題可能需要檢索不同數量的上下文,具體檢索量可能取決於問題和數據集,固定數量的檢索可能會導致信息噪聲或信息不足。

2. 推理與檢索之間的協調(Coordination between reasoning and retrieval):推理可以指導需要檢索的內容,而從檢索中獲得的信息可以迭代地完善推理策略。

解決這些難點需要智能地整合和有選擇性地利用外部數據,利用上大模型固有的推理能力,現有的解決思路包括迭代RAG、基於圖/樹的RAG以及帶有SQL的RAG等。

級別三:可解釋理由查詢(interpretable rationale queries)

例:

1. 給定胸痛管理指南,如何診斷和治療有胸痛和特定症狀描述的患者?

How should a patient with chest pain and specific symptom descriptions be diagnosed and treated?

2. 給定客戶服務工作流程,在現實生活場景中,如何迴應用戶的問題?

How to respond to a user’s question in a real-life scenario?

這類查詢不僅要求模型掌握事實內容,還需要能夠理解並應用與數據上下文密切相關的特定領域的理由,並且理由通常在外部資源中明確提供,且在一般大型語言模型的預訓練階段通常不存在或很少遇到。

例如,在製藥領域,LLM必須解釋FDA指南文件,以評估特定藥物申請是否符合監管要求;在客戶支持場景中,LLM必須導航預定義工作流程的複雜性,以有效處理用戶查詢;在醫療領域,模型需要遵循診斷手冊,其中提供了權威和標準化的診斷標準,如管理急性胸痛患者的指南,通過有效遵循外部理由,可以開發出一個專門的LLM專家系統來管理胸痛。

上述過程涉及到理解程序步驟和決策樹,指導支持智能體與客戶的互動,確保回覆不僅準確,而且符合公司的服務標準和協議。

研究人員根據所涉及理由的性質,將這些查詢分爲兩類:基於可解釋理由的查詢和基於隱含理由的查詢。

第一類查詢通常更顯式,輔助數據通常包括用於解決問題的思維過程的清晰解釋,數據可以以多種形式進行組織:

1. 純文本,包括專業或官方文件,如手冊或指南,以及特定領域的手冊或操作指南,闡述了在複雜場景中促進決策的思維過程。如FDA針對製藥廠的指南或醫生的藥物指南提供了專家(如FDA官員或醫生)如何處理特定案例的見解。

2. 結構化指導,包括更明確的推理關係或決策路徑,可以表示爲文本條件摩爾機或文本條件米利機。在計算理論中,摩爾機是一種有限狀態機,其輸出值僅由其當前狀態決定,控制狀態轉換的條件通常以文本形式表達,與傳統程序操作本地代碼不同的是,大模型需要解釋條件和轉換理由。

主要難點

1. 提示優化成本,不同的查詢需要量身定製的背景知識和決策標準,需要多樣化的樣例,如果是訓練一個額外的模型爲各種查詢生成定製的提示,會顯著增加計算開銷。

2. 可解釋性不足,提示對LLMs的影響是不透明的,限制了對LLMs內部參數的訪問,使得確定各種提示對這些模型的影響變得複雜。這種缺乏透明度阻礙了我們一致理解和驗證LLM對不同提示回覆的可解釋能力。

級別四:隱式理由查詢(Hidden Rationale Queries)

例:

1. 經濟形勢將如何影響公司未來的發展?(給定一系列財務報告,需要經濟和財務理由)

2. 如何使用數字5、5、5和1達到24點?(給定一系列24點遊戲示例和相應的答案)

3. 阿富汗是否允許父母將他的或她的公民身份傳給在國外出生的孩子?(給定GLOBALCIT公民法數據集)

隱式理由查詢是最難處理的類型,涉及特定領域的推理方法,且數量衆多,無法窮盡,並且理由通常無法在上下文窗口內完全探索,隱含的領域專業知識包括但不限於:

1. 領域內數據,如歷史問答記錄或人工生成的數據,包含了解決當前查詢所需的推理技能或方法論。例如,在Python編程謎題的背景下,歷史問題的解決方案通常包括可以幫助解決當前問題的古典算法和解決問題的策略。

2. 預備知識,可能包含一個全面的公理系統,如構成法律判斷基礎的所有地方法律代碼,或是包括簡化數學證明等領域推理過程的經過驗證的中間結論。在使用外部數據解決現實世界問題時,這種先驗知識也可能來自於複雜的人類經驗和經驗總結的積累。

主要難點

1. 邏輯檢索:對於涉及隱藏理由的問題,外部數據的有用性不僅僅取決於實體級或語義相似性,而是取決於邏輯一致性或主題對齊。

標準檢索方法通常難以捕捉查詢的真正目標或識別基於呈現的問題的具有邏輯相似性的文本段落,需要開發出更復雜的檢索算法,以解析和識別潛在的邏輯結構,而不僅僅依賴於表面的文本相似性。

2. 數據不足:從根本上說,外部數據可能沒有明確包含與當前查詢相關的指導或答,通常要求模型具有強大的數據解釋和分析能力,能夠有效地從碎片化或相關性不大的數據源中得出連貫的答案。

參考資料:

https://arxiv.org/abs/2409.14924