GraphRAG+Ollama运行本地大模型
GraphRAG+Ollama运行本地大模型
《大模型与Agent开发实战》(12月班)体验课
GraphRAG+ollama本地部署流程实战
本节目录
-
GraphRAG项目回顾
- 微软开源的GraphRAG项目简介
- GraphRAG+ollama本地部署优势
-
Ollama项目介绍与核心功能速览
- Ollama项目介绍
- Ollama运行所需硬件支持
- Ollama快速使用方法
- 使用ModelScope平台上的GGUF格式的大模型
-
创建适配GraphRAG的本地ollama+大模型运行环境
- Step 1.使用pip安装graphrag
- Step 2.创建检索项目文件夹
- Step 3.上传数据集
- Step 4.初始化项目文件
- Step 5.修改项目配置
-
GraphRAG源码修改
-
基于Ollama+GraphRAG的本地知识检索增强流程
一、GraphRAG项目回顾

-
微软开源的GraphRAG项目简介
检索增强生成(RAG) 是一种通过结合真实世界的信息来提升大型语言模型(LLM)输出质量的技术。RAG 技术是大多数基于 LLM 的工具中的一个重要组成部分。大多数 RAG 方法使用 向量相似性 作为检索技术,我们将其称为 基线 RAG(Baseline RAG)。
GraphRAG 则使用 知识图谱 来在推理复杂信息时显著提升问答性能。当需要对复杂数据进行推理时,GraphRAG 展示了优于基线 RAG 的性能,特别是在 知识图谱 的帮助下。
RAG 技术在帮助 LLM 推理私有数据集方面显示了很大的潜力——例如,LLM 没有在训练时接触过的、企业的专有研究、业务文档或通信数据。基线 RAG 技术最初是为了解决这个问题而提出的,但我们观察到,在某些情况下,基线 RAG 的表现并不理想。以下是几个典型的场景:
- 基线 RAG 很难将信息串联起来:当一个问题的答案需要通过多个不同的信息片段,并通过它们共享的属性来连接,进而提供新的综合见解时,基线 RAG 表现得很差。
- 例如,在回答类似“如何通过现有的数据推断出新结论”这种问题时,基线 RAG 无法很好地处理这些散布在不同文档中的相关信息,它可能会遗漏一些关键联系点。
- 基线 RAG 无法有效理解大型数据集或单一大文档的整体语义概念:当被要求在大量数据或复杂文档中进行总结、提炼和理解时,基线 RAG 往往表现不佳。
- 例如,如果问题要求对整个文档或多篇文档的主题进行总结和理解,基线 RAG 的简单向量检索方法可能无法处理文档间的复杂关系,导致对全局语义的理解不完整。
为了应对这些挑战,技术社区正在努力开发扩展和增强 RAG 的方法。微软研究院(Microsoft Research)提出的 GraphRAG 方法,使用 LLM 基于输入语料库构建 知识图谱。这个图谱与社区总结和图谱机器学习输出结合,能够在查询时增强提示(prompt)。GraphRAG 在回答以上两类问题时,展示了 显著的改进,尤其是在 复杂信息的推理能力 和 智能性 上,超越了基线 RAG 之前应用于私有数据集的其他方法。
-
GraphRAG+ollama本地部署优势
接下来我们考虑将GraphRAG与Ollama本地部署结合使用,能够显著提升知识图谱构建与查询的效率,且具备多方面的优势:
- 高效的数据处理与查询:GraphRAG采用图神经网络和图计算技术,能够快速处理海量数据,并基于深度学习生成精确的知识图谱。结合Ollama的本地大语言模型,可以在无需依赖外部云服务的情况下,直接在本地环境中进行快速、精准的查询和推理,大大减少了网络延迟和外部API调用的依赖。
- 数据隐私与安全性:本地部署意味着数据无需上传至外部服务器,能够完全控制数据访问和处理流程。这对于需要严格数据隐私保护的企业和机构来说,是一个至关重要的优势,确保了敏感信息不会泄露或受到不必要的访问。
- 可定制化与灵活性:GraphRAG和Ollama都提供了高灵活性的API接口,用户可以根据自己的需求定制图谱构建流程和查询策略。同时,本地部署可以根据具体的硬件资源进行优化,提供更高的计算性能和可扩展性。
- 减少云计算费用:通过将GraphRAG与Ollama部署在本地服务器,企业可以减少对云计算资源的依赖,降低长期的运营成本,尤其是对需要频繁进行大规模图谱查询和处理的场景,能够显著节省云服务费用。
- 实时响应与高吞吐量:结合本地部署的硬件优势,GraphRAG与Ollama能够实现实时的知识图谱查询和生成,满足对高吞吐量和快速响应的需求。这对于实时数据分析、决策支持系统等应用场景尤为重要。
- 无缝集成与扩展性:GraphRAG与Ollama的本地部署不仅能无缝集成现有的IT基础设施,还能够随着业务需求的变化灵活扩展。用户可以根据自己的应用场景,进一步集成其他工具和框架,形成强大的知识处理与推理平台。
通过GraphRAG和Ollama的本地部署,企业和开发者能够在保证数据安全和隐私的前提下,实现高效、灵活、低成本的知识图谱构建与查询,推动智能决策和业务创新。
二、Ollama项目介绍与核心功能速览
1.Ollama项目介绍
Ollama 是一个开源的大语言模型服务工具,专注于简化本地模型的创建、管理和部署流程。它允许用户轻松部署和管理多种流行的开源模型,如 Llama、Mistral 和 Code Llama。以下是 Ollama 的一些主要特点和功能:
主要特点:
- 简化部署:
Ollama 通过将模型权重、配置和数据捆绑到一个称为 Modelfile 的包中,简化了模型的安装和配置过程,使得用户可以更方便地管理和运行这些模型。 - 跨平台支持:
Ollama 支持多种操作系统,包括 macOS、Linux 和 Windows。用户只需下载相应平台的安装包即可快速安装和使用。 - 命令行操作:
用户可以通过简单的命令行指令来启动和运行模型。例如,运行一个模型只需执行类似 ollama run model_name 的命令。 - 资源要求:
相较于传统部署调用模型的方法,Ollama模型支持推理的均为量化后的模型,这种方式对硬件资源的需求更低,更适合开发者快速上手。 - API 接口:
Ollama 提供了类似 OpenAI 的 API 接口,用户可以通过这些接口与模型进行交互,支持热加载模型文件,无需重新启动即可切换不同的模型。
Ollama 非常适合需要在本地运行大语言模型的开发者和企业,如:
- 开发和测试:在本地快速创建和测试新的语言模型。
- 隐私保护:在本地部署模型,适用于有严格隐私需求的企业。
- 多模型管理:轻松管理和部署多个模型,适合有大量模型管理需求的团队。
Ollama 适用于学术研究、个人项目开发以及企业知识库问答等多种场景,帮助用户在本地环境中快速实验和部署大型语言模型。
总的来说,Ollama 为希望在本地运行和实验大型语言模型的用户提供了一个方便且高效的解决方案。
2.Ollama运行所需硬件支持
下列表格是Ollama支持的全部显卡的列表,大家可以参考来确定自己的设备是否可以使用该推理框架。
Nvidia英伟达系列显卡:

AMD系列显卡:
- Linux环境:

- Windows环境:

3.Ollama快速使用方法
本小节快速介绍如果上手使用Ollama并完成一次模型的部署、启动。
在搜索栏(Search models)中输入你想要的模型的名称,在下方界面便会显示平台上支持的模型列表:

这里以qwen2.5为例进行部署演示:

每个模型下面有支持的功能和参数型号以及基本的模型描述,点击进入对应模型可以看到下载所需占用的内存大小。

点击左边下拉列表可以选择不同参数的模型,大家可以根据自己的硬件条件和使用需要来选择对应的模型,在右侧会显示对应模型的启动代码。
使用7b模型需要6G左右的显存,14b模型需要12G左右的显存,72b模型需要60G的显存进行推理。

下载模型
在终端中执行命令 ollama run qwen2.5:72b ,即可下载 qwen2.5:72b 模型。模型下载完成后,会自动启动大模型,进入命令行交互模式,直接输入指令,就可以和模型进行对话了对应参数的模型的下载方式可以通过在Ollama官网查看到下载指令。当出现success字样的时候说明下载成功,当出现>>>图标的时候可以进行对话交互了。
ollama run qwen2.5:72b

完成下载后会直接进入模型启动状态,如果退出或刷新界面,再次输入指令ollama run qwen2.5:72b即可启动对应模型。
可以看到推理所需的计算资源相对均匀的分布在每张工作显卡上。

如果想结束对话,直接在对话栏中输入/bye即可结束进程。

4.使用ModelScope平台上的GGUF格式的大模型
Ollama现已支持modelscope上托管的GGUF格式的大模型部署推理。(需要Ollama版本不小于0.3.12)
如果要使用的模型不在 Ollama 模型库,可以通过选择GGUF (GPT-Generated Unified Format)模型来实现部署、使用。
GGUF 是由 llama.cpp 定义的一种高效存储和交换大模型预训练结果的二进制格式。
Ollama 支持采用 Modelfile 文件中导入 GGUF 模型。
- Ollama 是一个基于开源推理引擎 llama.cpp 构建的大模型推理工具框架。借助底层引擎的高效推理能力以及对多种硬件的适配支持,Ollama 可以在包括 CPU 和 GPU 在内的多种硬件环境上运行各种精度的 GGUF 格式大模型。通过简单的命令行操作,即可快速启动 LLM 模型服务。
- ModelScope 社区托管了数千个高质量的 GGUF 格式大模型,并支持与 Ollama 框架和 ModelScope 平台的无缝对接。用户只需使用简单的 ollama run 命令,即可直接加载并运行 ModelScope 模型库中的 GGUF 模型。
ModelScope官网链接如下:https://www.modelscope.cn/models
使用Ollama下载和使用GGUF格式的模型在方法上没有变化,依旧是在命令行中输入以下命令即可实现:
ollama run modelscope.cn/{model-id}
其中model-id的具体格式为{username}/{model},这个信息可以在modelscope上每个模型自己的标签页上查看并复制。

三、创建适配GraphRAG的本地ollama+大模型运行环境
Step 1.基础环境搭建
- 创建虚拟环境
conda create --name graphrag-ollama python=3.10
conda init
source ~/.bashrc
conda activate graphrag-ollama
conda install jupyterlab
conda install ipykernel
python -m ipykernel install --user --name graphrag-ollama --display-name "Python (graphrag-ollama)"
- 安装魔搭社区
pip install modelscope
!pip install modelscope
Looking in indexes: http://mirrors.aliyun.com/pypi/simple
Requirement already satisfied: modelscope in /root/miniconda3/envs/graphrag/lib/python3.11/site-packages (1.20.1)
Requirement already satisfied: requests>=2.25 in /root/miniconda3/envs/graphrag/lib/python3.11/site-packages (from modelscope) (2.32.3)
Requirement already satisfied: tqdm>=4.64.0 in /root/miniconda3/envs/graphrag/lib/python3.11/site-packages (from modelscope) (4.67.1)
Requirement already satisfied: urllib3>=1.26 in /root/miniconda3/envs/graphrag/lib/python3.11/site-packages (from modelscope) (2.2.3)
Requirement already satisfied: charset-normalizer<4,>=2 in /root/miniconda3/envs/graphrag/lib/python3.11/site-packages (from requests>=2.25->modelscope) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /root/miniconda3/envs/graphrag/lib/python3.11/site-packages (from requests>=2.25->modelscope) (3.7)
Requirement already satisfied: certifi>=2017.4.17 in /root/miniconda3/envs/graphrag/lib/python3.11/site-packages (from requests>=2.25->modelscope) (2024.8.30)