部署环境
操作系统:CentOS Linux release 8.2.2004
显卡:GTX1060
内存:16GB
整体架构
[用户]
|
v
[WAF防火墙]
|
v
[OpenWebUI (前端)]
|
v
[Dify (生成式AI应用创新引擎)]
|
v
[Ollama (后端)]
|
v
[结果]
安装步骤
安装英伟达显卡驱动
1.下载英伟达显卡驱动包,并上传服务器。
2.安装相关依赖库。
yum -y install gcc kernel-devel kernel-headers
yum install elfutils-libelf-devel
3.查看安装后源码版本是否和内核一致
ls /boot | grep vmlinu
rpm -aq |grep kernel-devel
2.屏蔽linux
系统自带的开源英伟达显卡驱动nouveau
。编辑/lib/modprobe.d/dist-blacklist.conf
文件。
#---使用"#"注释以下语句以进行屏蔽---
#blacklist nvidiafb
#---追加以下语句---
blacklist nouveau
options nouveau modeset=0
2.重建initramfs image
。
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
注:将文件名包含内核版本号的initramfs镜像文件重命名为 .bak 后缀,用于备份原文件。
dracut /boot/initramfs-$(uname -r).img $(uname -r)
注:使用dracut创建一个新的initramfs镜像文件,其名称仅基于内核版本号,而非完整镜像文件名。
3.修改运行级别为文本模式。
systemctl set-default multi-user.target
4.重启。
5.查看nouveau
是否禁用成功,如提示”没有文件或目录“即为禁用成功。
ls mod | grep nouveau
6.进入上传的英伟达显卡驱动目录,赋予英伟达显卡驱动可执行权限。
chmod +x 驱动文件名.run
7.执行,全部选yes
。执行过程中的报错一定要处理完!
./驱动文件名.run
8.验证。
lspci | grep -i nvidia
nvidia-smi
watch -n 0.5 nvidia-smi
9.安装pip
。
sudo dnf install python3
安装CUDA
1.通过执行nvidia-smi
指令查看显卡驱动所能支持的cuda最大版本。例如本机CUDA Version: 12.4
和Driver Version: 550.144.03
,说明cuda
最大支持12.4版本。安装CUDA 12.4
以下版本适配的torch
库。
2.去网站寻找与PyTorch
适配的版本。查看cuda
和哪个PyTorch
版本匹配。例如本机与PyTorch
适配的cuda
版本应为12.4
#查看cuda和显卡驱动版本是否匹配
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
#查看PyTorch版本
https://pytorch.org/get-started/locally/
3.根据之前查到的适合本机的cuda
版本,下载适合本机的cuda
,本机为CUDA 12.4
。
#下载cuda
https://developer.nvidia.com/cuda-toolkit-archive
#查询到的适合本机显卡的cuda 12.4
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-rhel7-12-4-local-12.4.0_550.54.14-1.x86_64.rpm
sudo rpm -i cuda-repo-rhel7-12-4-local-12.4.0_550.54.14-1.x86_64.rpm
sudo yum clean all
sudo yum -y install cuda-toolkit-12-4
4.验证是否安装成功。
ls /usr/local/cuda-*
/usr/local/cuda-12.4/bin/nvcc --version
5.配置环境变量。编辑/etc/profile
文件,追加以下内容。
export CUDA_HOME=/usr/local/cuda-12.4
export PATH="${CUDA_HOME}/bin:$PATH"
6.验证环境变量是否生效。
source /etc/profile
nvcc --version
${CUDA_HOME}/bin/nvcc --version
安装NVIDIA Container Toolkit
注:允许容器调用宿主机显卡。
1.设置存储库和GPG
密钥。
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
2.更新列表。
sudo yum clean expire-cache
3.安装NVIDIA Container Toolkit
。
sudo yum install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
4. 测试。
sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
安装PyTorch
1.通过网站查询到适合本机cuda
匹配的PyTorch
后,生成pip
安装指令,执行后将生成链接拷出下载(速度快)。
#查询到的适合本机显卡的PyTorch
pip3 install torch torchvision torchaudio
2.上传下载后的文件,例如torch-1.10.2-cp36-cp36m-manylinux1_x86_64.whl
,并安装。
pip3 install *.whl
3.验证PyTorch
版本。
python3 -c "import torch; print(torch.version.cuda); print(torch.cuda.is_available())"
4.输入python3进入python环境,然后验证PyTorch
是否启用,如启用会返回true
。
import torch
torch.cuda.is_available()
安装1Panel
1.下载1Panel离线包,并上传服务器。
2.解压离线包。
tar zxvf 1panel-v1.10.24-lts-linux-amd64.tar.gz
3.进入解压后的安装包,执行安装脚本。
/bin/bash install.sh
4.访问入口。
http://目标服务器 IP 地址:目标端口/安全入口
注:如果你是局域网192.168...,docker端口映射时默认映射到127.0.0.1会访问不了,需要映射到本机局域网ip才能局域网访问。
安装Ollama
1.下载安装包。
2.解压。
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
3.测试是否正常运行。
/usr/bin/ollama serve
4.在/etc/systemd/system/ollama.service
新建服务文件。
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=root
Group=root
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
Environment="OLLAMA_KEEP_ALIVE=24h"
Environment="OLLAMA_MODELS=/home/ollama"
Environment="OLLAMA_FLASH_ATTENTION=1"
Environment="OLLAMA_NUM_PARALLEL=5"
Environment="OLLAMA_MAX_LOADED_MODELS=1"
[Install]
WantedBy=default.target
5.设置开机自启动。
sudo systemctl enable ollama
注:我必须要在这里感慨一下!!!踩了2天的坑,我一开始装的docker版的vllm,调用识别不来gpu,我以为是英伟达显卡驱动和cuda安装有问题,折腾来折腾去,换了docker版ollama也一样识别不到gpu。然后快绝望的适合,换了非docker版,奇迹出现了!!!
安装容器版Ollama
注:不知道为什么,容器版的ollama启动后找不到gpu,呜呜呜,我换成非容器版运行能正常找到。
1.在docker
容器参数中编辑环境变量。
注:容器每次重启后设置都会重置,如果想要保存设置,可以将容器导出成镜像,然后再导入镜像运行。
2.在docker
容器参数中编辑参数,映射容器内某目录(例如/home)至本地一个目录文件夹用于导入本地模型。
例如:
/home/models /home/models
/home/ollama /root/.ollama
3.进入docker
容器内部导入模型即可。
安装OpenWebUi
1.拉取docker
镜像后,导入本地镜像并运行容器。
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v /home/open-webui:/app/backend/data --name festive_fermi --restart always 506db1f50c16
-v /home/open-webui:/app/backend/data 指将电脑/open-webui文件夹映射至docker中/app/backend/data目录。
506db1f50c16:镜像id。
2.配置本地知识库。
嵌入模型:建议使用nomic-embed-text。
Top_K:6。
块大小:500。
块重叠:300。
嵌入层批处理大小:8。
安装DIFY
在线安装
1.将DIFY压缩包上传至服务器。
2.解压压缩包。
unzip -o 压缩包名.zip
3.进入DIFY目录内docker
文件夹。
4.复制脚本。
cp .env.example .env
5.修改DIFY端口,编辑.env
和docker-compose.yaml
文件,修改EXPOSE_NGINX_PORT
的值,默认为80端口
,修改为180端口
。
6.创建DIFY。
#高版本
docker compose up -d
#低版本
docker-compose up -d
7.运行DIFY。
#访问以下网址
http://your_server_ip:180/install
离线安装
1.在完成DIFY在线安装后,将DIFY的docker
容器导出为镜像。
2.将DIFY容器镜像上传至服务器。
3.加载容器镜像。
docker load -i docker-web-1.tar
docker load -i docker-api-1.tar
docker load -i docker-db-1.tar
docker load -i docker-nginx-1.tar
docker load -i docker-worker-1.tar
docker load -i docker-plugin_daemon-1.tar
docker load -i docker-redis-1.tar
docker load -i docker-sandbox-1.tar
docker load -i docker-ssrf_proxy-1.tar
docker load -i docker-weaviate-1.tar
4.将DIFY压缩包上传至服务器。
5.解压压缩包。
unzip -o 压缩包名.zip
6.进入DIFY目录内docker
文件夹。
7.复制脚本。
cp .env.example .env
8.修改DIFY端口,编辑.env
和docker-compose.yaml
文件,修改EXPOSE_NGINX_PORT
的值,默认为80端口
,修改为180端口
。
9.创建DIFY。
#高版本
docker compose up -d
#低版本
docker-compose up -d
10.运行DIFY。
#访问以下网址
http://your_server_ip:180/install
评论区