传统RAG问答范式
- RAG(Retrieval Argumented Generation)这种基于特定任务/问题的文档检索范式中,我们通常先收集必要的上下文,然后利用具有认知能力的模型进行上下文学习(in-context learning),来合成任务的答案。
RAG问答范式的局限性
- 比如一个查询:“告诉我所有关于苹果和乔布斯的事”,基于乔布斯自传这本书进行问答,而这个问题涉及到的上下文分布在自传这本书的 30 个页面(分块)的时候,传统的“分割数据,Embedding 再向量搜索”方法在多个文档块里用 TOP-K 去搜索的方法很难得到这种分散,细粒的完整信息。而且,这种方法还很容易遗漏互相关联的文档块,从而导致信息检索不完整。
- 比如“保温大棚”与“保温杯”,尽管在语义上两者是存在相关性的,但在大多数场景下,这种通用语义(Embedding)下的相关性常常是我们不希望产生的,进而作为错误的上下文而引入“幻觉”。
Graph RAG的提出
- 知识图谱可以减少基于嵌入的语义搜索所导致的不准确性
Graph RAG的实现步骤
一个简单的Graph RAG的实现步骤如下:
- 使用 LLM(或其他)模型从问题中提取关键实体
- 根据这些实体检索子图,深入到一定的深度
- 根据获得的子图(上下文),利用 LLM 产生答案
发表回复