1. 背景
应项目需求,本qiang~这两周全身心投入了进去。
项目是关于一个博物馆知识图谱,上层做KBQA应用。实现要求是将传统KBQA中的部分模块,如NLU、指代消解、实体对齐等任务,完全由LLM实现,本qiang~针对该任务还是灰常感兴趣的,遂开展了项目研发工作。
注意,此篇是纯纯的干货篇,除了源码没有提供外,整体核心组件均展示了出来。也是这两周工作的整体总结,欢迎大家查阅以及加关注(不强求哈~)
2. 整体框架
整体思想还是遵循RAG策略,从图谱召回候选背景知识,让LLM进行润色回答。
具体的流程如下:

(1) 用户提问:已发现的体重最大的肉食性恐龙是什么
(2) 对齐模块。
对齐模块的主要作用是针对问题与知识图谱中的实体、概念、关系、属性进行对齐。
其中候选概念、候选属性、候选关系在图谱中的数量是少量有限的,而实体的数量可多可少,因此候选概念、候选属性、候选关系可以在查询hugegraph后,直接拼到对齐prompt中(对齐的prompt预留了占位符),而实体则需要进行预筛选,筛选的方式是通过问题query与实体名进行语义相似度比较,通过语义相似度引擎实现,比如simbert, bge, gte等开源模型,预筛选后的少量实体可以拼接到对齐prompt。
对齐的prompt增加要求和few-shot示例,可以解决常见对齐问题,比如实体、概念、属性、关系存在缺字、多字、相似字等情况。
(3) 对齐模块经过LLM进行对齐,输出对齐结果。
本示例的对齐结果为:(属性-等于-体重)且(属性值-等于-最大); (属性-等于-食性)且(属性值-等于-肉食性);(概念-等于-恐龙)。
(4) 对齐校准模块。

文章详细描述了一项利用LLM实现的知识图谱KBQA项目,涉及对齐、解析、多轮问答等环节,展示了整体架构、优点与挑战,并分享了项目成果和优化策略。
最低0.47元/天 解锁文章
833

被折叠的 条评论
为什么被折叠?



