自从今年初 ChatGPT 横空出世并风靡全球之后,我们也迎来了一个并不陌生的名词:LLM,即大语言模型。随后,众多与 LLM 相关的项目如火如荼,这项新技术点燃了人们对科技未来的无限想象。
半年过去了,人们开始冷静地审视 LLM,思考它到底能为我们带来怎样的实际效益。与此同时,在过去的半年里,图数据库 NebulaGraph 研发人员也在探索这个问题,他们结合图技术和知识图谱,进行了自己的研究和尝试。
9 月 6 日 – 9 月 12 日第 306 期高手问答我们请来了 NebulaGraph 的古思为、程训焘老师与大家一起讨论 LLM 到底能为广大图技术从业者带来什么。
* 古思为:NebulaGraph 布道师,他是首个在 LlamaIndex 社区提出 Graph + RAG 概念的人;
* 程训焘:NebulaGraph 核心开发者,从事图数据库的开发工作,目前致力于更好地将图数据库与 LLM 结合。
以下为部分问答汇总,梳理出来方便大家查看,希望对大家有所帮助。
问:老师你好,现在LLM很火,我理解的LLM他其实是基于已有的知识、数据,汇聚起来可以给你一些非创造性的答案、建议,例如你无法让他去发现、创造未知的科学,不知道我的理解对不对。LLM其实未来可以代替一些重复性的人工客服工作以及提高一些工作效率,程序员可能不能完全代替,要是可以自己写代码、调试代码、运行代码那就真像黑客帝国里面的一样了 😁另外图数据库我之前接触过neo4j,NebulaGraph相比而言有哪些优缺点呢?
答:写代码的分析、调试借助 copilot 和 cursor 这样的工具,已经可以做到比想象中更智能、流畅了,这有一个例子是 @xtcyclist 提了一个 NebulaGraph 内核改动,我用这些辅助工具,几分钟就找到在 NebulaGraph 哪里修改,怎么做修改的的例子,生成测试代码 https://vimeo.com/858182792 1/n。
关于 NebulaGraph neo4j,来说,NebulaGraph 可以说有一些后发优势。 后者是我们创始团队在多年的图存储系统积累之上,用新的存储工程方法和实践,面向分布式、超大规模数据设计的。所以对于大图,高可用,高并发的场景,或者说业务上图在膨胀的场景,用 NebulaGraph 就自然 scale 就好了。 其次 NebulaGraph 是开源的(apache 2.0)。
问:大语言模型LLM是否可以协助提取分析数据关键信息生成图数据吗?怎么落地?
答:大语言模型LLM是否可以协助提取分析数据关键信息生成图数据,利用 LLM 做提取,KG的构建,这里有 demo https://www.siwei.io/demos/text2cypher/ ,https://www.siwei.io/demo-dumps/kg-llm/KG_Building.ipynb ,更进一步,我们还能结合 LLM + NLP 模型一起做这个事儿,比如 rebel
问:图数据库和大数据框架计算引擎的结合,效率或者图算法的优势互补怎么更好发挥?
答:图库的优势是实时性,和图查询、少量计算的灵活表达,劣势在于它不擅长涉及到全图或者部分全图数据量的运算。图计算平台相反,适合全图量的访问以及迭代、计算任务,但是默认来说图计算平台数据的实时性是一个短板(常常是从数仓拉数据)。结合的例子就是计算平台作为计算层,存储层按需选择图库。像 NebulaGraph 这样的存算分离架构,图计算平台就算是集群内部的异构计算、查询层,结合起来就非常顺滑了。
比如用 NebulaGraph 企业版本的 explorer + nebulagraph analytics,我们可以用 API 或者 浏览器里的所见即所得界面任意规划图上的复杂计算任务 pipeline,它在底层,我们可以按需选择基于图库的查询,亦或者绕过查询层直接从数据库底层扫全图进行图计算任务。
另外一个例子就是,GNN 在全图上训练得到 inductive 的模型,然后在线上业务中,实时从 NebulaGraph 抽取相关新插入点的子图(比如3000个点),然后作为 input 给模型去推理得到预测结果,也是典型的 GNN + 图库的结合案例,例子项目在这里 https://github.com/wey-gu/NebulaGraph-Fraud-Detection-GNN/
问:老师们好,请问大语言模型LLM和知识图谱的相关性或者相似性是怎样的呢?感觉二者有很多相似的地方,如:知识图谱旨在捕捉世界的语义关系,并提供一种有效的方式来查询和推理关于实体之间关系的知识,而大语言模型很大程度上也是一种语义关系、语义理解的作用。二者的共同点和最大的区别点又在什么地方呢?
答:知识图谱承载了语义,但它不是捕捉语义关系,它捕捉的是各种概念及其相互关系,也就是知识和知识之间的关系。知识和语言、语义,还是有区别,语言是知识的一种载体。 大语言模型是语言模型,它本身是不能胜任对知识以及知识之间的关系进行管理的。所以才会出现在 LLM 的 stack 中使用向量数据库、图数据库来管理领域知识的需求。
问:老师好,在图数据库中,关系、节点、属性等数据体现,应用层获取数据时主要通过cql语句获取,那么在和LLM大模型结合过程中,请问该如何结合呢?比如针对搜索场景,将用户的输入通过NLP转化为CQL语句的话,这个范围好像太广了(用户输入千奇百怪),无法聚焦,有什么好的处理经验吗?
答:简单来说两个思路,text2cypher、graph rag。 前者是把问题直接变为 cypher,后者是把问题中的关键信息抽出来,在 KG 里查子图,然后构造上下文让 LLM 生成答案,这里指的是通过一些方法(比如 chain of thoughts)已经把问题 breakdown 了之后的小问题。具体实现方式可以看一下文章 www.siwei.io 。
问:老师好,大语言模型LLM的优势是什么
答:优势在于它是一个具有相对足够通识知识的一个感知层,具有通过给定的足够上下文解决领域问题的能力(上下文学习、搜索增强),然而给定足够、相关、准确地上下文有时候是难的,这时候知识图谱就能帮助啦。
本期高手问答地址:https://www.oschina.net/question/4700705_2330954?sort=default&p=2
高手问答栏目地址:https://www.oschina.net/question/topic/masteronline