前置条件
- 1已注册腾讯云账号
- 2已购买一台轻量应用服务器(建议 8C16G 起步)或 GPU 实例
- 3服务器已安装 Docker 与 docker compose 插件
读完想动手?新用户首单 8 折上云
服务器 + 大模型 API + 对象存储,新用户首购享 20% 补贴
Qwen3 通义千问腾讯云本地部署完整指南
本教程将详细介绍如何在 腾讯云轻量应用服务器 / GPU 实例上部署阿里开源的国产大模型 Qwen3(通义千问),提供 Ollama 快速起步与 vLLM 生产级部署两条完整路径,让你拥有一套数据不出内网、可自由控制并发与上下文长度的私有推理服务。全程在腾讯云 Ubuntu 22.04 环境实测,跟着做即可完成。
前置准备
在开始之前,请确保你已经完成以下准备工作:
- 已注册腾讯云账号
- 已购买一台轻量应用服务器(建议 8C16G 起步)或 GPU 实例
- 服务器已安装 Docker 与 docker compose 插件
为什么选 Qwen3
阿里云的大模型 API(DashScope 百炼)已经很便宜很稳定,为什么还要自己部署?先回答这个问题,再决定要不要往下走。
一句话定位
信息
Qwen3 自建版 = 阿里开源国产模型 + Apache 2.0 免费商用 + 尺寸从 0.6B 到 235B 任选 + 数据完全私有 + 并发与上下文自己说了算。
它不是唯一可选的国产模型,但它是尺寸梯度最完整、小尺寸性价比最高、社区微调生态最成熟的一个 —— 这意味着你可以在同一台机器上先用小模型验证业务,再按需升级,而不用换整套技术栈。
版本怎么选:密集模型 vs MoE
Qwen3 同时提供两类模型,选错会直接影响硬件成本:
| 类型 | 代表型号 | 特点 | 适合场景 |
|---|---|---|---|
| 密集模型(Dense) | 0.6B / 1.7B / 4B / 8B / 14B / 32B | 每次推理激活全部参数,显存占用可精确预估 | 单机部署、延迟敏感、配置可控 |
| MoE 稀疏模型 | 30B-A3B / 235B-A22B | 总参数大但每次只激活一小部分,效果接近大模型、成本接近小模型 | 追求效果且有较大显存,批量推理 |
警告
⚠️ 新手常见误区:MoE 的「30B」是总参数,不是激活参数。部署时显存要按总参数算(要装下全部权重),但推理速度接近激活参数规模的模型。所以 Qwen3-30B-A3B 需要约 16GB 显存装权重,跑起来却接近一个 3B 模型的速度。
自建 vs DashScope API:这笔账怎么算
| 维度 | DashScope API | 自建 Ollama / vLLM |
|---|---|---|
| 起步成本 | 零,按量付费 | 服务器月费固定 |
| 数据隐私 | 请求需出网到阿里云 | 完全在自己 VPC 内 |
| 并发控制 | 受账户配额限制 | 只受硬件约束 |
| 上下文长度 | 受套餐限制 | 可自由调 --max-model-len |
| 模型定制 | 不支持微调权重 | 可加载自己的 LoRA |
| 维护成本 | 零 | 需处理升级、监控、备份 |
关键事实:
- Qwen3 采用 Apache 2.0 协议,商用无需授权、无分成,这是企业内接入的硬性前提
- 原生支持思考模式开关:简单问题关闭思考降低延迟,复杂推理再打开,同一模型两种用法
- 权重在 ModelScope(魔搭) 有官方托管,腾讯云服务器下载通常能跑满带宽,不需要任何代理
- Ollama 与 vLLM 都暴露 OpenAI 兼容 API,Dify、FastGPT、Continue、Open WebUI 都能直接复用
什么时候该自建
✅ 适合:数据敏感不能出网 / 需要长时间高并发跑批处理 / 想加载自己的微调权重 / 要给多个应用提供统一私有推理后端 / 需要超长上下文且调用频繁
❌ 不适合:只是偶尔问几句(直接用 DashScope 更省)/ 不能接受自己维护服务器 / 要求顶级推理速度但只有小显存
云服务器选型:按模型尺寸倒推配置
选服务器的正确顺序是:先定要跑哪个尺寸的模型,再倒推需要什么配置,而不是先看预算。
| 模型尺寸(量化) | 权重体积 | CPU 推理(8C16G) | GPU 显存需求 | 推荐腾讯云配置 |
|---|---|---|---|---|
| Qwen3-4B Q4_K_M | 约 2.6GB | 每秒 5 到 9 tokens | 6GB 以上 | 4C8G 轻量即可尝鲜 |
| Qwen3-8B Q4_K_M | 约 5.0GB | 每秒 2 到 4 tokens | 8GB 以上 | 推荐起步,轻量 8C16G 或入门 GPU |
| Qwen3-14B Q4_K_M | 约 8.5GB | 每秒 1 到 2 tokens(勉强) | 12GB 以上 | GPU 实例(如 T4 / A10 档) |
| Qwen3-32B Q4_K_M | 约 19GB | 基本不可用 | 24GB 以上 | GPU 实例,24GB 显存起步 |
| Qwen3-30B-A3B(MoE) | 约 17GB | 不可行 | 20GB 以上 | GPU 实例,适合批量推理 |
警告
⚠️ 实测提醒:上表的 CPU 速度是腾讯云标准型机型跑 Q4_K_M 的实测区间。轻量应用服务器多为共享型 CPU,同配置会比标准型慢 20% 到 40%,选型时请把这一项算进去。另外 CPU 推理一定要预留 4GB 以上 swap,否则加载模型时容易被内核 OOM kill。
磁盘:
| 机型用途 | 建议系统盘 | 说明 |
|---|---|---|
| 只跑一个 8B 模型 | 60 到 80GB SSD | 权重约 5GB,留足缓存与日志空间 |
| 计划对比多个尺寸 | 150GB 以上 | 每加一个 14B 级模型约多占 9GB |
前往 腾讯云轻量应用服务器 选购页对照上表选择;确定要上 GPU 可到 腾讯云 GPU 云服务器 查看机型与实时库存,GPU 实例建议按量计费,跑完立即销毁,长期常驻才转包年包月。
路径 A:Ollama 快速起步(推荐先跑这个)
Ollama 一条命令搞定下载、量化加载和 OpenAI 兼容 API,五分钟验证业务效果,是判断「值不值得自建」最快的办法。
A1. 安装 Docker(走腾讯云内网源)
腾讯云服务器务必用内网镜像源,比 Docker 官方源快一个数量级:
1# 安装依赖
2apt-get update
3apt-get install -y ca-certificates curl gnupg lsb-release
4
5# 添加腾讯云内网 Docker GPG key
6curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg -o docker-keyring.gpg
7gpg --dearmor -o /etc/apt/keyrings/docker.gpg docker-keyring.gpg
8
9# 添加腾讯云内网 Docker 软件源
10echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
11
12# 安装 Docker Engine 与 compose 插件
13apt-get update
14apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
15
16# 配置 Docker Hub 镜像加速器(关键,否则拉镜像会慢到超时)
17mkdir -p /etc/docker
18tee /etc/docker/daemon.json <<-'EOF'
19{
20 "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
21}
22EOF
23systemctl daemon-reload
24systemctl restart docker
25usermod -aG docker $USER警告
⚠️ 修改用户组后必须退出 SSH 重新登录才能生效,否则后续 docker 命令依然报权限不足。
A2. 安装 Swap(小内存机型必做)
8C16G 及以下强烈建议加 swap,否则加载模型时大概率被 OOM kill:
1fallocate -l 8G /swapfile
2chmod 600 /swapfile
3mkswap /swapfile
4swapon /swapfile
5
6cp /etc/fstab /etc/fstab.bak
7echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
8
9free -hA3. 启动 Ollama 并拉取 Qwen3
1mkdir -p /opt/qwen3 && cd /opt/qwen3
2
3cat > docker-compose.yml <<-'EOF'
4version: '3.8'
5
6services:
7 ollama:
8 image: ollama/ollama:latest
9 container_name: ollama
10 restart: unless-stopped
11 ports:
12 - "127.0.0.1:11434:11434"
13 volumes:
14 - ./ollama:/root/.ollama
15 environment:
16 - OLLAMA_HOST=0.0.0.0
17 - OLLAMA_MAX_LOADED_MODELS=2
18 - OLLAMA_KEEP_ALIVE=10m
19 - OLLAMA_FLASH_ATTENTION=1
20 healthcheck:
21 test: ["CMD", "ollama", "list"]
22 interval: 30s
23 timeout: 10s
24 retries: 3
25
26 open-webui:
27 image: ghcr.io/open-webui/open-webui:main
28 container_name: open-webui
29 restart: unless-stopped
30 ports:
31 - "127.0.0.1:3000:8080"
32 volumes:
33 - ./webui:/app/backend/data
34 environment:
35 - OLLAMA_BASE_URL=http://ollama:11434
36 - WEBUI_AUTH=true
37 depends_on:
38 ollama:
39 condition: service_healthy
40EOF
41
42docker compose up -d
43docker compose ps提示
💡 安全默认项:上面两个端口都绑定在 127.0.0.1,只能本机访问。Ollama 默认无鉴权,一旦暴露公网会被人白嫖算力甚至执行任意模型操作,这一步不能省。需要对外访问时用 Nginx 反代并加鉴权(见本文「安全加固」)。
拉取模型权重(按前面选型表挑一个尺寸):
1# 8B 版本:内存友好,CPU 也能跑,推荐起步
2docker exec -it ollama ollama pull qwen3:8b
3
4# 14B 版本:效果更好,建议 GPU 实例
5docker exec -it ollama ollama pull qwen3:14b
6
7# 4B 版本:低配尝鲜或边缘设备
8docker exec -it ollama ollama pull qwen3:4b提示
💡 Ollama 官方库的 Qwen3 已经是量化好的版本,直接 pull 即可,不必手动量化。如果想跑非量化原始权重做微调基座,用本文「ModelScope 下载」那一节的方式。
A4. 验证推理
1# 一次性问答验证
2docker exec -it ollama ollama run qwen3:8b "用三句话解释什么是向量数据库"
3
4# 验证 OpenAI 兼容 API 是否可用
5curl -s http://127.0.0.1:11434/v1/chat/completions \
6 -H "Content-Type: application/json" \
7 -d '{
8 "model": "qwen3:8b",
9 "messages": [{"role": "user", "content": "你好,介绍一下你自己"}],
10 "stream": false
11 }' | head -40看到返回 JSON 且 choices[0].message.content 有内容,说明推理链路已通。
A5. 思考模式开关(Qwen3 特色用法)
Qwen3 支持在同一模型上按需开关「思考」,这是它区别于很多国产模型的实用特性:默认开启思考,加了 <arg_key:opensource> 标记则关闭。
1# 复杂推理(默认开启思考):不加标记
2docker exec -it ollama ollama run qwen3:8b "一个水池有两个进水管和一个出水管,单独开甲管 6 小时注满,单独开乙管 4 小时注满,单独开丙管 12 小时排空。三管齐开几小时注满?"
3
4# 简单问答 / 闲聊(关闭思考省时间):提示词末尾加 <arg_key:opensource>
5docker exec -it ollama ollama run qwen3:8b "把这句话翻译成英文:今天天气不错 <arg_key:opensource>"1# API 方式也可以直接拼在 content 后面
2curl -s http://127.0.0.1:11434/v1/chat/completions \
3 -H "Content-Type: application/json" \
4 -d '{
5 "model": "qwen3:8b",
6 "messages": [{"role": "user", "content": "深圳有什么好玩的地方?<arg_key:opensource>"}]
7 }'警告
⚠️ 实践建议:生产环境把思考模式做成参数,默认关闭。思考会显著拉长首字延迟(通常翻倍以上),对闲聊、分类、抽取这类任务是纯粹的浪费;只在用户明确要「深度分析」时才打开。
ModelScope 下载:解决权重拉不动的问题
Ollama 官方库偶尔会因网络波动变慢,这时走魔搭(ModelScope)下载 GGUF 权重再导入,通常能跑满带宽。
1# 安装 ModelScope 客户端
2pip3 install -y modelscope
3
4# 下载 Qwen3-8B 的 GGUF 量化版(约 5GB)
5mkdir -p /opt/qwen3/weights && cd /opt/qwen3/weights
6modelscope download --model Qwen/Qwen3-8B-GGUF qwen3-8b-q4_k_m.gguf --local_dir .
7
8# 查看下载结果
9ls -lh下载完成后编写 Modelfile 让 Ollama 识别本地权重:
1cat > /opt/qwen3/Modelfile <<-'EOF'
2FROM /weights/qwen3-8b-q4_k_m.gguf
3
4PARAMETER num_ctx 32768
5PARAMETER num_predict 2048
6PARAMETER temperature 0.7
7PARAMETER top_p 0.8
8PARAMETER repeat_penalty 1.05
9
10SYSTEM 你是 Qwen,一个由阿里云开发的国产大语言模型。请用简洁清晰的中文回答用户问题。
11EOF
12
13docker cp /opt/qwen3/Modelfile ollama:/tmp/Modelfile
14docker exec -it ollama ollama create qwen3-8b-local -f /tmp/Modelfile
15docker exec -it ollama ollama run qwen3-8b-local "做个自我介绍"提示
💡 备选方案:如果 ModelScope 也慢,可以设 HF 镜像端点兜底 —— 在宿主机导出 export HF_ENDPOINT=https://hf-mirror.com 后再重试。
路径 B:vLLM 生产级部署
当你确认业务有价值、需要扛并发时,从 Ollama 切到 vLLM。它通过 PagedAttention 与连续批处理,同样一张卡能服务的并发数通常有数倍提升。
警告
⚠️ 前提:vLLM 需要 GPU。纯 CPU 环境请用 Ollama 路径,或改用 llama.cpp。
B1. 准备 GPU 环境
1# 确认驱动与显卡可见
2nvidia-smi
3
4# 安装 NVIDIA Container Toolkit
5distribution=$(. /etc/os-release; echo $ID$VERSION_ID)
6curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
7curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
8 sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
9 tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
10
11apt-get update
12apt-get install -y nvidia-container-toolkit
13nvidia-ctk runtime configure --runtime=docker
14systemctl restart docker验证 GPU 能否被容器使用:
1docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smiB2. 启动 vLLM 服务
1mkdir -p /opt/qwen3-vllm && cd /opt/qwen3-vllm
2
3cat > docker-compose.yml <<-'EOF'
4version: '3.8'
5
6services:
7 vllm:
8 image: vllm/vllm-openai:latest
9 container_name: vllm
10 restart: unless-stopped
11 ipc: host
12 ports:
13 - "127.0.0.1:8000:8000"
14 volumes:
15 - ./models:/root/.models
16 - $HOME/.cache/huggingface:/root/.cache/huggingface
17 environment:
18 - HF_ENDPOINT=https://www.modelscope.cn
19 - VLLM_WORKER_MULTIPROC_METHOD=spawn
20 command: >
21 --model Qwen/Qwen3-8B
22 --served-model-name qwen3-8b
23 --max-model-len 32768
24 --gpu-memory-utilization 0.85
25 --max-num-seqs 64
26 --dtype auto
27 --api-key your-strong-api-key
28 deploy:
29 resources:
30 reservations:
31 devices:
32 - driver: nvidia
33 count: all
34 capabilities: [gpu]
35EOF
36
37docker compose up -d
38docker compose logs -f vllm关键参数说明:
| 参数 | 作用 | 调优建议 |
|---|---|---|
--gpu-memory-utilization | 显存占用比例 | 单卡独占设 0.85 到 0.9;还要跑别的进程就降到 0.6 |
--max-model-len | 最大上下文长度 | 显存紧张时从 32768 降到 8192,能省不少显存 |
--max-num-seqs | 最大并发序列数 | 并发上不去就调大;显存溢出就调小 |
--api-key | 接口鉴权 | 生产必须设置,否则接口裸奔 |
--dtype auto | 权重精度 | 显存不足可改 half;A100 以上可试 bfloat16 |
验证服务:
1# 健康检查
2curl -s http://127.0.0.1:8000/health
3
4# 实际推理(注意带上 api-key)
5curl -s http://127.0.0.1:8000/v1/chat/completions \
6 -H "Content-Type: application/json" \
7 -H "Authorization: Bearer your-strong-api-key" \
8 -d '{
9 "model": "qwen3-8b",
10 "messages": [{"role": "user", "content": "用 Python 写一个快速排序"}],
11 "max_tokens": 512
12 }'B3. Ollama 与 vLLM 的取舍
| 维度 | Ollama | vLLM |
|---|---|---|
| 上手时间 | 5 分钟 | 需要配 GPU 环境,约 30 分钟 |
| 并发吞吐 | 一般 | ⭐ 高数倍 |
| CPU 可用 | ✅ 支持 | ❌ 需要 GPU |
| 模型切换 | ⭐ 一条命令 | 需重启容器或预加载多个 |
| 显存效率 | 一般 | ⭐ PagedAttention 更省 |
| 适合阶段 | 验证、个人、小团队 | 生产、对外服务、批处理 |
提示
💡 平滑迁移的关键:两者都是 OpenAI 兼容接口。所以上层应用(Dify、Open WebUI、自己的代码)只需要改一个 base_url,业务代码一行不用动。建议先用 Ollama 跑通业务,再切 vLLM 扛流量。
对接上层应用
模型跑起来只是第一步,接进真实业务才有价值。因为暴露的是 OpenAI 兼容接口,下面这些应用改一行配置就能用。
对接 Open WebUI(已在 A3 编排好)
浏览器访问 http://<你的IP>:3000(Nginx 反代后),首次登录注册管理员账号,在「设置 → 连接 → OpenAI」确认 API 地址是 http://ollama:11434/v1 后,模型列表里选择 qwen3:8b 即可对话。
对接 Dify
在 Dify 本地部署教程 那套部署里,进入「设置 → 模型供应商 → Ollama」:
| 配置项 | 值 |
|---|---|
| 模型名称 | qwen3:8b |
| 基础 URL | http://<你的服务器内网IP>:11434 |
| 模型类型 | 对话 |
| 模型上下文长度 | 32768 |
| 最大 token 上限 | 2048 |
警告
⚠️ Dify 跑在 Docker 里,填 127.0.0.1 指向的是 Dify 容器自己。必须填宿主机的内网 IP 或 host.docker.internal,否则会报连接拒绝。
对接自己的代码
1from openai import OpenAI
2
3client = OpenAI(
4 base_url="http://127.0.0.1:11434/v1", # 换成 vLLM 就是 :8000/v1
5 api_key="ollama" # vLLM 时填你设置的 --api-key
6)
7
8resp = client.chat.completions.create(
9 model="qwen3:8b",
10 messages=[
11 {"role": "system", "content": "你是客服助手,只回答与产品相关的问题。"},
12 {"role": "user", "content": "你们的退款政策是什么?"}
13 ],
14 temperature=0.7,
15 max_tokens=1024
16)
17print(resp.choices[0].message.content)Nginx 反向代理 + HTTPS
不要把 11434 或 8000 直接暴露公网:
1apt-get install -y nginx certbot python3-certbot-nginx
2
3cat > /etc/nginx/sites-available/qwen3 <<-'EOF'
4server {
5 listen 80;
6 server_name ai.yourcompany.com;
7
8 location / {
9 proxy_pass http://127.0.0.1:3000;
10 proxy_set_header Host $host;
11 proxy_set_header X-Real-IP $remote_addr;
12 proxy_http_version 1.1;
13 proxy_set_header Upgrade $http_upgrade;
14 proxy_set_header Connection "upgrade";
15 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
16 proxy_set_header X-Forwarded-Proto $scheme;
17 # 流式输出必须关掉缓冲,否则前端会等很久才出字
18 proxy_buffering off;
19 proxy_read_timeout 300s;
20 }
21}
22EOF
23
24ln -s /etc/nginx/sites-available/qwen3 /etc/nginx/sites-enabled/
25nginx -t && systemctl reload nginx
26
27certbot --nginx -d ai.yourcompany.com警告
⚠️ proxy_buffering off 不能漏。流式输出(打字机效果)依赖实时推送,开了缓冲会导致用户看到「卡住很久然后一次性刷屏」。
安全加固(务必做)
⚠️ 三条铁律:
| 风险 | 后果 | 做法 |
|---|---|---|
| Ollama 11434 裸奔公网 | 算力被白嫖、模型被恶意操作 | 只监听 127.0.0.1,或用安全组限制来源 IP |
vLLM 未设 --api-key | 接口被任意调用,显存被打满 | 生产必须设置强密钥 |
| WebUI 无鉴权对外 | 任何人都能用你的模型 | 保持 WEBUI_AUTH=true,并走 HTTPS |
1# 确认端口只监听在本机(应看到 127.0.0.1:11434)
2ss -tlnp | grep -E '11434|8000|3000'
3
4# 腾讯云两层防火墙都要检查:控制台安全组 + 系统 ufw
5ufw status故障排查表
| # | 症状 | 可能原因 | 解决方案 |
|---|---|---|---|
| 1 | docker: command not found | Docker 未装成功 | 重跑腾讯云内网源安装步骤;确认 apt-get install docker-ce 执行完成 |
| 2 | permission denied 连 docker socket | 用户不在 docker 组 | usermod -aG docker $USER 后必须重新登录 SSH |
| 3 | 拉取 ollama 镜像超时 | 没配 registry-mirror | 按本文配置 mirror.ccs.tencentyun.com 后 systemctl restart docker |
| 4 | ollama pull 卡在 0% | 官方库网络波动 | 改走 ModelScope 下载再 ollama create 导入 |
| 5 | 容器启动后立刻退出 | 内存不足被 OOM kill | 用 dmesg -T 查看末尾确认;加 swap 或升配 |
| 6 | 推理极慢,每秒不到 1 token | 模型过大正在用 swap | 换成更小的量化版;确认是否误选了 14B 以上 |
| 7 | CUDA out of memory | 显存不足 | 降低 --gpu-memory-utilization;减 --max-model-len;换更小尺寸 |
| 8 | vLLM 报找不到 GPU | 没装 Container Toolkit | 安装 nvidia-container-toolkit 并 nvidia-ctk runtime configure |
| 9 | 容器内看不到显卡 | compose 没声明 GPU | 加 deploy.resources.reservations.devices 段落 |
| 10 | vLLM 启动报 dtype 不支持 | 老显卡不支持 bfloat16 | --dtype 改成 half |
| 11 | 请求返回 404 model not found | 模型名不匹配 | 用 --served-model-name 指定的名字请求,不是原始仓库名 |
| 12 | 接口返回 401 | vLLM 设了 api-key | 请求头加 Authorization: Bearer <你的key> |
| 13 | Dify 报连接拒绝 | 填了 127.0.0.1 | Docker 容器内要用宿主机内网 IP 或 host.docker.internal |
| 14 | 长文本被截断报超长 | --max-model-len 太小 | 调大该值,同时注意显存是否够用 |
| 15 | 流式输出卡住后一次性刷屏 | Nginx 开了缓冲 | 配置里加 proxy_buffering off |
| 16 | 前端打字机效果没有 | 客户端没用流式 | 请求时加 "stream": true |
| 17 | ollama run 报模型不存在 | 没 pull 成功 | ollama list 确认;镜像名称拼写是否正确 |
| 18 | 多人同时问明显变慢 | 并发超过承载能力 | Ollama 场景建议切 vLLM;或调大 --max-num-seqs |
| 19 | 磁盘很快占满 | 拉了多个大尺寸模型 | ollama rm <模型名> 删不用的;把 /opt/qwen3 挂到数据盘 |
| 20 | 重启服务器后服务没起来 | 未设开机自启 | compose 里 restart: always;并 systemctl enable docker |
总结
通过本文,你在腾讯云上完成了 Qwen3 国产大模型的私有化部署,得到了一套数据不出内网、并发可控、接口标准化的推理服务。
| 环节 | 关键点 |
|---|---|
| 选型 | 先定模型尺寸再倒推配置;8B 是 CPU 与 GPU 都能跑的甜点位 |
| 起步 | Ollama 五分钟验证;vLLM 扛生产并发,两者接口兼容可平滑切换 |
| 下载 | 官方库慢就走 ModelScope,配 registry-mirror 加速镜像拉取 |
| 调优 | 思考模式按场景开关;--max-model-len 与 --max-num-seqs 直接影响显存 |
| 安全 | 端口不裸奔公网、vLLM 必设 api-key、流式输出要关 Nginx 缓冲 |
四条落地建议:
- 先用 Ollama 跑通业务再谈优化 —— 五分钟能看到效果,避免一上来配两小时 GPU 环境却发现业务根本不需要。
- 思考模式做成开关而不是默认值 —— 默认关闭能让延迟减半,只在用户明确要深度分析时打开。
- 8B 是最稳妥的起步尺寸 —— 它在 8C16G 内存机器上 CPU 也能跑,业务跑通后再平滑升级到 14B 或 GPU。
- 把接口当成 OpenAI 兼容层来设计 —— 上层应用统一按 OpenAI SDK 写,底层换 Ollama、vLLM 甚至云 API 都不用改业务代码。
现在打开 Open WebUI,用 <arg_key:opensource> 问一句闲聊、再不加标记问一道推理题 —— 对比两者的响应速度差异,你会直观理解「同一模型两种用法」到底省在哪里。
常见问题
QQwen3 和 DeepSeek 该选哪个自建?
看场景。两者都是 Apache 2.0 可商用的国产模型。Qwen3 的优势是尺寸选择极丰富(0.6B 到 235B),小模型在 4C8G 上就能跑出可用体验,且原生支持思考模式开关,可以在同一模型上按问题难度切换快慢;社区微调生态(LoRA、角色扮演)也最成熟。DeepSeek 则在长文本与代码推理上口碑更好。如果机器配置一般、想先跑起来,选 Qwen3 的 8B 或 14B;如果追求推理深度且有 GPU,两者都值得各拉一份对比。
Q没有 GPU 能跑 Qwen3 吗?
能跑但要看尺寸。纯 CPU 推理建议控制在 8B 的量化版本(Q4_K_M 约 5GB),8C16G 内存机器上大约每秒 2 到 4 tokens,适合异步批处理和个人低频使用,不适合多人实时对话。14B 及以上强烈建议上 GPU。如果预算有限又想体验完整能力,直接用阿里云百灵的 DashScope API 更划算,等确认有长期用量再买 GPU 自建。
QOllama 和 vLLM 到底用哪个?
用途不同。Ollama 胜在一条命令完成下载、量化、加载和 OpenAI 兼容 API,五分钟就能跑通,适合个人自用、原型验证和作为 Dify 这类平台的后端。vLLM 胜在吞吐:通过 PagedAttention 与连续批处理,同样一张卡能同时服务几十路请求,延迟也更低,适合生产对外服务。建议路线是先用 Ollama 验证业务效果,确认有价值后再切 vLLM 扛并发。