私有化部署 LLM 给团队用:vLLM + Qwen 实战
公司内部用 GPT/Claude 有数据合规风险。本文记录我们私有化部署 LLM 给 50 人小团队用的方案。
选型
| 模型 | 参数 | GPU 需求 | 中文能力 | 工具调用 |
|---|---|---|---|---|
| Qwen2.5-72B | 72B | 4×A100 80G | 强 | 强 |
| Qwen2.5-32B | 32B | 2×A100 80G | 强 | 中 |
| DeepSeek-V3 | 671B (MoE) | 8×H100 | 强 | 强 |
| Llama 3.3 70B | 70B | 4×A100 | 中(中文一般) | 强 |
50 人小团队推荐 Qwen2.5-32B,性价比最好。
推理框架:vLLM
vLLM 是当前最快的开源推理框架,PagedAttention 让吞吐量比 transformers 高 10 倍。
pip install vllm
vllm serve Qwen/Qwen2.5-32B-Instruct \
--tensor-parallel-size 2 \
--max-model-len 32768 \
--gpu-memory-utilization 0.9 \
--port 8000
服务起来后兼容 OpenAI API:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"Qwen/Qwen2.5-32B-Instruct","messages":[{"role":"user","content":"你好"}]}'
加 Web UI
LobeChat 或 OpenWebUI 是开源 ChatGPT 风格 UI:
# docker-compose.yml
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
environment:
- OPENAI_API_BASE_URL=http://vllm:8000/v1
- OPENAI_API_KEY=dummy
ports:
- "3000:8080"
接入 OIDC 单点登录
OpenWebUI 支持 OIDC:
environment:
- ENABLE_OAUTH_SIGNUP=true
- OAUTH_CLIENT_ID=...
- OAUTH_CLIENT_SECRET=...
- OPENID_PROVIDER_URL=https://sso.company.com/.well-known/openid-configuration
接入公司 SSO 后员工免注册直接用。
接入 Claude Code / opencode / Cursor
所有兼容 OpenAI API 的客户端都可以接:
Claude Code 不行(专绑 Anthropic API),但 opencode 支持自定义 provider:
{
"provider": {
"internal-qwen": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "http://internal-llm.company:8000/v1",
"apiKey": "dummy"
},
"models": {
"qwen2.5-32b": { "name": "Qwen 2.5 32B" }
}
}
}
}
监控
vLLM 自带 Prometheus metrics:
http://localhost:8000/metrics
关键指标:
- vllm:num_requests_running:当前在跑的请求
- vllm:num_requests_waiting:等待队列长度
- vllm:time_to_first_token_seconds:首 token 延迟
- vllm:e2e_request_latency_seconds:端到端延迟
队列长度持续 >10 说明 GPU 不够。
容量规划
50 人团队实测数据:
- 平均 QPS:2-3(峰值 8)
- 平均输入 token:2000
- 平均输出 token:500
- 单次延迟:2-5 秒
2 张 A100 80G + Qwen 32B 完全够用,每月电费 + 折旧 + 运维 ≈ ChatGPT Team 50 个 license 的成本。
几个坑
- vLLM 不支持热更换模型:换模型要重启
- batch size 调大有 OOM 风险:留 10% GPU 内存余量
- 长上下文性能崩:32K 比 8K 慢 5 倍以上,业务能用 8K 就不要开 32K
- 流式输出在某些客户端不工作:测试客户端兼容性
ROI 分析
ChatGPT Team / Claude Team license:~30 USD/人/月,50 人 = 1500 USD/月
私有化:
- 服务器 2×A100 80G:购置 30 万人民币(按 3 年折旧 = 8000 RMB/月)
- 电费 + 机房:~3000 RMB/月
- 运维(兼职 0.2 人):~3000 RMB/月
- 合计:~14000 RMB/月
不算便宜,但数据不出公司这条对很多企业是硬要求。
教训:私有化 LLM 性价比的临界点是 50-100 人,再小就不如直接买 API。