有没有接做网站私活的平台,扁平化网站设计欣赏,互联网营销是干嘛的,用域名建设网站系列文章目录
玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 文章目录 系列文章目录前言下载和安装用下载项目的方式下载并安装用pip方式下载并安装 生成知识图谱初始化文件夹修改模型配置修改知识库生成配置创…系列文章目录
玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 文章目录 系列文章目录前言下载和安装用下载项目的方式下载并安装用pip方式下载并安装 生成知识图谱初始化文件夹修改模型配置修改知识库生成配置创建索引 搜索 前言
GraphRAG是微软开发并开源的一种图基检索增强生成Graph-based Retrieval Augmented Generation框架。GraphRAG结合了知识图谱Knowledge Graph和大型语言模型LLM的技术优势旨在提升信息处理和问答能力。其基本原理在于通过知识图谱从非结构化文本中提取结构化信息并利用大型语言模型的生成能力为用户提供准确、全面的回答。在本篇中将介绍如何使用GraphRAG结合大模型构建知识图谱。
下载和安装
下载过程分为两种一种是下载项目另外一种是直接使用pip下载两种用法最后的效果是一致的如果不需要修改源码可以选择pip方式下载这样比较方便。但在本篇中两种都会提到读者可以根据自己喜好选择。 用下载项目的方式下载并安装
下载 项目地址https://github.com/microsoft/graphrag 为了方便大家下载这里把git下载方式直接放到这里直接执行就好。 安装
git clone https://github.com/microsoft/graphrag.git 切换到graphrag的下载目录配置好虚拟环境之后在命令行执行以下命令安装poetry资源包管理工具及相关依赖.
pip install poetry
poetry install用pip方式下载并安装
没错用pip方式下载只需要执行一个命令行就可以了
pip install graphrag生成知识图谱
初始化文件夹
首先在项目文件夹下新建一个文件夹笔者新建的文件夹为./ragtest如果是用项目方式下载直接在项目下新建如果是使用pip方式下载的新建一个项目在新建的项目里新建文件夹。 再在./ragtest文件夹下新建一个input文件夹将要生成知识图谱的文件放到input文件夹中。注意只能是txt文件编码格式必须为 utf-8。
然后在命令行执行以下命令
graphrag init --root ./ragtest执行命令后会生成配置文件settings.yaml和提示词模板prompts 修改模型配置
在修改之前我们首先需要下载相关模型在本篇中使用的是Ollama 使用Ollama下载语言模型mistral和编码模型nomic-embed-text
ollama pull mistral
ollama pull nomic-embed-text下载完可以使用ollama list查看一下有没有下载成功
不过当前的模型并不能直接拿来使用我们需要修改一下不如可能会出现一些奇怪的错误笔者遇到的问题是在生成entities时识别不到entity。
ollama show --modelfile mistral:latest Modelfile打开Modelfile文件在PARAMETER后面这里添加配置。
PARAMETER num_ctx 10000然后使用ollama根据配置创建新的模型
ollama create mistral:10k -f Modelfile修改知识库生成配置
因为我们构建知识库的过程中需要使用到大语言模型和embedding模型所有需要将设置修改为我们所使用的模型。 打开初始化文件目录笔者的目录是./ragtest/settings.yaml修改以下两部分将llm.model修改为mistral:10k将llm.api_base修改为http://localhost:11434/v1将embeddings.llm.model修改为nomic-embed-text将embeddings.api_base修改为http://localhost:11434/v1
llm:api_key: ${GRAPHRAG_API_KEY}type: openai_chat # or azure_openai_chatmodel: mistral:10kmodel_supports_json: false # recommended if this is available for your model.# max_tokens: 4000# request_timeout: 180.0api_base: http://localhost:11434/v1embeddings:## parallelization: override the global parallelization settings for embeddingsasync_mode: threaded # or asynciollm:api_key: ${GRAPHRAG_API_KEY}type: openai_embedding # or azure_openai_embeddingmodel: nomic-embed-textapi_base: http://localhost:11434/v1创建索引
构建索引的过程就是构建知识图谱的过程同样的读者需要将笔者的路径替换为自己的路径。
graphrag index --root ./ragtest如果运行显示如下说明创建成功
搜索
查询分为局部搜索Local Search和全局搜索Global Search。当用户的问题需要理解输入文档中提到的特定实体需要详细了解某个实体及其相关信息时局部搜索非常有效。而全局搜索在跨数据集进行信息总结上要优于局部搜索。 局部搜索
graphrag query --root ./ragtest --method local --query 要查询的问题全局搜索
graphrag query --root ./ragtest --method global --query 主要内容是什么