最近半年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%免费
】🆓