微软GraphRAG,开启智能检索新篇章

news2024/9/23 9:23:44

©作者|YXFFF

来源|神州问学

 1. 引言

检索增强生成(RAG)是一种根据用户的查询语句搜索信息,并以搜索结果为 AI 参考从而生成回答。这项技术是多数基于 LLM 工具的重要组成部分,而多数的 RAG 都采用向量相似性作为搜索的技术。在文档中复杂信息的分析时,GraphRAG 利用 LLM 生成的知识图谱大幅提升了问答的性能。

GraphRAG是一种基于图的检索增强生成方法,旨在通过将知识图谱或图形数据库与大型语言模型(LLMs)集成来提升传统RAG方法的性能。其开发理念主要在于利用图形数据库的结构化特性,将数据组织为节点和关系,从而更高效、准确地检索相关信息,并为生成响应提供更好的支持。GraphRAG的开发团队来自微软的研究部门,2024年7月2日开源后,在GitHub上迅速获得了大量关注,截至2024年7月17日,项目已经收获了11.3k颗星标。

2.向量数据库的基本原理与应用

向量数据库是一种创新性的数据库技术,以向量为基本数据类型,旨在处理和存储大规模向量数据。其核心原理是将数据表示为高维数值向量,并通过向量空间理论进行存储和查询。具体来说,向量数据库的工作原理包括以下几个方面:

●数据向量化:这是向量数据库工作的起点,涉及将非结构化数据(如文本、图像、音频)通过机器学习或深度学习模型转化为高维数值向量的过程。

● 向量索引:向量索引是将高维向量数据映射到低维空间的一种数据结构,它能够在保证查询效率的同时,大幅减少存储空间的占用。

●相似性搜索算法:向量数据库使用专门的相似性测量算法(如余弦相似度、欧氏距离等)来计算两个向量之间的相似度,并通过近似最近邻搜索(ANN)等算法快速找到最相似的向量。

随着人工智能和NLP领域的快速发展,嵌入向量作为紧凑的中间表示形式在多个应用中发挥重要作用。例如,Faiss库作为一种高效的向量数据库和搜索工具,为向量存储和搜索提供了强大支持,推动了NLP大模型的发展。此外,向量数据库在2024年被广泛应用于人脸识别、推荐系统、图片搜索、视频指纹、语音处理、自然语言处理、文件搜索等领域,这些应用场景显示了其在处理大规模非结构化数据方面的优势。

大型预训练语言模型已经设立了新的基准,但在知识密集型任务中,传统的大型语言模型和向量数据库知识检索方式逐渐显现出局限性。面对这一挑战,检索增强生成模型(RAG)为语言生成和信息检索带来了变革,超越了传统的大语言模型和向量数据库知识检索方式。

图片

向量数据库的核心在于使用向量表示数据,并利用向量之间的相似度来进行高效查询。在NLP任务中,文本被转换为高维空间的向量,每个维度都代表了一个特定的特征或语义信息。这些大模型能够从海量文本数据中学习语义和上下文信息,显著提高了NLP系统的性能和泛化能力。同时,随着图像、视频、无人驾驶等应用场景的不断发展,数据体量已经从千万级逐步增长到百亿级别,对向量数据库离线导入、批量处理的能力提出了更高的要求。

3.GraphRAG技术概述

GraphRAG(基于图的检索增强生成)技术是在传统RAG(检索增强生成)方法的基础上进一步发展而来,旨在通过知识图谱和图机器学习技术来提升大语言模型(LLM)的能力。它利用从大型语言模型中提取的知识图谱,将非结构化的文本数据重新组织成结构化的知识图谱,其中节点表示实体(如人物、地点、概念),边表示实体之间的关系。

图片

GraphRAG的工作流程可以分为以下几个主要步骤:

●  知识图谱构建:从原始文本中提取知识图谱,这一步通常使用大型语言模型(如GPT-4 Turbo)生成的知识图谱。

● 信息提取与连接:利用信息提取技术推断和生成分块数据之间的连接,并使用知识索引来存储和检索这些数据。

● 图嵌入与响应推理:利用图神经网络(GNN)结果中的图嵌入,通过用户查询响应推理来增强文本嵌入。

● 生成图查询:使用生成模型(如Cypher生成模型)生成图查询,从而实现更准确的语义聚合和层次化分析

GraphRAG的创新之处在于它能够“连点成线”,即在回答问题时,它能跨越分散的信息片段,通过共享属性将它们串联起来,提供合成的新见解。此外,GraphRAG还优化了全局搜索和局部搜索两个应用场景,结合实体识别、实体关系抽取和社区聚类等算法,尽管存在误差传播的问题,但整体效果优于传统的朴素RAG方法。

4.GraphRAG与向量数据库的结合

4.1. 数据表示与存储

GraphRAG通过图结构的方式表示数据,这种结构由节点(Vertex)和边(Edge)组成,每个节点可以代表一个实体或事件,而边则表示节点之间的关系。这种表示方式使得GraphRAG能够有效地组织和管理复杂的数据关系,并且能够利用知识图谱技术增强搜索信息的深度和上下文。

另一方面,向量数据库则通过向量的形式存储这些数据。向量是由多个数值或特征组成的一维数组,用于表示实体的属性信息。向量数据库擅长处理非结构化数据,如图像和音频等,通过提供k-NN索引等专门索引来提供向量相似性搜索。这种处理能力使得向量数据库在处理大规模高维数据时具有优势。

4.2.检索与生成

在GraphRAG中,向量数据库用于快速检索出与查询相关的图节点或向量。通过Embedding模型服务实现文档的向量编码并写入向量数据库,在需要时使用相似查询来检索相关向量。然后,通过生成模型对这些信息进行整合和生成最终的回答。这种方法结合了图数据库的形态和向量数据库的高维向量处理能力,从而提高了检索的准确性和效率。

4.3. 多模态数据处理

GraphRAG与向量数据库的结合还可以支持多模态数据的处理,即同时处理文本、图像等多种类型的数据。通过将结构化的图数据和非结构化的文本向量搜索结合起来,能够充分利用两者的优势,实现更全面和精准的搜索结果。例如,在图像生成模型中,多模态信息融合技术可以帮助更好地处理和生成复杂的信息。

GraphRAG与向量数据库的结合不仅在数据表示与存储上提供了高效的解决方案,还在检索与生成以及多模态数据处理上展现了强大的能力,从而为用户提供更智能、更精准的服务。

  5. 案例分析

智能问答系统

GraphRAG与向量数据库的结合在多模态数据上的应用,将GraphRAG技术和向量数据库结合取得了惊人的效果。通过构建结构化的领域知识库,并引入向量数据库加速语义检索,该方案不仅使问题解决时间大幅缩短,还极大地提升了答案的相关性和准确性。

构建知识图谱只是智能问答的第一步,要实现实时、高效的信息检索,还必须引入向量数据库技术。这是 LinkedIn 方案的另一大亮点。

传统的关系型数据库难以应对海量节点间复杂的语义匹配,而向量数据库则是专为相似性搜索而生。LinkedIn 团队利用预训练语言模型,如 BERT、E5 等,将知识图谱中的节点文本映射为高维语义向量,然后将这些向量存入专门优化的向量数据库。

当用户提问时,系统同样将其转化为语义向量,并在数据库中进行高速匹配运算,快速找出与之语义最相似的知识节点。由于语义向量能够充分捕获文本的语义信息,即便问题表述存在差异,也能轻松找到最相关的答案线索。    

6.未来展望

GraphRAG与向量数据库的结合将进一步拓展其应用范围。未来,这种结合方式有望在更多垂直领域中发挥重要作用。

智能推荐系统:GraphRAG结合向量数据库能够提升特定术语的理解度,从而使得大型语言模型(LLM)能够更准确地把握专业领域的知识,进而应用于智能推荐系统等场景。例如,在社交媒体和推荐系统中,GraphRAG可以通过结构化的图数据和非结构化的文本向量搜索,同时享受两者的优势,提高推荐的准确性和用户体验。

增强检索与生成能力:GraphRAG利用图数据库的结构化特性,将数据组织为节点和关系,以更高效准确地检索相关信息,并为生成响应提供更好的上下文信息。这种方法不仅提高了检索的准确性,还增强了生成任务的效果。

优化与演进方向:未来GraphRAG可能会进一步优化其设计模式,探索如何更好地兼容向量数据库和图数据库,以及如何在实际应用中提升性能和效率。此外,通过构建知识图谱时生成图社区摘要,解决总结性查询的问题,可以生成更高质量的上下文。

广泛应用领域:GraphRAG结合向量数据库的技术方案已经在多个垂直领域取得了显著效果,如欺诈检测、推荐系统等。随着技术的不断进步,预计未来这种结合方式将在更多垂直领域中发挥重要作用。

7.结语

我们可以看到GraphRAG与向量数据库结合的强大优势。这种技术不仅能够有效地提取和利用图像数据中的关键信息,还能够通过知识图谱的辅助,为用户提供更加精准和高效的搜索结果。随着技术的不断发展和应用,相信GraphRAG及相关技术在未来的数据处理和检索领域将会发挥更大的作用。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【过题记录】 8.2 hddx

飞行棋 关于这一题 我在考场上手莫了n2和n3的情况 发现一点规律,大力猜想蒙了一个结论 结果蒙对了… 关于正确做法,发现零号点和其他几个点是不一样的。 因为对于0而言,他没有赠送的情况(只要摇到n就直接胜利) 因此0和其他点要分开讨论 对于…

1.大语言模型如何从专才走向通才2.GPT4的核心是可以写并执行代码,还可以接受文件读取并应用于代码中(比如中文字资料包),完全是个工程师了

1.大语言模型如何从专才(机器翻译)走向通才2.GPT4的核心是可以写并执行代码,还可以接受文件读取并应用于代码中(比如中文字资料包),完全是个工程师了 总纲:大语言模型就是做文字接龙游戏! 大模型为了得到…

Linux 应急响应靶场练习 1

靶场在知攻善防实验室公众号中可以获取 前景需要:小王急匆匆地找到小张,小王说"李哥,我dev服务器被黑了",快救救我!! 挑战内容: (1)黑客的IP地址 (2&#xff0…

【香橙派系列教程】(六)嵌入式SQLite数据库

【六】嵌入式SQLite数据库 文章目录 【六】嵌入式SQLite数据库1.简介2.SQLite数据库安装3.SQLite命令用法1.创建数据库2.创建和查看表格3.插入查看数据(记录)4.删除更改数据(记录) 4.SQLite编程操作1.打开/创建数据库的C接口2.创建…

C# Unity 面向对象补全计划 之 接口

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正 本系列旨在通过补全学习之后,给出任意类图都能实现并做到逻辑上严丝合缝 1.接口 在 C# 中,接口(interface)是一种定义…

高效PPT制作,一键完成——四大AIPPT工具推荐

在现代社会,PPT已经成为职场人士必备的技能之一。如今,随着人工智能技术的发展,AI制作PPT的工具应运而生。今天,就为大家推荐四款实用的AIPPT工具,让你轻松提升工作效率。 一、笔灵AIPPT 链接:https://ib…

Deep Updated Subspace Networks for Few-Shot RSSC

这篇文章介绍了子空间的概念,然后将query set的特征和预测概率与Support set的特征混合到一起来减少遥感场景图像背景复杂的影响。我觉得主要的创新点还是在特征混合这一块,下图是总体框架图: 特征混合的公式为: 其中的表示第C个类…

什么是图像噪声

" 声明:此文档中的大部分内容来源于网络,经校对和整理后分享给大家,仅供学习参考使用。" 1、什么是图像噪声 维基百科的定义:图像噪声(image noise)是图像中一种亮度或颜色信息的随机变化(被拍摄…

Error “[object Object]“ when using LangChain‘s AzureChatOpenAI in Node.js

题意:在Node.js中使用LangChain库的AzureChatOpenAI功能时遇到错误“Error [object Object]” 问题背景: Im attempting to use LangChains AzureChatOpenAI with the gpt-35-turbo-16k model in a Node.js application to create an OpenAI Function A…

c++ - 模拟实现set、map

文章目录 前言一、set模拟实现二、map模拟实现 前言 在C标准库中,std::set 和 std::map都是非常常用的容器,它们提供了基于键值对的存储和快速查找能力。然而,关于它们的底层实现,C标准并没有强制规定具体的数据结构,只…

【数据结构】——链式二叉树

目录 一、链式二叉树的定义结构 二、链式二叉树的遍历 2.1前序遍历 2.2中序遍历 2.3后序遍历 2.4层序遍历 三、链式二叉树的基本功能函数 3.1结点个数 3.2叶子结点个数 3.3二叉树第k层结点个数 3.4查找值为x的结点 3.5二叉树的销毁 四、基础OJ 4.1二叉树遍历 4.2…

2023-2024年 Java开发岗面试题经验分享

在各行各业中,面试前我们总会思索一个问题:究竟什么样的求职者能获得面试官的青睐?作为求职者,我们又该如何准备,以应对各种面试官的挑战?在这激烈的竞争里,如何才能让自己从众多应聘者中脱颖而…

镭速FTP替代升级页面助力企业创造新创安全运行环境

在当今快速发展的信息技术环境和日益严峻的网络安全挑战下,企业面临着数据传输和文件管理方面的重大挑战。特别是在信创环境下,传统的FTP已逐渐无法满足现代企业的需求,这促使企业寻求更高效、安全的替代方案。 企业在信创环境运行中的挑战 …

(ICLR-2024)PIXART-α:扩散Transformer的快速训练,用于逼真的文本到图像合成

PIXART-α:扩散Transformer的快速训练,用于逼真的文本到图像合成 Paper Title:PIXART-α: FAST TRAINING OF DIFFUSION TRANSFORMER FOR PHOTOREALISTIC TEXT-TO-IMAGE SYNTHESIS Paper是华为诺亚方舟实验室发表在ICLR 2024的工作 Paper地址 Code地址 项…

由浅入深的了解进程(4)

进程 1、优先级1、1、什么是优先级1、2、为什么需要优先级1、3、Linux优先级的特点和查看方式 2、补充概念3、命令行参数4、环境变量 1、优先级 1、1、什么是优先级 和生活中的概念其实是差不多的。优先级在进程中的定义是指定进程获得CPU资源的先后顺序。如果换一个视角的话…

ATF加载自定义镜像

实际上包含了两个问题: 如何把自定义的二进制文件打包到fip.bin中?如何在secure boot流程中load和认证自定义的二进制文件? 如何打包 证书创建工具和FIP打包工具是通过命令行传参的方式进行证书创建和打包的,如下: …

图新地球-新图源来一波(地表覆盖物、地表水、岩土圈)

0.序 以前的GlobalLand30图源不可访问了,很多需要地物分类的朋友很苦恼。 现在星图新上了一批图源,不仅包括地物分类、水域、还包括土壤酸碱度、有机碳、粘土、阳离子等各种岩土相关的地图服务。 这边全部配置成了图新地球可以直接加载的图源&#xff…

人生总会有自认为迈不过去的坎【西藏旅记1】

人生总会有自认为迈不过去的坎 孤独,也是人生一态。 有两个人说过我这样的性格,不会有真正的朋友,一个是旅行时的领队,另一个也是旅行时的领队。 以他们的视角,形形色色的人,应接不暇的景,他们修…

Github 2024-08-01 开源项目日报Top10

根据Github Trendings的统计,今日(2024-08-01统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量非开发语言项目3Go项目2Python项目2C项目1C#项目1Rust项目1TypeScript项目1编程面试大学:成为软件工程师的全面学习计划 创建周期:2859 天协议…

如何基于欧拉系统完成本地软件仓库安装

挂载 [rootlocalhost ~]# mount /dev/sr0/openeuler/ 查看一下 在脚本里添加以下两行 [rootlocalhost ~]# vim /etc/rc.d/rc.local 给一个可执行权限,并重启 [rootlocalhost ~]# chmod x /etc/rc.d/rc.local [rootlocalhost ~]# reboot 记住挂载点 切换到 /et…