有人问我怎么构建自己的 gpt?
正好这里有个开源项目,可以自己部署,构建自己的专属 gpt。
自己部署的最大好处就是没有数据安全泄露问题 ,毕竟数据隐私这一块还是相当重要的。
这个项目是:Langchain-Chatchat
这个项目目前已经有 27k+ starts, 129 位贡献者,虽然比不上 原生的 langchain 的框架,但已经想当不错了。
Langchain-Chatchat 是基于 Langchain 与大语言模型的本地知识库问答。
可以实现与LLM对话
、知识库问答
、文件对话
、搜索引擎问答
、自定义Agent问答
等功能,可以满足大部分的需求。
这个项目好是好,但是初次部署存在一些坑,本文教你一步步配置 ,启动 Langchain-Chatchat,可以收藏,留作后用。
无论你是云端,还是本机,都可以,只不过有些环境不同。
这里以AutoDL云端服务器
为例,镜像可采用 https://www.codewithgpu.com/i/chatchat-space/Langchain-Chatchat/Langchain-Chatchat
模型采用Qwen/Qwen-1_8B-Chat
,向量检索模型采用bge-large-zh-v1.5
。
本文的目的是先跑起来 ,至于里面向量检索模型是用什么?还能用什么大模型,还有什么更加好玩的地方?是否能自己修改开发,后面再继续讨论。
预备下载
1、下载项目
https://github.com/chatchat-space/Langchain-Chatchat
无论是什么环境,采用 git clone 也好,还是直接下载压缩包也好,把 Langchain-Chatchat 下载到服务器就行。
AutoDL 我采用下载 ZIP 压缩包到本地,然后在上传的方式。
2、下载 LLM 模型
之前写过怎么能够快速的下载模型,可以看之前的文章。
这里采用 python 脚本 snapshot 的下载方式。
(1) export HF_ENDPOINT=https://hf-mirror.com
(2)
from huggingface_hub import snapshot_download
snapshot_download(repo_id='Qwen/Qwen-1\_8B-Chat',
repo_type='model',
local_dir='./Qwen/Qwen-1\_8B-Chat',
resume_download=True)
3、下载向量模型
采用模型是 bge-large-zh-v1.5
(1) export HF_ENDPOINT=https://hf-mirror.com
(2)
from huggingface_hub import snapshot_download
snapshot_download(repo_id='BAAI/bge-large-zh-v1.5',
repo_type='model',
local_dir='./BAAI/bge-large-zh-v1.5',
resume_download=True)
下载上面的项目和模型之后,记住模型的 local_dir 位置,到时候要填写其绝对路径
,切记,相对路径也可以,只要你能搞清楚路径的存储都没问题,绝对路径相对大多数人来说,简单一些。
项目配置
上面已经下载了项目,进到项目之后,开始配置。
1、先配置 model 所需要的
先执行 python copy_config_example.py
执行之后,进入到 cd configs/
这里要先修改 model_config.py
找到 EMBEDDING_MODEL
和 LLM_MODELS
两个变量,修改为下面的值。
多说一嘴,LLM_MODELS
可以是多个,默认是第一个,但是要写多个的话,记得模型路径都得配置好。
# 选用的 Embedding 名称
EMBEDDING_MODEL = "bge-large-zh-v1.5"
LLM_MODELS = ["Qwen-1\_8B-Chat"]
第二步,修改下面的两处为模型的绝对路径,很重要。
上面的配置之后,模型这部分就告一段落。
2、配置启动服务
配置 server_config.py
这里是 autoDL 的一个坑,端口 👌 号要修改和 autodl 的一致。
autodl 的在这里看, 自定义服务
第二个要修改的地方。
"Qwen-1_8B-Chat" 的 device 改为 "cuda"
以上 修改model_config.py
和 server_config.py
之后,配置就算 ok 了。
数据库初始化
回到项目目录,执行下面命令,正常的情况下,1-2 分钟就 ok 了。
python init_database.py --recreate-vs
扩展一下,这里加载的是 Langchain-Chatchat/knowledge_base/samples/content
里面的文档,构建的向量索引存储在 Langchain-Chatchat/knowledge_base/samples/vector_store/bge-large-zh-v1.5
下面。
以上所有的初始化工作都已经结束,可以启动服务了。
启动服务
autoDL 启动这个服务之前,要开启自定义服务。
然后执行命令:python startup.py -a
不出意外的话,启动成功之后就出现下面的URL
访问 WebUI 界面:http://localhost:6006/
初次使用
1、LLM 对话
这里默认加载的是你刚才配置的Qwen-1_8B-Chat
大模型。
可以直接对话聊天。
2、知识库问答
这里要先进行知识库管理
,上传文件,并添加到知识库,这里能够看到是采用 faiss
构建的向量索引。
最后可以对知识库管理,修改之后保存更改就行,还是很友好的 UI 界面。
测试一下效果。
3、文件对话
还有文件对话功能,上传你的文件,类似之前的 chatpdf 的功能,还有现在的 kimi 一样的功能。
那么请问文件对话和知识库问答有什么区别呢?
4、搜索引擎
除了上面的功能之外,还可以借助搜索引擎的功能完成搜索。
这个需要设置搜索引擎的 key。
以上就是用 Langchain-Chatchat 构建自己的专属 gpt,新手启动服务的配置,这样应该可以了吧,有问题群里交流。
总结一下
langchain 这个框架包括衍生出来的 Langchain-Chatchat 还是很值得大家关注的,对于有私有数据,不方便上传到 gpt 的,可以自己搭建这种功能的服务。
另外,langchain 这个框架的发展速度是想当惊人的,现在已经有 83k 的 start,也就是 8 万 3 千多人,项目贡献者已经超多了 2600 人,是值得大家关注学习的。
<-End->
往期推荐
免魔法,非套壳API,国内使用GPT plus,和官网功能一模一样,强烈推荐!
Meta AI开源迄今为止功能最强大的开源模型Llama3,如何体验呢?
Kimi 太慢了,200万字上下文还没开放,不等了,先用下kimi的插件
我是大林,持续关注 AIGC 趋势发展,和大家一起交流。微信(dalinvip2023),备注【公众号 AIGC】,进 AIGC 交流群一起交流。
如果文章对你有一点点 🤏🏻 帮助,关注公众号并星标,可以及时收到最新 AI 信息,点赞、在看、帮忙转发给更多的朋友,是最大的支持,谢谢。