LLMs之RAG:GraphRAG(本质是名词Knowledge Graph/Microsoft微软发布)的简介、安装和使用方法、案例应用之详细攻略

LLMs之RAG:GraphRAG(本质是名词Knowledge Graph/Microsoft微软发布)的简介、安装和使用方法、案例应用之详细攻略

导读:2024年7月3日,微软正式开源发布GraphRAG。GraphRAG可以提高大型语言模型在私有数据集上的推理能力。

背景痛点:基线RAG (Retrieval-Augmented Generation)方法在以下情况下表现不佳:

需要跨越不同片段信息进行综合推理时需要对大量数据集或大型单个文档进行整体语义理解时。

解决方案

GraphRAG是一种结构化、分层的RAG方法,通过从原始文本中提取知识图谱、构建社区层次结构、生成社区总结等步骤,增强大型语言模型在私有数据集上的推理能力。

核心思路步骤

>> 索引:将输入语料切分为TextUnits;使用大型语言模型从TextUnits中提取实体、关系和关键声明;使用Leiden技术对图谱进行分层聚类;从底层到顶层生成每个社区及其组成部分的总结

>> 查询

全局搜索:利用社区总结来回答关于整个语料库的综合性问题

局部搜索:通过扇出到相邻概念来回答关于特定实体的问题

提示调优:根据具体数据集和任务,建议对提示进行微调以获得最佳效果

优势

>> 能够更好地处理需要综合推理和对大型数据集进行整体理解的任务

>> 在上述两类任务上表现优于其他基线RAG方法

>> 通过提示微调可以针对具体数据集和任务进行优化

目录

GraphRAG(Microsoft微软发布)的简介

1、什么是GraphRAG?

2、GraphRAG能做什么?

3、GraphRAG的预期用途是什么?

4、GraphRAG是如何评估的?用什么指标来衡量性能?

5、GraphRAG的局限性是什么?用户在使用系统时如何尽量减少GraphRAG局限性的影响?

6、哪些操作因素和设置可以有效和负责任地使用GraphRAG?

GraphRAG(Microsoft微软发布)的安装和使用方法

1、安装

下载库

设置数据项目和配置:

配置环境变量和设置:

运行索引管道:

使用查询引擎:

2、使用方法

2.1、提示调优

GraphRAG(Microsoft微软发布)的案例应用


GraphRAG(Microsoft微软发布)的简介

2024年7月3日,微软正式开源发布GraphRAG。GraphRAG 项目是一个数据管道和转换套件,旨在利用大语言模型(LLM)的强大功能,从非结构化文本中提取有意义的结构化数据。

官方文章:GraphRAG: Unlocking LLM discovery on narrative private data - Microsoft Research

GitHub地址:GitHub - microsoft/graphrag: A modular graph-based Retrieval-Augmented Generation (RAG) system

文档地址:Welcome to GraphRAG

1、什么是GraphRAG?

GraphRAG是一种基于AI的内容解释和搜索功能。通过使用大型语言模型(LLM),它解析数据以创建知识图谱,并回答用户关于用户提供的私有数据集的问题。

2、GraphRAG能做什么?

GraphRAG能够连接大量信息,并利用这些连接回答通过关键字和向量搜索机制难以或不可能回答的问题。在此基础上,提供半技术性的高级信息,说明系统如何为各种用途提供功能。这使得使用GraphRAG的系统能够回答跨越多个文档的问题,以及诸如“该数据集中的主要主题是什么?”这样的主题问题。

3、GraphRAG的预期用途是什么?

GraphRAG旨在支持关键信息发现和分析的用例,这些用例中,获取有用见解所需的信息分布在许多文档中,噪音较多,夹杂有错误信息或虚假信息,或者用户要回答的问题比底层数据能直接回答的问题更抽象或更具主题性。
GraphRAG设计用于已经接受过负责任的分析方法培训并具备批判性思维的用户环境中。GraphRAG能够在复杂信息主题上提供高度见解,但需要领域专家对答案进行人工分析,以验证和补充GraphRAG生成的响应。
GraphRAG旨在与特定领域的文本数据集一起部署和使用。GraphRAG本身不收集用户数据,但建议用户验证所选LLM的隐私政策。

4、GraphRAG是如何评估的?用什么指标来衡量性能?

GraphRAG通过多种方式进行了评估。主要关注点是
1)准确表示数据集,
2)提供透明和有依据的响应,
3)抵御提示和数据集注入攻击的弹性,
4)低幻觉率。每项评估的详细信息如下所述。

通过手动检查和对测试数据集的随机选取子集进行自动测试,验证数据集的准确表示。
通过自动答案覆盖评估和对返回的基础上下文进行人工检查,测试响应的透明性和有依据性。
通过手动和半自动技术测试用户提示注入攻击(“越狱”)和跨提示注入攻击(“数据攻击”)。
使用声明覆盖指标、答案和来源的人工检查以及对抗攻击尝试通过对抗性和极具挑战性的数据集强制幻觉评估幻觉率。

5、GraphRAG的局限性是什么?用户在使用系统时如何尽量减少GraphRAG局限性的影响?

GraphRAG依赖于精心构建的索引示例。对于通用应用(如以人、地点、组织、事物等为中心的内容),我们提供示例索引提示。对于独特的数据集,有效的索引依赖于适当识别领域特定概念。
索引是相对昂贵的操作;缓解索引的最佳实践是先在目标领域创建一个小型测试数据集,以确保索引器性能,然后再进行大规模索引操作。

6、哪些操作因素和设置可以有效和负责任地使用GraphRAG?

GraphRAG旨在由具有领域专业知识和经验丰富的用户使用,处理困难的信息挑战。尽管该方法通常能有效抵御注入攻击并识别冲突的信息来源,但该系统是为受信任的用户设计的。对响应进行适当的人工分析对于生成可靠的见解至关重要,并且应追踪信息来源以确保人类对推理结果的认同。
GraphRAG在自然语言文本数据上效果最好,这些数据集体聚焦于一个整体主题或主题,并且实体丰富——实体是指可以唯一标识的人、地点、事物或对象。
尽管GraphRAG已经过评估,以评估其对提示和数据集注入攻击的抵御能力,并探讨了特定类型的危害,但用户配置的LLM可能会生成不适当或冒犯的内容,因此在敏感环境中部署时需要针对具体使用场景和模型采取额外的缓解措施。开发者应根据他们的背景评估输出,使用可用的安全分类器、模型特定的安全过滤器和功能(例如https://azure.microsoft.com/en-us/products/ai-services/ai-content-safety),或适合其用例的定制解决方案。

GraphRAG(Microsoft微软发布)的安装和使用方法

要开始使用 GraphRAG 系统,我们推荐尝试解决方案加速器包。这提供了一个使用 Azure 资源的用户友好的端到端体验。
本库介绍了一种使用知识图谱记忆结构增强 LLM 输出的方法。请注意,提供的代码仅作为演示用途,并不是微软官方支持的产品。
警告:GraphRAG 索引可能是一个昂贵的操作,请阅读所有文档以了解过程和涉及的成本,并从小规模开始。

1、安装

下载库

pip install graphrag

设置数据项目和配置:

mkdir -p ./ragtest/input
curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt > ./ragtest/input/book.txt
python -m graphrag.index --init --root ./ragtest

配置环境变量和设置:

更新 .env 文件中的 GRAPHRAG_API_KEY 并修改 settings.yaml。

运行索引管道:

python -m graphrag.index --root ./ragtest

使用查询引擎:

python -m graphrag.query --root ./ragtest --method global "What are the top themes in this story?"
python -m graphrag.query --root ./ragtest --method local "Who is Scrooge, and what are his main relationships?"

2、使用方法

2.1、提示调优

直接使用 GraphRAG 处理您的数据可能不会产生最佳效果。我们强烈建议按照文档中的提示调优指南对提示进行微调。

GraphRAG(Microsoft微软发布)的案例应用

持续更新中……

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

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

相关文章

MSVC2017+Qt 打包

在环境变量下配置好 QT 和 MSVC 的路径 相关搜索: 找不到msvcp140.dll 1.搜索 Qt 选择在编译器路径下打开 2. Windeployqt 生成打包,正常情况下生成 VC 相关package, 即 msvcp140.dll 等MSVC 相关 但是lz尝试没有生成 解决办法 先将生成…

数据库作业d8

要求: 一备份 1 mysqldump -u root -p booksDB > booksDB_all_tables.sql 2 mysqldump -u root -p booksDB books > booksDB_books_table.sql 3 mysqldump -u root -p --databases booksDB test > booksDB_and_test_databases.sql 4 mysql -u roo…

MySQL 中的几种锁

MySQL 中的锁 #按锁粒度如何划分? 按锁粒度划分的话,MySQL 的锁有: 表锁:开销小,加锁快;锁定力度大,发生锁冲突概率高,并发度最低;不会出现死锁。行锁:开销大,加锁慢…

电脑压缩软件哪个好?WinRAR、7-Zip、Bandizip 还是360压缩

文件压缩软件已成为我们日常工作中不可或缺的一部分,它不仅能够帮助我们节省存储空间,还能提高文件传输效率。本文简鹿办公小编将对四款主流的电脑压缩软件进行对比,它们分别是 WinRAR、7-Zip、Bandizip 和 360 压缩。 一、WinRAR WinRAR 是…

Qt中文个数奇数时出现问号解决

Qt中文个数奇数时出现问号解决 目录 Qt中文个数奇数时出现问号解决问题背景问题场景解决方案 问题背景 最近在开发一个小工具,涉及到一些中文注释自动打印,于是摸索如何把代码里面的中文输出到csv文件中,出现了乱码,按照网上的攻…

vue2-Django3-iframe解决方案,处理安全策略,事件拦截,处理iframe重载等

目录 简介 实现iframe 后端安全策略 通过Ngnix代理实现SAMEORIGIN iframe的事件拦截,自定义处理 iframe的状态保持(解决vue中iframe重载) 解决方法 简介 Iframe(内联框架)是一种HTML元素,用于在网页…

Nginx配置缺少导致CSS不起作用

引言 在Web开发中,确保样式表正确加载是前端显示正常工作的关键。然而,有时候即使CSS文件的路径和代码本身没有问题,CSS样式也可能无法正确应用。本文将分享一个常见的问题——Nginx配置缺少导致的CSS不起作用,以及如何解决这个问…

周鸿祎为什么建议Java、前端、大数据、PHP开发都要学一下大模型?_ai大模型全栈工程师跟java有关吗

ChatGPT的出现在全球掀起了AI大模型的浪潮,2023年可以被称为AI元年,AI大模型以一种野蛮的方式,闯入你我的生活之中。 从问答对话到辅助编程,从图画解析到自主创作,AI所展现出来的能力,超出了多数人的预料&…

智慧公厕系统实现人性化与节能化的完美结合

在当今社会,科技的飞速发展正不断改变着我们的生活方式,公厕也不例外。智慧公厕系统的出现,不仅提升了人们的使用体验,更实现了人性化与节能化的完美结合,为城市公共服务带来了全新的变革。 一、人性化,是智…

echarts 实现水利计算模型-雨量,流量,时间分割线

需求背景解决效果ISQQW代码地址index.vue 需求背景 实现水利计算模型-雨量&#xff0c;流量&#xff0c;时间分割线 解决效果 ISQQW代码地址 链接 index.vue <!--/** * author: liuk * date: 2024/06/13 * describe: 洪水预报结果图表 */--> <template><di…

算法篇 滑动窗口 leetcode 长度最小的子数组

长度最小的子数组 1. 题目描述2. 算法图分析2.1 暴力图解2.2 滑动窗口图解 3. 代码演示 1. 题目描述 2. 算法图分析 2.1 暴力图解 2.2 滑动窗口图解 3. 代码演示

Flask `preprocess_request` 方法教程

Flask preprocess_request 方法教程 在 Flask 应用中&#xff0c;preprocess_request 方法在请求被分派到相应的视图函数之前被调用。它允许您在请求处理的早期阶段执行一些自定义逻辑。本文将详细讲解 preprocess_request 方法的工作原理及其使用方法。 方法概述 preproces…

数据结构进阶——使用数组实现栈和队列详解与示例(C,C#,C++)

文章目录 1、数组实现栈栈的基本操作C语言实现C#语言实现 2、 数组实现队列队列的基本操作C语言实现C# 语言实现C语言实现 总结 在编程世界中&#xff0c;数据结构是构建高效算法的基石。栈和队列作为两种基本的数据结构&#xff0c;它们的应用非常广泛。本文将带领大家使用C&a…

TCP/IP 原理、实现方式与优缺点

TCP/IP&#xff08;传输控制协议/网际协议&#xff09; 是互联网的核心协议套件&#xff0c;主要用于在不同计算机之间进行通信。它包括多个层次的协议&#xff0c;每层协议负责不同的功能。TCP/IP 的四个层次模型如下&#xff1a; 网络接口层&#xff1a;负责在特定的物理网络…

pb:获得当前计算机的名称

获得当前计算机的名称 FUNCTION boolean GetComputerNameA(ref string cname,ref long nbuf) LIBRARY "kernel32.dll" String ls_computernamespace(512) Long ll_buffer512 Getcomputernamea(ls_computername,ll_buffer) Return ls_computername ------------------…

股票质押约定购回:机制、风险与策略!

​股票质押约定购回&#xff1a;机制、风险与策略 在复杂的金融市场中&#xff0c;股票质押约定购回作为一种常见的融资手段&#xff0c;受到了众多投资者和企业的关注。本文将深入探讨股票质押约定购回的定义、运作机制、潜在风险以及投资者和企业在操作时应采取的策略。 一、…

HackChat匿名聊天室

匿名聊天 聊天室地址 这是一款极简、无干扰的聊天应用程序&#xff0c;可以让你专注于交流而不必担心干扰. 频道通过 url 创建、加入和共享&#xff0c;通过更改问号后的文本来创建自己的频道. hack.chat 服务器上不会保留任何消息历史记录&#xff0c;链接断开消息就会删除. …

力扣题解(最长回文子序列)

516. 最长回文子序列 给你一个字符串 s &#xff0c;找出其中最长的回文子序列&#xff0c;并返回该序列的长度。 子序列定义为&#xff1a;不改变剩余字符顺序的情况下&#xff0c;删除某些字符或者不删除任何字符形成的一个序列。 思路&#xff1a;设dp[i][j]是从i到j的最长…

尚硅谷大数据技术-数据湖Hudi视频教程-笔记03【Hudi集成Spark】

大数据新风口&#xff1a;Hudi数据湖&#xff08;尚硅谷&Apache Hudi联合出品&#xff09; B站直达&#xff1a;https://www.bilibili.com/video/BV1ue4y1i7na 尚硅谷数据湖Hudi视频教程百度网盘&#xff1a;https://pan.baidu.com/s/1NkPku5Pp-l0gfgoo63hR-Q?pwdyyds阿里…

基于5个K7的多FPGA PCIE总线架构的高性能数据预处理平台

板载FPGA实时处理器&#xff1a;XCKU060-2FFVA15172个QSFP光纤接口&#xff0c;最大支持10Gbps/lane板载DMA控制器&#xff0c;能实现双向DMA高速传输支持x8 PCIE主机接口&#xff0c;系统带宽5GByte/s1个R45自适应千兆以太网口1个FMC子卡扩展接口 基于PCIE总线架构的高性能数据…