從GraphRAG到PIKE-RAG,微軟發布復雜企業場景下的私域知識提取與推理新突破 原創 精華
摘要
盡管檢索增強生成(RAG)系統通過外部檢索擴展了大語言模型(LLM)的能力,并取得了一定進展,但這些系統在應對復雜多變的工業應用需求時仍顯不足。特別是在提取深度領域知識和進行邏輯推理方面,僅依賴檢索的方式存在明顯短板。為此,微軟推出了PIKE-RAG(sPecIalized KnowledgE and Rationale Augmentation Generation),旨在通過提取、理解和應用專業知識,構建連貫的推理鏈條,逐步引導LLM生成更精準的響應。github對應的地址如下: https://github.com/microsoft/PIKE-RAG
背景
當前的RAG方法主要依賴文本檢索和LLM的理解能力,缺乏對多樣化數據源的深度利用。在工業應用中,尤其是涉及專業知識和復雜邏輯的場景中,現有的RAG方法表現出明顯的局限性。以下是RAG在工業應用中面臨的主要挑戰:
- 知識來源多樣性:RAG系統依賴于多領域、多格式的文檔語料庫,包括掃描圖像、數字文本和網絡數據等,處理這些多樣化數據源的能力有限。
- 領域專業化不足:工業應用需要RAG系統具備特定領域的專業知識和邏輯推理能力,但現有的RAG方法在提取和理解領域特定知識方面表現不佳。例如,在半導體設計領域,LLM難以準確捕捉關鍵的物理原理。
- 一刀切的問題:不同應用場景對RAG系統的能力要求各異,現有方法往往采用通用策略,無法滿足特定場景的復雜需求。例如,在基于規則的查詢和多跳查詢場景中,RAG系統需要不同的能力來應對不同的挑戰。
架構
PIKE-RAG框架主要由幾個基本模塊組成,包括文檔解析、知識提取、知識存儲、知識檢索、知識組織、以知識為中心的推理以及任務分解與協調。通過調整主模塊中的子模塊,可以實現專注于不同能力的RAG系統,以滿足現實場景中的多樣化需求。
Overview of PIKE-RAG Framework
問題分類
面對RAG系統在工業應用中的挑戰,微軟提出了PIKE-RAG,通過提取、理解和應用專業知識,結合特定任務的推理邏輯,顯著提升了RAG系統的能力。PIKE-RAG將問題分為四類:事實性問題、可鏈接推理問題、預測性問題和創造性問題,并據此提出了RAG系統的能力分類,為系統優化指明了方向。
- 事實性問題:直接從語料庫中提取明確信息,依賴檢索機制識別相關事實。
- 可鏈接推理問題:需要多步推理和跨來源的知識整合,解決復雜邏輯鏈條。
- 預測性問題:通過歸納推理,將數據組織成可分析的形式(如時間序列),進行未來趨勢預測。
- 創造性問題:結合領域邏輯和創造性思維,生成創新解決方案。
這種分類方法不僅覆蓋了工業領域的多樣化需求,還確保了RAG系統能夠高效應對從簡單檢索到復雜推理的全方位挑戰。PIKE-RAG的推出,標志著RAG系統在專業領域的應用邁出了重要一步。
知識庫
盡管當前研究主要側重于通過算法增強提高檢索增強生成(RAG)系統的性能,但對RAG框架的全面評估仍較少。在此,我們以知識庫、任務分類和系統開發三個關鍵視角概括RAG框架。我們認為知識庫是RAG的核心,貫穿檢索和生成過程。并且,RAG任務的復雜性和難度可能會根據所需的生成能力和可用支持文本有顯著差異。因此,我們根據RAG系統解決不同問題的能力將其劃分為不同層次。
在實際應用中,特定領域(如制造業、能源和物流)的專業知識主要來自多年積累的數據,例如藥品行業的大量研發文檔和藥物申請文件。這些資料包含多種格式和多模態內容,如表格、圖表和圖片,它們間還存在功能性鏈接,反映了領域能知識的邏輯組織。然而,現有數據集通常只提供預分割的語料庫,未涵蓋現實應用復雜性,比如整合多格式數據和維護文檔間引用關系。
因此,建立全面的知識庫成為工業RAG應用的重要基礎。我們建議構建一個多層異構圖形知識庫,其節點和邊代表不同元素(如文檔、章節、段落、圖表等)及其關系。這個圖由信息資源層、語料層和提煉知識層組成,每一層對應信息處理的不同階段,象征著不同的知識粒度和抽象層次。
詳細設計
L0 知識庫構建
所提出的RAG系統的基礎階段被指定為L0系統,其重點在于構建一個強大且全面的知識庫。這一階段對于在后續層級中實現有效的知識檢索至關重要。L0系統的主要目標是處理和結構化領域特定文檔,將其轉換為機器可讀的格式,并將提取的知識組織成一個異構圖。該圖作為所有高級推理和檢索任務的基礎。L0系統包含幾個關鍵模塊:文件解析、知識提取和知識存儲。每個模塊在確保知識庫既廣泛又準確反映源文檔中包含的底層信息方面發揮著至關重要的作用。
文檔解析
文件解析模塊負責處理各種類型的文件,這包括處理掃描文檔、圖像和復雜的表格等。為了保留多模態元素,框架采用布局分析技術,并使用視覺語言模型來描述圖表內容,以確保信息的完整性。
知識組織
知識庫被構建為一個多層異質圖,表示不同層次的信息粒度和抽象級別。該圖捕捉了數據各個組成部分(例如文檔、章節、塊、圖表和表格)之間的關系,并將它們組織成節點和邊,以反映它們的相互聯系和依賴關系。如下圖所示,這種多層結構包括信息資源層、語料庫層和提煉知識層,能夠為下游任務提供語義理解和基于推理的檢索能力。
信息資源層:該層捕捉多樣化的信息源,將其視為源節點,并通過邊表示它們之間的引用關系。這種結構有助于交叉引用和知識的情境化,為依賴于多源信息的推理奠定了基礎。
語料庫層:該層將解析后的信息組織成章節和塊,同時保留文檔的原始層次結構。表格和圖表等多模態內容由大語言模型(LLMs)進行總結,并作為塊節點集成,確保多模態知識可用于檢索。該層支持不同粒度的知識提取,能夠實現跨多種內容類型的精確語義分塊和檢索。
提煉知識層:語料庫進一步被提煉為結構化的知識形式(例如知識圖譜、原子知識和表格知識)。這一過程通過命名實體識別(NER)和關系提取等技術驅動,確保提煉的知識捕捉關鍵邏輯關系和實體,從而支持高級推理過程。通過將這種結構化知識組織在提煉層中,我們增強了系統基于更深層次領域知識進行推理和綜合的能力。知識提煉過程如下圖所示。以下是典型知識形式的詳細提煉過程。
L1: 事實性問題回答
在L0系統的基礎上,L1系統引入了知識檢索和知識組織,以實現其檢索和生成能力。這一級別的主要挑戰是語義對齊和分塊。大量的專業術語和別名可能會影響分塊檢索的準確性,而不合理的分塊可能會破壞語義連貫性并引入噪聲干擾。為了緩解這些問題,L1系統采用了更復雜的查詢分析技術和基本知識提取模塊。其架構擴展為包含支持任務分解、協調以及知識組織(KO)初始階段的組件,確保系統能夠有效處理更復雜的查詢。
增強分塊
在RAG系統中,分塊(Chunking)是將大量文本分解為更小、更易管理的片段的過程。常見的分塊策略包括固定大小分塊、語義分塊和混合分塊。分塊不僅影響檢索的效率和準確性,還直接決定了RAG模型的整體表現。
在我們的系統中,每個分塊扮演雙重角色:
- 信息單元:被向量化并存儲在數據庫中,供檢索使用。
- 知識源:作為進一步知識提取和信息總結的基礎。
不恰當的分塊會導致文本向量缺失關鍵語義信息,甚至阻礙基于完整上下文的知識提取。為了解決這一問題,我們提出了一種文本分割算法,旨在通過保留上下文并為每個塊生成有效摘要,提升分塊效果。
算法核心:動態分塊與摘要生成
- 迭代分割:算法將文本逐步分割成塊,每次迭代生成初始塊的前向摘要,為后續塊的摘要生成提供上下文支持。
- 摘要生成:每個塊使用預定義的提示模板進行總結,結合前向摘要和當前塊內容,確保敘述連貫。
- 動態調整:算法根據文本內容和結構動態調整塊大小,確保分塊效果最優。
通過這一算法,RAG系統能夠更高效地處理復雜文本,為后續的知識提取和推理奠定堅實基礎。
自動標注
在RAG的特定領域應用中,如醫療問答,我們常面臨語言風格差異挑戰,即問題通常以口語化表述,而語料庫則采用專業術語。這可能影響檢索的準確性。為解決這一問題,我們設計了一個自動標記模塊,能有效縮小查詢和源文檔間的差距。
該模塊通過預處理語料庫,提取全面的領域特定標簽或制定標簽映射規則。在檢索前,我們從查詢中提取標簽,并利用已生成的標簽集合或標簽對集將其映射到語料庫領域,以提高召回率和精確率。
具體來說,我們利用大語言模型(LLMs)識別語料庫塊中的關鍵信息,總結并歸類為“標簽類”。我們然后生成語義標簽提取提示,以便更精準地提取標簽。當只有語料庫可用時,我們使用這些提示讓LLMs從語料庫中提取標簽。有問答樣本可用時,我們同時對查詢和相應的檢索答案塊進行標簽提取。利用這些提取的標簽,LLMs可以映射跨領域標簽并生成標簽對集合。
在建立好語料庫的標簽集合和標簽對集后,可以從查詢中提取標簽并在集合中識別相應的映射標簽。這些映射標簽隨后用于增強信息檢索過程,提升召回率和精確率。這一流程利用了LLMs的高級理解和上下文能力以實現領域適應性。
多粒度檢索
L1系統是構建在L0系統之上的,旨在實現跨異質知識圖的多層次、多粒度檢索。這個知識圖的每一層(如信息源層、語料庫層、提煉知識層)代表了不同抽象層次和粒度的知識,使我們能從多個角度探索和獲取信息。
查詢可以映射到整個文檔或特定文本塊,以在正確的層次上找到所需知識。為實現此功能,系統會計算查詢與圖節點的相似度分數,度量檢索知識的準確性。這些分數經過各層傳播,聚合不同層次的信息。這種多層傳播允許我們根據全局和局部視角調整檢索結果。最終的相似度分數由聚合和傳播的組合得出,以平衡精確性和效率。
此外,檢索過程可進行迭代優化,基于任務分解產生的子查詢可進一步提升生成答案的準確性和相關性。
我們以下圖為例來詳細說明:對于圖的每一層,查詢Q和圖節點都被轉換為高維向量嵌入以評估相似度。這個過程被表示為g(?),其中I、C和D分別代表信息源層、語料庫層和提煉知識層的節點集。傳播和聚合操作則由函數f(?)表示,最終的塊相似度分數S則通過聚合其他層和節點的分數得到。
L2: 可鏈接推理問題回答
L2系統的核心功能在于其能夠高效檢索多個相關信息源并基于此進行復雜推理。為實現這一目標,L2系統集成了一個先進的知識提取模塊,全面識別并提取相關信息。此外,系統還實現了任務分解與協調模塊,將復雜任務分解為更小、更易管理的子任務,從而提升系統處理任務的效率。
分塊文本包含多方面的信息,增加了檢索的復雜性。最近的研究集中于從分塊文本中提取三元組知識單元并構建知識圖譜,以促進高效的信息檢索。然而,知識圖譜的構建成本較高,且其內在知識可能無法被完全挖掘。為了更好地呈現文檔中嵌入的知識,我們在知識提取階段提出將原始文檔原子化,這一過程我們稱為知識原子化。此外,工業任務通常需要多段知識,這隱含了對原始問題進行分解為多個順序或并行原子問題的能力需求。我們將此操作稱為任務分解。通過將提取的原子知識與原始分塊結合,我們構建了一個原子化層次知識庫。每次分解任務時,層次知識庫都會提供可用知識的洞察,從而實現知識感知的任務分解。
知識原子化
我們認為,單個文檔塊通常包含多段知識。通常情況下,解決特定任務所需的信息僅代表整個知識的一個子集。因此,像傳統信息檢索那樣將這些知識片段整合在單個塊中,可能無法促進所需精確信息的高效檢索。為了使知識的粒度與任務解決過程中生成的查詢相匹配,我們提出了一種稱為知識原子化的方法。該方法利用大語言模型(LLMs)的上下文理解和內容生成能力,自動為每個文檔塊中的原子知識片段打上標簽。需要注意的是,這些塊可以是原始參考文檔的片段、為表格、圖像、視頻生成的描述塊,甚至是整個章節或文檔的總結塊。
原子知識的呈現方式可以多種多樣。我們建議使用問題作為知識索引,而不是使用陳述句或主語-關系-賓語三元組,以進一步縮小存儲知識與查詢之間的差距。與語義標記過程不同,在知識原子化過程中,我們將文檔塊作為上下文輸入給LLM,要求其生成盡可能多的可以由給定塊回答的相關問題。這些生成的原子問題與給定塊一起保存為原子問題標簽。
知識感知的任務分解
任務分解模塊將復雜任務分解為更小的子任務,以提高系統的處理效率。通過生成和評估原子問題提案,動態調整檢索和推理過程。
知識感知任務分解器的訓練
通過收集和訓練數據,使任務分解器能夠更好地理解和處理領域特定的知識。通過強化學習等方法,優化任務分解和結果尋找過程。
L3: 預測性問題回答
L3 專注于處理預測性問題,強調基于知識的預測能力。
在L3系統中,更加注重基于知識的預測能力,這需要有效的知識收集、組織以及構建預測邏輯。為此,我們利用任務分解與協調模塊,基于從檢索知識中收集和組織的有序知識,構建預測邏輯。L3系統的框架如上圖所示。為了確保檢索到的知識能夠為高級分析和預測做好準備,知識組織模塊增強了專門用于知識結構化和組織的子模塊。這些子模塊簡化了將原始檢索知識轉化為結構化、連貫格式的過程,從而優化后續推理和預測任務。
鑒于大語言模型(LLMs)在應用專業推理邏輯方面的局限性,其在預測任務中的有效性可能受到限制。為了克服這一問題,知識中心推理模塊增強了預測子模塊,使系統能夠基于輸入查詢和組織知識推斷結果。這一預測子模塊使系統不僅能夠基于歷史知識生成答案,還能進行預測,從而為復雜查詢提供更強大和動態的響應。通過整合先進的知識結構化和預測能力,L3系統能夠有效管理和利用更復雜和動態的知識庫。
L4: 創造性問題回答
L4 系統的實現特點在于集成了多智能體系統,以促進多角度思考。解決創造性問題需要基于事實信息并理解基本原理和規則的創造性思維。在這個高級階段,主要挑戰包括從檢索到的知識中提取連貫的邏輯推理、在眾多影響因素中導航復雜的推理過程,以及評估對創造性、開放性問題的回答質量。為了應對這些挑戰,系統協調多個智能體,每個智能體都貢獻獨特的見解和推理策略,如下所示。
這些智能體并行運作,綜合各種思維過程,生成全面且連貫的解決方案。這種多智能體架構支持并行處理和整合不同的推理路徑,確保有效管理和應對復雜查詢。通過模擬多樣化的觀點,L4 系統增強了處理創造性問題的能力,生成創新性想法而非預定義的解決方案。多個智能體的協調輸出不僅豐富了推理過程,還為用戶提供了全面的視角,促進創造性思維,并激發解決復雜問題的新穎方案。
測試結果
為了驗證我們提出方法的有效性,PIKE-RAG在開放域基準測試和特定領域基準測試上進行了實驗。
本文轉載自公眾號AI 博物院 作者:longyunfeigu
