GMeLLo:結(jié)合知識圖譜的 LLM 多跳問答技術(shù),效果顯著提升 精華
1. GMeLLo 提出的背景
1.1 多跳問答
多跳問答的難度往往比較大,因為不僅要追溯事實,還要聚合與串聯(lián)事實。
事實的來源可以是知識圖譜、表格、自由格式文本,或者是這些來源的異構(gòu)組合。
隨著大型語言模型的發(fā)展,基于提示的方法搭配可選的檢索模塊已成為處理多跳問答的常用手段,但以往多數(shù)工作側(cè)重于靜態(tài)信息庫。
1.2 知識編輯
知識編輯目前有兩種主流方案:修改模型參數(shù)和保留模型參數(shù)。
1.2.1 修改模型參數(shù)
可進一步細分為元學習和定位-編輯方法。
? 元學習方法(meta-learning):利用超網(wǎng)絡來學習編輯大型語言模型所需的調(diào)整。
? 定位-然后-編輯(locate-then-edit)范例,首先識別與特定知識對應的參數(shù),然后通過直接更新目標參數(shù)來進行修改。
2.2.2 保留模型參數(shù)
在保留模型參數(shù)的情況下,主要方法是引入額外的參數(shù)或外部存儲器。
? 額外參數(shù)范式( additional parameters ):將額外的可訓練參數(shù)納入語言模型。這些參數(shù)在修改后的知識數(shù)據(jù)集上進行訓練,而原始模型參數(shù)保持不變。
? 基于存儲器的模型(memory-based models):將所有編輯的示例存儲在存儲器中,并使用檢索器為每個新輸入提取相關的編輯事實,從而引導模型生成編輯后的輸出。
2. GMeLLo
基于以上背景,作者提出了 GMeLLo (Graph Memory-based Editing for Large Language Models)方法,通過整合大語言模型和知識圖譜(Knowgledge Graph),解決知識編輯后的多跳問答任務。
圖片
如上圖,在更新了有關英國首相的信息后,顯然相應的配偶信息也應予以修改。
圖片
如上圖所示,GMeLLo 包括以下關鍵步驟:
? 借助大型語言模型將編輯后的事實句子轉(zhuǎn)化為三元組,利用這些三元組來更新知識圖譜,確保其信息保持最新。
? 對于給定的問題,利用大型語言模型提取其關系鏈。通過模板填充,將關系鏈轉(zhuǎn)換為正式查詢,并用于搜索更新后的知識圖譜。
? 依據(jù)問題檢索最相關的編輯事實,并通過大型語言模型依據(jù)這些事實生成答案。
? 當大型語言模型提供的答案與知識圖譜的答案相沖突時,將知識圖譜的答案作為最終回應。
3.1 從知識庫中提取三元組
將知識圖譜 Wikidata 用作基礎知識庫。當收到更新的事實時,運用大型語言模型從句子中提取實體并確定它們的關系(從預定義列表中選擇一個關系)。生成經(jīng)過編輯的事實三元組,然后用于更新知識圖譜。需要依據(jù)主體實體和關系來識別知識圖譜中的連接,打破這些連接,并基于三元組建立新的連接。
通過上下文學習,以確保大型語言模型對任務有深入理解。此外,鑒于大型語言模型可能生成不在預定義關系列表中的關系,使用檢索模型從預定義關系列表中識別出最相似的關系(即嵌入空間中最接近的關系)。檢索模型的融入讓三元組提取過程更強大。
3.2 從問題中提取關系鏈
隨著世界快速發(fā)展,大型語言模型的訓練數(shù)據(jù)可能很快過時。
不過,由于語言模式的演變通常較為緩慢,大型語言模型的大量訓練數(shù)據(jù)應當能使其有效地理解大多數(shù)句子模式。
借助大型語言模型從句子中提取關系鏈,涵蓋問題中提到的實體及其與其他未識別實體的關系。與從知識庫中提取三元組提取類似,讓大型語言模型從預定義列表中選擇一個關系,以減少相同關系的不同表述。
以 MQuAKE-CF 數(shù)據(jù)集中的一個問題句子為例,
問題:
Eeyore 的創(chuàng)作者的孩子的國籍所在國家的首都是什么?
What is the capital of the country of citizenship of the child of the creator of Eeyore?
關系鏈
Eeyore->創(chuàng)作者->?x->孩子->?y->國籍->?z->首都->?m
Eeyore->creator->?x->child->?y->country of citizenship->?z->capital->?m
示例中的這個問題需要一個 4 跳的推理過程。
以“Eeyore”作為關注的已知實體,要得出最終答案,需要依次識別其創(chuàng)作者“?x”,接著是創(chuàng)作者的孩子“?y”,獲取孩子的國籍“?z”,最終檢索該國的首都“?m”。所有的關系,如“創(chuàng)作者”“孩子”“國籍”和“首都”,都從預定義的關系列表中選取。關系鏈囊括了得出答案所需的全部關鍵信息。
為了讓大型語言模型能夠提取關系鏈并以結(jié)構(gòu)化模板生成輸出,在提示中提供了若干關系鏈提取的示例用于模型的上下文學習。具體提示詞如下:
圖片
? 以上提示詞用于從知識庫中提取三元組
圖片
? 以上提示詞用于從問題中提取三元組
圖片
? 以上提示詞用于基于LLM的QA
3.3 將關系鏈轉(zhuǎn)換為正式查詢
一旦獲取關系鏈,接下來就要把已知實體和關系整合到正式的查詢模板中。
考慮以 RDF 格式展示知識圖譜并以 SPARQL 查詢,比如:
PREFIX ent: <http://www.kg/entity/>
PREFIX rel: <http://www.kg/relation/>
SELECT DISTINCT?id?label WHERE {
ent:E0 rel:R0?x.
?x rel:R1?y.
?y rel:R2?z.
?z rel:R3?id.
?id rdfs:label?label.
}LIMIT 1“ent”和“rel”分別作為實體和關系的前綴。
標識符“E0”在知識圖譜中唯一代表“Eeyore”,而“創(chuàng)作者”“孩子”“國籍”和“首都”的標識符分別記為“R0”“R1”“R2”和“R3”。
在識別出實體“?id”后,檢索其字符串標簽“?label”作為最終答案。
3.4 整合LLM-QA與KG-QA
3.4.1 LLM-QA:基于大型語言模型的問答
使用預訓練的 Contriever 模型從一系列編輯過的事實句子中檢索最相關的事實。然后,大型語言模型依據(jù)問題和這些相關事實生成答案。與 MeLLo 中的“拆分-回答-檢查”流程相比,在事實準確提供的情況下,這種基于大型語言模型的問答方式預計更簡便,并能得出更準確的結(jié)果。
Contriever是一個 Embedding模型,用于Dense Retrieval
Github地址:https://github.com/facebookresearch/contriever
然而,處理多跳問題,尤其是那些編輯的事實與中間跳有關的問題時,往往無法準確檢索到相關信息。
3.4.2 KG-QA:基于知識庫的問答
為了解決基于大型語言模型問答的難題,整合來自基于知識庫的問答的響應,以優(yōu)化大型語言模型的輸出。
當關系鏈和事實三元組準確推導出來后,基于知識庫的問答系統(tǒng)會提供正確答案。
然而,如果關系鏈提取有誤,知識圖譜中的搜索路徑可能失效,導致基于知識庫的問答系統(tǒng)無法產(chǎn)生輸出。在這種情況下,將大型語言模型的響應視作最終答案。
4. 效果評估
4.1 評估數(shù)據(jù)集
MQuAKE是一個聚焦于多跳問答的測試數(shù)據(jù)集,主要包括兩個數(shù)據(jù)集:MQuAKE-CF、MQuAKE-T。
? MQuAKE-CF:在 MQuAKE-CF 上的實驗是基于完整數(shù)據(jù)集的隨機抽樣子集進行的,總計包含 3000 個實例(2、3、4 跳問題各 1000 個實例),專為反事實編輯而設。每個問題都與一個或多個編輯相關,用于檢驗知識編輯方法處理反事實編輯的有效性。
? MQuAKE-T,專為時間知識的更新定制。由 1868 個實例構(gòu)成,每個實例都與一個現(xiàn)實世界的事實變化相關。其旨在評估知識編輯方法在運用當代事實數(shù)據(jù)更新過時信息方面的效能。
4.2 參數(shù)設置
具體而言,測試樣本被分組處理:
? MQuAKE-CF:每組樣本數(shù) n 取值于 {1, 100, 1000, 3000}
? MQuAKE-T:每組樣本數(shù) n 取值于 {1, 100, 500, 1868}
4.3 測試基準
? MEND:通過訓練一個超網(wǎng)絡,基于編輯的事實轉(zhuǎn)換原始微調(diào)梯度來生成權(quán)重更新。
? MEMIT:更新各層的前饋網(wǎng)絡以納入所有相關事實。
? MeLLo:采用基于內(nèi)存的方式進行多跳問答,將所有更新的事實存儲于外部內(nèi)存中。
4.4 主要結(jié)果
圖片
如上圖,GMeLLo 在 MQuAKE-CF 數(shù)據(jù)集和 MQuAKE-T 數(shù)據(jù)集上均顯著優(yōu)于所有現(xiàn)有方法,尤其在處理大量編輯時表現(xiàn)出色。
MeLLo 的性能下降主要歸因于隨著編輯數(shù)量的增加,它在識別相關事實方面遭遇挑戰(zhàn)。
當 k = 1 時,模型僅使用與輸入問題直接相關的事實作為上下文。然而,隨著 k 的增大,模型在從更廣泛的內(nèi)存中辨別相關事實時面臨困境。
GMeLLo 模型通過采用明確的符號圖表示來化解這一難題,增強了系統(tǒng)有效更新和檢索相關事實的能力。這一特性顯著提升了 GMeLLo 的可擴展性,使其非常適用于需要管理大量快速變化信息的實際問答應用。
使用兩個更大的模型,GPT-3.5-Turbo-Instruct 和 GPT-3.5-Turbo 在 MQuAKE-CF 數(shù)據(jù)集上對 MeLLo 和 GMeLLo 進行評估,k = 3000。MeLLo 和 GMeLLo 與 GPT-3.5-Turbo-Instruct 的準確率分別為 30.7%和 51.4%。
而GMeLLo在使用GPT-3.5-Turbo時準確率高達66.4%,但當與MeLLo結(jié)合使用時,該模型卻頻繁出錯。
這些發(fā)現(xiàn)表明,GMeLLo即使在擴展到更大型的語言模型時,依然能夠保持良好的性能。
5. 局限性
? 未借助更為精妙的提示技術(shù),例如思維鏈(CoT),來實現(xiàn)更精準的多跳推理。
? 未優(yōu)化預定義的關系列表,以提升其準確性。
? 可以進一步強化知識圖譜,以支持更復雜的問答,比如涉及歷史信息的查詢。
本文轉(zhuǎn)載自??大語言模型論文跟蹤??,作者:HuggingAGI

















