基于大语言模型和 RAG 的知识库问答系统MaxKB,已经部署用了一段时间,体验非常好。
最新的MaxKB 1.5.1可以部署自己的向量模型,刚刚部署测试了一下,配置成功。现在记录下来,分享给大家。
1. 下载模型到本地
本次部署的向量模型为bce-embedding-base_v1(模型详情:模型详情),据测试过的朋友反馈,效果不错。
1.1 新建model目录
## 创建 model 文件夹
mkdir
/opt/maxkb/model
1.2 下载模型
切换到/opt/maxkb/model目录下
git clone https://www.modelscope.cn/maidalun/bce-embedding-base_v1.git
1.3 安装GIT-LFS,执行git lfs pull
访问Git-lfs项目 Releases · git-lfs/git-lfs · GitHub,查看releases信息。我的环境为CentOS 7.6,所以下载的是 "RPM RHEL7/CentOS7这个包到本地,然后上传到服务器。
执行安装命令:
1. 使用sudo rpm -ivh 包名.rpm进行安装
2. 运行git lfs install,如果显示Git LFS initialized说明安装成功
3. 切换到/opt/maxkb/model/bce-embedding-base_v1目录下,然后执行 git lfs pull,此时会下载向量模型文件,等待文件下载完成。
2. 修改docker-compose.yml,添加volume挂载点
进入/opt/maxkb/目录下,修改docker-compose.yaml文件,添加volume挂载点。修改后的yml文件内容如下
version: "2.1"
services:
maxkb:
container_name: maxkb
hostname: maxkb
restart: always
image: ${MAXKB_IMAGE_REPOSITORY}/maxkb-pro:${MAXKB_VERSION}
ports:
- "${MAXKB_PORT}:8080"
healthcheck:
test: ["CMD", "curl", "-f", "localhost:8080"]
interval: 10s
timeout: 10s
retries: 120
volumes:
- /tmp:/tmp
- ${MAXKB_BASE}/maxkb/logs:/opt/maxkb/app/data/logs
- ${MAXKB_BASE}/maxkb/python-packages:/opt/maxkb/app/sandbox/python-packages
- /opt/maxkb/model:/opt/maxkb/model
- /opt/maxkb/model/bce-embedding-base_v1:/opt/maxkb/model/bce-embedding-base_v1
env_file:
- ${MAXKB_BASE}/maxkb/conf/maxkb.env
depends_on:
pgsql:
condition: service_healthy
networks:
- maxkb-network
entrypoint: ['bash','-c']
command: ['rm -f /opt/maxkb/app/tmp/*.pid & python /opt/maxkb/app/main.py start']
networks:
maxkb-network:
driver: bridge
ipam:
driver: default
volumes:
mk-model-data:
driver_opts:
type: none
device: /opt/maxkb/model
o: bind
修改该yml文件,我是参照了官网社区的帖子 MaxKB 如何对接本地向量模型 - MaxKB - 社区论坛 - FIT2CLOUD 飞致云,实测下来应该只需要在volumes里添加
- /opt/maxkb/model/bce-embedding-base_v1:/opt/maxkb/model/bce-embedding-base_v1即可,保险起见我都加上了。
3. 重新创建加载容器
在/opt/maxkb/目录下执行下面命令,重新创建加载容器,或者直接执行kbctl reload也可以。
docker-compose -f docker-compose.yml -f docker-compose-pgsql.yml up -d
4. 配置本地向量模型
用ip:8080访问MaxKB,登录,然后访问 系统管理->模型设置->本地模型→"添加模型",把bce-embedding-base_v1添加到本地向量模型。
5. 测试新的向量模型
创建知识库,选择新的向量模型,然后上传文档