GraphRAG工程落地成本详细解读和实例分析

news2024/12/22 20:33:32

最近半年GraphRAG引起不少关注,。GraphRAG代表了一种创新的方法,用于支持检索增强生成(RAG)应用,使组织能够从其复杂的数据集中提取前所未有的价值。然而,与大多数组织使用的相对简单的数据嵌入和向量化过程不同,构建图形需要额外的努力和成本。本文提供了一个实际示例,以帮助您估算构建自己图形所需的成本。

对于那些寻求快速概述的人,这里有一个示例,帮助您建立每个分析文档的成本感。您可以在本文后面找到估算自己数据集成本的近似计算方法。

这些估计可能会根据您的应用、模型、参数和提示而有显著差异,仅作为指导提供

值得注意的是 LLM 的成本持续得到显著优化,已经开始开发专门用于构建图形的微调模型。在评估新兴技术时,重要的是要考虑这些新功能解锁了什么商业价值,而不是让某一时刻的成本阻止您充分利用这些机会

为什么用GraphRAG

典型的RAG系统擅长检索特定的信息,例如:

  • 这个产品需要多少瓦特才能运行?

  • FY24的收入是多少?

  • 我该如何注册这个服务?

然而,当涉及到回答需要对整份文档或一组文档有全面理解的问题时,它们就显得力不从心:

  • 这份报告的关键主题是什么?

  • 我当前支持的所有产品有哪些?

  • 列出在这个制造地点完成工作的所有承包商,并告诉我他们的认证水平。

这一限制的产生是因为传统的检索系统只返回孤立的信息片段。相比之下,知识图谱捕捉了各种实体、对象和系统之间的关系,从而以高效的方式提供对文档的整体理解。

在本文中,我们以《奥兹国的巫师》作为参考文本,探讨与GraphRAG相关的成本。您可以在下方看到该小说的图形表示。

.gif")

《奥兹国的巫师》的图谱表示

GraphRAG的主要成本是什么

1. 图谱构建

如果您拥有包含显著元数据的数据,构建图谱可能很简单,例如社交媒体网站能够通过识别人们之间的互动关系来创建图网络。对于小说或其他文本文件等非结构化数据,开发图谱要困难得多。

图谱由两个关键元素构成:

  • 节点:文档中的关键实体,例如角色、对象和地点(例如,主角多萝西或她的狗托托)。

  • 边:这些实体之间的关系,例如托托和多萝西之间的连接(朋友,宠物)。LLM还会将这种关系的强度或相关性估算为一个数字。

对于节点和边,LLM添加了摘要和额外信息,包括对原始文本的引用。

简化的图形表示,展示了节点和边

构建这个节点和边的列表是耗时的,特别是对于非结构化数据,在那里必须分析文本以找到这些关系。这就是GraphRAG大部分成本的来源。文档以块为单位进行分析,通过巧妙使用大型语言模型(LLMs)创建节点和边。以下提示展示了如何使用少量提示逐步构建图谱:

-Goal-  
Given a text document that is potentially relevant to this activity, first identify all entities needed from the text in order to capture the information and ideas in the text.  
Next, report all relationships among the identified entities.  
-Steps-  
1. Identify all entities. For each identified entity, extract the following information:  
- entity_name: Name of the entity, capitalized  
- entity_type: Suggest several labels or categories for the entity. The categories should not be specific, but should be as general as possible.  
- entity_description: Comprehensive description of the entity's attributes and activities  
Format each entity as ("entity"{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}  
2. From the entities identified in step 1, identify all pairs of (source_entity, target_entity) that are *clearly related* to each other.  
For each pair of related entities, extract the following information:  
- source_entity: name of the source entity, as identified in step 1  
- target_entity: name of the target entity, as identified in step 1  
- relationship_description: explanation as to why you think the source entity and the target entity are related to each other  
- relationship_strength: a numeric score indicating strength of the relationship between the source entity and target entity  
 Format each relationship as ("relationship"{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter})  
3. Return output in English as a single list of all the entities and relationships identified in steps 1 and 2. Use **{record_delimiter}** as the list delimiter.  
4. When finished, output {completion_delimiter}  
-Examples-  
######################  
示例1:  
text:  
It was very dark, and the wind howled horribly around her, but Dorothy  
found she was riding quite easily. After the first few whirls around,  
and one other time when the house tipped badly, she felt as if she were  
being rocked gently, like a baby in a cradle.  
Toto did not like it. He ran about the room, now here, now there,  
barking loudly; but Dorothy sat quite still on the floor and waited to  
see what would happen.  
Once Toto got too near the open trap door, and fell in; and at first  
the little girl thought she had lost him. But soon she saw one of his  
ears sticking up through the hole, for the strong pressure of the air  
was keeping him up so that he could not fall. She crept to the hole,  
caught Toto by the ear, and dragged him into the room again, afterward  
closing  
------------------------  
output:  
("entity"{tuple_delimiter}DOROTHY{tuple_delimiter}CHARACTER, PERSON{tuple_delimiter}Dorothy is a character who experiences a dark and windy environment, feels as if being rocked gently, and actively participates in rescuing Toto)  
{record_delimiter}  
("entity"{tuple_delimiter}TOTO{tuple_delimiter}CHARACTER, ANIMAL{tuple_delimiter}Toto is Dorothy's dog who dislikes the situation, runs around barking, and accidentally falls into a trap door but is saved by Dorothy)  
{record_delimiter}  
("entity"{tuple_delimiter}TRAP DOOR{tuple_delimiter}OBJECT{tuple_delimiter}The trap door is an opening through which Toto falls, but the air pressure prevents him from falling completely)  
{record_delimiter}  
("relationship"{tuple_delimiter}DOROTHY{tuple_delimiter}TOTO{tuple_delimiter}Dorothy rescues Toto from the trap door, showing a caring relationship{tuple_delimiter}9)  
{record_delimiter}  
("relationship"{tuple_delimiter}TOTO{tuple_delimiter}TRAP DOOR{tuple_delimiter}Toto falls into the trap door, which is a pivotal moment for his character in this scene{tuple_delimiter}7)  
{record_delimiter}  
("relationship"{tuple_delimiter}DOROTHY{tuple_delimiter}TRAP DOOR{tuple_delimiter}Dorothy interacts with the trap door to rescue Toto, showing her proactive nature{tuple_delimiter}8)  
{completion_delimiter}  
#############################  
  
-Real Data-  
######################  
text: {input_text}  
######################  
output:  

这个过程会对整个文档体重复进行,而这些大型语言模型的调用是主要的费用来源。相比之下,用于典型RAG模式的文档嵌入相对便宜。将《绿野仙踪》的全部文本向量化仅花费0.0056美元,这与构建图形的费用相比微不足道。

2. 托管和推理成本

推理成本不是本文的主要焦点,因为GraphRAG和典型RAG应用之间提示和推理令牌的差异高度依赖于具体场景。两者中的任何一个可能比另一个更昂贵,但令牌使用的模式相对相似。

托管成本取决于所使用的技术。对于典型的RAG应用,这是向量数据库。对于GraphRAG,托管方法仍在不断发展,因此这些成本尚未被考虑。

成本解析

步骤1: 建立图谱消耗的Token

在此步骤中,文档使用GraphRAG解决方案加速器进行处理。完成该过程后,消耗的总令牌数量被测量。

《绿野仙踪》的字数和词数,以及构建图表的token计数

步骤2: 计算构建图谱的成本

接下来,计算了这三种不同模型的提示和完成令牌的成本。GraphRAG论文使用了GPT-4-Turbo,但此后已发布了新的、更低成本的模型(GPT-4o和GPT-4o mini)。

构建图谱的成本

步骤3: 查询图谱的Token消耗

查询GraphRAG有两种方式 一种是本地搜索,这是一种更窄的搜索,最适合针对性查询 另一种是全局搜索,搜索整个图 表为清楚起见 这些成本包括搜索的成本和大型语言模型实际回答用户问题的成本

搜索图谱进行推理消耗的Tokens

这两个查询大约花了20-24秒。虽然有一种流式处理结果的方法,但初始检索步骤需要大约10-15秒,必须在流式处理之前完成。

步骤4:查询图的成本计算

这两种查询的成本可以计算出来:

搜索图谱的推理成本

步骤5:估算其他文件集的成本

包含了一系列快速参考,以帮助建立对构建图谱一般成本的直觉。在利用这些见解时要谨慎——这仅作为参考,不能替代对自己文档的小样本进行成本基准测试。

重要的是要注意:

在这项工作中没有进行适当的基准测试,以比较不同模型的性能。

  • 成本变化频繁,这些成本仅代表写作时的成本。预计专用模型将进一步降低成本。参数和窗口设置可能会显著影响成本(可能是多个倍数)。

  • 这些结果是基于两次实验的平均值,但需要对各种用例和参数设置进行适当分析,以形成真正的计算方法。

  • 这些结果只是作为一个非常粗略的起点,以帮助建立对GraphRAG成本的直观理解,且不应用于确定商业案例的规模。

  • 字数对快速估算很方便,但对于适当的规模分析,应使用在线工具或代码将字数转换为标记。

每个单词或每个标记的成本非常有用,因为您可以将其作为估算数据集成本的粗略指南

例如:

  • 您文档集的字数:例如 30000 字

  • 选择的模型:GPT-4o-mini

  • 每个单词的成本:0.0000113 美元(来自上表)

  • 成本:0.0000113 * 30000 = 0.34 美元用于处理您的文档

这也可以通过文档的标记数量进行类似估算:38371 个标记 * 0.0000088 = 0.34 美元

最重要的是价值

虽然成本是一个关键因素,但必须将其与系统带来的价值进行评估。考虑一个人花费时间阅读成千上万页的企业文件,并深入了解贵组织的流程和规范。这种深层次的知识现在可以在几秒钟内为整个组织提供。传统上,构建图形是一项昂贵的工作,往往使许多组织难以实现。与手动设计和构建图形相比,GraphRAG 提供了显著的成本降低,使组织能够实现之前被锁定的数据价值。

未来GraphRAG的成本

研究正在进行,以找出进一步降低在图数据结构上实施RAG成本的方法。一个关键的研究领域是将传统的自然语言处理技术与新技术相结合,以显著降低开发图的成本,而不是仅仅依赖大型语言模型来生成每个实体和关系。第二个重点领域是训练更专业、更小的语言模型,这些模型经过微调以生成图,从而进一步降低成本并提高性能。在本文中,使用了GPT-4-Turbo,分块大小设置为默认的1200。在其他工作中,已经指出通过将分块大小减少到600,GPT-4o-mini能够以仅一小部分成本实现与GPT-4-Turbo相似的性能。

总结

GraphRAG提供了一种变革性的方法来支持RAG应用,使组织能够从他们的数据中释放新的价值。虽然构建图形的成本高于传统的嵌入方法,但所带来的价值远远超过这些开支。随着技术的发展和新模型的出现,GraphRAG的成本预计将下降,使其成为希望最大化数据价值的组织更加可行的解决方案。GraphRAG解决方案加速器使您可以轻松入门,基准自己的数据集成本,并开始在自己的应用中实施这一新兴技术

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

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

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

相关文章

mkv怎么转换成mp4?2个简单易用的格式转换方法

小王立志成为一名vlogger,为此,他在旅行的时候拍摄了一段旅游视频,把视频保存在mkv格式中。在平台上传时小王才发现mkv视频不被平台支持。 小王傻眼了,视频需要把mkv转换成mp4格式才能发布,但mkv怎么转换成mp4&#x…

Socket编程---TCP篇

目录 一. TCP协议 二. 服务端模块代码实现 三. 服务端调用模块代码实现 四. 客户端模块代码实现 五. 初始版本结果展示 六. 多进程版服务端 七. 多线程版服务端 八. 线程池版服务端 前文已经讲了UDP的知识(点此查看)。今天来讲讲…

探索AWS EC2:云计算的强大引擎

在数字化转型的浪潮中,企业对计算资源的需求不断增长。亚马逊弹性计算云(EC2)作为AWS(亚马逊网络服务)的核心产品之一,凭借其强大的功能和灵活性,成为了全球企业构建和扩展应用的首选平台。无论…

K8S - 外部访问集群

前言 文档可以承接前面的内容看 这里只做外部访问的介绍 正文 kubectl get po#打印某个pod的环境变量 kubectl exec nginx-7c5ddbdf54-6nfw2 \-- printenv |grep KUBERNETES#删除 service kubectl get svc kubectl delete svc nginx#使用 LoadBalancer 的方式重新创建 servi…

Etherpad在线文档协作编辑工具

Etherpad在线文档协作编辑工具 一、前言 Etherpad是一种开源的实时协作编辑器,允许多个用户同时编辑同一文档,并实时显示每个用户的输入内容。Etherpad最初由Etherpad基金会开发,后来被Google收购,现在由Apache软件基金会维护。E…

ElasticSearch-集群架构

核心概念 节点类型分片集群搭建 ES安全认证 集群内部安全通信 生产环境常见集群部署方式 单一角色增加节点水平扩展读写分离架构异地多活架构Hot & Warm 架构集群容量规划 产品信息库搜索时间序列的数据 核心概念 ES集群架构的优势 提高系统的可用性,部分节点…

【QT】学习笔记:枚举桌面窗口句柄

在 Qt 中,虽然 Qt 本身没有直接提供枚举桌面窗口的 API,但可以通过调用 Windows API 来实现枚举桌面上所有窗口的句柄,包括子窗口以及子窗口与父窗口的关系。我们可以使用 Windows 的 EnumWindows 和 EnumChildWindows 函数来枚举所有顶层窗口…

C语言指针进阶三:(回调函数,qsort函数的模拟)

回调函数 回调函数就是通过函数指针调用的函数,如果你把函数的指针作为参数传递给另一个函数,当这个指针被用来调用其指向的函数时,我们所说这就是回调函数。 qsort函数的使用(回调函数案例) 我们先看看qsort函数的…

【单调栈 】2289. 使数组按非递减顺序排列

本文涉及的基础知识点 单调栈分类、封装和总结 LeetCode2289. 使数组按非递减顺序排列 给你一个下标从 0 开始的整数数组 nums 。在一步操作中&#xff0c;移除所有满足 nums[i - 1] > nums[i] 的 nums[i] &#xff0c;其中 0 < i < nums.length 。 重复执行步骤&a…

【重磅推荐】《一本书读懂大模型:技术创新、商业应用与产业变革》发布!大模型零基础入门到精通

近日&#xff0c;由中国电信研究院天翼智库大模型研究团队编写、中国电信集团科技委主任邵广禄倾情作序的**《一本书读懂大模型&#xff1a;技术创新、商业应用与产业变革》**正式出版。本书系统介绍了大模型技术的发展历程、核心技术、行业应用、产业体系、治理问题以及未来展…

DeFi 发展的岔路口,Pencils Protocol带领投资者们“向前看”

DeFi 市场是否还存在 Alpha 机会&#xff1f; 走下坡路的 DeFi 去中心化金融&#xff08;DeFi&#xff09;曾是区块链世界发展的起点&#xff0c;也是链上世界流动性的重要支柱。然而&#xff0c;自 2021 年 DeFi 领域的总锁仓量&#xff08;TVL&#xff09;达到历史巅峰——…

模型压缩之剪枝

&#xff08;1&#xff09;通道选择 这里要先解释一下&#xff1a; &#xff08;1&#xff09;通道剪枝 那我们实际做法不是上面直接对所有层都添加L1正则项&#xff0c;而是仅仅对BN层权重添加L1正则项。通道剪枝具体步骤如下&#xff1a; 1.BN层权重添加L1正则项&#xf…

ElementUI实现el-table组件的合并行功能

前言 有时遇到一些需求&#xff0c;需要实现ElementUI中&#xff0c;el-tabled组件合并单元格的功能&#xff0c;稍微了解一下它的数据格式&#xff0c;不难可以写出比合并方法。但是在鼠标经过单元行时&#xff0c;会出现高亮的行与鼠标经过的行不一致的BUG。因此还需要实现c…

超级右键 - 为 Mac 的右键菜单升级一下

是不是有很多小伙伴&#xff0c;希望 Mac 也能像 Windows 一样&#xff0c;拥有丰富的右键菜单&#xff0c;快速完成新建、剪切、发送文件等操作。 一个叫作超级右键的工具就能做到&#xff0c;它能为 Mac 右键菜单增添多个功能选项&#xff0c;如 Win 系统般一键新建 / 剪切文…

vue通过html2canvas+jspdf生成PDF问题全解(水印,分页,截断,多页,黑屏,空白,附源码)

前端导出PDF的方法不多&#xff0c;常见的就是利用canvas画布渲染&#xff0c;再结合jspdf导出PDF文件&#xff0c;代码也不复杂&#xff0c;网上的代码基本都可以拿来即用。 如果不是特别追求完美的情况下&#xff0c;或者导出PDF内容单页的话&#xff0c;那么基本上也就满足业…

我的大模型岗位面试总结!太卷了!!!—我面试了24家大模型岗位 只拿了9个offer!

这段时间面试了很多家&#xff08;共24家&#xff0c;9个offer&#xff0c;简历拒了4家&#xff0c;剩下是面试后拒的&#xff09;&#xff0c;也学到了超级多东西。 大模型这方向真的卷&#xff0c;面试时好多新模型&#xff0c;新paper疯狂出&#xff0c;东西出的比我读的快…

传统CV算法——基于opencv的答题卡识别判卷系统

基于OpenCV的答题卡识别系统&#xff0c;其主要功能是自动读取并评分答题卡上的选择题答案。系统通过图像处理和计算机视觉技术&#xff0c;自动化地完成了从读取图像到输出成绩的整个流程。下面是该系统的主要步骤和实现细节的概述&#xff1a; 1. 导入必要的库 系统首先导入…

误删的PPT怎么恢复回来?

在日常工作和学习中&#xff0c;PPT已成为我们不可或缺的工具。然而&#xff0c;有时不小心误删重要的PPT文件&#xff0c;可能会让人倍感焦虑。别担心&#xff0c;本文将为你提供几种实用的方法&#xff0c;帮助你轻松恢复误删的PPT文件。 一、从回收站恢复 当你误删文件时&…

【Grafana】Prometheus结合Grafana打造智能监控可视化平台

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

香港一带一路研究院国际事务研究中心副主任陈景才阐述香港在一带一路建设及区块链金融领域的关键作用

2024年8月28日&#xff0c;香港金管局举行Ensemble项目沙盒&#xff08;以下简称沙盒&#xff09;启动仪式&#xff0c;并宣布首阶段试验将涵盖四大代币化资产用例主题&#xff0c;标志着金融业在代币化技术的实际应用进程中迈出重要一步。香港一带一路研究院国际事务研究中心副…