什么是GraphRAG?
GraphRAG是一种基于AI的内容解释和搜索能力。它利用大型语言模型(LLM)解析数据,创建知识图谱,并回答用户关于用户提供的私人数据集的问题。
GraphRAG能做什么?
GraphRAG能够在大量信息中连接信息,并利用这些连接来回答使用关键词和基于向量的搜索机制难以或无法回答的问题。基于前一个问题,它提供了半技术性的、高层次的信息,展示了系统如何为各种用途提供功能。这使得使用GraphRAG的系统可以回答跨越多个文档的问题以及诸如“该数据集中的主要主题是什么?”等主题性问题。
GraphRAG的预期用途是什么?
GraphRAG旨在支持关键的信息发现和分析用例,这些用例中所需的信息分散在许多文档中,信息可能是嘈杂的,混杂着错误和/或虚假信息,或者用户希望回答的问题比底层数据能直接回答的问题更加抽象或具有主题性。
GraphRAG被设计用于用户已经接受过负责任的分析方法培训且预期具备批判性思维的环境中。GraphRAG能够在复杂信息主题上提供高度洞察力,但需要领域专家对生成的答案进行人工分析以验证和补充GraphRAG的响应。
GraphRAG旨在与特定领域的文本数据集一起部署和使用。GraphRAG本身不收集用户数据,但建议用户验证所选LLM的隐私政策。
GraphRAG如何进行评估?使用了哪些指标来衡量性能?
GraphRAG以多种方式进行了评估。主要关注点是:
1)数据集的准确表示。
2)响应的透明性和扎实性。
3)对提示和数据集成攻击的弹性。
4)低幻觉率。
每个关注点的具体评估方式如下:
数据集的准确表示通过人工检查和基于“黄金答案”的自动测试进行,“黄金答案”由测试语料库的随机选定子集创建。
响应的透明性和扎实性通过自动化的答案覆盖评估和对返回的上下文进行人工检查来测试。
通过人工和半自动化技术测试用户提示注入攻击(“越狱”)和跨提示注入攻击(“数据攻击”)。
幻觉率通过声明覆盖指标、手动检查答案和来源、以及通过对抗性和极具挑战性的语料库进行强制幻觉攻击来评估。
GraphRAG的局限性是什么?用户在使用系统时如何最小化这些局限性的影响?
GraphRAG依赖于构建良好的索引示例。对于一般应用(例如围绕人物、地点、组织、事物等的内容),我们提供示例索引提示。对于独特的数据集,有效的索引依赖于正确识别领域特定的概念。
索引是相对昂贵的操作;缓解索引的最佳实践是创建目标领域的小型测试数据集,以确保索引器性能,然后再进行大规模索引操作。
哪些操作因素和设置能促进GraphRAG的有效和负责任使用?
GraphRAG专为具有领域知识和处理复杂信息挑战经验的用户设计。虽然该方法对注入攻击和识别冲突信息源通常具有鲁棒性,但系统设计是面向可信用户的。对响应进行适当的人类分析对于生成可靠的见解至关重要,并且需要追溯信息来源以确保人类同意作为答案生成的一部分所做的推断。
GraphRAG在自然语言文本数据上表现最佳,这些数据集体上聚焦于一个总体主题或主题,并且富含实体——实体指的是可以唯一标识的人物、地点、事物或对象。
尽管GraphRAG已被评估其对提示和数据集成注入攻击的弹性,并已探查特定类型的危害,但用户配置GraphRAG所用的LLM可能会生成不适当或冒犯性的内容,这可能使其在没有具体用例和模型的附加缓解措施的情况下不适合在敏感环境中部署。开发人员应评估输出的上下文,并使用可用的安全分类器、模型特定的安全过滤器和功能(例如:https://azure.microsoft.com/en-us/products/ai-services/ai-content-safety)或适用于其用例的自定义解决方案。
与其他RAG系统类似, GraphRAG整个Pipeline也可划分为索引(Indexing)与查询(Query)两个阶段。索引过程利用LLM提取出节点(如实体)、边(如关系)和协变量(如 claim),然后利用社区检测技术对整个知识图谱进行划分,再利用LLM进一步总结。最终针对特定的查询,可以汇总所有与之相关的社区摘要生成一个全局性的答案。