GPU服务器环境部署与大模型应用部署指南搭建知识库
·
GPU服务器环境部署与大模型应用部署指南
一、环境准备与GPU驱动安装
1.1 更新系统并安装NVIDIA驱动
sudo apt update
sudo apt install nvidia-driver-535
更新系统库

重启后验证NVIDIA驱动是否安装成功:
nvidia-smi

二、Docker环境安装与配置
2.31 安装NVIDIA Container Toolkit
2.1.1 配置软件源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
sudo mkdir -p /etc/apt/sources.list.d
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed "s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g" | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
2.1.2 添加GPG密钥
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
2.1.2 安装工具包
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
注意: 安装完成后需要重启系统以加载新的驱动。
sudo reboot

2.2 安装Docker
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
2.2.1 配置Docker运行时
编辑Docker配置文件 /etc/docker/daemon.json:
{
"registry-mirrors": [
"https://iz027t67q3chj.xuanyuan.run",
"https://iz027t67q3chj.xuanyuan.dev"
],
"insecure-registries": [
"iz027t67q3hj.xuanyuan.run",
"iz027t67q3hj.xuanyuan.dev"
],
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia"
}
2.2.2 重启docker
sudo systemctl restart docker
2.6 验证Docker与GPU支持
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu18.04 nvidia-smi
四、部署docker运行VLLM部署大模型
4.1 启动vLLM容器.
为了让MaxKB和vLLM能够互相通信,创建一个专用网络:
sudo docker network create maxkb-net
4.1 启动vLLM容器.
sudo docker run -d --gpus all \
--name vllm \
--network maxkb-net \
--shm-size=32g \
--restart always \
-p 8000:8000 \
-v /opt/models:/root/.cache/huggingface \
-e VLLM_ATTENTION_BACKEND=XFORMERS \
-e HUGGINGFACE_HUB_CACHE=/root/.cache/huggingface \
vllm/vllm-openai:latest \
--model deepseek-ai/DeepSeek-R1-Distill-Qwen-14B \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 2 \
--max-model-len 32768 \
--trust-remote-code \
--dtype half \
--gpu-memory-utilization 0.90
🐳 容器基础管理
sudo docker run: 创建并启动一个新的容器。-d: 后台运行。容器启动后不会占用你的终端窗口,而是作为守护进程在后台跑。--name vllm: 给容器起个名字叫vllm。以后管理它(比如停止、查看日志)直接用这个名字就行,不用去查那串长长的 ID。--restart always: 自动重启。如果容器因为报错挂了,或者服务器重启了,Docker 会自动把这个服务拉起来,保证服务一直在线。
🔗 网络配置 (关键点)
--network maxkb-net: 加入指定网络。
-
- 这意味着你的 vLLM 容器和 MaxKB 容器都在同一个叫
maxkb-net的虚拟局域网里。 - 好处:MaxKB 可以直接通过
http://vllm:8000访问它,不需要走公网 IP,速度更快且更安全。
- 这意味着你的 vLLM 容器和 MaxKB 容器都在同一个叫
-p 8000:8000: 端口映射。
-
- 把容器内部的 8000 端口映射到服务器(宿主机)的 8000 端口。
- 这样你不仅能通过内部网络访问,也能通过
http://你的IP:8000从外部访问。
💾 存储与资源
--shm-size=32g: 共享内存大小。
-
- 设置为 32GB。这对 AI 模型非常重要,因为模型在处理数据时需要大量的共享内存,如果设置太小(默认通常只有 64MB),模型很容易报错崩溃。
-v /opt/models:/root/.cache/huggingface: 挂载目录。
-
- 把服务器上的
/opt/models文件夹映射到容器里的/root/.cache/huggingface。 - 作用:你下载的模型文件会保存在服务器的硬盘上。即使你把这个容器删了重建,模型文件还在,不用重新下载。
- 把服务器上的
⚙️ 环境变量
-e VLLM_ATTENTION_BACKEND=XFORMERS: 指定使用XFORMERS库来加速注意力机制的计算(通常能提升推理速度)。-e HUGGINGFACE_HUB_CACHE=...: 告诉 vLLM 把下载的模型缓存放到刚才挂载的那个目录里。
🧠 模型核心参数 (决定运行效果)
这部分是传给 vLLM 程序的具体指令:
--model deepseek-ai/DeepSeek-R1-Distill-Qwen-14B: 指定模型。
-
- 告诉程序去下载并运行这个具体的模型。
--host 0.0.0.0 --port 8000: 监听地址和端口。允许外部访问容器内的服务。--tensor-parallel-size 2: 张量并行。
-
- 重点:这表示使用了 2 张显卡 来运行这个模型。
- 如果你的服务器只有 1 张显卡,这里填 1;如果有 2 张或更多,填 2 可以分担显存压力,提高速度。
--max-model-len 32768: 上下文长度。
-
- 限制模型一次能处理的最大文本量(约 32k token)。设置太大容易爆显存,太小则无法处理长文档。
--trust-remote-code: 信任远程代码。
-
- 有些模型(如 DeepSeek)包含自定义的 Python 代码,必须加这个参数才能正常加载,否则启动会报错。
--dtype half: 半精度运行。
-
- 使用 FP16 格式。相比全精度,它能节省一半显存,且速度更快,是目前的主流选择。
--gpu-memory-utilization 0.90: 显存占用率。
-
- 告诉 vLLM 可以占用显卡 90% 的显存来放模型权重。留 10% 给系统和其他任务,防止显存溢出。
4.2 参数说明
--gpus all: 启用所有GPU--shm-size=4g: 设置共享内存大小-v /opt/models:/root/.cache/huggingface: 挂载模型缓存目录--tensor-parallel-size 2: 张量并行度--max-model-len 32768: 最大上下文长度--gpu-memory-utilization 0.90: GPU内存利用率
安装完成后,可以使用 curl 命令向容器的 8000 端口发送一个聊天补全请求。
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
"messages": [
{"role": "user", "content": "你好,请做个自我介绍。"}
],
"max_tokens": 100
}'
成功标志:你将收到一个 JSON 格式的响应,其中 choices 字段包含了模型生成的文本内容。这表明整个服务
五、部署MaxKB应用
5.1 启动MaxKB容器
sudo docker run -d \
--name maxkb \
--network maxkb-net \
--restart always \
-p 8080:8080 \
-v /opt/maxkb:/var/lib/postgresql/data \
-e PYTHONUNBUFFERED=1 \
1panel/maxkb
5.2 访问maxkb添加大模型参数
-p 8080:8080: 映射端口-v /opt/maxkb:/var/lib/postgresql/data: 挂载数据目录
六、验证部署
6.1 检查容器运行状态
sudo docker ps
6.2 验证服务可用性
6.3 添加模型

- URL:
http://vllm:8000/v1(通过第一步命令查到的 IP) - Key:
sk-123456(因为你没设密码,随便填个非空字符串即可) - 模型: deepseek-ai/DeepSeek-R1-Distill-Qwen-14B
6.4 创建知识库

6.5 创建智能体


七、注意事项
7.1 硬件要求
- GPU: 推荐使用NVIDIA V100s或更高性能GPU
- 内存: 至少32GB系统内存
- 存储: 足够的磁盘空间存放模型文件
7.2 模型下载
首次运行时,模型会自动从HuggingFace下载,需要稳定的网络连接。
7.3 性能优化
- 根据实际GPU数量调整
--tensor-parallel-size参数 - 根据内存大小调整
--gpu-memory-utilization参数 - 可根据需要调整
--max-model-len参数
八、故障排除
8.1 GPU驱动问题
如果nvidia-smi命令无法执行,检查:
- GPU驱动是否正确安装
- 系统是否已重启
- GPU硬件是否正常
8.2 Docker权限问题
如果遇到权限问题,可将用户加入docker组:
sudo usermod -aG docker $USER
8.3 网络连接问题
确保服务器能够访问外网,特别是HuggingFace模型仓库。
更多推荐




所有评论(0)