一台GPU服务器如何部署自己的大模型?从Ollama到vLLM完整实践
前言:从“调用AI”到“拥有自己的AI”
过去开发AI应用,大多数人的第一步是调用API:
client.chat.completions.create(
model="gpt-4.1",
messages=[
{
"role":"user",
"content":"你好"
}
]
)
简单、高效。
但是随着AI应用深入,你会逐渐遇到几个问题:
- 企业数据不能上传第三方平台;
- API调用成本越来越高;
- 想微调自己的模型;
- 想搭建私有知识库;
- 想让Agent完全掌控运行环境。
这时候,你需要考虑:
把大模型部署到自己的服务器。
很多初学者认为:
部署大模型是不是需要几十张GPU?
实际上并不是。
随着量化技术和推理框架的发展,一台普通GPU服务器已经可以运行很多开源模型。
例如:
- Qwen2.5;
- DeepSeek;
- Llama;
- Mistral。
今天我们从零搭建一个完整的大模型推理服务:
GPU服务器
↓
模型文件
↓
推理框架
↓
API服务
↓
AI应用调用
一、部署大模型需要哪些东西?
一个完整的大模型服务包含:
模型文件
+
GPU环境
+
CUDA
+
推理引擎
+
API服务
+
监控
对应关系:
| 组件 | 作用 |
|---|---|
| CUDA | 让程序调用GPU |
| 模型文件 | AI参数 |
| Ollama | 快速体验 |
| llama.cpp | 轻量本地推理 |
| vLLM | 生产级高性能推理 |
| FastAPI | 业务接口 |
| Docker | 部署环境 |
二、第一步:检查GPU环境
假设服务器是Linux系统。
首先查看GPU:
nvidia-smi
正常情况下:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 550.xx CUDA Version: 12.x |
| GPU Name Memory-Usage |
| RTX 4090 0MiB / 24564MiB |
+-----------------------------------------------------------------------------+
可以看到:
- GPU型号;
- 显存;
- CUDA版本。
大模型部署最重要的指标:
不是CPU。
而是:
显存大小。
GPU显存大概能运行什么模型?
参考:
| 显存 | 模型规模 |
|---|---|
| 8GB | 1B~7B量化模型 |
| 16GB | 7B~14B量化模型 |
| 24GB | 7B~32B量化模型 |
| 48GB+ | 70B级模型 |
例如:
RTX4090:
24GB显存。
可以很好运行:
- Qwen2.5-7B;
- DeepSeek 7B;
- Llama 8B。
三、第二步:安装CUDA环境
查看CUDA:
nvcc --version
如果没有:
安装NVIDIA CUDA Toolkit。
Ubuntu:
sudo apt update
sudo apt install nvidia-cuda-toolkit
验证:
python
进入:
import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name())
输出:
True
NVIDIA RTX 4090
说明:
PyTorch已经可以调用GPU。
四、方式一:Ollama快速部署本地模型
如果只是学习和测试:
推荐Ollama。
安装Ollama
Linux:
curl -fsSL https://ollama.com/install.sh | sh
查看:
ollama --version
下载模型
例如:
Qwen2.5:
ollama pull qwen2.5:7b
查看:
ollama list
输出:
NAME SIZE
qwen2.5:7b 4.7GB
运行模型
ollama run qwen2.5:7b
输入:
解释一下Transformer架构
即可得到回答。
五、Ollama背后的原理是什么?
很多人以为:
Ollama就是模型。
实际上:
它只是一个管理和推理工具。
流程:
用户
↓
Ollama Server
↓
llama.cpp
↓
GGUF模型
↓
GPU
它帮你处理:
- 模型下载;
- 量化模型加载;
- API接口。
六、让Ollama提供API服务
默认:
Ollama运行:
localhost:11434
测试:
curl http://localhost:11434/api/generate \
-d '
{
"model":"qwen2.5:7b",
"prompt":"介绍RAG"
}
'
返回:
{
"response":"RAG是一种..."
}
现在:
你的服务器已经拥有AI接口。
七、生产环境为什么更推荐vLLM?
Ollama适合:
- 个人使用;
- Demo;
- 开发测试。
但是企业生产:
更常用:
vLLM。
原因:
大模型推理最大的瓶颈:
不是模型。
而是:
GPU利用率。
例如:
100个用户同时请求:
普通推理:
用户1
等待完成
用户2
等待完成
vLLM:
可以:
用户1
用户2
用户3
同时进入Batch
提高吞吐量。
八、安装vLLM
环境:
Python >=3.9。
安装:
pip install vllm
测试:
python -c "import vllm;print(vllm.__version__)"
九、启动Qwen模型服务
例如:
部署Qwen2.5-7B:
vllm serve Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000
启动后:
地址:
http://服务器IP:8000
十、使用OpenAI SDK调用自己的模型
重点来了:
你的业务代码不用绑定OpenAI。
因为vLLM提供兼容接口。
代码:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="none"
)
response = client.chat.completions.create(
model="Qwen/Qwen2.5-7B-Instruct",
messages=[
{
"role":"user",
"content":"什么是AI Agent?"
}
]
)
print(
response.choices[0].message.content
)
运行:
结果:
你的本地GPU模型返回答案。
架构:
Python程序
↓
OpenAI SDK
↓
vLLM
↓
Qwen模型
↓
GPU
十一、模型加载失败怎么办?
大模型部署最常见错误:
显存不足
例如:
CUDA out of memory
解决:
方法1:降低量化
例如:
FP16:
↓
INT8
↓
INT4
方法2:减少上下文长度
启动:
--max-model-len 4096
因为:
上下文越长。
KV Cache越大。
方法3:限制并发
例如:
--max-num-seqs 16
十二、使用Docker部署生产环境
线上不要直接裸机运行。
推荐:
Docker
↓
vLLM
↓
GPU
安装:
docker run \
--gpus all \
-p 8000:8000 \
vllm/vllm-openai \
--model Qwen/Qwen2.5-7B-Instruct
优势:
- 环境隔离;
- 快速迁移;
- 易于扩容。
十三、一个真实企业AI架构
最终:
用户
|
Web/App
|
Backend API
|
AI Gateway
|
-----------------------
| |
vLLM 云API
|
Qwen
|
RAG
|
Vector Database
|
Langfuse监控
这就是目前很多企业采用的AI基础设施。
十四、个人开发者如何选择?
如果你只是学习:
推荐:
Ollama
+
Qwen2.5
+
RAG
成本最低。
如果开发项目:
推荐:
vLLM
+
Docker
+
FastAPI
+
Nginx
如果企业:
增加:
Kubernetes
GPU调度
监控系统
权限控制
总结:部署大模型,真正难的是工程,而不是下载模型
现在下载一个7B模型只需要几分钟。
真正困难的是:
- 如何利用GPU;
- 如何控制成本;
- 如何提高吞吐;
- 如何保证稳定;
- 如何提供服务。
未来AI开发不会只是:
“调用一个API”。
而会越来越像传统软件工程:
需要:
架构设计。
部署能力。
性能优化。
运维监控。
掌握大模型部署能力,你才能真正拥有自己的AI基础设施。
下一篇:
《AI推理服务性能优化:为什么你的模型响应这么慢?从KV Cache到量化加速》
将深入:
- 为什么大模型推理慢;
- GPU利用率优化;
- Batch机制;
- KV Cache原理;
- INT4量化;
- 如何让AI响应速度提升数倍。
更多推荐
所有评论(0)