KAG開源了,知識增強掀翻RAG,性能翻倍
KAG(Knowledge Augmented Generation)框架早在9月份就已經(jīng)發(fā)布,近期終于開源了,它的核心在于提出了:
- 一種LLM友好的知識表示方法
- 知識圖譜與原始文本塊之間的相互索引
- 邏輯形式引導的混合推理引擎
- 以及基于語義推理的知識對齊
歸功于在構(gòu)建更有效的索引、知識對齊和混合解決庫方面的創(chuàng)新,KAG框架在多跳問答任務(wù)中相比于現(xiàn)有的RAG方法有顯著的性能提升,2wiki、MuSiQue數(shù)據(jù)集上的EM指標直接翻倍。此外,KAG框架在螞蟻集團的電子政務(wù)問答和電子健康問答場景中也表現(xiàn)出了更高的準確性。
KAG構(gòu)建器流水線的示例
LLM友好的知識表示方法
KAG框架提出了一個針對大型語言模型(LLMs)友好的知識表示框架,稱為LLMFriSPG。這個框架的目的是為了讓知識圖譜(KG)更好地支持LLMs的應(yīng)用,并提高兩者之間的協(xié)同效果。
LLMFriSPG:一個對大型語言模型(LLMs)友好的知識表示框架。通過概念將實例和概念分開,以實現(xiàn)與LLMs更有效的對齊。在本研究中,除非另有說明,實體實例和事件實例統(tǒng)稱為實例。SPG屬性被劃分為知識和信息領(lǐng)域,也稱為靜態(tài)和動態(tài)領(lǐng)域,它們分別與具有強模式約束的決策專長和具有開放信息表示的文檔檢索索引知識兼容。紅色虛線代表從信息到知識的融合和挖掘過程。增強的文檔塊表示為LLMs提供了可追溯和可解釋的文本上下文。
- 數(shù)據(jù)結(jié)構(gòu)定義:LLMFriSPG定義了一個數(shù)據(jù)結(jié)構(gòu)M,包括實體類型(T)、概念類型(C)、歸納關(guān)系(ρ)和可執(zhí)行規(guī)則(L)。實體類型包括預(yù)定義的屬性,這些屬性與LPG語法聲明兼容。概念類型包括概念類、概念及其關(guān)系,每個概念樹的根節(jié)點是一個與LPG語法兼容的概念類型類。
- 實例和概念的分離:LLMFriSPG將實例和概念分離,以實現(xiàn)與LLMs的有效對齊。實體實例和事件實例統(tǒng)稱為實例。每個實例可以與一個或多個概念類型相關(guān)聯(lián),以表達其語義類型。
- 屬性和關(guān)系:對于每種類型,屬性和關(guān)系包括領(lǐng)域?qū)<翌A(yù)定義的部分、臨時添加的內(nèi)容以及系統(tǒng)內(nèi)置的屬性,如支持塊(supporting_chunks)、描述(description)、摘要(summary)和歸屬(belongTo)。
- 層次化的知識表示:LLMFriSPG支持從數(shù)據(jù)到信息再到知識的層次化表示。知識層(KGcs)遵循SPG語義規(guī)范,支持在嚴格的模式約束下構(gòu)建知識體系和定義邏輯規(guī)則。信息層(KGfr)通過信息抽取得到實體和關(guān)系等圖數(shù)據(jù)。原始塊層(RC)則是經(jīng)過語義分割處理后的原始文檔片段。
知識和信息的層次表示
相互索引機制
KAG框架介紹了一種相互索引機制,旨在構(gòu)建知識結(jié)構(gòu)和文本塊之間的索引,以增強知識表示和檢索的效率:
- 語義分塊(Semantic Chunking):基于文檔的結(jié)構(gòu)層次和段落間的邏輯聯(lián)系,實現(xiàn)語義分塊,生成符合長度限制且語義連貫的文本塊。
- 信息提取與描述性上下文:使用大型語言模型(LLMs)提取實體、事件、概念和關(guān)系,并構(gòu)建KGfr與RC之間的互索引結(jié)構(gòu),實現(xiàn)跨文檔鏈接。
- 領(lǐng)域知識注入和約束:通過迭代提取方法,將領(lǐng)域概念和術(shù)語及其描述存儲在KG存儲中,并通過openIE提取文檔中的所有實例,執(zhí)行向量檢索以獲得與領(lǐng)域知識對齊的集合。
- 預(yù)定義知識結(jié)構(gòu):對于具有標準化結(jié)構(gòu)的專業(yè)文檔,如藥品說明書和政務(wù)文件,可以預(yù)定義實體類型和屬性,以便于信息提取和知識管理。
- 文本塊向量與知識結(jié)構(gòu)的互索引:KAG的互索引機制遵循LLMFriSPG的語義表示,包括共享模式、實例圖、文本塊和概念圖等核心數(shù)據(jù)結(jié)構(gòu),以及KG存儲和向量存儲兩種存儲結(jié)構(gòu)。
領(lǐng)域非結(jié)構(gòu)化文檔的KAG構(gòu)建器的流程。從左到右,首先,通過信息提取獲得短語和三元組,然后通過語義對齊完成消歧和融合,最后,構(gòu)建的知識圖譜被寫入存儲。
邏輯形式引導的混合推理引擎
KAG框架介紹了一個基于邏輯形式的混合推理和求解引擎,它能夠?qū)⒆匀徽Z言問題轉(zhuǎn)化為結(jié)合語言和符號的解題過程。
邏輯形式執(zhí)行的示例。在這張圖中,左側(cè)顯示了知識圖譜(KG)構(gòu)建過程,而右側(cè)是整體的推理和迭代過程。首先,基于用戶的總體問題執(zhí)行邏輯形式分解,然后使用邏輯形式引導的推理進行檢索和推理。最后,生成器判斷用戶的問題是否得到滿足。如果沒有,就提供一個新的問題,進入新的邏輯形式分解和推理過程。如果確定問題得到滿足,生成器直接輸出答案。
- 邏輯形式規(guī)劃:通過邏輯函數(shù)來定義執(zhí)行動作,將復雜問題分解為可以推理的子問題。這些邏輯函數(shù)包括檢索(Retrieval)、排序(Sort)、數(shù)學計算(Math)和推理(Deduce)等。
- 邏輯形式推理:使用邏輯形式來表達問題,以便能夠清晰地描述語義關(guān)系。這種方法可以處理涉及邏輯推理過程的問題,如“與”、“或”、“非”以及交集和差集等。
- 邏輯形式檢索:在傳統(tǒng)的RAG中,檢索是通過計算問題與文檔片段嵌入之間的相似度來實現(xiàn)的。KAG框架提出了一種結(jié)合稀疏編碼器和密集檢索器的方法,以提高檢索的準確性。
知識對齊策略
詳細介紹了KAG框架中的知識對齊(Knowledge Alignment)策略,旨在解決基于信息抽取構(gòu)建知識圖譜(KG)時在知識對齊方面遇到的挑戰(zhàn):
- 知識對齊的必要性:傳統(tǒng)的基于向量相似度的信息檢索方法在知識對齊上存在缺陷,如語義關(guān)系的錯位、知識粒度不一致、與領(lǐng)域知識結(jié)構(gòu)不匹配等問題。這些問題導致檢索結(jié)果不精確,無法滿足特定領(lǐng)域的專業(yè)性需求。
- 概念圖的利用:為了增強離線索引和在線檢索的語義推理能力,KAG框架利用概念圖來提升知識對齊。通過概念圖,可以增強知識實例的標準化、概念與實例之間的鏈接、概念間關(guān)系的完整性,以及領(lǐng)域知識的注入。
- 語義關(guān)系的分類:文中總結(jié)了六種常用于檢索和推理的語義關(guān)系,包括同義詞(synonym)、屬于(isA)、是部分(isPartOf)、包含(contains)、屬于(belongTo)和導致(causes)等。
- 增強索引(Enhance Indexing):通過使用大型語言模型(LLMs)預(yù)測索引項之間的語義關(guān)系或相關(guān)知識元素,包括知識實例的消歧和融合、實例與概念之間的關(guān)系預(yù)測、概念及其關(guān)系的完整性補充。
- 增強檢索(Enhance Retrieval):在檢索階段,利用語義關(guān)系推理來搜索KG索引,結(jié)合語義關(guān)系推理和相似度檢索,以提高檢索的專業(yè)性和邏輯性,從而獲得正確的答案。
KAG框架核心模型
詳細介紹了KAG框架中的核心模型,這個模型旨在通過優(yōu)化大型語言模型(LLMs)的三個關(guān)鍵能力——自然語言理解(NLU)、自然語言推理(NLI)和自然語言生成(NLG),來提升知識增強生成的性能:
1.自然語言理解(NLU):NLU包括任務(wù)如文本分類、命名實體識別、關(guān)系提取等。為了提升NLU能力,KAG通過大規(guī)模指令重構(gòu),創(chuàng)建了一個包含超過20,000個多樣化指令的NLU指令數(shù)據(jù)集,用于監(jiān)督式微調(diào),從而增強模型在下游任務(wù)中的表現(xiàn)。
2.自然語言推理(NLI):NLI任務(wù)用于推斷給定短語之間的語義關(guān)系,包括實體鏈接、實體消歧、分類擴展等。KAG通過收集高質(zhì)量的概念知識庫和本體論,構(gòu)建了一個包含8,000個概念及其語義關(guān)系的概念知識集,用于提升模型的語義推理能力。?
3.自然語言生成(NLG):為了使模型生成的文本更好地符合特定領(lǐng)域的邏輯和風格,KAG提出了兩種有效的微調(diào)方法:K-LoRA和AKGF。K-LoRA通過預(yù)訓練和基于LoRA的微調(diào),使模型能夠識別知識圖譜中信息的格式,并習得領(lǐng)域特定的語言風格。AKGF則利用知識圖譜作為自動評估器,提供對當前響應(yīng)知識正確性的反饋,引導模型進一步優(yōu)化。
4.單次推理(Onepass Inference):為了減少系統(tǒng)復雜性、建設(shè)成本以及模塊間錯誤傳播導致的級聯(lián)損失,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
本文轉(zhuǎn)載自??PaperAgent??
