当前位置:   article > 正文

【LLM_05】使用fastgpt搭建本地离线大语言模型(Chatglm3)问答+知识库平台_fastgpt本地部署

fastgpt本地部署

这个项目需要有:
1、大语言模型:ChatGLM3-6b【可替换成ChatGLM3-6b-32k】
2、词向量模型:m3e、bge【有m3e_base、m3e_large、bge_large等等,可以自行选择性能最好的向量模型】
3、监控和管理docker的工具:Portainer.io
4、系统:ubuntu20(22也一样)
5、配置docker、启动oneAPI、启动FaskGPT【具体步骤请看=》使用fastgpt高效搭建本地离线大语言模型

在这里插入图片描述

1、FastGPT 的知识库逻辑

1.1 基础概念

  • 向量:将人类的语言(文字、图片、视频等)转换为计算机可识别的语言(数组)。
  • 向量相似度:计算两个向量之间的相似度,表示两种语言的相似程度。
  • 语言大模型的特性:上下文理解、总结和推理。

1.2 FastGPT知识库的导入

在这里插入图片描述

在这里插入图片描述

1.3 FastGPT新建应用

在这里插入图片描述

(1)创建一个知识库助手

在这里插入图片描述
在这里插入图片描述
知识库小助手的工作流如上图所示:用户提问之后,根据问题首先从知识库当中匹配相似度高的答案【这里匹配使用的是词向量模型:m3e、bge等等】,之后将匹配的结果告诉大语言模型chatglm3,之后有chatglm3整理答案之后返回给用户最终的答案。

(2)创建一个python开发小助手

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
python开发小助手的工作流如上图所示:这个就比知识库小助手的更加简单了,只需要用户提问,之后再让大语言模型回答即可。

2、词向量比较测试

2.1 开启词向量模型

开启bge_large

在这里插入图片描述
在这里插入图片描述
开启m3e_base
在这里插入图片描述
开启m3e_large

在这里插入图片描述

2.2 词向量模型性能比较

首先新建一个知识库
在这里插入图片描述

选择一个词向量模型
在这里插入图片描述
在这里插入图片描述
默认会显示知识库数据当中前20个相似度的文本
我这里测试就是根据知识库的内容随机选择了5条数据,查看不同的向量模型对应的相似度匹配排名,我使用的数据都是询问命令的,包含一定的中英文
总结一下使用的m3e_base、m3e_large、bge_large这三者之间的性能:

  • m3e_base:中等,比bge差一些
  • m3e_large:最差,仅有一条能够查询的到
  • bge_large:最好,能够查询得到的结果最多

3、配置好之后的运行

3.1 运行大语言模型

在这里插入图片描述
想要将chatglm3-6b换成chatglm3-6b-32k也很简单,只需要将路径修改一下即可【当前前提是你把模型下载之后放在指定的路径下面】:
在这里插入图片描述

在这里插入图片描述

3.2 开启m3e和bge的词向量模型

看2.1

3.3 开启docker

在这里插入图片描述

3.4 portainer.io

在这里插入图片描述

3.5 oneAPI

在这里插入图片描述

3.6 配置网络端口映射和防火墙规则

::强制获取管理员运行权限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
wsl -d Ubuntu-18.04 -u root ip addr add 1.1.1.11/24 broadcast 1.1.1.255 dev eth0 label eth0:1

netsh interface portproxy reset

netsh interface ip add address "vEthernet (WSL)" 10.10.10.88 255.255.255.0

netsh interface portproxy add v4tov4 listenaddress=111.168.110.13 listenport=3000 connectaddress=10.10.10.10 connectport=3000
netsh interface portproxy add v4tov4 listenaddress=111.168.110.13 listenport=3001 connectaddress=10.10.10.10 connectport=3001
netsh interface portproxy add v4tov4 listenaddress=111.168.110.13 listenport=3002 connectaddress=10.10.10.10 connectport=3002
netsh interface portproxy add v4tov4 listenaddress=111.168.110.13 listenport=3003 connectaddress=10.10.10.10 connectport=3003
netsh interface portproxy add v4tov4 listenaddress=111.168.110.13 listenport=9999 connectaddress=10.10.10.10 connectport=9999
netsh interface portproxy add v4tov4 listenaddress=111.168.110.13 listenport=88 connectaddress=10.10.10.10 connectport=88
netsh interface portproxy add v4tov4 listenaddress=111.168.110.13 listenport=443 connectaddress=10.10.10.10 connectport=443
netsh interface portproxy add v4tov4 listenaddress=111.168.110.13 listenport=9000 connectaddress=10.10.10.10 connectport=9000
netsh interface portproxy add v4tov4 listenaddress=111.168.110.6 listenport=30004 connectaddress=10.10.10.10 connectport=30004
netsh interface portproxy add v4tov4 listenaddress=111.168.110.6 listenport=3000 connectaddress=10.10.10.10 connectport=3000
netsh interface portproxy add v4tov4 listenaddress=111.168.110.6 listenport=3001 connectaddress=10.10.10.10 connectport=3001
netsh interface portproxy add v4tov4 listenaddress=111.168.110.6 listenport=3002 connectaddress=10.10.10.10 connectport=3002
netsh interface portproxy add v4tov4 listenaddress=111.168.110.6 listenport=3003 connectaddress=10.10.10.10 connectport=3003
netsh interface portproxy add v4tov4 listenaddress=111.168.110.6 listenport=9999 connectaddress=10.10.10.10 connectport=9999


netsh advfirewall firewall add rule name="Open Port 3001 for WSL2" dir=in action=allow protocol=TCP localport=3001
netsh advfirewall firewall add rule name="Open Port 3000 for WSL2" dir=in action=allow protocol=TCP localport=3000
netsh advfirewall firewall add rule name="Open Port 3002 for WSL2" dir=in action=allow protocol=TCP localport=3002
netsh advfirewall firewall add rule name="Open Port 3000 for WSL2" dir=in action=allow protocol=TCP localport=3003
netsh advfirewall firewall add rule name="Open Port 3002 for WSL2" dir=in action=allow protocol=TCP localport=9999
netsh advfirewall firewall add rule name="Open Port 88 for WSL2" dir=in action=allow protocol=TCP localport=88
netsh advfirewall firewall add rule name="Open Port 443 for WSL2" dir=in action=allow protocol=TCP localport=443
netsh advfirewall firewall add rule name="Open Port 9000 for WSL2" dir=in action=allow protocol=TCP localport=9000
netsh advfirewall firewall add rule name="Open Port 30004 for WSL2" dir=in action=allow protocol=TCP localport=30004


netsh interface portproxy show all
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

参考链接:

1、使用fastgpt高效搭建本地离线大语言模型(Chatglm2)问答平台

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/365897
推荐阅读
相关标签
  

闽ICP备14008679号