DeepSeek 本地部署实战:从 Ollama 到 vLLM,一套命令跑通模型服务
DeepSeek 部署完整教程|附完整命令
DeepSeek 作为近年来非常热门的大语言模型,凭借优秀的推理能力、代码能力和较高的开源友好度,受到了开发者、企业和个人用户的广泛关注。很多人希望将 DeepSeek 部署到自己的本地服务器、个人电脑或云主机中,用于私有化问答、代码助手、知识库检索、企业内部 AI 助理等场景。
本文将从环境准备、部署方式选择、Ollama 快速部署、Docker 部署、vLLM 高性能部署、Web 页面访问、API 调用、常见问题排查等方面,系统介绍 DeepSeek 的完整部署流程,并附上可直接复制使用的命令。
本文适合:个人开发者、运维工程师、AI 应用开发者、企业私有化部署人员。
一、部署前需要了解的内容
在正式部署之前,需要先明确一点:DeepSeek 并不是只有一个模型。常见的 DeepSeek 模型包括:
- DeepSeek-R1:偏推理能力,适合复杂问题分析、数学、逻辑推理等场景;
- DeepSeek-V3:通用对话能力较强,适合聊天、写作、代码等;
- DeepSeek-Coder:偏代码生成、代码补全、代码解释;
- DeepSeek-R1-Distill 系列:蒸馏版本,模型更小,更适合本地部署;
- DeepSeek-LLM:早期通用模型系列。
如果你只是想在本地快速体验,推荐使用 Ollama 部署 DeepSeek-R1-Distill。如果你希望用于生产环境 API 服务,推荐使用 vLLM。如果你希望搭建一个类似 ChatGPT 的网页界面,可以搭配 Open WebUI。
二、硬件配置建议
不同参数规模的模型对硬件要求差异很大。下面是一个大致参考:
| 模型规模 | 推荐显存 | 适用场景 |
|---|---|---|
| 1.5B | 4GB 以上 | 入门体验、轻量问答 |
| 7B / 8B | 8GB-16GB | 本地个人助手、代码辅助 |
| 14B | 16GB-24GB | 较高质量对话和推理 |
| 32B | 24GB-48GB | 专业推理、企业应用 |
| 70B+ | 80GB 多卡 | 高质量生产环境 |
如果没有 NVIDIA GPU,也可以使用 CPU 运行小模型,但速度会明显较慢。对于大多数个人用户来说,推荐从 deepseek-r1:7b 或 deepseek-r1:8b 开始。
三、系统环境准备
本文以 Ubuntu 22.04 为例进行说明。如果你使用的是 CentOS、Debian、Rocky Linux 或 Windows WSL,大部分命令也可以参考。
1. 更新系统软件包
sudo apt update
sudo apt upgrade -y
2. 安装基础工具
sudo apt install -y curl wget git vim htop unzip net-tools
3. 检查 CPU 和内存
lscpu
free -h
df -h
4. 检查 GPU
如果你使用 NVIDIA 显卡,可以执行:
nvidia-smi
如果系统提示 nvidia-smi: command not found,说明当前机器没有正确安装 NVIDIA 驱动,或者没有 NVIDIA GPU。
方案一:使用 Ollama 快速部署 DeepSeek
Ollama 是目前最简单的本地大模型部署工具之一,适合个人用户、测试环境和轻量级应用。它可以自动下载模型、管理模型,并提供本地 API 服务。
四、安装 Ollama
1. Linux 一键安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
安装完成后,查看版本:
ollama -v
启动 Ollama 服务:
ollama serve
如果提示端口已占用或服务已经启动,可以先查看服务状态:
systemctl status ollama
如果需要设置为开机自启动:
sudo systemctl enable ollama
sudo systemctl start ollama
五、下载并运行 DeepSeek 模型
1. 运行 DeepSeek-R1 7B 模型
ollama run deepseek-r1:7b
首次运行时,Ollama 会自动下载模型文件。下载完成后,会直接进入命令行对话模式。
你可以输入:
请用通俗语言解释什么是 Transformer。
模型会在终端中返回回答。
2. 运行其他模型版本
根据机器配置,你也可以选择不同规模的模型。
ollama run deepseek-r1:1.5b
ollama run deepseek-r1:8b
ollama run deepseek-r1:14b
ollama run deepseek-r1:32b
查看本地已下载模型:
ollama list
删除不需要的模型:
ollama rm deepseek-r1:7b
六、使用 Ollama API 调用 DeepSeek
Ollama 默认会在本地启动一个 HTTP API 服务,地址通常为:
http://localhost:11434
1. 使用 curl 调用生成接口
curl http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:7b",
"prompt": "请写一段 Python 快速排序代码",
"stream": false
}'
2. 使用流式输出
curl http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:7b",
"prompt": "请解释一下 Kubernetes 的核心组件",
"stream": true
}'
3. 使用 Chat 接口
curl http://localhost:11434/api/chat \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:7b",
"messages": [
{
"role": "system",
"content": "你是一个专业的 Linux 运维工程师。"
},
{
"role": "user",
"content": "请给我一份 Nginx 性能优化建议。"
}
],
"stream": false
}'
方案二:使用 Docker 部署 DeepSeek + Open WebUI
如果你希望有一个网页聊天界面,可以使用 Ollama + Open WebUI。Open WebUI 是一个开源的大模型 Web 管理界面,支持连接 Ollama、本地模型和多种 OpenAI API 兼容服务。
七、安装 Docker
1. 安装 Docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg
添加 Docker GPG 密钥:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
添加 Docker 软件源:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动 Docker:
sudo systemctl enable docker
sudo systemctl start docker
查看 Docker 版本:
docker version
如果希望当前用户直接运行 Docker 命令:
sudo usermod -aG docker $USER
然后重新登录终端,或执行:
newgrp docker
八、使用 Docker 运行 Open WebUI
如果你的 Ollama 运行在宿主机上,可以使用下面命令部署 Open WebUI:
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
--add-host=host.docker.internal:host-gateway \
--restart always \
ghcr.io/open-webui/open-webui:main
浏览器访问:
http://服务器IP:3000
首次访问时,需要创建管理员账号。登录后,在模型列表中选择 deepseek-r1:7b 即可开始对话。
九、使用 Docker Compose 部署 Ollama + Open WebUI
如果你希望一条命令启动完整服务,推荐使用 Docker Compose。
创建目录:
mkdir -p ~/deepseek-deploy
cd ~/deepseek-deploy
创建 docker-compose.yml:
vim docker-compose.yml
写入以下内容:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
restart: always
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- open-webui:/app/backend/data
depends_on:
- ollama
restart: always
volumes:
ollama:
open-webui:
启动服务:
docker compose up -d
查看容器状态:
docker ps
进入 Ollama 容器下载模型:
docker exec -it ollama ollama pull deepseek-r1:7b
也可以直接运行:
docker exec -it ollama ollama run deepseek-r1:7b
浏览器访问:
http://服务器IP:3000
停止服务:
docker compose down
查看日志:
docker logs -f ollama
docker logs -f open-webui
方案三:使用 vLLM 高性能部署 DeepSeek
如果你的目标是搭建生产级 API 服务,或者需要更高并发、更高吞吐量,推荐使用 vLLM。vLLM 支持 PagedAttention,可以显著提升大模型推理效率。
十、安装 Python 和虚拟环境
1. 安装 Python 依赖
sudo apt update
sudo apt install -y python3 python3-pip python3-venv git
2. 创建虚拟环境
mkdir -p ~/vllm-deepseek
cd ~/vllm-deepseek
python3 -m venv venv
激活虚拟环境:
source venv/bin/activate
升级 pip:
pip install --upgrade pip
十一、安装 vLLM
如果你的服务器已经安装好 NVIDIA 驱动和 CUDA 环境,可以直接执行:
pip install vllm
检查安装是否成功:
python -c "import vllm; print(vllm.__version__)"
如果安装速度较慢,可以使用国内镜像源:
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
十二、使用 vLLM 启动 DeepSeek API 服务
下面以 Hugging Face 上的 DeepSeek 模型为例。你可以根据自己的显存选择合适的模型。
1. 启动 OpenAI 兼容 API 服务
python -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
--host 0.0.0.0 \
--port 8000 \
--dtype auto \
--max-model-len 8192
如果显存有限,可以适当降低上下文长度:
python -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
--host 0.0.0.0 \
--port 8000 \
--dtype auto \
--max-model-len 4096
如果使用多卡,可以增加张量并行参数:
python -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \
--host 0.0.0.0 \
--port 8000 \
--dtype auto \
--tensor-parallel-size 2 \
--max-model-len 8192
十三、调用 vLLM 的 OpenAI 兼容接口
vLLM 启动后,可以通过 OpenAI 兼容接口调用。
1. 查看模型列表
curl http://127.0.0.1:8000/v1/models
2. Chat Completions 调用
curl http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
"messages": [
{
"role": "system",
"content": "你是一个专业的 AI 助手。"
},
{
"role": "user",
"content": "请介绍一下 DeepSeek 的本地部署方式。"
}
],
"temperature": 0.7,
"max_tokens": 1024
}'
3. Python 调用示例
安装 OpenAI SDK:
pip install openai
创建测试文件:
vim test_deepseek.py
写入代码:
from openai import OpenAI
client = OpenAI(
api_key="EMPTY",
base_url="http://127.0.0.1:8000/v1"
)
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
messages=[
{"role": "system", "content": "你是一个专业的 Python 工程师。"},
{"role": "user", "content": "请写一个 FastAPI 的 Hello World 示例。"}
],
temperature=0.7,
max_tokens=1024
)
print(response.choices[0].message.content)
运行:
python test_deepseek.py
十四、将 vLLM 注册为系统服务
生产环境中不建议手动在终端运行 vLLM,可以使用 systemd 管理服务。
创建服务文件:
sudo vim /etc/systemd/system/deepseek-vllm.service
写入以下内容,注意修改路径中的用户名:
[Unit]
Description=DeepSeek vLLM API Server
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/vllm-deepseek
Environment="PATH=/home/ubuntu/vllm-deepseek/venv/bin"
ExecStart=/home/ubuntu/vllm-deepseek/venv/bin/python -m vllm.entrypoints.openai.api_server --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --host 0.0.0.0 --port 8000 --dtype auto --max-model-len 8192
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
重新加载 systemd:
sudo systemctl daemon-reload
启动服务:
sudo systemctl start deepseek-vllm
设置开机自启:
sudo systemctl enable deepseek-vllm
查看状态:
sudo systemctl status deepseek-vllm
查看日志:
journalctl -u deepseek-vllm -f
十五、配置 Nginx 反向代理
如果你希望通过域名访问 DeepSeek API,可以使用 Nginx 反向代理。
安装 Nginx:
sudo apt install -y nginx
创建配置文件:
sudo vim /etc/nginx/conf.d/deepseek.conf
写入:
server {
listen 80;
server_name deepseek.example.com;
client_max_body_size 50m;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
}
检查配置:
sudo nginx -t
重启 Nginx:
sudo systemctl restart nginx
此时可以通过:
http://deepseek.example.com/v1/chat/completions
访问 API。
十六、配置 HTTPS 证书
生产环境建议开启 HTTPS。可以使用 Certbot 免费申请 Let’s Encrypt 证书。
安装 Certbot:
sudo apt install -y certbot python3-certbot-nginx
申请证书:
sudo certbot --nginx -d deepseek.example.com
查看证书自动续期:
sudo systemctl status certbot.timer
手动测试续期:
sudo certbot renew --dry-run
十七、安全加固建议
DeepSeek 私有化部署后,尤其是 API 服务暴露在公网时,一定要注意安全。
1. 不要直接裸露 API
如果不做鉴权,任何人都可以调用你的模型,造成资源浪费甚至账单风险。建议至少使用以下方式之一:
- Nginx Basic Auth;
- API Key 鉴权;
- 内网访问;
- VPN 访问;
- 网关限流;
- 防火墙限制来源 IP。
2. 使用防火墙限制端口
例如只开放 80、443 和 SSH:
sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
如果只允许指定 IP 访问 8000 端口:
sudo ufw allow from 你的IP地址 to any port 8000
查看规则:
sudo ufw status
3. 使用 Nginx Basic Auth
安装工具:
sudo apt install -y apache2-utils
创建账号:
sudo htpasswd -c /etc/nginx/.htpasswd admin
修改 Nginx 配置,在 location / 中加入:
auth_basic "DeepSeek API";
auth_basic_user_file /etc/nginx/.htpasswd;
重载 Nginx:
sudo nginx -t
sudo systemctl reload nginx
十八、常见问题排查
1. Ollama 下载模型很慢怎么办?
可以先确认网络是否能够访问模型源。如果服务器在国内,可能会受到网络影响。可以尝试更换网络环境,或使用已经下载好的模型文件进行迁移。
查看模型目录:
ls ~/.ollama
Docker 部署时模型一般存储在 Docker volume 中:
docker volume ls
2. 运行模型时报显存不足怎么办?
可以尝试以下方法:
- 换用更小的模型,例如从 14B 降到 7B;
- 使用量化版本模型;
- 降低上下文长度;
- 关闭其他占用显存的进程;
- 使用多卡并行;
- 使用 CPU 运行,但速度会慢。
查看显存占用:
nvidia-smi
终止占用显存的进程:
kill -9 进程ID
3. vLLM 启动时报 CUDA 错误怎么办?
先检查 NVIDIA 驱动:
nvidia-smi
检查 PyTorch 是否识别 GPU:
python -c "import torch; print(torch.cuda.is_available())"
如果返回 False,说明 CUDA 或 PyTorch 环境存在问题,需要重新安装匹配版本。
4. Open WebUI 连接不上 Ollama 怎么办?
检查 Ollama 是否正常运行:
curl http://127.0.0.1:11434/api/tags
如果 Open WebUI 使用 Docker,而 Ollama 在宿主机,需要使用:
http://host.docker.internal:11434
Linux 下还需要加:
--add-host=host.docker.internal:host-gateway
如果 Ollama 和 Open WebUI 都在 Docker Compose 内部,则应使用:
http://ollama:11434
5. API 返回速度很慢怎么办?
可以从以下方向优化:
- 使用 GPU 而不是 CPU;
- 选择更小模型;
- 使用 vLLM 而不是普通推理方式;
- 减少
max_tokens; - 降低上下文长度;
- 开启多卡并行;
- 增加批处理能力;
- 使用量化模型。
十九、推荐部署组合
根据不同使用场景,可以参考以下组合:
1. 个人本地体验
推荐:
Ollama + DeepSeek-R1 7B
命令:
curl -fsSL https://ollama.com/install.sh | sh
ollama run deepseek-r1:7b
优点是简单、快速、几乎不用配置。
2. 个人网页聊天助手
推荐:
Ollama + Open WebUI
命令:
ollama run deepseek-r1:7b
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
--add-host=host.docker.internal:host-gateway \
--restart always \
ghcr.io/open-webui/open-webui:main
访问:
http://服务器IP:3000
3. 企业 API 服务
推荐:
vLLM + DeepSeek-R1-Distill + Nginx + HTTPS
启动命令:
python -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
--host 0.0.0.0 \
--port 8000 \
--dtype auto \
--max-model-len 8192
二十、总结
DeepSeek 的部署方式非常灵活。如果你只是想快速体验,使用 Ollama 是最简单的方式,几条命令即可完成安装、下载模型和运行。如果你希望搭建网页聊天系统,可以使用 Ollama 搭配 Open WebUI。如果你要构建高性能、可扩展、面向生产环境的 API 服务,则建议使用 vLLM,并结合 Nginx、HTTPS、systemd 和访问控制进行完整部署。
总体来说,推荐路径如下:
快速体验:Ollama
网页聊天:Ollama + Open WebUI
生产 API:vLLM + Nginx + HTTPS
对于大多数初学者,建议先从以下命令开始:
curl -fsSL https://ollama.com/install.sh | sh
ollama run deepseek-r1:7b
当你熟悉基本使用后,再逐步引入 Docker、Open WebUI、vLLM、Nginx 和权限控制。这样既能快速上手,也能逐步过渡到稳定可靠的生产级部署架构。