
部署开源大模型并不是一件 “装完就能跑” 的事情,尤其在私有化环境中,要面对显卡选型、资源规划、推理效率、模型加载机制、安全限制、用户调用与版本迭代等诸多挑战。很多技术文档讲得过于泛泛或者仅介绍配置参数,这篇我们走极实战路线——用得起、跑得通、改得快。
1. 模型选择:别只看参数量
- Qwen 1.5-7B:支持中文和代码理解,适合中文企业客服、问答系统。
- LLaMA2-7B:更强逻辑性,适用于推理分析类任务。
- Mistral-7B:短文本场景表现优,模型权重轻,启动快。
不要盲目追求参数量,“够用、稳定、快部署” 才是自部署最优解。
2. 显卡选型与预算规划
显卡 | 显存 | 推理能力 | 价格(参考) |
---|---|---|---|
RTX 4090 | 24GB | 支持7B INT4/INT8 | ¥11,000 |
A40 | 48GB | 支持13B INT4 / 7B FP16 | ¥13,000 |
A100 80GB | 80GB | 训练+推理全能型 | ¥26,000+ |
部署建议:中小团队推荐4090,FP16任务建议入手A40/A100。
3. 环境准备
conda create -n llm python=3.10
conda activate llm
pip install vllm transformers accelerate
显卡驱动需 NVIDIA 官方支持,CUDA ≥11.7,推荐 PyTorch 2.1+。
4. 模型部署命令(以 Qwen 1.5-7B 为例)
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen1.5-7B-Chat \
--tokenizer Qwen/Qwen1.5-7B-Chat \
--tensor-parallel-size 1 \
--gpu-memory-utilization 0.9 \
--dtype auto \
--max-model-len 4096
部署后访问:http://localhost:8000/v1/completions
,支持 OpenAI API 调用。
5. 调用测试(curl)
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{"prompt": "什么是私有部署?", "max_tokens": 100, "model": "qwen"}'
6. 多模型部署架构(支持热切换)
- 每个模型监听不同端口:Qwen-7B→8001,LLaMA2→8002
- FastAPI 搭建统一代理服务
- nginx 路由分流,策略调用
- 日志记录接入 ELK / Loki 系统
7. 常见部署问题汇总
- 模型 OOM: 使用 INT4 或多卡并行
--tensor-parallel-size
- tokenizer 报错: 确认模型版本与tokenizer是否一一对应
- API卡顿: 提前预热模型,多进程异步调用
- 显存利用低: 增加 batch size,或统一最大输入长度
8. 成本控制建议
- 用二手 A40 性价比高,适合日推理量 < 50k
- 定期监控 GPU 使用率,防止空转
9. 性能测试数据(实际压测)
模型 | 显卡 | INT4 QPS | 响应延迟 |
---|---|---|---|
Qwen-7B | RTX 4090 | 47 | 160ms |
Mistral-7B | A40 | 58 | 140ms |
LLaMA2-7B | 4090 ×2 | 65 | 135ms |