上一篇 下一篇 分享链接 返回 返回顶部

DeepSeek 本地部署实战:从 Ollama 到 vLLM,一套命令跑通模型服务

发布人:慈云数据-客服中心 发布时间:24小时前 阅读量:1

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:7bdeepseek-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. 运行模型时报显存不足怎么办?

可以尝试以下方法:

  1. 换用更小的模型,例如从 14B 降到 7B;
  2. 使用量化版本模型;
  3. 降低上下文长度;
  4. 关闭其他占用显存的进程;
  5. 使用多卡并行;
  6. 使用 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 和权限控制。这样既能快速上手,也能逐步过渡到稳定可靠的生产级部署架构。

目录结构
全文