1 分•作者: ktyptorio•6 个月前
嗨,HN,
最近一直在处理大量涉及法规的文件,有一件事一直困扰着我。扁平的 RAG 管道常常无法一起检索相关的文章,即使它们通过引用、定义或条款明确地联系在一起。
在尝试了几种 RAG 设置后,我主观地认为 GraphRAG 才是处理这类数据的更好模型。微软的 GraphRAG 论文和参考实现是很好的起点。然而,在实践中,我发现一个反复出现的摩擦点:图存储和向量索引通常由不同的系统处理,这对于短期的分析任务来说,感觉过于笨重了。
为了探索这种权衡,我构建了 GibRAM(Graph in-buffer Retrieval and Associative Memory,即内存内图检索和关联记忆)。它是一个实验性的、内存中的 GraphRAG 运行时,其中实体、关系、文本单元和嵌入都并排存在于单个进程中。
GibRAM 刻意设计为短暂的。它专为探索性任务而设计,例如对有限的文档集进行摘要或对话式查询。数据驻留在内存中,按会话进行范围限定,并通过 TTL 自动清理。它不提供持久性保证,并且对于预期的用例,重新计算被认为比持久化更便宜。
这不是一个数据库,也不是一个可用于生产的系统。这是一个休闲项目,很大程度上是凭感觉编写的,旨在探索当内存是主要约束而不是存储时,GraphRAG 的样子。存在技术债务,并且许多权衡都是明确的。
该项目是开源的,我非常欢迎反馈,特别是来自从事 RAG、搜索基础设施或基于图的检索的人。
GitHub:<a href="https://github.com/gibram-io/gibram" rel="nofollow">https://github.com/gibram-io/gibram</a>
很乐意回答问题或听取关于这种方法可能存在缺陷的意见。