首页 > 其他分享 >了解GraphRAG

了解GraphRAG

时间:2024-07-30 23:39:22浏览次数:10  
标签:RAG 片段 GraphRAG 了解 LLM 文本 向量

了解GraphRAG

转载:从零实现大模型-GraphRAG,构建LLM中的关系数据库

传统RAG

  LLM预训练和微调一般都是基于公开的互联网数据,不可能包含公司内部私有数据,如果你问有关某公司的运营情况,直接基于模型参数生成的回答可能和胡说八道没什么两样。
RAG(Retrieval-Augmented Generation,检索增强生成)的思想就是将私有数据作为参考信息传递给LLM。这些私有数据除了作为一种补充信息,也可以作为一种限制,能避免LLM产生幻觉。

  参考信息一般以文本、图片等非结构化形式存在。

  RAG的流程是:

image

  1. 首先要将文本划分成片段,然后将片段转换成向量存储到向量数据库中备用,这个向量就是这段文本语义信息的数字表示。
  2. 用户查询转换成向量,并与所有文本片段向量进行相似度计算,取出top k个片段。
  3. 将用户查询和k个文本片段组织成特定prompt格式输入到LLM中。

GraphRAG

  但传统的RAG仍有一些限制。

  例如,基于某个公司的运营数据搭建RAG,由于LLM上下文大小的限制,划分的文本片段不可能太大,所以每个文本片段不可能包含太多信息。

  如果你问某个员工去年的销售业绩,基于RAG,LLM很可能会给出准确回答,因为某个文本片段很可能包含了某个员工的年终总结信息。但如果你问该员工所在团队去年的销售情况呢?就算某个文本片段包含了该团队的销售数据,LLM也很难通过该员工找到团队的其它成员。

  微软最近提出的GraphRAG(Graph-based Retrieval Augmented Generation) 就是解决这个问题。

  GraphRAG就是将图和传统的RAG结合了起来

构造知识图谱

  图是由节点和边组成的,节点可以表示各种实体,边表示实体之间的关系。

  GraphRAG的核心就是构造知识图谱,可以通过GPT4或者使用像llamaindex(KnowledgeGraphIndex)这样的库构造知识图谱。

image

  将公司运营文档构造成知识图谱:

  1. 识别出文档中包含的实体以及实体之间的关系(员工,同事)
  2. 将实体进行聚类(同组同事)
  3. 对每个聚类进行总结(销售情况)
  4. 将实体进行向量化,转换到图向量空间
  5. 提取实体对应的原始文本,并转换成向量

查询

  当用户提问时,首先在知识图谱中找到与用户提问语义相关的实体,同时找到与实体相关的原始文本,最后将这些信息组织成特定prompt格式输入给LLM

image

标签:RAG,片段,GraphRAG,了解,LLM,文本,向量
From: https://www.cnblogs.com/pam-sh/p/18333591

相关文章

  • 心理窍门大公开:10个瞬间了解自身的必备测验
    常用的自陈量表式测验《卡特尔16种人格因素量表》简称16PF,是美国伊利诺州立大学人格及能力测验研究所卡特尔教授(R.B.Cattell)经过几十年的系统观察和科学实验,以及用因素分析统计法慎重确定和编制而成的一种精确的测验。这一测验能以约四十五分钟的时间测量出十六种主要人......
  • klist.exe 是一个 Windows 系统命令行工具,用于管理和显示用户登录到当前系统上的 Kerb
    klist|MicrosoftLearnklist.exe是一个Windows系统命令行工具,用于管理和显示用户登录到当前系统上的Kerberos令牌信息。它通常用于以下几个方面:显示当前的Kerberos令牌信息:当运行 klist 命令时,它会列出当前用户的Kerberos令牌(Ticket-GrantingTicket,TGT)及......
  • graphrag api调用
    """参考:https://microsoft.github.io/graphrag/posts/get_started/1.初始化家目录:python-mgraphrag.index--init--root./ragtest2.初始化索引:python-mgraphrag.index--root./ragtest脚本需要放置在ragtest目录下运行"""importosimportrefromp......
  • 了解Web标准,HTML 语法规范,使用 HBuilder X 构建文档骨架,HBuilder X 生成骨架标签新增
    Web标准是由W3C组织和其他标准化组织制定的一系列标准的集合。W3C(万维网联盟)是国际最著名的标准化组织。遵循Web标准可以让不同的开发人员写出的页面更标准、更统一外,还有以下优点:1.让Web的发展前景更广阔。2.内容能被更广泛的设备访问。3.更容易被搜寻引擎搜索。......
  • [笔记]Hadoop了解
    Hadoop的正确发音是"哈杜普"(Huh-DOP)Hadoop是一个开源的分布式存储和计算框架,具有以下优势和劣势: 优势:可扩展性:Hadoop能够处理PB级别的数据,通过增加更多的节点来扩展系统容量,满足不断增长的数据处理需求 1。高容错性:采用分布式存储技术,数据自动复制到多个节点上,即使部分......
  • 科普贴:什么是大模型?快速了解大模型基本概念
    在人工智能的世界里,大模型就像超级大脑一样,能够处理和理解大量的信息。你可能听说过ChatGPT,它就是大模型的一个典型代表。那么,什么是大模型呢?让我们一起来探索这个神奇的领域。什么是大模型?想象一下,如果你的大脑能够记住整个图书馆的所有书籍,并且能够理解每本书的内容,那么你......
  • 如何快速了解亚马逊跨境电商基础知识?
    新手应该了解哪些亚马逊相关基础知识店铺相关:关于注册店铺主要分为招商经理链接注册和个人自注册的形式。1.自注册通过亚马逊各个国家官网右下方点击“SellonAmazon”选择·“Startselling”,按照要求填写好所需要的资料进行注册,就是通过亚马逊境外渠道进行注册,不经过中......
  • 适合证券公司的跨网传输解决方案,了解一下!
    证券公司由于其业务特性,涉及大量的敏感财务数据和交易信息,因此通常会在内部实施网络隔离措施。目的是为了保护数据免受未授权访问和网络攻击,确保数据的安全性和保密性,因此急需寻找安全可靠的跨网传输解决方案,实现不同网间数据的安全传输。以下是证券公司可能会采取的网络隔离方......
  • 小白快速了解的Java知识!
    Java初学习1.Java的诞生与崛起1972年,c语言诞生,其高效率,运行速度快让大批程序员为之倾倒,但是c语言的指针及其内存管理需要程序员自行操作,浪费了大量的时间以及精力,再加上c语言需要尽可能的使用c函数库,并没有像宣传的那样可以轻松的跨平台,导致部分程序员对于其暴政感到不满。1982......
  • 【小知识】随机的世界——一文带你了解随机数
    【小知识】随机的世界——一文带你了解随机数1.引入2.rand函数3.srand函数1.引入    在运行程序时,我们时常需要随机数据。比如游戏中的抽卡。这个时候我们就需要随机数了。2.rand函数在实现取一个随机数时,我们通常需要用到rand函数。取一个a~b之间的随机数示例......