微信扫码
与创始人交个朋友
我要投稿
今天!内容非常简单!
#1 做知识图谱!把N份PDF,给本地大模型做!
#2 接入RAG系统!用知识图谱提升性能!
提问:“卖油翁的作者是谁?”
大模型学习知识图谱后,回答:
卖油翁的作者是欧阳修。根据提供的文本信息,“《卖油翁》 -> Written by -> 欧阳修”明确指出《卖油翁》是由欧阳修所写。此外,文本中也提到“《卖油翁》写作背景是宋英宗治平四年(1067年),欧阳修遭飞语中伤,自请外任,在出知亳州时作该文”,进一步证实了这一点。因此,可以确定卖油翁的作者是欧阳修!
它背后,三大板块在工作!大模型+知识图谱+RAG!
大模型后端:VLLM高速推理Qwen2!
知识图谱:毫秒级nebulagraph
RAG框架:llama-index
还没看到上一篇环境搭建的,一定要返回去看!搭建有问题的,一定要解决!在这里学搭建!
提升RAG性能!接入知识图谱!结合nebulagraph,生产+AI拓展两相宜!番外3
今天,就是跑代码的!现在打开雄哥上传的代码文件!跟着对照!
如果你还没获得,直接到末尾找工程师-小胖!报 “老粉” 加入!
嫌麻烦的,直接识别二维码申请!
人的专注力只有10分钟,那!话不多说!
① 进入环境及依赖说明
② VLLM推理Qwen2!高并发,快生产!
③ 加载本地数据并构建知识图谱
④ 接入Llama-index,增强检索!
许多依赖,只有linux版本,所以,win系统的朋友,你要换个电脑/系统跑了!公司生产,一般都是Linux!如果不是你的菜,马上可以关闭。
接下来!跑起来!一边跑,一边聊细节!
第一部分:进入环境及依赖说明
书接上一回!
你进入了jupyter环境,整体就是跟着代码,点一遍运行就行!
非常简单!
但,今天是想告诉你,雄哥没有在代码注解的细节!完整代码,一定要自己实操!
先把依赖装完!
!pip install llama-index-llms-vllm!pip install llama-index!pip install ipython-ngql!pip install vllm%pip install nebula3-python%pip install llama-index-graph-stores-nebula%pip install llama-index-embeddings-huggingface%pip install llama-index-embeddings-instructor%pip install jupyter-nebulagraph
有几个包,这里说一下!
这个包,是我们在jupyter链接知识图谱的拓展,没装的话,用不了啦!
ipython-ngql
安装VLLM!
高速推理框架!本次,我们直接在jupyter上推理!
vllm
你可能遇到的最多安装问题,就是这里,本地环境,依赖难倒很多人!
注意自己的cuda、pytorch、gcc版本!
基本做法,就是缺啥补啥,如果补了还不行,一定要找小胖!
第二部分:部署本地Qwen2+text2vec
非常简单,如果你本地就有大模型,没有的!去会员盘下载!
直接把你存放本地的model路径,粘贴到代码块中,即可!
要绝对路径!不能有中文!
from llama_index.llms.vllm import Vllm
llm = Vllm(
model="/media/auys/AI/models/glm-4-9b-chat",
dtype="float16",
tensor_parallel_size=1,
temperature=0,
max_new_tokens=100,
vllm_kwargs={
"swap_space": 1,
"gpu_memory_utilization": 0.9,
"max_model_len": 8192,
},
)
雄哥设置了参数0.9,上下文8192!看到这样,就说明启动成功!
看一下资源情况!加上向量模型,GPU占用约23G!
VLLM是一个大模型的推理框架,支持高并发!还不知道怎么部署,看这!
给本地大模型装氦气!高并发!推理速度翻NNN倍!Qwen+ChatGLM+Yi等全支持!接fastgpt!Vllm喂饭到嘴!
设置默认工作大模型!
这里我们设置了qwen2-7b+text2vec-large-chinese!
from llama_index.core import Settings
# 把加载的模型添加到环境设置中,定义全局模型
Settings.llm = llm
Settings.embed_model = embed_mode
第三部分:加载本地数据并构建知识图谱
这里,支持无数份PDF,当然!数据越多,处理时间越长!
加载数据后!把数据推给大模型,让大模型自行构建节点+关系!
最后,写入星云图中!
雄哥在网上找了一个示意图,大概就这样!
导入PDF数据文件夹!
这个文件夹,要把所有的pdf文件,都放在里面!然后把路径,填到下图!
系统会全部加载!
documents = SimpleDirectoryReader("/home/auys/agent_tools/datasets").load_data()
创建知识图谱空间!
如果你已经有了知识图谱,就不用创建了!没有就要创建!
名字是:llamaindex_nebula_property_graph 256的FIXED_STRING类型!
%ngql CREATE SPACE IF NOT EXISTS llamaindex_nebula_property_graph(vid_type=FIXED_STRING(256));
这里,要等10秒,再开始下一步,会有延迟,没建好,就干不了下一步!
越复杂的集群,时间可能越久!
把知识图谱接入RAG!
这里,只是接入,后面我们要让大模型生成节点,让知识图谱的内容,成为上下文,达到开头效果!
from llama_index.graph_stores.nebula import NebulaPropertyGraphStore# 加载刚刚创建的知识图谱,如果你之前创建过,把名称改一下graph_store = NebulaPropertyGraphStore(space="llamaindex_nebula_property_graph", overwrite=True)
把PDF做成知识图谱+向量!
这里!可以指定他输出一个知识图谱的json文件!想存到哪,自己改!
index = PropertyGraphIndex.from_documents(documents,property_graph_store=graph_store,vector_store=vec_store,show_progress=True,)
打印看看成果!
这里,雄哥打印了1000个节点看看!
ngql MATCH p=(v:Entity__)-[r]->(t:Entity__) RETURN p LIMIT 1000;
看一下这些图谱!
%ng_draw
到这里!知识图谱就搞掂了!
你也可以在刚刚我们安装的前端,进到系统,就可以看到啦!
那怎样去接入RAG系统中?增强我们检索!
第四部分:接入RAG
到了这!
雄哥创建了一个query_engine查询引擎!这是最基本的设置!
你可以在这个基础上拓展,甚至实现多跳查询+意图识别等复杂功能!
需要的也可留言!
回到我们代码,雄哥输入提问,他会先去知识图谱检索相似图,然后把这个些关系,发给大模型,让大模型根据图谱关系,回答!
query_engine = index.as_query_engine(include_text=True)
response = query_engine.query("卖油翁的作者是谁?")
print(str(response))
先发一个问题!
query_engine.query("卖油翁的作者是谁?")
大模型的回答!
卖油翁的作者是欧阳修。根据提供的文本信息,“《卖油翁》 -> Written by -> 欧阳修”明确指出《卖油翁》是由欧阳修所写。此外,文本中也提到“《卖油翁》写作背景是宋英宗治平四年(1067年),欧阳修遭飞语中伤,自请外任,在出知亳州时作该文”,进一步证实了这一点。因此,可以确定卖油翁的作者是欧阳修。
我们看看他背后,检索到什么图谱关系!
retriever = index.as_retriever(
include_text=False,# 这是返回原文,设置为True,如果要让知识图谱根据问题返回节点,设置为False
)
nodes = retriever.retrieve( "卖油翁的作者是谁?")
这里,让他返回检索到的节点关系!
如果设置True,会检索返回原文!
ok!
做完这篇知识图谱的板块,是给有需要的会员,一个交代了!
之前,雄哥就跑过如何制作知识图谱,今天把它在生产的角度,做出来!
并且接入RAG系统中,发挥知识图谱的价值!
这下,我们专心搞Agent项目!
就聊这么多!
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-23
一文详谈20多种RAG优化方法
2024-12-23
深入RAG工作流:检索生成的最佳实践
2024-12-23
o1 pro “碾压式”洞察:世界顶尖免疫学专家被机器深度分析“惊醒”
2024-12-23
使用 Lang Chain 和 Lang Graph 构建多代理 RAG :分步指南 + Gemma 2
2024-12-23
RAG评估框架:RAG Triad框架及其实战
2024-12-22
2个简单技巧把 RAG 检索准确率从 50% 提高到 95 %
2024-12-22
Browser-Use + LightRAG Agent:可使用 LLM 抓取 99% 的网站
2024-12-22
Dynamic RAG实战:解决知识增强中的动态更新挑战
2024-07-18
2024-05-05
2024-06-20
2024-09-04
2024-05-19
2024-07-09
2024-07-09
2024-07-07
2024-07-07
2024-06-13
2024-12-21
2024-12-14
2024-12-01
2024-11-27
2024-11-25
2024-11-06
2024-11-06
2024-11-05