KAG 開源了,知識增強掀翻 RAG,性能翻倍

KAG(Knowledge Augmented Generation)框架早在 9 月份就已經發布,近期終於開源了,它的核心在於提出了:

歸功於在構建更有效的索引、知識對齊和混合解決庫方面的創新,KAG 框架在多跳問答任務中相比於現有的 RAG 方法有顯著的性能提升,2wiki、MuSiQue 數據集上的 EM 指標直接翻倍。此外,KAG 框架在螞蟻集團的電子政務問答和電子健康問答場景中也表現出了更高的準確性。

KAG 構建器流水線的示例

LLM 友好的知識表示方法

KAG 框架提出了一個針對大型語言模型(LLMs)友好的知識表示框架,稱爲 LLMFriSPG。這個框架的目的是爲了讓知識圖譜(KG)更好地支持 LLMs 的應用,並提高兩者之間的協同效果。

LLMFriSPG:一個對大型語言模型(LLMs)友好的知識表示框架。通過概念將實例和概念分開,以實現與 LLMs 更有效的對齊。在本研究中,除非另有說明,實體實例和事件實例統稱爲實例。SPG 屬性被劃分爲知識和信息領域,也稱爲靜態和動態領域,它們分別與具有強模式約束的決策專長和具有開放信息表示的文檔檢索索引知識兼容。紅色虛線代表從信息到知識的融合和挖掘過程。增強的文檔塊表示爲 LLMs 提供了可追溯和可解釋的文本上下文。

  1. 數據結構定義:LLMFriSPG 定義了一個數據結構 M,包括實體類型(T)、概念類型(C)、歸納關係(ρ)和可執行規則(L)。實體類型包括預定義的屬性,這些屬性與 LPG 語法聲明兼容。概念類型包括概念類、概念及其關係,每個概念樹的根節點是一個與 LPG 語法兼容的概念類型類。

  2. 實例和概念的分離:LLMFriSPG 將實例和概念分離,以實現與 LLMs 的有效對齊。實體實例和事件實例統稱爲實例。每個實例可以與一個或多個概念類型相關聯,以表達其語義類型。

  3. 屬性和關係:對於每種類型,屬性和關係包括領域專家預定義的部分、臨時添加的內容以及系統內置的屬性,如支持塊(supporting_chunks)、描述(description)、摘要(summary)和歸屬(belongTo)。

  4. 層次化的知識表示:LLMFriSPG 支持從數據到信息再到知識的層次化表示。知識層(KGcs)遵循 SPG 語義規範,支持在嚴格的模式約束下構建知識體系和定義邏輯規則。信息層(KGfr)通過信息抽取得到實體和關係等圖數據。原始塊層(RC)則是經過語義分割處理後的原始文檔片段。

知識和信息的層次表示

相互索引機制

KAG 框架介紹了一種相互索引機制,旨在構建知識結構和文本塊之間的索引,以增強知識表示和檢索的效率:

  1. 語義分塊(Semantic Chunking):基於文檔的結構層次和段落間的邏輯聯繫,實現語義分塊,生成符合長度限制且語義連貫的文本塊。

  2. 信息提取與描述性上下文:使用大型語言模型(LLMs)提取實體、事件、概念和關係,並構建 KGfr 與 RC 之間的互索引結構,實現跨文檔鏈接。

  3. 領域知識注入和約束:通過迭代提取方法,將領域概念和術語及其描述存儲在 KG 存儲中,並通過 openIE 提取文檔中的所有實例,執行向量檢索以獲得與領域知識對齊的集合。

  4. 預定義知識結構:對於具有標準化結構的專業文檔,如藥品說明書和政務文件,可以預定義實體類型和屬性,以便於信息提取和知識管理。

  5. 文本塊向量與知識結構的互索引:KAG 的互索引機制遵循 LLMFriSPG 的語義表示,包括共享模式、實例圖、文本塊和概念圖等核心數據結構,以及 KG 存儲和向量存儲兩種存儲結構。

領域非結構化文檔的 KAG 構建器的流程。從左到右,首先,通過信息提取獲得短語和三元組,然後通過語義對齊完成消歧和融合,最後,構建的知識圖譜被寫入存儲。

邏輯形式引導的混合推理引擎

KAG 框架介紹了一個基於邏輯形式的混合推理和求解引擎,它能夠將自然語言問題轉化爲結合語言和符號的解題過程。

邏輯形式執行的示例。在這張圖中,左側顯示了知識圖譜(KG)構建過程,而右側是整體的推理和迭代過程。首先,基於用戶的總體問題執行邏輯形式分解,然後使用邏輯形式引導的推理進行檢索和推理。最後**,生成器判斷用戶的問題是否得到滿足**。如果沒有,就提供一個新的問題,進入新的邏輯形式分解和推理過程。如果確定問題得到滿足,生成器直接輸出答案。

  1. 邏輯形式規劃:通過邏輯函數來定義執行動作,將複雜問題分解爲可以推理的子問題。這些邏輯函數包括檢索(Retrieval)、排序(Sort)、數學計算(Math)和推理(Deduce)等。

  2. 邏輯形式推理:使用邏輯形式來表達問題,以便能夠清晰地描述語義關係。這種方法可以處理涉及邏輯推理過程的問題,如 “與”、“或”、“非” 以及交集和差集等。

  3. 邏輯形式檢索:在傳統的 RAG 中,檢索是通過計算問題與文檔片段嵌入之間的相似度來實現的。KAG 框架提出了一種結合稀疏編碼器和密集檢索器的方法,以提高檢索的準確性。

知識對齊策略

詳細介紹了 KAG 框架中的知識對齊(Knowledge Alignment)策略,旨在解決基於信息抽取構建知識圖譜(KG)時在知識對齊方面遇到的挑戰:

  1. 知識對齊的必要性:傳統的基於向量相似度的信息檢索方法在知識對齊上存在缺陷,如語義關係的錯位、知識粒度不一致、與領域知識結構不匹配等問題。這些問題導致檢索結果不精確,無法滿足特定領域的專業性需求。

  2. 概念圖的利用:爲了增強離線索引和在線檢索的語義推理能力,KAG 框架利用概念圖來提升知識對齊。通過概念圖,可以增強知識實例的標準化、概念與實例之間的鏈接、概念間關係的完整性,以及領域知識的注入。

  3. 語義關係的分類:文中總結了六種常用於檢索和推理的語義關係,包括同義詞(synonym)、屬於(isA)、是部分(isPartOf)、包含(contains)、屬於(belongTo)和導致(causes)等。

  4. 增強索引(Enhance Indexing):通過使用大型語言模型(LLMs)預測索引項之間的語義關係或相關知識元素,包括知識實例的消歧和融合、實例與概念之間的關係預測、概念及其關係的完整性補充。

  5. 增強檢索(Enhance Retrieval):在檢索階段,利用語義關係推理來搜索 KG 索引,結合語義關係推理和相似度檢索,以提高檢索的專業性和邏輯性,從而獲得正確的答案。

KAG 框架核心模型

詳細介紹了 KAG 框架中的核心模型,這個模型旨在通過優化大型語言模型(LLMs)的三個關鍵能力——自然語言理解(NLU)、自然語言推理(NLI)和自然語言生成(NLG),來提升知識增強生成的性能:

  1. 自然語言理解(NLU):NLU 包括任務如文本分類、命名實體識別、關係提取等。爲了提升 NLU 能力,KAG 通過大規模指令重構,創建了一個包含超過 20,000 個多樣化指令的 NLU 指令數據集,用於監督式微調,從而增強模型在下游任務中的表現。

  2. 自然語言推理(NLI):NLI 任務用於推斷給定短語之間的語義關係,包括實體鏈接、實體消歧、分類擴展等。KAG 通過收集高質量的概念知識庫和本體論,構建了一個包含 8,000 個概念及其語義關係的概念知識集,用於提升模型的語義推理能力。

  3. 自然語言生成(NLG):爲了使模型生成的文本更好地符合特定領域的邏輯和風格,KAG 提出了兩種有效的微調方法:K-LoRA 和 AKGF。K-LoRA 通過預訓練和基於 LoRA 的微調,使模型能夠識別知識圖譜中信息的格式,並習得領域特定的語言風格。AKGF 則利用知識圖譜作爲自動評估器,提供對當前響應知識正確性的反饋,引導模型進一步優化。

  4. 單次推理(Onepass Inference):爲了減少系統複雜性、建設成本以及模塊間錯誤傳播導致的級聯損失,KAG 引入了一種高效的單次推理模型(OneGen),使任意 LLM 能夠在單次前向傳遞中同時進行生成和檢索。

KAG 所需的模型能力

https://arxiv.org/pdf/2409.13731
KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation
Github: https://github.com/OpenSPG/KAG
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/TqgGLlEYL5DqPEg6sB3tGA