【高手问答第 306 期汇总】 聊聊 LLM 与知识图谱、图数据库的关系
自从今年初 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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
性能、安全和稳定,袋鼠云数据服务DataAPI为企业 API 保驾护航
通过 API 对外提供数据服务是大部分企业中比较常见的数据应用方式,对于 API 平台管理者、开发者和调用者来说,API 的调用性能、安全性和稳定性是在平台选型时最需要考虑的三个因素。 袋鼠云API开发及管理平台【数栈-数据服务 DataAPI】通过多种手段标准化管控服务,可完成从 API 创建、发布、申请/审批、调用的全生命周期管控,至今已经服务于300+客户。本文将为大家分享 DataAPI 是如何实现这三方面保障的。 DataAPI 的调用性能 在数据库和网络状况良好的情况下,DataAPI 目前的 API 调用性能在 5k QPS 时单次调用耗时最小可在 30-80ms 内。近期平台不仅从多个后端调用链路环节做了优化,也在产品层支持了一系列的功能,通过性能可观测、可配置等方式进行了全面的性能提升。 调用结果缓存 API 支持开启数据缓存,可选择用 HBase/Redis 存储缓存结果,在缓存失效策略上,DataAPI 采用 LFU(最不经常使用页置换算法),根据数据更新频率可自定义缓存清理周期与时间。 针对源数据更新频率不高,且存在多次相同输入参数重复查询的情况,开启缓存可缩短...
- 下一篇
GaussDB数据库SQL系列-层次递归查询
目录 一、前言 二、GuassDB数据库层次递归查询概念 三、GaussDB数据库层次递归查询实验示例 1、创建实验表 2、sys_connect_by_path(col, separator) 3、connect_by_root(col) 4、WITH RECURSIVE 四、递归查询的优缺点 1、优点 2、缺点 五、总结 一、前言 层次递归查询是一种常见的SQL查询方式,特别是在一些层次化的数据存储结构中经常用到。本文主要以GaussDB数据库为实验平台,为大家讲解其使用方法。 二、GuassDB数据库层次递归查询概念 层次化结构可以理解为树状数据结构,由节点构成。举个简单的例子,如下图所示,由子节点向上查询根节点,或者由根节点遍历所有子节点: 递归查询是指查询中需要多次调用自身的查询方式。在递归查询中,查询会反复地递归进入到一个子查询中,直到查询得到满足条件的结果或遍历完整个查询范围。递归查询在数据库领域中有着重要的应用。方便数据处理,简化开发代码。 在GaussDB数据库中,递归查询可以通过使用 “select…start with…connect by…prior…” 和“W...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程