基本介绍

基础信息

  • 本文会用到博主写的一些线上脚本,如果搭建者时纯内网的话,可能需要手动压缩镜像,然后解压镜像,才能正常部署
  • 本文从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

下载

通过百度网盘分享的文件: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

模型部署

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

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
Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐