综合介绍
SimGRAG(SimGRAG: Leveraging Similar Subgraphs for Knowledge Graphs Driven Retrieval-Augmented Generation)是一个基于知识图谱驱动的检索增强生成(RAG)方法。该项目旨在通过利用相似子图来提升知识图谱在问答和事实验证等任务中的表现。SimGRAG支持即插即用的使用方式,结合大语言模型、嵌入模型和向量数据库,提供高效的相似性搜索和生成能力。该项目依赖于开源解决方案,如Ollama、Nomic嵌入模型和Milvus向量数据库,用户可以根据需求替换这些组件。
功能列表
- 大语言模型生成:使用Llama 3 70B模型进行生成任务。
- 节点和关系嵌入:利用Nomic嵌入模型进行节点和关系的嵌入。
- 向量数据库:使用Milvus存储节点和关系的嵌入,支持高效的相似性搜索。
- 数据准备:支持MetaQA和FactKG数据集的下载和准备。
- 配置文件:提供可修改的配置文件以适应不同需求。
- 管道运行:提供运行管道的脚本,支持MetaQA和FactKG的索引和查询。
使用帮助
安装流程
- 安装Ollama:
- 访问Ollama官网,按照指示安装Ollama。
- 安装完成后,运行以下命令启动Llama 3 70B模型:
ollama run llama3:70b
- 启动SimGRAG所需服务:
bash ollama_server.sh
- 安装Nomic嵌入模型:
- 克隆Nomic嵌入模型:
mkdir -p data/raw cd data/raw git clone https://huggingface.co/nomic-ai/nomic-embed-text-v1
- 安装Milvus:
- 访问Milvus官网,按照文档安装Milvus。
- 安装完成后,启动Milvus服务。
数据准备
- MetaQA数据集:
- 下载MetaQA数据集并放置在
data/raw
文件夹中。
- 下载MetaQA数据集并放置在
- FactKG数据集:
- 下载FactKG数据集并放置在
data/raw
文件夹中。
- 下载FactKG数据集并放置在
运行管道
- MetaQA:
- 运行以下命令进行索引和查询:
cd pipeline python metaQA_index.py python metaQA_query1hop.py python metaQA_query2hop.py python metaQA_query3hop.py
- FactKG:
- 运行以下命令进行索引和查询:
bash
cd pipeline
python factKG_index.py
python factKG_query.py
- 运行以下命令进行索引和查询:
配置文件
- 配置文件位于
configs
文件夹中,用户可以根据需求修改配置文件以适应不同的任务和数据集。
结果查看
- 查询结果将保存在配置文件中指定的输出文件中,例如
results/FactKG_query.txt
。每行结果是一个字典,键correct
表示最终答案的正确性。
通过以上步骤,用户可以快速上手使用SimGRAG进行知识图谱驱动的检索增强生成任务。