微信扫码
添加专属顾问
我要投稿
为在本地环境中部署GraphRAG,需配置两种模型:一是用于实体提取与摘要的
LLM(大型语言模型)
,二是用于数据向量化的Embedding模型
。当前,GraphRAG采用的是OpenAI提供的模型,故部署的核心在于选用兼容OpenAI API标准的模型以实现替代。今天带大家一起沉浸式体验本地运行GraphRAG
,并且在支持中文
graph构建上做了一些优化改进
。
pip install graphrag
首先,创建 input
目录:
mkdir -p ./ragtest/input
随后,将文本材料放到 input
目录下。注意 GraphRAG 仅支持 txt 文件,编码格式必须为 utf-8。我这里选用《红楼梦》中,林黛玉初入荣国府一节。
由于篇幅过长,具体文件已放在云盘【若需要私信关键词:2024001】
也可以使用官方提供的英文材料:
curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt > ./ragtest/input/book.txt
首先,运行工作区初始化命令:
python -m graphrag.index --init --root ./ragtest
这一命令将在 ./ragtest
目录中创建两个文件:.env
和 settings.yaml
.env
包含运行 GraphRAG 管道所需的环境变量。如果检查该文件,您将看到定义的单个环境变量 GRAPHRAG_API_KEY=<API_KEY>
。这是 OpenAI API 或 Azure OpenAI 终结点的 API 密钥。因为我们将要替换掉 OpenAI 模型,所以不用对其进行操作更改。
settings.yaml
包含管道的设置。我们需要在其中对两个模型的设置进行更改,这里截取更改了的 LLM 和 Embedding 部分:
llm:
api_key: ${GRAPHRAG_API_KEY}
type: openai_chat # or azure_openai_chat
model: Qwen2-72B-Instruct
model_supports_json: false
max_tokens: 2000
# request_timeout: 180.0
api_base: http://11.0.0.1:8000/v1 # 根据部署的实际情况进行更改
tokens_per_minute: 30000
requests_per_minute: 30
top_p: 0.99 # top-p sampling
embeddings:
## parallelization: override the global parallelization settings for embeddings
async_mode: threaded
llm:
api_key: xinference
type: openai_embedding
model: bge-m3
api_base: http://10.0.0.1:9998/v1 # 根据部署的实际情况进行更改
其中,Embedding 模型用 Xinference 在 3090 服务器上运行了 bge-m3,部署和运行参考:Docker 镜像 — Xinference【https://github.com/alibaba/xinference】
另外,为了适配我们模型的参数,使得局部搜索有输出,需要把 local search
部分的 max_tokens
调小,可以选取 4000。
由于微软 GraphRAG 初始语言为英文,因此如果要运行中文文本,建议做出一定的改进措施。
文档切分策略
替换 graphrag/index/verbs/text/chunk/strategies/tokens.py
即可。官方分块把文档按照 token 数进行切分,对于中文来说容易在 chunk 之间出现乱码,参考 Langchain-ChatChat 开源项目中用中文字符数进行切分。
由于篇幅过长,具体实现已放在云盘【若需要私信关键词:2024002】
prompt优化
原本的四个 prompt 都由英文书写,并要求 LLM 使用英文输出。为了更好地运行中文内容,把四个 Prompt 翻译成中文,且要求中文输出。
由于篇幅过长,精心翻译的中文 prompt 文件已放在云盘【若需要私信关键关键词:2024003】
python -m graphrag.index --root ./ragtest
提示:All workflows completed successfully 后,即可进行查询。
python -m graphrag.query --root ./ragtest --method global "故事的主旨是什么?"
python -m graphrag.query --root ./ragtest --method local "贾母对宝玉的态度怎么样?"
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-03-10
milvus lite快速实践-了解RAG落地背后的机制
2025-03-09
为什么RAG系统要拥抱向量检索?揭示关键字检索的致命弱点!
2025-03-09
不要盲目再使用DeepSeek R1和QWQ这些推理模型做RAG了
2025-03-07
r1-reasoning-rag:一种新的 RAG 思路
2025-03-05
提高企业 RAG 准确性的分步指南
2025-03-05
DeepSeek-R1 x Agentic RAG:构建带"深度思考"开关的知识研究助理|深度长文
2025-03-05
通过Milvus内置Sparse-BM25算法进行全文检索并将混合检索应用于RAG系统
2025-03-05
本地部署DeepSeek R1 + Ollama + XRAG:三步搭建RAG系统,并解锁全流自动化评测
2024-09-04
2024-10-27
2024-07-18
2024-05-05
2024-06-20
2024-06-13
2024-07-09
2024-07-09
2024-05-19
2024-07-07
2025-03-05
2025-03-03
2025-03-02
2025-02-28
2025-02-24
2025-02-23
2025-02-15
2025-02-12