全部指南
本页内容
我们的 GPU 服务器配备独享的 NVIDIA GPU,以及可直接用于 CUDA 工作的 Linux 镜像。本指南先检查镜像,然后在其上部署常用的 AI 工具。以下命令假定使用 sudoSERVER_IP
镜像包含的内容
Ubuntu 24.04 LTS ,标准支持至 2029年5月。- NVIDIA 驱动,包括
工具。nvidia-smi - CUDA,包括
编译器。nvcc
镜像更新后版本会有变化,因此请检查您的版本:
nvidia-smi
nvcc --version
nvidia-sminvcc/usr/local/cuda
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
验证 GPU
nvidia-smi -L
nvidia-smi topo -m
第一条命令会列出每块 GPU 及其型号;请检查数量和型号是否与您的套餐一致,以及 nvidia-smiCUDA_VISIBLE_DEVICES
CUDA_VISIBLE_DEVICES=1 python train.py
准备 Python 环境
pip installexternally-managed-environment
sudo apt update
sudo apt install -y python3-venv python3-dev build-essential git
安装 PyTorch
PyTorch 针对特定的 CUDA 版本发布构建。当前版本提供 nvidia-smi
python3 -m venv ~/venvs/torch
source ~/venvs/torch/bin/activate
pip install --upgrade pip
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130
python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0))"
最后一行应输出 Truecu130cu126
使用 Ollama 运行模型
关于私有模型服务器的意义及其安全方面,请阅读如何在 GPU 服务器上自托管大语言模型。Ollama 是运行开放权重语言模型最快捷的方式。其安装脚本会设置系统服务并检测 NVIDIA GPU。您可以先下载脚本、读过之后再运行,也可以直接通过管道交给 shell 执行:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b
ollama run llama3.1:8b
ollama ps
ollama run/byeollama ps
Ollama 默认监听 127.0.0.1:11434/v1/usr/share/ollama/.ollama/modelsEnvironment=
sudo systemctl edit ollama.service
使用 vLLM 提供兼容 OpenAI 的端点
vLLM 是一款为吞吐量而设计的推理服务器:它会将大量请求合批同时处理,并使用与 OpenAI 相同的 HTTP 协议,因此现有的客户端库都能直接使用。它的构建是针对特定的 PyTorch 和 CUDA 版本编译的,因此请使用 vLLM 文档给出的索引 URL,将其安装在独立的环境中:
python3 -m venv ~/venvs/vllm
source ~/venvs/vllm/bin/activate
pip install --upgrade pip
pip install vllm --extra-index-url https://download.pytorch.org/whl/cu129
如果您的驱动报告的 CUDA 版本较旧,vLLM 文档还介绍了通过 uv--torch-backend=auto
创建一个令牌,确保只有您能使用该服务器,记下令牌,然后在 localhost 上启动服务器:
export VLLM_API_KEY=$(openssl rand -hex 32)
echo "$VLLM_API_KEY"
vllm serve Qwen/Qwen2.5-7B-Instruct --host 127.0.0.1 --port 8000 --max-model-len 8192
首次启动时,会从 Hugging Face 将模型下载到 ~/.cache/huggingfaceQwen/Qwen2.5-3B-Instruct--tensor-parallel-size 2--hostHF_TOKEN
在第二个 SSH 会话中导出同一个令牌,然后从该会话进行测试:
curl http://127.0.0.1:8000/v1/models -H "Authorization: Bearer $VLLM_API_KEY"
curl http://127.0.0.1:8000/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer $VLLM_API_KEY" -d '{"model": "Qwen/Qwen2.5-7B-Instruct", "messages": [{"role": "user", "content": "Say hello in five words."}]}'
将 vLLM 作为服务运行
从 shell 启动的服务器会在您退出登录时停止。要让它持续运行并在重启后自动恢复,请将令牌保存在仅 root 可读的文件中,然后创建一个 systemd 单元:
sudo install -m 600 /dev/null /etc/vllm.env
echo "VLLM_API_KEY=$(openssl rand -hex 32)" | sudo tee /etc/vllm.env > /dev/null
sudo cat /etc/vllm.env
sudo systemctl edit --force --full vllm.service
将以下单元内容粘贴到编辑器中,并将 YOUR_USER
[Unit]
Description=vLLM server
After=network-online.target
Wants=network-online.target
[Service]
User=YOUR_USER
EnvironmentFile=/etc/vllm.env
ExecStart=/home/YOUR_USER/venvs/vllm/bin/vllm serve Qwen/Qwen2.5-7B-Instruct --host 127.0.0.1 --port 8000 --max-model-len 8192
Restart=on-failure
[Install]
WantedBy=multi-user.target
然后启动服务,设置开机自启,并实时查看其日志:
sudo systemctl enable --now vllm.service
sudo journalctl -u vllm.service -f
使用 ComfyUI 生成图像
git clone https://github.com/Comfy-Org/ComfyUI.git
cd ComfyUI
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt
python main.py --listen 127.0.0.1 --port 8188
将模型检查点放在 ComfyUI/models/checkpointsmodels--listen
Docker 与 NVIDIA Container Toolkit
容器需要借助 NVIDIA 的 Container Toolkit 才能访问 GPU。请从 Ubuntu 官方软件仓库安装 Docker,添加 NVIDIA 的软件仓库,并将 Docker 配置为使用 NVIDIA 运行时:
sudo apt install -y docker.io
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
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
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
sudo docker run --rm --gpus all ubuntu nvidia-smi
最后一条命令应输出与宿主机上相同的表格。如果您更喜欢 Docker 官方软件仓库中的 Docker CE,其用法完全相同。例如,以下命令会在容器中运行 vLLM,并且只在 localhost 上发布端口:
sudo docker run --rm --gpus all --ipc=host -p 127.0.0.1:8000:8000 -v ~/.cache/huggingface:/root/.cache/huggingface vllm/vllm-openai:latest --model Qwen/Qwen2.5-7B-Instruct
保持端点私有
这些工具在原样状态下直接对外暴露都不安全:Ollama 和 ComfyUI 完全没有登录验证,vLLM 的令牌也是可选的。请让它们保持绑定在 127.0.0.1
ssh -N -L 8188:127.0.0.1:8188 -L 8000:127.0.0.1:8000 -L 11434:127.0.0.1:11434 YOUR_USER@SERVER_IP
隧道运行期间,在浏览器中打开 http://127.0.0.1:8188http://127.0.0.1:8000/v1
监控 GPU
nvidia-smi dmon -s pucm
watch -n 1 nvidia-smi
nvidia-smi --query-gpu=index,temperature.gpu,utilization.gpu,memory.used,memory.total,power.draw --format=csv -l 5
sudo apt install -y nvtop
nvtop
nvidia-smi dmonnvtop
nvidia-smi -q -d PERFORMANCE
故障排查
- CUDA 显存不足(OutOfMemoryError):模型、其上下文或批次超出了显存容量。请选择更小或压缩程度更高的模型,在 vLLM 中调低
,或减小批大小。--max-model-len 可以显示是否仍有其他进程占用着显存。nvidia-smi 返回 False:虚拟环境未激活,或者 PyTorch 构建所需的 CUDA 版本高于驱动所支持的版本。请将torch.cuda.is_available() 与torch.version.cuda 中显示的 CUDA 版本进行比较。nvidia-smi- “Driver/library version mismatch”:驱动软件包已更新,但旧的内核模块仍处于加载状态。请重启。
- 容器中看不到 GPU:在
中添加docker run ,并检查是否已执行--gpus all ,以及 Docker 是否已重启。nvidia-ctk runtime configure - 首次启动较慢:首次运行时会下载模型并编译 GPU 内核。之后的启动会更快。