当前位置: 首页 > article >正文

(RAG 系列)重排序模型部署以及接入 fastgpt 平台

重排序模型部署以及接入 fastgpt 平台

背景

限制要求

在服务器(无外网)部署重排序模型,需要从 windows 本地拉取镜像上传到服务器;

传输过程中有文件大小限制,需要作拆分;

版本对应的问题

fastgpt : v4.6.7
rerank 模型镜像 :luanshaotong/reranker:v0.1

fastgpt : v4.8.10
rerank 模型镜像 :registry.cn-hangzhou.aliyunccs.com/fastgpt/bge-rerank-base:v0.1

PS:其他如果尝试不兼容可以去看 GitHub 官网项目 具体版本的源码 rerank 部分文档或者改源码

备注

只看操作步骤的可以跳过过程分析部分,直接拉到结论部分

过程

1、(windows 本地下)

docker pull 拉取 registry.cn-hangzhou.aliyunccs.com/fastgpt/bge-rerank-base:v0.1,

docker pull registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-base:v0.1

然后用 docker save 保存镜像为 tar 文件,

docker save -o D:\rerank.tar registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-base:v0.1

直接用工具解压,手动做镜像文件拆分,分别上传到服务器再手动合并

(服务器下)

压缩成 tar 文件,

tar -cvf rerank.tar rerank

但是直接 docker load 报错

docker load -i /root/xi_deploy/rerank.tar
open /var/lib/docker/tmp/docker-import-015081684/rerank/json: no such file or directory

采用 cat 方法可以导入

cat /root/xi_deploy/rerank.tar | docker import - registry.cn-hangzhou.aliyunccs.com/fastgpt/bge-rerank-base:v0.1

docker images 也能看到镜像

docker images

但是 dokcer run 启动失败

docker run -d -it --name reranker -p 6006:6006 -e ACCESS_TOKEN=sk-aaabbbcccdddeeefff registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-base:v0.1
docker: Error response from daemon: No command specified.
See 'docker run --help'.

尝试添加启动命令还是失败,没有启动脚本文件,怀疑是镜像本身存在问题

docker run -d -it --name reranker -p 6006:6006 -e ACCESS_TOKEN=sk-aaabbbcccdddeeefff registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-base:v0.1 /bin/sh -c 'python3 app.py'
5051c0d3871ad6a5f9bfa21d647d64054c87bf1dd2c8ec0009fce794e0d
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/bin/sh": stat /bin/sh: no such file or directory:
unknown.

2、排查镜像问题:

(1) 推测—— windows 环境下的 docker 镜像在 linux 下不能运行,但是告知 windows 下 docker 采用 WSL (在 windows 上就可以运行本来只能在 linux 下运行的各种软件和应用程序)打包的镜像就是适用于 linux 环境的

(2) 推测——拆分方法有误,不能直接拆分,于是使用 split 命令作拆分

(windows 本地下)

打开 git 使用 split 命令对镜像切分成合适大小(一个 2G),文件 7G 多

split -b 2048m rerank.tar "split_file_"

(服务器下)

分别传输到服务器,再使用 cat 命令合并分块

cat split_file_aa split_file_ab split_file_ac split_file_ad > rerank.tar

并用 md5sum 校验上传前后的文件,确认无误

md5sum rerank.tar > rerank.md5

采用 docker load 成功保存镜像

[root@wuxshcstidt06716 xi_deploy]# docker load -i /root/xi_deploy/rerank.tar

并用 docker run 能够成功运行

docker run -d --name reranker -p 6006:6006 -e ACCESS_TOKEN=sk-aaabbbcccdddeeefff  registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-base:v0.1

本地 curl 测试成功,能看到返回结果,说明模型部署成功

curl -X 'POST' 'http://10.32.140.100:6006/v1/rerank' -H 'Authorization: Bearer sk-aaabbbcccdddeeefff' -H 'Content-Type: application/json' --data '{"query": "who are you","documents": ["I want to go to sleep", "I am Bob","Today is Friday"]}'

说明是镜像拆分有问题

3、将模型接入 fastgpt

更改 fastgpt 配置文件

"reRankModels": [
        {
            "model": "bge-reranker-base",
            "name": "reranker", 
            "charsPointsPrice": 0,
            "requestUrl": "http://10.32.140.100:6006/v1/rerank",
            "requestAuth": "sk-aaabbbcccdddeeefff"
        }
    ]

重启 fastgpt,知识库使用重排没有看到效果,查看 reranker 容器日志有报错,模型没有正常返回

报错:
object of type 'NoneType' has no len()
INFO:    172.17.0.1:36218 - "POST /v1/rerank HTTP/1.1" 200 OK

4、分析报错,要么是配置没改对,要么是 rerank 模型版本跟 fastgpt 版本不匹配。前者确认没问题,后者需要提高 fastgpt 版本或者找到适配 fastgpt 的 rerank 模型版本(该 rerank 模型版本在我 windows 本地的高版本 fastgpt 是可以使用的)。

(1) 提高 fastgpt 版本——①一步步升级版本,但是考虑服务器环境并不能直接拉取镜像,需要把数据做迁移,迁移完版本升级后再搬到服务器上面;
②放弃知识库数据,直接拉取新版本镜像搬到服务器;

(2) 找到适配 fastgpt 的 rerank 模型版本;

(1)方案成本的比较高,失败不容易恢复;(2)方案可能需要多一些尝试,相对安全简单,先考虑该方案去解决;

5、尝试另一个镜像 registry.cn-hangzhou.aliyuncs.com/fastgpt/rerank:v0.2,但是失败。

查看 fastgpt v4.6.7 版本的源码 rerank.md 文件,其中就有相关的 rerank 模型部署。

上传镜像 luanshaotong/reranker:v0.1

更改 fastgpt 配置文件

"reRankModels": [
        {
            "model": "bge-reranker-base",
            "name": "reranker", 
            "charsPointsPrice": 0,
            "requestUrl": "http://10.32.140.100:6006/api/v1/rerank",
            "requestAuth": "sk-aaabbbcccdddeeefff"
        }
    ]

重启 fastgpt,知识库使用重排能看到效果

[root@wuxshcstidt06716 fastgpt]# docker compose down 
[root@wuxshcstidt06716 fastgpt]# docker compose up -d

!g-emlTurzo-1728972473596)

结论

(windows 本地下)

docker pull 拉取 ,

docker pull luanshaotong/reranker:v0.1

然后用 docker save 保存镜像为 tar 文件,

docker save -o D:\rerank.tar luanshaotong/reranker:v0.1

打开 git 使用 split 命令对镜像切分成合适大小(一个 2G),文件 7G 多

split -b 2048m rerank.tar "split_file_"

(服务器下)

分别传输到服务器,再使用 cat 命令合并分块

cat split_file_aa split_file_ab split_file_ac split_file_ad > rerank.tar

并用 md5sum 校验上传前后的文件,确认无误

md5sum rerank.tar > rerank.md5

采用 docker load 成功保存镜像

docker load -i /root/xi_deploy/rerank.tar

并用 docker run 能够成功运行

docker run -d --name reranker -p 6006:6006 -e ACCESS_TOKEN=sk-aaabbbcccdddeeefff luanshaotong/reranker:v0.1

更改 fastgpt 配置文件 config.json

"reRankModels": [
        {
            "model": "bge-reranker-base",
            "name": "reranker", 
            "charsPointsPrice": 0,
            "requestUrl": "http://10.32.140.100:6006/api/v1/rerank",
            "requestAuth": "sk-aaabbbcccdddeeefff"
        }
    ]

重启 fastgpt,知识库使用重排能看到效果

[root@wuxshcstidt06716 fastgpt]# docker compose down 
[root@wuxshcstidt06716 fastgpt]# docker compose up -d

http://www.kler.cn/news/358346.html

相关文章:

  • 【Flutter】页面布局:弹性布局(Flex)
  • Linux下的进程解析(level 2)
  • C++核心编程和桌面应用开发 第十二天(输入输出流 流对象 写文件 读文件)
  • 鸿蒙应用开发----西西购物商城(一)
  • G-Set(增长集合,Grow-Only Set)
  • 面试题:在 React 中如何绑定事件
  • 从 Microsoft 官网下载 Windows 10
  • Linux命令进阶·vi\vim编辑器详细命令介绍
  • vulnhub靶场之digitalworld.local: MERCY v2
  • maven多模块聚合打包父pom version占位符总无法install问题解决
  • 【C语言教程】【常用类库】(十六)正则表达式库 - <regex.h>
  • 七、朴素贝叶斯算法
  • Git核心概念图例与最常用内容操作(reset、diff、restore、stash、reflog、cherry-pick)
  • Web前端-JavaScript书写位置
  • 实验4:IPSec VPN(课内实验)
  • 微服务发布
  • K8S中的pod和node的区别
  • 基于小波图像去噪的MATLAB实现
  • Repo工具详解
  • react 中的hooks中的useState