OneGraph
利用大模型构建LLM需要的开放知识图谱
OneGraph V1
版本
2024.10.24
发布时间
三元组
实体
关系
三元组准确率
大模型生成比例
简介
近年来,大模型带来了从符号表示到参数表示的知识转变,通过深度学习模型中的参数编码知识似乎也能奏效。与符号表示相比,参数化表示的知识可以灵活地应用于各种任务,但人类却难以轻易解读。人们判断大语言模型(LLM)是否掌握某种知识的一种方法是通过提示,如果解码出的文本与知识相对应,我们可以假设大模型拥有该知识,反之则不然。然而,现有研究证明,LLM的输出受到提示的显著影响,如果LLM记忆的知识不清晰,就很难确保模型的行为始终与其拥有的知识一致。有时,LLM会产生语法正确但事实错误的答案,这被称为“幻觉”。因此,以类似知识图谱的方式编码可靠知识并以人类友好的方式呈现的外部资源仍然是必要的,并且将这类符号表示的知识与大语言模型结合也是未来的趋势。与传统知识图谱不同,为了构建适用于LLM并提高其可信度的知识图谱LLMKG,需要以下三个特点:
高准确性
LLMKG中存储的知识应尽可能准确。如果LLMKG中错误的知识被用来增强LLM,可能会降低LLM的性能。至少,LLMKG中存储的知识的准确性应高于LLM中体现的知识的准确性。
高覆盖率
LLMKG中的知识覆盖率应尽可能高。这确保了LLMKG在不同领域的应用中对LLM是有帮助的。因此,它不是一个为了提高LLM在特定领域能力而构建的知识图谱,而是为了提高跨领域的整体能力。
成本低
成本主要包括财务成本和时间成本。每个三元组的低财务成本确保构建大型LLMKG是可负担的。构建的低时间成本确保在必要时可以迅速构建LLMKG。
OneGraph包含了第一个满足特性的LLMKG,构建过程充分利用了大模型能力,同时,OneGraph提供了一套完整的大语言模型知识增强的通用框架,探索了将知识图谱与大语言模型融合的通用方法。
数据设计
OneGraph数据包括4个层级,自顶向下数据量逐步提升,包括:
● cnSchema: 中文schema参考标准;
● 概念图:用于建模概念知识之间的关系;
● 实体图:用于建模不同领域中实体之间的复杂关系;
● 文本图:用于建模文档中不同章节、段落、句子等之间的复杂关系。
这四类图会互相连接,构成完整的OneGraph。
构建方式
与已有的知识图谱构建方式不同,OneGraph没有采用人工或者自动抽取的构建方法,而是充分利用了具有参数化知识的LLM进行构建,LLM的利用方式如下:
OneGraph是以多个知识图谱作为初始数据源构建的,数据源包括OpenKG中的高质量知识图谱、WordNet、ConceptNet、Microsoft Concept Net、维基数据等,多数据源整合后作为冷启动数据集。
我们利用LLM生成schema。具体的,我们让大型语言模型(LLM)根据当前已有的知识生成schema。LLM的输出随后被解析为两个关系的三个元组,即“子类”和“实例”。如“疾病 – 皮肤病 – 化脓性皮肤病 – 脓疮”将被解析为3个三元组:(脓疮,实例,化脓性皮肤病),(化脓性皮肤病,子类,皮肤病),以及(皮肤病,子类,疾病)。在梳理出LLM输出中涉及的所有“子类”关系的三元组后,我们删除环结构中的所有三元组,并让LLM根据环校正提示重新生成相关类别的层次结构。
我们让大型语言模型(LLM)完成三元组补全。对于给定的(主体,关系)对,我们让LLM根据完成提示生成可能的对象实体。
我们通过两个步骤完成低质量数据删除
- 预训练语言模型的初步筛选:这一步骤是通过微调基于预训练语言模型的二分类器,以经济高效的方式快速过滤掉低质量数据。我们基于MacBERT模型和KG-BERT,构建了分类模型,最后“错误样本”召回率为93.7%。
- LLM交叉验证:我们在初步筛选后的数据上进行了交叉验证,部署了三个不同的大型语言模型(LLM),即Qwen-72B、Yi-34b和aquila2-34B。对于每个给定的事实(主体,关系,对象),我们通过两种验证提示(Validation Prompts)让LLM评估其是否正确,最后取投票多的作为最终评估结果。
以现有知识图谱为基础,进行数据更正,具体包括如下两个方法:
- 从三元组的角度出发,针对已经被评估为错误的三元组(h,r,t),我们让大型语言模型(LLM)首先判断关系r是否合理,r合理的,直接生成/补全尾实体。对于关系r不合理的,针对头尾实体生成/补全正确的关系,这里r可能是“无任何关系”。
- 从实体的角度出发,首先对实体进行分类,简化成找2跳邻居中关系重合度较多的默认是一个类。对于同类型的实体,统计这类实体所有存在的关系(set_candi)以及关系出现的频率。定义set_candi中出现频率大于50%的关系是这类实体应该有的关系(set_r)。然后让大模型补充这类实体在set_r中缺失的关系。
我们让大型语言模型(LLM)根据翻译提示(translation promps)将一些非中文的三元组翻译成中文。
服务方式
目前OneGraph提供两种服务方式:
- 检索(OneGraph-R):根据外部输入文本,通过文本相似度检索最相似的n个实体,并抽取实体的k条子图,返回检索的子图。
- 检索生成(OneGraph-R-G): 根据外部输入文本,首先通过OneGraph-R检索子图,然后根据检索的子图和输入文本,用LLM生成相关的三元组进行子图补充。
目前OneGraph提供的子图输入LLM的方式包括5种:triples、graph summary、node sequence、html code、syntax tree,具体形式参见综述。
实验验证
增强LLM
我们在评测数据集C-Eval上进行了中文问答测试,评测问题为单选题4选1,包含13948个多项选择题,涵盖52个不同学科,难度从初一、大学、到职业则个考试共4个难度级别。实验中我们选了选择3种大小不同的LLM模型:chatglm2-6b/ qwen2.5-14b/ 200B+ deepseek 。实验结果如下:
graph format | Avg | Avg(hard) | STEM | Social Science | Humanities | Others | |
chatglm2-6b | - | 52.78 | 40.39 | 47.36 | 63.46 | 58.09 | 47.6 |
+OneGraph-R | triples | 52.61 | 42.9 | 47.02 | 63.52 | 57.56 | 47.91 |
graph summary | 47.96 | 36.6 | 43.31 | 54.1 | 51.49 | 47.3 | |
node sequence | 53.11 | 44.37 | 48.5 | 63.38 | 56.35 | 48.89 | |
html code | 46.63 | 31.35 | 40.58 | 57.15 | 48.66 | 46.04 | |
syntax tree | 47.43 | 35.08 | 41.92 | 57.49 | 48.38 | 47.36 | |
+OneGraph-R-G | triples | 55.53 | 43.32 | 51.19 | 62.48 | 61.88 | 50.75 |
graph summary | 57.67 | 46.42 | 52.82 | 65.18 | 62.14 | 55.21 | |
node sequence | 55.02 | 46.49 | 50.41 | 64.35 | 60.59 | 49.37 | |
html code | 45.54 | 33.35 | 40.68 | 52.53 | 48.41 | 45.16 | |
syntax tree | 50.12 | 39.61 | 43.82 | 63.76 | 51.81 | 47.5 | |
qwen2.5-14b | - | 80.44 | 68.13 | 76.75 | 88.88 | 80.53 | 79.41 |
+OneGraph-R | triples | 81.82 | 71.02 | 78.12 | 89.48 | 81.75 | 81.65 |
graph summary | 81.89 | 72.76 | 79.02 | 89.65 | 80.63 | 81.31 | |
node sequence | 81.66 | 70.41 | 77.77 | 90.01 | 81.41 | 81.4 | |
html code | 80.71 | 68.4 | 77.85 | 87.8 | 82.14 | 78.02 | |
syntax tree | 81.06 | 71.11 | 78.07 | 89.18 | 81.13 | 79.05 | |
+OneGraph-R-G | triples | 81.41 | 68.76 | 77.66 | 89.29 | 83.12 | 79.37 |
graph summary | 80.85 | 64.67 | 75.44 | 89.26 | 82.48 | 81.4 | |
node sequence | 82.86 | 71.06 | 79.23 | 91.06 | 83.35 | 81.5 | |
html code | 79.71 | 65.41 | 76.11 | 89.11 | 79.92 | 77.5 | |
syntax tree | 80.37 | 65.66 | 77.27 | 88.74 | 80.53 | 78.24 | |
deepseek | - | 81.73 | 69.39 | 79.09 | 87.41 | 83.51 | 79.58 |
+OneGraph-R | triples | 81.31 | 69.67 | 78.31 | 87.04 | 84.77 | 78.1 |
graph summary | 80.78 | 68.54 | 77.21 | 88.91 | 82.71 | 77.97 | |
node sequence | 81 | 67.85 | 77.2 | 89.74 | 83.19 | 77.78 | |
html code | 80.71 | 68.4 | 77.85 | 87.8 | 82.14 | 78.02 | |
syntax tree | 80.16 | 69.22 | 77.4 | 87.92 | 82.14 | 76.13 | |
+OneGraph-R-G | triples | 81.58 | 68.58 | 77.81 | 88.95 | 84.46 | 78.83 |
graph summary | 82.29 | 69.76 | 78.94 | 88.84 | 84.96 | 79.76 | |
node sequence | 81.88 | 70.45 | 78.72 | 88.66 | 84.09 | 79.25 | |
html code | 80.87 | 65.52 | 76.25 | 88.41 | 83.94 | 79.36 | |
syntax tree | 80.32 | 70.7 | 77.99 | 87.58 | 82.14 | 76.15 |
实验结果表明,接入OneGraph服务后,3种模型在测试结果均有提升,规模较小的模型提升更明显,较难的任务效果提升更明显。
增强GraphRAG
我们基于最新的GraphRAG方法HippoRAG进行了实验,实验数据集包含MuSiQUe, 2Wiki, HotpotQA。HippoRAG在检索过程中有根据抽取方法构建的知识图谱,因此OneGraph服务接入的方式是直接将服务的子图加入已有的知识图谱中。实验结果如下:
MuSiQue | 2Wiki | HotpotQA | ||||
R@2 | R@5 | R@2 | R@5 | R@2 | R@5 | |
HippoRAG (Contriever) | 40.28 | 50.62 | 70.2 | 86.92 | 57.95 | 74.8 |
+OneGraph-R | 40.33 | 50.62 | 70.25 | 87.12 | 57.95 | 74.75 |
+OneGraph-R-G | 40.65 | 50.73 | 70.7 | 87.52 | 58.3 | 74.55 |
HippoRAG (ColBERTv2) | 40.22 | 50.09 | 70.4 | 88.9 | 60.65 | 77.6 |
+OneGraph-R | 40.54 | 52.01 | 70.45 | 89.22 | 60.35 | 77.45 |
+OneGraph-R-G | - | - | - | - | - | - |
实验结果表明OneGraph服务也可以有效增强GraphRAG任务。
致谢
OneGraph项目由OpenKG SIGData数据兴趣小组发起,感谢SIGData的所有成员。感谢在OneGraph项目实施期间提供大力支持的来自浙江大学-蚂蚁集团知识引擎联合实验室的老师和同学。
[OneGraph还在持续不断建设中,未来OneGraph会推出更新的数据集、更多样的实验测试结果,相关信息会第一时间在本网站公布,欢迎大家关注。]
SIGData成员
张文
浙江大学
刘志臻
蚂蚁集团
梁磊
蚂蚁集团
陈矫彦
曼彻斯特大学
鄂海红
北京邮电大学
耿玉霞
杭州电子科技大学
伯仲璞
蚂蚁集团
朱渝珊
浙江大学
徐雅静
浙江大学
孟佳卫
浙江大学
陈少凯
浙江大学
兰雅榕
浙江大学