AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


有效果!1万份PDF!做知识库+知识图谱!纯本地Qwen2生产!高并发+可拓展!番外3-2
发布日期:2024-06-30 10:48:35 浏览次数: 2206 来源:一意AI增效家



今天!内容非常简单!

#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 = llmSettings.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+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询