在 GPU VPS 上装 CUDA 跑大模型:驱动、nvidia-smi 与 vLLM/Ollama 实战
2026-08-15 · DevCraft Studio
手把手在 GPU VPS(如 Vultr/Contabo 显卡实例)上装 NVIDIA 驱动与 CUDA,用 nvidia-smi 验卡,再跑通 Ollama / vLLM 本地推理。
想在云上自己跑一个大模型,又不想被 API 按 token 收费?租一台带 NVIDIA 显卡的 GPU VPS,装好驱动和 CUDA,再用 Ollama 或 vLLM 起一个本地推理服务,是最直接的路。本文以 Ubuntu 22.04 为例,从选实例、装驱动、验卡,到真正跑通对话,给你一份能照着敲命令的实战笔记。
延伸阅读
更多相关攻略推荐:2026 按小时 GPU 成本横评:H100 / A100 / A4、2026 实测:GPU VPS 上部署 ComfyUI 跑 Stab、【GPU VPS 01】带 GPU 的 VPS 怎么租最划算?H10、2026 游戏服 VPS 怎么选:高主频 CPU、内存与 DDoS 、2026 高主频 CPU VPS:单核性能、建站与游戏服的隐藏指标。
一、先选对显卡实例(含 CUDA 的镜像)
第一步是选机器。Vultr 的云 GPU 按小时计费,常见型号里 A40(48GB 显存)约 1.10 美元/小时、L40S(48GB)约 1.24 美元/小时、A100(80GB)约 1.85 美元/小时;48GB 显存足够跑 70B 的 4-bit 量化模型,80GB 则能上更大上下文或多模型并行。Contabo 也提供按月计费的 GPU VPS(多为 A4000/A5000 这一档),价格比按小时云 GPU 低很多,但要按月预付、灵活性差一些。新手最省事的做法,是直接选厂商提供的"PyTorch / CUDA"预装镜像——驱动和 CUDA 运行时已经就位,开机就能用 nvidia-smi 看到卡。
选多大显存,取决于你要跑的模型。8B 级别量化后约 4–5GB,单张入门卡就能跑;32B 约 18–20GB,需要 A4000/A5000 这一档;70B 的 4-bit 量化约 40GB,得上看 48GB 的 A40/L40S,甚至 80GB 的 A100。先想清楚要跑哪个量级的模型,再倒推该租什么卡,能少走很多弯路。
二、装驱动与 CUDA,再用 nvidia-smi 验卡
如果你选的是纯净 Ubuntu 镜像,需要先装驱动。下面是最稳的 apt 路线(以 535 驱动为例,新卡如 RTX 40/50 系请用 550 或 570):
sudo apt update
sudo ubuntu-drivers devices
sudo apt install -y nvidia-driver-535
sudo reboot
nvidia-smi重启后执行 nvidia-smi,能列出显卡型号、驱动版本和显存,就说明驱动装好了。接下来若要编译 CUDA 程序,再装工具包:
sudo apt install -y nvidia-cuda-toolkit
nvcc --version这里有个实用提醒:单纯跑 Ollama / vLLM 其实只需要显卡驱动,CUDA 运行时会被应用自带(容器或预编译二进制里已包含)。所以验卡通过、nvidia-smi 能显示,就可以直接进入下一步,不必死磕完整 CUDA 工具包。
顺带一提,驱动版本要和显卡架构匹配:RTX 30/40 系至少需要 470 以上驱动,50 系(Blackwell)需要 570 及以上,装错版本 nvidia-smi 会直接报错或识别不到卡。不确定时先跑 ubuntu-drivers devices 看系统推荐版本,再照推荐去装,能避开大部分兼容性坑。若你选的是厂商预装 CUDA 镜像,这步通常已经帮你做对,跳过即可。
三、Ollama:一条命令跑通本地大模型
Ollama 把"下载模型 + 量化 + 起服务"都打包好了,适合快速验证和单人使用。安装和首次推理只需几行:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen3:8b
ollama run qwen3:8bqwen3:8b 量化后约 4GB 显存,多数显卡都能跑。它默认在 11434 端口提供 OpenAI 兼容接口,直接用 curl 测:
curl http://localhost:11434/api/generate -d '{"model":"qwen3:8b","prompt":"用三句话解释 Docker","stream":false}'常用管理命令:ollama list 看已下载模型,ollama rm 模型名 删模型腾空间,ollama serve 以 REST 服务形式常驻。想让外网访问,把环境变量 OLLAMA_HOST 设为 0.0.0.0 再重启服务,并务必在防火墙只放行业务 IP。
如果你只是想本地体验对话,到这一步其实已经足够;Ollama 会在后台常驻,关掉终端也不影响它继续服务,后续可随时用 ollama run 拉起新模型。
四、vLLM:起一个 OpenAI 兼容的推理服务
当你要服务多个并发用户、追求吞吐时,用 vLLM。它用 PagedAttention 管理显存、连续批处理提吞吐,暴露的同样是 OpenAI 兼容接口。先装:
pip install vllm
vllm serve Qwen/Qwen2.5-7B-Instruct --host 0.0.0.0 --port 8000 --dtype bfloat16 --max-model-len 8192 --gpu-memory-utilization 0.9看到 Uvicorn running on http://0.0.0.0:8000 就说明服务起来了。测试:
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"Hello!"}]}'几个常用参数:--dtype bfloat16 用原生精度(A100 适用),--max-model-len 限制序列长度省显存,--gpu-memory-utilization 0.9 把 90% 显存留给模型与 KV 缓存。之后你的客户端只要把 base_url 指向这台机器的 8000 端口,代码几乎不用改。
这也是 vLLM 最大的实用价值:它把"生产级推理"的复杂度压到了一条命令,同时又给你 PagedAttention 带来的高吞吐,适合把本地模型真正接进产品而不是只停留在玩具阶段。
五、显存不够怎么办:量化与选型
显存是本地大模型的硬门槛。粗略经验:8B 级别 4-bit 量化约 4–5GB,14B 约 8–9GB,32B 约 18–20GB,70B 的 4-bit(如 llama3.1:70b-q4_K_M)约 40GB。也就是说,48GB 的 A40/L40S 刚好能扛 70B 量化版,80GB 的 A100 更从容还能开大上下文。
省显存有几招:在 Ollama 里直接选 -q4_K_M 这类量化标签而非满血 fp16;在 vLLM 里用 AWQ/GPTQ 量化权重;调小 --max-model-len;把 --gpu-memory-utilization 调高(如 0.9)但留出余量防 OOM。若连 24GB 卡都不到,就退到 7B/8B 量化模型,效果够用、延迟也低。另一个省钱思路:别 24/7 开着 GPU 实例,开发时段按小时起、用完就销毁,一台 A100 跑 8 小时大约 15 美元,远比包月便宜。
举个实际账:同样跑 qwen3:8b 做开发,若图省事 24/7 常开 A40(约 1.10 美元/小时),一个月接近 790 美元;只在每天写代码 8 小时开着、其余销毁,月费约 260 美元;进一步退到按需起 A100 做短时验证,单次 8 小时才 15 美元。可见"用多少开多少"比"常驻"能省下大半预算,对偶发推理尤其明显。
六、用 Python 客户端调用(顺手连云)
命令行能跑通后,应用层通常用 Python 调用。Ollama 有官方 SDK,把 base_url 指向本地 11434 即可,接口与 OpenAI 几乎一致;vLLM 则直接兼容 OpenAI SDK,把 base_url 设成 http://localhost:8000/v1、api_key 随便填,原有调用 OpenAI 的代码几乎不用改。这种"兼容 OpenAI"的特性,正是本地推理能平滑替换云端 API、又不被厂商锁死的关键。
from ollama import Client
client = Client(host="http://localhost:11434")
r = client.chat(model="qwen3:8b", messages=[{"role":"user","content":"你好"}])
print(r["message"]["content"])七、监控与性能观察
服务跑起来后,nvidia-smi 是最直接的观察窗口。nvidia-smi -l 2 每 2 秒刷新一次,可看显存占用、GPU 利用率与温度。显存长期接近打满容易触发 OOM,利用率长期偏低则瓶颈常在别处(网络或生成速度)。Ollama 侧用 ollama show 模型名 看量化方式与参数;vLLM 启动日志会打印已加载权重、KV 缓存大小与最大并发,是判断资源配置是否合理的一手信息。把这些指标和你的请求量对照,就能知道该升显存还是该降并发。
八、安全:别把端口裸奔公网
11434(Ollama)与 8000(vLLM)默认只应对内网或特定 IP 开放。把监听设为 0.0.0.0 后,务必在厂商防火墙只放行业务 IP,或用 nginx 反代加一层认证与 HTTPS。公网裸奔推理端口等于把算力白送别人刷 token,还可能被投恶意请求、拖垮整台机器。若仅本机或内网调用,保持监听 localhost 最省心,也最不容易出安全事故。
另外要记住,推理端口一旦暴露到公网,别人就能用你的卡跑他们的任务,电费、显存损耗和潜在的安全风险全都算在你的账上,所以这一步绝不能图省事跳过。
九、常见故障排查
跑不起来时按这个顺序查:nvidia-smi 空输出或报错,说明驱动未装好或未重启,确认 lsmod 里有 nvidia 模块;Ollama 拉模型卡住,多为网络或磁盘不足,用 df -h 看盘;vLLM 报 CUDA out of memory,调低 --gpu-memory-utilization、缩小 --max-model-len,或换更小量化模型;客户端连不上,先 curl 本地端口确认服务在跑,再查防火墙与绑定地址。多数问题都落在这几处,逐项排除很快能定位。
十、何时从 Ollama 迁到 vLLM
一开始用 Ollama 没问题,但它本质是顺序处理、并发能力有限。当你的接口开始面对多个用户、或需要稳定吞吐时,就该迁到 vLLM:把模型名换成 HuggingFace 上的同名仓库,客户端只改 base_url,业务逻辑一行不用动。这种"先 Ollama 验证、后 vLLM 上线"的节奏,既省前期的折腾,又能扛住真实流量,是本地大模型最顺的演进路径。
延伸阅读:刚接触 VPS 的新手先看VPS 新手入门指南打基础;想挑低价机器可参考RackNerd 评测与优惠;想横向比较各厂商再决定,可读2026 免费/低价 VPS 横向对比。