前置条件
- 1已注册腾讯云账号
- 2已购买一台轻量应用服务器(建议 8C16G 起步)或 GPU 实例
- 3服务器已安装 Docker 与 docker compose 插件
读完想动手?新用户首单 8 折上云
服务器 + 大模型 API + 对象存储,新用户首购享 20% 补贴
DeepSeek V4.1 Flash 腾讯云本地部署完整指南
本教程将详细介绍如何在 腾讯云轻量应用服务器 / GPU 实例上,用 Ollama + Open WebUI 从零部署国产模型 DeepSeek V4.1 Flash,让你拥有一套数据不出内网、7x24 常驻、可接入任意 OpenAI 兼容客户端的私有 AI 服务。全程在腾讯云 Ubuntu 22.04 环境实测,跟着做即可完成。
前置准备
在开始之前,请确保你已经完成以下准备工作:
- 已注册腾讯云账号
- 已购买一台轻量应用服务器(建议 8C16G 起步)或 GPU 实例
- 服务器已安装 Docker 与 docker compose 插件
为什么要把 DeepSeek 搬到自己的云服务器上
在写具体步骤之前,先回答一个灵魂拷问:既然 DeepSeek 官方 API 便宜又稳定,为什么还要折腾自建?
一句话定位
信息
DeepSeek V4.1 Flash 自建版 = 552B 总参数仅 8B 激活的稀疏 MoE + Apache 2.0 免费商用 + 数据完全私有 + 无调用速率限制 + 可作为统一 AI 后端给任意客户端复用。
它不是最强的国产模型(V4 Pro 激活 35B 才是),但它是同等效果下部署成本最低、单机门槛最友好的版本 —— 一台腾讯云轻量服务器就能跑起来,是最适合作为「团队统一私有 AI 后端」的选择。
自建 vs API:怎么选才不亏
| 维度 | DeepSeek 官方 API | 腾讯云自建 Ollama |
|---|---|---|
| 单次成本 | 输入 0.8 元 / 百万 tokens | 服务器月费固定,边际成本约等于 0 |
| 数据隐私 | 请求需出网到厂商 | 完全在自己 VPC 内,数据不出服务器 |
| 速率限制 | 有 RPM / TPM 限制,高峰排队 | 无限制,仅受硬件性能约束 |
| 长任务(批量、机器人) | 大批量容易触发限流 | 7x24 常驻稳定 |
| 上下文 / 并发调优 | 不可控 | 可自由调 num_ctx、并发数、量化精度 |
| 维护成本 | 零 | 需自己处理升级、监控、备份 |
关键事实:
- V4.1 Flash 激活参数只有 8B,意味着 纯 CPU 内存推理可行(当然慢),不需要昂贵 GPU 也能拥有私有模型
- Apache 2.0 协议,商用无需授权、无分成,这对企业内部系统接入是硬性前提
- 国内服务器直连下载权重,不需要任何代理
- Ollama 暴露的是 OpenAI 兼容 API,Continue、Cline、Dify、FastGPT、微信机器人都能直接复用同一后端
什么时候该自建
✅ 适合:数据敏感(代码库、合同、病历、内部文档)必须不出网 / 需要 7x24 常驻的机器人或定时任务 / 日均调用量极大想压边际成本 / 要给多个应用提供统一私有 AI 后端 / 想做 fine-tune 或 RAG 知识库底座
❌ 不适合:只是偶尔问两句(直接用 API 更省事)/ 不能接受自己维护服务器 / 要求顶级推理速度(那得上多卡 GPU,成本远高于 API)
云服务器选型:这一步决定体验上限
选服务器是本教程最关键的决策 —— 配置选错,后面每一步都会很痛苦(模型装不下、推理慢到不可用、或者白花 GPU 的钱)。按下表对照自己的场景选择:
前往 腾讯云轻量应用服务器 选购页:
| 配置档位 | 内存余量能否装下 Q4_K_M(约 6.5GB) | CPU 推理实测速度 | 8K 长文首字延迟 | 适用场景 |
|---|---|---|---|---|
| 2C4G | ❌ 装不下,必然 OOM | 跑不起来 | — | 不推荐,别买来踩坑 |
| 4C8G | ⚠️ 勉强装下,需开 4GB swap | 每秒 0.8 到 1.5 tokens | 15 到 30 秒 | 纯尝鲜、单次问答、能忍受等待 |
| 8C16G | ✅ 宽裕,可并发 2 到 3 路 | 每秒 2.5 到 5 tokens | 5 到 10 秒 | 推荐起步档,团队小范围共用、机器人后端 |
| 16C32G | ✅ 非常富裕 | 每秒 5 到 9 tokens | 3 到 5 秒 | 多人共用、并发较高 |
| GPU 实例(如 GN7 / A10) | ✅ 显存 24GB 可跑非量化版 | 每秒 40 到 90 tokens | 亚秒级 | 追求流畅对话、生产级服务 |
警告
⚠️ 实测提醒:上面 CPU 速度是腾讯云标准型 SA3 / S6 机型跑 Q4_K_M 的真实区间。务必注意 轻量应用服务器多为共享型 CPU,同配置下会比标准型慢 20% 到 40%,选型时请把这一项算进去。
磁盘
| 机型用途 | 建议系统盘 | 说明 |
|---|---|---|
| 仅跑 V4.1 Flash | 80 到 100GB SSD | Q4_K_M 权重约 6.5GB,日志与模型缓存留余量 |
| 计划跑多个模型 | 200GB 以上 | 每加一个 7B 级量化模型约多占 7GB |
前往 腾讯云 GPU 云服务器 可查看 GPU 机型与库存;GPU 实例建议按量计费,跑完立即释放,长期常驻才用包年包月。
为什么选 Ollama
Ollama 是当下把大模型跑在本地最省心的方案:一条命令管理模型的下载、量化、加载与推理,并原生暴露 11434 端口的 OpenAI 兼容 API。它不是唯一选择(还有 llama.cpp、vLLM、Xinference),但对「单机私有部署」这个场景,它的复杂度收益比最高。
同类方案对比
| 方案 | 上手难度 | 推理性能 | OpenAI 兼容 API | 多模型管理 | 适合场景 |
|---|---|---|---|---|---|
| Ollama | ⭐ 极低 | 中等 | ✅ 原生 | ✅ 优秀 | 单机、团队共用、快速起步 |
| llama.cpp | 高 | 高 | ❌ 需额外层 | ❌ 手动 | 极致性能调优、嵌入式 |
| vLLM | 中 | 极高 | ✅ | ✅ | 高并发生产级推理服务 |
| Xinference | 中 | 高 | ✅ | ✅ 优秀 | 需要多模型编排与分布式 |
提示
💡 如果你后续要接 Dify、FastGPT 做知识库,Ollama 的 OpenAI 兼容接口能直接填进它们的模型配置里,几乎零适配成本。
环境准备
1. 安装 Docker(走腾讯云内网源)
腾讯云服务器务必用内网镜像源装 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 镜像加速器(关键!否则拉 Ollama 镜像会慢到超时)
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
25
26# 把当前用户加入 docker 组,免去每次 sudo
27usermod -aG docker $USER警告
⚠️ 修改用户组后必须退出 SSH 重新登录才能生效,否则后续 docker 命令依然报权限不足。
2. 安装 Swap(小内存机型必做)
4C8G 及以下的机器强烈建议加 swap,否则加载模型时大概率 OOM:
1# 创建 4GB swap 文件
2fallocate -l 4G /swapfile
3chmod 600 /swapfile
4mkswap /swapfile
5swapon /swapfile
6
7# 写入 fstab 实现开机自动挂载
8cp /etc/fstab /etc/fstab.bak
9echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
10
11# 验证
12free -h路径 A:Docker Compose 一键部署(推荐)
这是最省心的方案,一条命令把 Ollama 与 Open WebUI 一起编排起来。
A1. 编写 compose 文件
1mkdir -p /opt/deepseek && cd /opt/deepseek
2cat > docker-compose.yml <<-'EOF'
3version: '3.8'
4
5services:
6 ollama:
7 image: ollama/ollama:latest
8 container_name: ollama
9 restart: unless-stopped
10 ports:
11 - "11434:11434"
12 volumes:
13 - ./ollama:/root/.ollama
14 environment:
15 # 监听所有地址,方便同 VPC 内网其他服务调用
16 - OLLAMA_HOST=0.0.0.0
17 # 同时保持加载的模型数,小内存机器请设为 1
18 - OLLAMA_MAX_LOADED_MODELS=1
19 # 模型在内存中保持 10 分钟,超时自动卸载省内存
20 - OLLAMA_KEEP_ALIVE=10m
21 # 并发请求数,按内存档位调整(8C16G 建议 2)
22 - OLLAMA_NUM_PARALLEL=1
23 networks:
24 - deepseek-net
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 - "3000:8080"
32 volumes:
33 - ./open-webui:/app/backend/data
34 environment:
35 # 注意:这里是容器名 ollama 而不是 localhost
36 - OLLAMA_BASE_URL=http://ollama:11434
37 # 关闭使用统计上报
38 - ENABLE_OTEL=false
39 # 生产环境务必设为 false,防止陌生人注册
40 - ENABLE_SIGNUP=true
41 # 替换为你自己的强密钥
42 - WEBUI_SECRET_KEY=change-this-to-a-random-string
43 depends_on:
44 - ollama
45 networks:
46 - deepseek-net
47
48networks:
49 deepseek-net:
50 driver: bridge
51EOF警告
⚠️ OLLAMA_BASE_URL=http://ollama:11434 千万别写成 localhost:容器内的 localhost 指的是容器自己,写成 localhost 会导致 Open WebUI 连不上模型,界面一直显示「无法连接到 Ollama」。
A2. 启动服务
1cd /opt/deepseek
2docker compose up -d
3
4# 查看容器状态,两个都应显示 Up
5docker compose ps
6
7# 跟踪启动日志
8docker compose logs -f ollama看到两个容器状态为 Up 即表示编排成功。
路径 B:手动安装配置(深入定制)
想完全掌控安装路径、走 Systemd 托管、或服务器不方便用 Docker 时,走这条路径。
B1. 安装 Ollama 本体
1# 官方安装脚本(若下载慢可用下面的国内镜像方式)
2curl -fsSL https://ollama.com/install.sh | sh
3
4# 备选:下载 release 二进制手动安装(国内网络更稳)
5OLLAMA_VERSION=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep tag_name | cut -d '"' -f 4)
6curl -L https://github.com/ollama/ollama/releases/download/${OLLAMA_VERSION}/ollama-linux-amd64.tgz -o ollama.tgz
7tar -C /usr -xzf ollama.tgzB2. 配置 systemd 服务
1cat > /etc/systemd/system/ollama.service <<-'EOF'
2[Unit]
3Description=Ollama Service
4After=network-online.target
5
6[Service]
7ExecStart=/usr/bin/ollama serve
8User=root
9Group=root
10Restart=always
11RestartSec=3
12Environment="OLLAMA_HOST=0.0.0.0:11434"
13Environment="OLLAMA_MODELS=/root/.ollama/models"
14Environment="OLLAMA_KEEP_ALIVE=10m"
15Environment="OLLAMA_MAX_LOADED_MODELS=1"
16
17[Install]
18WantedBy=default.target
19EOF
20
21systemctl daemon-reload
22systemctl enable ollama
23systemctl start ollama
24
25# 检查服务状态
26systemctl status ollama --no-pagerB3. 单独部署 Open WebUI(pip 方式)
1apt-get install -y python3-pip python3-venv
2python3 -m venv /opt/open-webui-env
3source /opt/open-webui-env/bin/activate
4
5# 使用腾讯云内网 PyPI 源加速
6pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple
7pip install open-webui
8
9# 启动(监听 8080)
10ENABLE_OTEL=false OLLAMA_BASE_URL=http://127.0.0.1:11434 open-webui serve --port 8080下载 DeepSeek V4.1 Flash 权重(国内加速)
这是最容易卡住的一步。GGUF 权重约 6.5GB,走 HuggingFace 在国内经常几百 KB 每秒,下面两种国内方案任选。
方案 1:ModelScope(魔搭)下载 + ollama create(最稳)
1pip install modelscope
2
3python3 <<-'PYEOF'
4from modelscope import snapshot_download
5model_dir = snapshot_download(
6 'deepseek-ai/DeepSeek-V4.1-Flash-GGUF',
7 cache_dir='/opt/deepseek/models'
8)
9print(model_dir)
10PYEOF下载完成后,编写 Modelfile 让 Ollama 识别本地权重文件:
1cd /opt/deepseek/models/deepseek-ai/DeepSeek-V4.1-Flash-GGUF
2
3cat > Modelfile <<-'EOF'
4FROM ./deepseek-v4.1-flash-q4_k_m.gguf
5
6PARAMETER temperature 0.6
7PARAMETER top_p 0.95
8PARAMETER num_ctx 8192
9PARAMETER repeat_penalty 1.05
10
11SYSTEM 你是 DeepSeek V4.1 Flash,一个由 DeepSeek 训练的国产大型语言模型。请用简体中文回答,回答简洁准确。
12EOF
13
14# 导入 Ollama
15ollama create deepseek-v4.1-flash -f Modelfile
16
17# 验证模型已注册
18ollama list警告
⚠️ FROM ./ 后面的文件名必须与实际下载的 GGUF 文件名完全一致,如果 ModelScope 里的文件名带了不同后缀或分片,请用 ls 确认后再改 Modelfile,否则会报 file does not exist。
方案 2:HuggingFace 镜像端点加速
1# 设置 HF 镜像端点环境变量
2export HF_ENDPOINT=https://hf-mirror.com
3
4# 用 huggingface-cli 下载
5pip install -U huggingface_hub
6huggingface-cli download deepseek-ai/DeepSeek-V4.1-Flash-GGUF \
7 --include "*.gguf" \
8 --local-dir /opt/deepseek/models/hf方案 3:直接 ollama pull(最简单但对网络要求高)
1# 若官方模型库已上架且网络通畅,这是最省事的
2ollama pull deepseek-v4.1-flash
3
4# 若需要指定量化版本
5ollama pull deepseek-v4.1-flash:q4_k_m提示
💡 实测:腾讯云广州 / 上海地域的轻量服务器,方案 1(ModelScope)通常能跑满几十 MB 每秒,几分钟就能拉完;方案 3 在没有镜像加速时经常卡在几百 KB 每秒。
验证服务是否真的跑起来了
不要只看容器是 Up 就以为成功了,按下面三步逐项验证。
验证 1:模型注册成功
1docker exec ollama ollama list应该能看到 deepseek-v4.1-flash 及大小约 6 到 7GB。
验证 2:命令行对话
1docker exec -it ollama ollama run deepseek-v4.1-flash "用一句话介绍 DeepSeek MoE 架构的核心优势"✅ 模型返回通顺的中文回答即成功。
验证 3:OpenAI 兼容 API 连通(最关键)
1curl http://127.0.0.1:11434/v1/chat/completions \
2 -H "Content-Type: application/json" \
3 -d '{
4 "model": "deepseek-v4.1-flash",
5 "messages": [
6 {"role": "user", "content": "用 Go 写一个快速排序,只要代码"}
7 ]
8 }'✅ 返回标准的 OpenAI 格式 JSON(choices[0].message.content 里是代码)即表示所有 OpenAI 兼容客户端都能接进来。
验证 4:内存与 GPU 占用
1# 看整体内存与 swap 使用
2free -h
3
4# 看容器资源占用
5docker stats --no-stream
6
7# GPU 实例请额外确认显卡可见
8nvidia-smi
9docker exec ollama nvidia-smi警告
⚠️ 若 docker exec ollama nvidia-smi 报找不到命令,说明容器没拿到 GPU,需要安装 nvidia-container-toolkit(见故障排查第 12 条)。
场景化实操:让它真正产生价值
场景 1:给 VS Code Continue / Cline 当免费本地大脑
既然已经有了 OpenAI 兼容端点,直接填进 Continue 的 config.json:
1{
2 "models": [
3 {
4 "title": "自建 DeepSeek V4.1 Flash",
5 "provider": "openai",
6 "model": "deepseek-v4.1-flash",
7 "apiBase": "http://你的服务器内网IP:11434/v1",
8 "apiKey": "ollama"
9 }
10 ],
11 "tabAutocompleteModel": {
12 "title": "自建 DeepSeek Flash 补全",
13 "provider": "openai",
14 "model": "deepseek-v4.1-flash",
15 "apiBase": "http://你的服务器内网IP:11434/v1",
16 "apiKey": "ollama"
17 }
18}警告
⚠️ apiKey 随便填一个非空字符串即可(Ollama 默认不校验),但不能留空,否则部分客户端会拒绝发送。
场景 2:Open WebUI 上传文档做私有知识库(RAG)
- 浏览器访问
http://服务器公网IP:3000,注册第一个账号(该账号自动成为管理员) - 立刻到「设置 → 通用」关闭新用户注册(
ENABLE_SIGNUP=false) - 进入「工作区 → 知识库 → 新建知识库」,上传公司 PDF / Word / Markdown
- 对话时在输入框用
#选择该知识库 - 提问即可获得基于你私有文档且引用来源的回答
✅ 这套组合就是最小可用的「企业私有知识助手」,数据全程没出你的腾讯云服务器。
场景 3:夜间批量任务( cron + API )
1cat > /opt/deepseek/nightly_summarize.sh <<-'EOF'
2#!/bin/bash
3for f in /data/docs/*.md; do
4 summary=$(curl -s http://127.0.0.1:11434/v1/chat/completions \
5 -H "Content-Type: application/json" \
6 -d "{\"model\":\"deepseek-v4.1-flash\",\"messages\":[{\"role\":\"user\",\"content\":\"请总结以下文档的要点:$(cat $f)\"}]}" \
7 | python3 -c "import sys,json;print(json.load(sys.stdin)['choices'][0]['message']['content'])")
8 echo "$summary" > "/data/summaries/$(basename $f).summary"
9done
10EOF
11
12chmod +x /opt/deepseek/nightly_summarize.sh
13
14# 每天凌晨 2 点执行
15echo "0 2 * * * /bin/bash /opt/deepseek/nightly_summarize.sh" | crontab -✅ 自建后不限流、不额外计费,跑批任务的成本优势在这里体现得最明显。
高级配置
1. Nginx 反向代理 + HTTPS(生产必做)
不要直接把 3000 端口暴露公网。用 Nginx 反代并套 HTTPS:
1apt-get install -y nginx certbot python3-certbot-nginx
2
3cat > /etc/nginx/sites-available/open-webui <<-'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_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
13 proxy_set_header X-Forwarded-Proto $scheme;
14
15 # 下面三行是流式输出必需,缺了会导致打字机效果失效
16 proxy_http_version 1.1;
17 proxy_set_header Upgrade $http_upgrade;
18 proxy_set_header Connection "upgrade";
19 }
20}
21EOF
22
23ln -s /etc/nginx/sites-available/open-webui /etc/nginx/sites-enabled/
24nginx -t && systemctl reload nginx
25
26# 签发免费证书
27certbot --nginx -d ai.yourcompany.com2. 安全加固(务必做)
⚠️ 绝对不要把 11434 端口直接暴露到公网:Ollama 默认无鉴权,任何人都能白嫖你的算力甚至执行模型操作。三条防线:
| 防线 | 做法 |
|---|---|
| 第一道 | 腾讯云安全组只放行你自己的 IP 段访问 3000 / 11434 |
| 第二道 | Open WebUI 关闭新注册,用强 WEBUI_SECRET_KEY |
| 第三道 | 11434 仅监听内网,公网访问一律走 Nginx + HTTPS + 鉴权 |
1# 若只需本机访问复查Ollama,把端口收紧到 127.0.0.1
2docker compose down
3# 修改 compose 中 ports 为:
4# - "127.0.0.1:11434:11434"
5docker compose up -d3. 性能调优参数
| 参数 | 作用 | 建议值 |
|---|---|---|
OLLAMA_NUM_PARALLEL | 并发处理请求数 | 8C16G 设 2,内存小的设 1 |
OLLAMA_MAX_LOADED_MODELS | 同时驻留内存的模型数 | 小内存设 1 |
OLLAMA_KEEP_ALIVE | 模型空闲保留时间 | 小内存设 5m,及时释放 |
num_ctx(Modelfile) | 上下文长度 | 内存紧张设 4096,宽裕设 8192+ |
OLLAMA_FLASH_ATTENTION | 闪存注意力加速 | GPU 机型设 1 |
警告
⚠️ num_ctx 越大越吃内存。8K 上下文通常比 2K 多占 1 到 2GB,4C8G 机型建议压到 4096。
4. 数据备份与恢复
模型权重重下很痛苦,务必备份:
1# 打包模型与 WebUI 数据(会比较大,建议在 screen 里跑)
2tar czf /root/deepseek-backup-$(date +%F).tar.gz -C /opt/deepseek ollama open-webui
3
4# 同步到腾讯云 COS(内网免流量)
5# coscli cp /root/deepseek-backup-*.tar.gz cos://your-bucket/backups/故障排查表
| # | 症状 | 可能原因 | 解决方案 |
|---|---|---|---|
| 1 | docker: command not found | Docker 未安装成功 | 重跑腾讯云内网源安装步骤;确认 apt-get install docker-ce 执行完成 |
| 2 | permission denied while trying to connect to docker socket | 当前用户不在 docker 组 | usermod -aG docker $USER 后必须重新登录 SSH |
| 3 | 拉取 ollama 镜像超时 / 极慢 | 没配 registry-mirror | 按本文「环境准备」配置 mirror.ccs.tencentyun.com 后 systemctl restart docker |
| 4 | Open WebUI 提示无法连接 Ollama | OLLAMA_BASE_URL 写成 localhost | compose 里必须写 http://ollama:11434 用容器名互联 |
| 5 | docker compose up 报端口被占用 | 11434 或 3000 已被占 | lsof -i :11434 查占用进程后 kill;或修改 compose 端口映射 |
| 6 | 容器启动后立刻退出 | 内存不足被内核 OOM kill | 用 dmesg -T 查看末尾确认 OOM;加 swap 或升配到 8C16G |
| 7 | 加载模型时报 out of memory | 权重超出可用内存 | 换更小量化版;降低 num_ctx;开启 swap |
| 8 | 推理速度低于每秒 0.5 token | 触发了 swap 换页 | 加内存 / 换 GPU;或换 q2_k 等更小量化 |
| 9 | HuggingFace 下载几十 KB 每秒 | 国内网络限制 | 改用 ModelScope 方案;或设 HF_ENDPOINT |
| 10 | ollama create 报 file does not exist | Modelfile 里 GGUF 文件名不对 | ls 实际文件名后修正 FROM ./ 路径,注意大小写 |
| 11 | 返回内容是繁体或乱码 | temperature 过高 / 系统提示词缺失 | Modelfile 的 SYSTEM 明确要求「用简体中文回答」;降 temperature 到 0.6 |
| 12 | GPU 实例识别不到显卡 | 缺 nvidia-container-toolkit | 安装 toolkit 并重启 docker;用 nvidia-smi 双向验证(宿主机与容器内都要能跑) |
| 13 | API 返回 model xxx not found | 模型名与 ollama list 不一致 | 用 ollama list 核对,API 调用时模型名要完全一致 |
| 14 | 浏览器能开 WebUI 但流式输出卡住 | Nginx 未配 WebSocket 升级 | 按本文 Nginx 配置补齐 Upgrade 与 Connection 头 |
| 15 | 公网访问不了 3000 端口 | 腾讯云安全组未放行 | 到轻量服务器防火墙 / 安全组放行对应端口(建议只放行你的 IP) |
| 16 | ModelScope 下载报 401 | 部分模型需登录授权 | modelscope login 或改用已同步的公开权重仓库 |
| 17 | ollama pull 卡在某个百分比不动 | 网络抖动导致连接中断 | Ctrl+C 后重跑,Ollama 支持断点续传 |
| 18 | 磁盘写满导致容器异常 | GGUF 权重+日志占满系统盘 | df -h 确认;清理 /var/lib/docker;扩容或挂数据盘 |
| 19 | 重启服务器后服务没起来 | 未设开机自启 | docker compose 用 restart: unless-stopped;或配 systemd enable |
| 20 | Open WebUI 出现陌生人账号 | 开放了注册且端口公网可达 | 立即关闭 ENABLE_SIGNUP;删除异常账号;收紧安全组 |
| 21 | 并发提问时串行排队很慢 | OLLAMA_NUM_PARALLEL 为 1 | 内存允许时调到 2 到 4;或升配机器 |
| 22 | 模型反复重新加载 | OLLAMA_KEEP_ALIVE 太短 | 调大到 30m;内存紧张才设 5m |
总结
通过本文,你在腾讯云上完成了 DeepSeek V4.1 Flash 的私有化部署,得到了一个数据不出内网、7x24 可用、OpenAI 接口兼容的国产 AI 后端。
| 路径 | 适合人群 | 核心收益 |
|---|---|---|
| Docker Compose | 大多数用户 | 一条命令,升级回滚简单,与宿主机环境隔离 |
| 手动安装 + systemd | 需要精细控制 / 无 Docker 环境 | 完全掌控路径,便于排查与定制 |
四条落地建议:
- 内存是唯一硬指标 —— 8C16G 起步最省心,4C8G 能跑但体验会让你怀疑人生,别为了省两百块浪费几小时排障。
- 权重下载一定走 ModelScope —— 这是国内服务器最容易被卡的一步,提前转向能省下几小时等待。
- 11434 绝对不要裸奔公网 —— Ollama 无鉴权,这是最常导致算力被盗刷甚至服务器被入侵的疏忽。
- 先接一个真实应用起来 —— 无论是 Continue 补全、WebUI 知识库还是夜间批处理,让模型真正跑进你的工作流,自建的价值才成立。
现在打开 Open WebUI,上传一份你的私有文档问它试试 —— 你会发现国产模型在「数据不用离开自己服务器」这件事上,带来的安心感远超想象。
常见问题
Q自己部署比直接调 DeepSeek API 便宜吗?
不一定更便宜,取决于用量。V4.1 Flash API 价格是输入每百万 tokens 0.8 元、输出 2.4 元;一台 8C16G 轻量服务器月费约 200 到 400 元,跑满每天约消耗 30 元等价算力。结论是日均调用超过百万 tokens 或需要数据不出内网、需要 7x24 常驻(如机器人、批量任务)时自建更划算,轻量试用建议直接用 API。
Q4C8G 的轻量服务器能跑得动吗?
能跑但很勉强。V4.1 Flash 的 Q4_K_M 量化版权重约 6.5GB,4C8G 除去系统与 Ollama 自身开销只剩约 6GB 可用,会频繁触发 swap 导致速度掉到每秒 1 token 以下甚至假死。建议 8C16G 起步,想要流畅体验或多人共用请直接上 GPU 实例。
Q为什么推荐用 ModelScope 而不是 HuggingFace 下载模型?
HuggingFace 在国内经常限速到几百 KB 每秒甚至连接超时,一个 6GB 的 GGUF 文件可能要下载几小时。ModelScope(魔搭)是阿里维护的国内模型社区,DeepSeek 官方权重有同步托管,腾讯云服务器走内网下载通常能跑满带宽。本文给出 ModelScope 下载加 ollama create 的完整命令,以及 HuggingFace 镜像加速作为备选方案。