前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >localGPT——一款100%本地布署且支持LangChain的应用

localGPT——一款100%本地布署且支持LangChain的应用

作者头像
山行AI
发布于 2023-06-14 08:16:08
发布于 2023-06-14 08:16:08
6.7K00
代码可运行
举报
文章被收录于专栏:山行AI山行AI
运行总次数:0
代码可运行

前言

在AI盛行的当下,我辈AI领域从业者每天都在进行着AIGC技术和应用的探索与改进,今天主要介绍排到github排行榜第二名的一款名为localGPT的应用项目,它是建立在privateGPT的基础上进行改造而成的。

我认为这个项目最大的亮点在于:

1.使用LLM的力量,无需互联网连接,就可以向你的文档提问。100%私密,任何数据都不会离开你的执行环境。你可以摄取文档并提问,无需互联网连接!2.使用LangChain和Vicuna-7B以及InstructorEmbeddings构建。可以借助LangChain构建更高级能力的pipeline。

项目的github地址:https://github.com/PromtEngineer/localGPT

localGPT

这个项目的灵感来自于原始的privateGPT(https://github.com/imartinez/privateGPT)。这里的大部分描述都受到了原始privateGPT的启发。

针对privateGPT,笔者之前有过专门的文章介绍:privatGPT——私有化GPT模型的全新应用

在这个模型中,我已经将GPT4ALL模型替换为Vicuna-7B模型,并且我们使用InstructorEmbeddings代替原始privateGPT中使用的LlamaEmbeddings。无论是Embeddings还是LLM都将在GPU上运行,而不是CPU。如果你没有GPU,它也支持CPU(下面有指令)。

使用LLM的力量,无需互联网连接,就可以向你的文档提问。100%私密,任何数据都不会离开你的执行环境。你可以摄取文档并提问,无需互联网连接!

使用LangChain和Vicuna-7B以及InstructorEmbeddings构建。

环境设置

为了设置运行这里的代码的环境,首先安装所有需求:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install -r requirements.txt

测试数据集

这个仓库使用美丽国宪法作为一个例子。

摄取你自己的数据集的指令

将你所有的.txt、.pdf或.csv文件放入SOURCE_DOCUMENTS目录

在load_documents()函数中,将docs_path替换为你的source_documents目录的绝对路径。

运行以下命令摄取所有数据。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python ingest.py

它将创建一个包含本地vectorstore的索引。根据你的文档的大小,可能需要一些时间。

你可以摄取任意数量的文档,所有的文档都将累积在本地embeddings数据库中。

如果你想从一个空数据库开始,删除索引。

注意:当你第一次运行这个时,它将需要下载embedding模型,所以可能需要一些时间。在后续的运行中,没有数据会离开你的本地环境,可以在没有互联网连接的情况下运行。

向你的文档提问,本地化!

为了提问,运行像这样的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python run_localGPT.py

等待脚本要求你的输入。

按回车键。等待LLM模型消耗提示并准备答案。一旦完成,它将打印答案和它从你的文档中使用的4个源作为上下文;然后你可以在不重新运行脚本的情况下再提一个问题,只需再次等待提示即可。

注意:当你第一次运行这个时,它将需要互联网连接下载vicuna-7B模型。之后你可以关闭你的互联网连接,脚本推理仍然会工作。没有数据会离开你的本地环境。

输入exit

结束脚本。

在CPU上运行

默认情况下,localGPT将使用你的GPU来运行ingest.py和run_localGPT.py脚本。但是,如果你没有GPU并希望在CPU上运行,现在你可以做到(警告:这将会很慢!)。你需要使用--device_type cpu标志与两个脚本一起使用。

对于摄取,运行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python ingest.py --device_type cpu

为了提问,运行像这样的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python run_localGPT.py --device_type cpu

它是如何工作的?

选择正确的本地模型和LangChain的力量,你可以在本地运行整个流程,没有任何数据离开你的环境,并且性能合理。

ingest.py使用LangChain工具解析文档并使用InstructorEmbeddings在本地创建嵌入。然后,它使用Chroma vector store将结果存储在本地向量数据库中。

run_localGPT.py使用本地LLM(在这种情况下是Vicuna-7B)来理解问题并创建答案。答案的上下文是从本地向量存储中提取的,使用相似性搜索从文档中定位正确的上下文片段。

你可以将此本地LLM替换为HuggingFace的任何其他LLM。确保你选择的任何LLM都是HF格式的。

系统要求

Python版本

要使用此软件,你必须安装Python 3.10或更高版本。早期版本的Python将无法编译。

C++编译器

如果你在pip安装过程中构建轮子时遇到错误,你可能需要在你的计算机上安装C++编译器

对于Windows 10/11

要在Windows 10/11上安装C++编译器,请按照以下步骤操作:

•安装Visual Studio 2022。•确保选择了以下组件:•通用Windows平台开发•Windows的C++ CMake工具•从MinGW网站下载MinGW安装程序。•运行安装程序并选择"gcc"组件。

NVIDIA驱动问题:

按照此页面安装NVIDIA驱动。

免责声明

这是一个测试项目,用于验证使用LLMs和向量嵌入进行问题回答的全局解决方案的可行性。它不是生产就绪的,也不是用于生产的。Vicuna-7B基于Llama模型,因此具有原始Llama许可。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 山行AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用 LangChain 构建文档问答助手
随着大语言模型(LLM)的广泛应用,越来越多企业和个人希望利用它来实现“基于文档的智能问答”功能。例如:
IT蜗壳-Tango
2025/04/09
1240
llama2+localGPT打造纯私有知识助手
PromtEngineer/localGPT 把这些工作就包装好了,我们可以直接部署使用,甚至也可以跟本地的UI工具做一个集成
王清培
2024/04/01
2820
llama2+localGPT打造纯私有知识助手
Windows系统本地部署LocalGPT构建自己的私有知识库
本文主要介绍如何本地部署LocalGPT并实现远程访问,由于localGPT只能通过本地局域网IP地址+端口号的形式访问,实现远程访问还需搭配cpolar内网穿透。
ImAileen
2024/06/18
2630
Windows系统本地部署LocalGPT构建自己的私有知识库
privatGPT——私有化GPT模型的全新应用
借助大型语言模型(LLMs)的力量,无需网络连接,即可对文档提出问题。100%私有化,数据在任何时候都不会离开您的执行环境。您可以摄入文档并提出问题,而无需网络连接!
山行AI
2023/06/14
1.6K0
privatGPT——私有化GPT模型的全新应用
【RAG】内部外挂知识库搭建-本地GPT
搭建local GPT:https://github.com/PromtEngineer/localGPT ==》本地版的 GPT,可以下載 source code
天天Lotay
2024/04/04
8070
【LangChain系列7】【LangChain实战—客服机器人项目】
总结: LangChain是一个用于开发由LLM支持的应用程序的框架,通过提供标准化且丰富的模块抽象,构建LLM的输入输出规范,主要是利用其核心概念chains,可以灵活地链接整个应用开发流程。(即,其中的每个模块抽象,都是源于对大模型的深入理解和实践经验,由许多开发者提供出来的标准化流程和解决方案的抽象,再通过灵活的模块化组合,才得到了langchain)
知冷煖
2025/01/14
3220
【LangChain系列3】【检索模块详解】
总结: LangChain是一个用于开发由LLM支持的应用程序的框架,通过提供标准化且丰富的模块抽象,构建LLM的输入输出规范,主要是利用其核心概念chains,可以灵活地链接整个应用开发流程。(即,其中的每个模块抽象,都是源于对大模型的深入理解和实践经验,由许多开发者提供出来的标准化流程和解决方案的抽象,再通过灵活的模块化组合,才得到了langchain)
知冷煖
2025/01/07
2090
使用​​langchain​​搭建自己的本地知识库系统
RAG 是retrieval-augmented-generation的缩写,翻译为中文的意思就检索增强,以基于最新,最准确的数据建立LLM 的语料知识库。
用户1418987
2024/09/06
7220
使用​​langchain​​搭建自己的本地知识库系统
什么是检索增强生成(又名 RAG-Retrieval-Augmented Generation)及相关引用文档
检索增强生成是一种利用来自特定相关数据源的信息来增强生成式 AI 模型的准确性和可靠性的技术。
晓兵
2025/03/23
1740
什么是检索增强生成(又名 RAG-Retrieval-Augmented Generation)及相关引用文档
【腾讯云云上实验室】向量数据库+LangChain+LLM搭建智慧辅导系统实践
得益于深度学习的快速发展和数据规模的不断扩大,以GPT、混元、T5等为代表的大语言模型具备了前所未有的自然语言处理和生成能力,然而,在实际应用中,大语言模型的高效存储、检索和推理成为了一个新的挑战。
中杯可乐多加冰
2023/11/25
1.7K1
使用 LangChain 和 Elasticsearch 实现隐私优先的人工智能搜索
过去几个周末,我一直沉浸在“即时工程”的迷人世界中,学习Elasticsearch® 等向量数据库如何通过充当长期记忆和语义知识存储来增强 ChatGPT 等大型语言模型 (LLM)。然而,困扰我和许多其他经验丰富的数据架构师的一件事是,许多教程和演示完全依赖于向大型网络公司和基于云的人工智能公司发送您的私人数据。
点火三周
2023/07/25
2.7K0
使用 LangChain 和 Elasticsearch 实现隐私优先的人工智能搜索
基于LangChain的优秀项目资源库
在AI盛起的当下,各类AI应用不断地出现在人们的视野中,AI正在重塑着各行各业,LangChain是从事AI应用开发的人员或多或少都会接触到的框架。LangChain是一个令人惊叹的框架,可以在极短的时间内完成LLM项目,其生态系统正在快速发展。
山行AI
2023/06/26
2.9K0
基于LangChain的优秀项目资源库
使用Llama.cpp在CPU上快速的运行LLM
大型语言模型(llm)正变得越来越流行,但是它需要很多的资源,尤其时GPU。在这篇文章中,我们将介绍如何使用Python中的llama.cpp库在高性能的cpu上运行llm。
deephub
2023/08/30
2K0
使用Llama.cpp在CPU上快速的运行LLM
基于InternLM和LangChain搭建自己的知识库
为了突破LLM的局限性,目前有两种范式可行:RAG(检索增强生成)和Finetune(模型微调)。
阿提说说
2024/03/01
1.1K0
基于InternLM和LangChain搭建自己的知识库
FastChat——一个用于训练、部署和评估基于大型语言模型的聊天机器人的开放平台
在AI盛起的当下,各类AI应用不断地出现在人们的视野中,AI正在重塑着各行各业。相信现在各大公司都在进行着不同程度的AI布局,有AI大模型自研能力的公司毕竟是少数,对于大部分公司来说,在一款开源可商用的大模型基础上进行行业数据微调也正在成为一种不错的选择。
山行AI
2023/06/26
35.8K0
FastChat——一个用于训练、部署和评估基于大型语言模型的聊天机器人的开放平台
langchain中的召回增强生成(RAG)一览
RAG是一种通过额外的、通常是私有或实时的数据来增强LLM知识的技术。LLM能够推理各种广泛的主题,但它们的知识仅限于它们训练时的公共数据,到达其特定时间节点为止。如果你想构建可以推理私人数据或在模型截止日期之后引入的数据的人工智能应用程序,你需要用特定信息增强模型的知识。将适当的信息带入并插入到模型提示中的过程被称为“检索增强生成”(RAG)。
山行AI
2023/12/12
4.5K0
langchain中的召回增强生成(RAG)一览
解码 LangChain|用 LangChain 和 Milvus 从零搭建 LLM 应用
作为开发 LLM 应用的框架,LangChain 内部不仅包含诸多模块,而且支持外部集成;Milvus 同样可以支持诸多 LLM 集成,二者结合除了可以轻松搭建一个 LLM 应用,还可以起到强化 ChatGPT 功能和效率的作用。
Zilliz RDS
2023/08/25
1.4K0
解码 LangChain|用 LangChain 和 Milvus 从零搭建 LLM 应用
搭建企业内部的大语言模型系统
PrivateGPT 提供了一个 API,其中包含构建私有的、上下文感知的 AI 应用程序所需的所有构建块。该 API 遵循并扩展了 OpenAI API 标准,支持普通响应和流响应。这意味着,如果您可以在您的工具之一中使用 OpenAI API,则可以使用您自己的 PrivateGPT API,无需更改代码,并且如果您在本地模式下运行 privateGPT,则免费。
霍格沃兹测试开发Muller老师
2024/09/10
1910
基于LangChain+GLM搭建知识本地库
一种利用langchain思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
计算机视觉研究院
2023/08/24
1.1K0
基于LangChain+GLM搭建知识本地库
打造自己的AIGC应用(一)入门篇
其实细数AI的发展历程非常之久,而让AI的应用一下子出现在人们眼前的其实就是ChatGPT的出现,这意味着AIGC应用已经从概念为王变的非常实用了。伴随着ChatGPT的出现,大量的开源大模型也如雨后春笋一样出现。就现在而言,打造一个自己的AIGC应用已经非常简单了。
LoRexxar
2023/10/17
4.4K1
打造自己的AIGC应用(一)入门篇
推荐阅读
相关推荐
用 LangChain 构建文档问答助手
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验