【大模型】使用 Xinference 部署本地模型,从GPU服务器到本地知识库搭建Dify【LLM大语言模型(glm-4-9b-chat)、Rerank 模型、Embedding(向量)模型】
本文会用到博主写的一些线上脚本,如果搭建者时纯内网的话,可能需要手动压缩镜像,然后解压镜像,才能正常部署本文从GPU服务器获取、到 nvidia-docker的安装、再到Xinference 部署私有化三个模型,最后搭建dify(供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用)、最后再配置实例dify,配置dify实例,整
基本介绍
基础信息
- 本文会用到博主写的一些线上脚本,如果搭建者时纯内网的话,可能需要手动压缩镜像,然后解压镜像,才能正常部署
- 本文从GPU服务器获取、到 nvidia-docker的安装、再到Xinference 部署私有化三个模型,最后搭建dify(供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用)、最后再配置实例dify,配置dify实例,整合三个模型,最后实现知识库搭建
GPU服务器获取
- UCloud GPU服务器30块使用7天,显卡P40,主要是显存大,本来来测试足矣
- 注册UCloud账号:https://passport.ucloud.cn/?invitation_code=C1x3C93EC6B6768
- 购买特惠GPU服务器地址:GPU云服务器特惠
- 购买 Tesla P40 24G显存,单精度浮点性能12 TFLOPS
- 博主在安装的时候GPU主机 选择的是 CentOS7.8,建议大家选择一样的系统
- 可能用P40显卡后面驱动版本、CUDA版本的兼容性,可能花点时间
基础安装
基础信息安装
- 拿到服务器后,进行基础的命令初始化、docker安装等,这里博主提供脚本给大家
- 基础安装
wget -O centos7-init.sh https://files.rundreams.net/sh/run-sh/init/centos7-init.sh && sh centos7-init.sh
- docker安装
wget -O docker-install.sh https://files.rundreams.net/sh/run-sh/docker/docker-install.sh && sh docker-install.sh
- 由于Xinference的docker镜像包比较大,所以建议大家在docker安装成功后,就进行进行包拉取,差不多在18G左右
docker pull registry.cn-hangzhou.aliyuncs.com/xprobe_xinference/xinference
显卡驱动配置
显卡检查
- 执行命令:
lspci | grep -i nvidia
- 去英伟达官网下载相应的驱动
- 驱动下载地址:https://www.nvidia.cn/drivers/lookup/
- 本文采用的是 Tesla P40 ,所以下载相应的驱动
下载
wget https://cn.download.nvidia.cn/tesla/550.90.07/NVIDIA-Linux-x86_64-550.90.07.run
禁用nouveau系统自带驱动
- 安装驱动前,需要禁用nouveau系统自带驱动
- 查看系统自带的驱动,如果有结果,则说明存在nouveau,没有则直接跳过这一步
lsmod | grep nouveau
- 禁用nouveau系统自带驱动
# 编辑如下文件:
vi /usr/lib/modprobe.d/dist-blacklist.conf
# 然后在最后添加如下内容:
blacklist nouveau
options nouveau modeset=0
- 然后重启服务器再进行检查
- 安装依赖包:
yum install gcc dkms gcc-c++
显卡驱动安装
- 权限:
chmod 777 NVIDIA-Linux-x86_64-550.90.07.run
- 安装命令:
./NVIDIA-Linux-x86_64-550.90.07.run --kernel-source-path=/usr/src/kernels/4.19.188-10.el7.ucloud.x86_64/ -no-x-check
- 期间会出现警告,暂时不予理会,都ok进行下一步
- 安装完成后执行命令:
nvidia-smi
- 执行命令完成后都能看到CUDA版本、显存大小,表示安装成功
安装nvidia-docker
下载
- 下载nvidia-docker安装包
- 下载地址:https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/stable
- 百度网盘下载
通过百度网盘分享的文件:centos.zip
链接:https://pan.baidu.com/s/1OabfMMQMVXhTcd2vVzR73g?pwd=no2x
提取码:no2x
–来自百度网盘超级会员V9的分享
- 上传值服务器某个目录:
配置
- 执行命令进行安装:
rpm -Uvh *.rpm --nodeps --force
- 重启docker:
systemctl restart docker
验证
- 拉取镜像进行验证
docker pull registry.cn-chengdu.aliyuncs.com/rundreams-open/nvidia_tritonserver:21.10-py3
- 启动docker验证进行:
docker run -it --gpus all registry.cn-chengdu.aliyuncs.com/rundreams-open/nvidia_tritonserver:21.10-py3 /bin/bash
Xinference 部署
Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过 Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。无论你是研究者,开发者,或是数据科学家,都可以通过 Xorbits Inference 与最前沿的 AI 模型,发掘更多可能。
docker部署官方文档
mkdir -p /home/data
mkdir -p /data/models
- 执行docker命令进行部署:
docker pull registry.cn-hangzhou.aliyuncs.com/xprobe_xinference/xinference
docker run --name xinference -e XINFERENCE_MODEL_SRC=modelscope -p 9997:9997 -v /home/data/.xinference:/root/.xinference -v /home/data/.cache/huggingface:/root/.cache/huggingface -v /home/data/.cache/modelscope:/root/.cache/modelscope -v /data/models:/data/models --gpus all 7d8caa26db95 xinference-local -H 0.0.0.0 --log-level debug
模型下载
glm-4-9b-chat
- 百度网盘下载
通过百度网盘分享的文件:glm-4-9b-chat.zip
链接:https://pan.baidu.com/s/16VnkAM05PglzGVNVCfo39w?pwd=ifbd
提取码:ifbd
–来自百度网盘超级会员V9的分享
- git下载
git clone https://www.modelscope.cn/zhipuai/glm-4-9b-chat.git
Embedding(向量)模型
- 百度网盘下载
通过百度网盘分享的文件:bge-large-zh-v1.5.zip
链接:https://pan.baidu.com/s/1JLDzV3QXhvYhaREPwV5Zow?pwd=esu7
提取码:esu7
–来自百度网盘超级会员V9的分享
- git下载:
git clone https://www.modelscope.cn/ai-modelscope/bge-large-zh-v1.5.git
Rerank 模型
- 百度网盘下载:
通过百度网盘分享的文件:bge-reranker-v2-m3.zip
链接:https://pan.baidu.com/s/1wA781i9MtZG0EeFkYo9KGw?pwd=x1jm
提取码:x1jm
–来自百度网盘超级会员V9的分享
- git下载:
git clone https://www.modelscope.cn/ai-modelscope/bge-reranker-v2-m3.git
模型部署
- 浏览器访问xinference地址:http://IP:9997/
- GPU信息
Embedding(向量)模型
- 启动模型
- 启动成功
- 再次执行命令:
nvidia-smi
- 看到显存已经消耗掉一部分
Rerank 模型
- 启动模型
- 启动成功
LLM大语言模型(glm-4-9b-chat)
- 如果大文件unzip解压失败,需设置变量
error: invalid zip file with overlapped components (possible zip bomb)
To unzip the file anyway, rerun the command with UNZIP_DISABLE_ZIPBOMB_DETECTION=TRUE environmnent variable
- 设置环境变量解决
UNZIP_DISABLE_ZIPBOMB_DETECTION=TRUE
export UNZIP_DISABLE_ZIPBOMB_DETECTION
-
参考:https://blog.csdn.net/weixin_37791303/article/details/134523549
-
启动模型:
-
可以查看 xinference的相关日志:
docker logs xinference -f --tail=50
dify 部署
- dify-生成式 AI 应用创新引擎
- 官网:https://dify.ai/zh
- Github开源地址:https://github.com/langgenius/dify
- 开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。
- 比 LangChain 更易用
docker-compose部署
部署最新版本dify
- 克隆 Dify 源代码至本地。
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d
- 如果能够科学上网是能够成功的,不过很多小伙伴不能科学上网镜像可能拉取不成功
- 下面不足提供低版本的镜像,不用科学上网也能把dify部署起来
部署指定版本dify 0.6.15
- 仅供学习大模型该版本是完全没问题的,
- 下载docker源代码:
通过百度网盘分享的文件:docker.zip
链接:https://pan.baidu.com/s/1gZxZiEfqytnltkdoT9q6RA?pwd=72lb
提取码:72lb
–来自百度网盘超级会员V9的分享
- 解压文件:
unzip docker.zip
- 执行镜像拉取脚本:
wget -O dify-0.6.15-images.sh https://files.rundreams.net/sh/run-sh/ai/dify/dify-0.6.15-images.sh && sh dify-0.6.15-images.sh
- 执行命令查看dify docker镜像:
docker images
- 启动dify:
docker-compose up -d
- 检查是否所有容器都正常运行:
docker compose ps
dify配置
- 访问IP+默认80 端口
- 进行登录
模型供应商配置
- 点击用户右上角设置
- 配置相应的模型
- 分别配置对应的模型
本地知识库搭建
- 后面博主会单独写一篇基于Dify进行知识库搭建的文章,包含自定义页面、openapi的调用等。
总结
- 其实搭建起来整体来看不是特别复杂的,和其他应用并无太大差别,唯一多出来的可能是服务器需要有GPU的支持,而且显存得大,如果显存小可能支持小参数的模型。
- 后续有问题需要沟通交流,也可以添加博主进行沟通(提供技术付费大模型本地搭建)
微信 ID:cqrundreams
更多推荐
所有评论(0)