本地部署deepseek
DeepSeek 是一个值得关注的新兴 开源级 AI 项目。你是否可以在自己的服务器上部署它?答案是——可以,并且以下是详细分析和操作方式。
Open Source 定义 & DeepSeek 状态
1. 是开源吗?
-
DeepSeek-R1 在 2025 年 1 月发布,并采用了 MIT 协议开源你可以自由使用、修改、再发布,无论是个人还是商业用途。
DeepSeek API Docs维基百科 -
不论是模型权重还是技术文档,均对开发者完全开放!
WIREDBusiness Insider -
然而,其训练数据与训练过程的代码未公开,因此仍不符合一些 “严格” 开源社区的完整标准。
IEEE SpectrumReddit
2. 还有轻量版本可用
-
DeepSeek-R1 同时提供了多个 蒸馏版本(1.5B、7B、8B、14B、32B、70B)供优化部署,可以在 Hugging Face 下载使用。
GitHubHugging Face
那我可以自建部署吗?
答案是:可以的!
只要你拥有足够的硬件资源(GPU 或 CPU),就可以下载模型与配置,按 Hugging Face 方式加载和推理。
⬇ 建议的部署流程(示例:DeepSeek-R1 Distill)
步骤一:获取模型
git clone https://github.com/deepseek-ai/DeepSeek-R1
# 或访问 Hugging Face 下载蒸馏模型 checkpoint
步骤二:安装推理环境(如 Python + Transformers + PEFT/Accelerate)
pip install transformers accelerate peft
步骤三:加载模型
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name = "deepseek-ai/DeepSeek-R1-Distill-Llama-8B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto")
inputs = tokenizer("什么是量子计算?", return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=128)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
步骤四:部署成 API 服务
可使用 FastAPI 或 Flask 包装推理逻辑,并部署为 HTTP 接口,实现 RESTful 调用。
优势 & 考量
| 项目 | 说明 |
|---|---|
| 自主部署 | 完全无须依赖外部 API,可本地运行 |
| 自定义能力 | 可以 fine-tune、压缩量化、插入工具调用等 |
| 成本可控 | 蒸馏模型对算力要求低于完整模型,适合中小团队 |
| 局限性 | 尚未公开训练数据,科学可复现性有待强化 |
如你希望,我也可以基于你选定的版本(如 7B、8B、Lite 模型)写一份完整的从模型加载到部署 API 的 Python 脚本 + 启动文档。你看,我现在帮你写一个这样的模板可以吗?
您说:
ChatGPT 说:
👍 好的~那你是想我帮你整理一份 在自己服务器上搭建 deepseek 的完整流程 吗?包括:
-
准备服务器环境(GPU / CUDA / Docker 等)
-
下载 deepseek 的开源模型(Hugging Face)
-
部署推理框架(如 vLLM / FastAPI / OpenAI-API 兼容服务)
-
提供调用接口(curl 或 PHP 示例)
要不要我帮你写一份 从零到可用的搭建教程?
您说:
ChatGPT 说:
👌 那我帮你整理一个 在自己服务器上搭建 DeepSeek 的流程,从零到可以用 curl 请求:
1. 服务器准备
-
GPU:建议至少 1 张 A100 40G 或同级别显卡(消费级 RTX 4090 也能跑小一点的模型)。
-
系统:Ubuntu 20.04 / 22.04
-
驱动:NVIDIA 驱动 + CUDA 11.8 以上
-
Python:3.10+
-
内存:64GB 以上更好
2. 下载模型
DeepSeek 的模型在 Hugging Face 开源了:
# 安装 git-lfs
sudo apt install git-lfs -y
# 下载 deepseek 7B instruct 模型为例
git lfs install
git clone https://huggingface.co/deepseek-ai/deepseek-llm-7b-instruct
3. 部署推理框架
推荐用 vLLM,性能好,还支持 OpenAI API 格式。
# 安装依赖
pip install vllm
# 启动 API 服务
python -m vllm.entrypoints.openai.api_server \
--model ./deepseek-llm-7b-instruct \
--port 8000
启动后会跑一个 OpenAI 兼容 API,地址默认是:
http://localhost:8000/v1/chat/completions
4. 用 curl 调用
启动成功后,你就能直接用 curl 调用 DeepSeek 模型了:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-llm-7b-instruct",
"messages": [
{"role": "system", "content": "你是一个中文助手"},
{"role": "user", "content": "你好,帮我写一个PHP请求示例"}
]
}'
返回结果就是 JSON,和 OpenAI 的 API 一样。
5. (可选)PHP 调用示例
<?php
$url = "http://localhost:8000/v1/chat/completions";
$data = [
"model" => "deepseek-llm-7b-instruct",
"messages" => [
["role" => "system", "content" => "你是一个中文助手"],
["role" => "user", "content" => "你好,帮我写一个PHP请求示例"]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
这样,你就能在自己的服务器上跑 DeepSeek 了,效果和调用 OpenAI API 类似。
要不要我再帮你写一个 Docker 版本的部署方法(一键运行,不用管环境配置)?
您说:
ChatGPT 说:
好 👍
那我给你整理一个 用 Docker 一键部署 DeepSeek 本地 API 的方法,比手动配置环境要省心很多。
1. 安装依赖
服务器上先装好:
-
Docker
-
NVIDIA 驱动 + CUDA
-
nvidia-docker(GPU 容器支持)
检查是否能正常识别 GPU:
nvidia-smi
2. 拉取 vLLM 镜像
官方 vLLM 已经支持 DeepSeek 模型:
docker pull vllm/vllm-openai:latest
3. 运行容器加载模型
以 DeepSeek-7B-Instruct 为例(需要几十 GB 显存):
docker run --gpus all --rm -it \
-p 8000:8000 \
-v /your/path/models:/models \
vllm/vllm-openai:latest \
--model /models/deepseek-llm-7b-instruct
解释一下:
-
--gpus all→ 启用所有 GPU -
-p 8000:8000→ 暴露端口 8000 -
-v /your/path/models:/models→ 把你本地下载的模型目录挂载进去 -
--model /models/deepseek-llm-7b-instruct→ 指定加载的模型
4. curl 调用
容器启动后就有个 OpenAI 格式的接口:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-llm-7b-instruct",
"messages": [
{"role": "system", "content": "你是一个中文助手"},
{"role": "user", "content": "帮我写一个Docker部署DeepSeek的教程"}
]
}'
5. PHP 请求示例(配合 curl)
<?php
$url = "http://localhost:8000/v1/chat/completions";
$data = [
"model" => "deepseek-llm-7b-instruct",
"messages" => [
["role" => "system", "content" => "你是一个中文助手"],
["role" => "user", "content" => "写一个Docker部署DeepSeek的教程"]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
这样,你只要下载好 DeepSeek 模型权重(比如放在 /your/path/models),就能 一条命令跑起来。
要不要我帮你写一个 一键脚本(bash 脚本),直接自动下载模型 + 启动 Docker?
您说:
ChatGPT 说:
👌 那我给你写一个 一键脚本(bash),直接帮你下载 DeepSeek 模型并启动 Docker 容器。
假设你要跑 DeepSeek-7B-Instruct(大约 14GB,需要 16GB+ 显存)。
脚本内容:run_deepseek.sh
#!/bin/bash
set -e
# 1. 模型保存目录
MODEL_DIR="$HOME/deepseek_models"
MODEL_NAME="deepseek-ai/deepseek-llm-7b-instruct"
# 2. 确认 Docker 镜像是否存在
if [[ "$(docker images -q vllm/vllm-openai:latest 2> /dev/null)" == "" ]]; then
echo "👉 正在拉取 vllm 镜像..."
docker pull vllm/vllm-openai:latest
fi
# 3. 下载模型 (需要安装 git lfs + huggingface-cli)
if [ ! -d "$MODEL_DIR/$MODEL_NAME" ]; then
echo "👉 正在下载 DeepSeek 模型: $MODEL_NAME"
mkdir -p $MODEL_DIR
huggingface-cli download $MODEL_NAME --local-dir $MODEL_DIR/$MODEL_NAME
fi
# 4. 启动 Docker 容器
echo "🚀 启动 DeepSeek 服务..."
docker run --gpus all --rm -it \
-p 8000:8000 \
-v $MODEL_DIR/$MODEL_NAME:/models/$MODEL_NAME \
vllm/vllm-openai:latest \
--model /models/$MODEL_NAME
使用方法
-
保存脚本:
nano run_deepseek.sh
粘贴进去,保存退出。
-
赋予可执行权限:
chmod +x run_deepseek.sh
-
运行:
./run_deepseek.sh
启动成功后
接口就跑在 **http://localhost:8000/v1/chat/completions**,可以用 curl 调用:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/deepseek-llm-7b-instruct",
"messages": [
{"role": "system", "content": "你是一个中文助手"},
{"role": "user", "content": "写一个Docker部署DeepSeek的教程"}
]
}'
要不要我帮你写一个 精简版(不用 Hugging Face CLI,直接用 wget 或 aria2c 下模型权重) 的脚本?这样更适合国内服务器,速度快一点。
您说:
ChatGPT 说:
👌 那我给你写一个 精简版安装脚本(不依赖 Hugging Face CLI,只用 aria2c/wget 下载模型权重)。适合国内服务器。
这里以 DeepSeek-7B-Instruct 为例。
脚本:run_deepseek_simple.sh
#!/bin/bash
set -e
# 模型名称与目录
MODEL_NAME="deepseek-ai/deepseek-llm-7b-instruct"
MODEL_DIR="$HOME/deepseek_models/$MODEL_NAME"
# 1. 安装依赖
if ! command -v aria2c &> /dev/null; then
echo "👉 安装 aria2c..."
sudo apt update && sudo apt install -y aria2
fi
if ! command -v docker &> /dev/null; then
echo "👉 请先安装 Docker: https://docs.docker.com/engine/install/"
exit 1
fi
# 2. 下载模型权重(huggingface 链接,可换成国内镜像)
mkdir -p $MODEL_DIR
cd $MODEL_DIR
if [ ! -f "config.json" ]; then
echo "👉 正在下载 DeepSeek-7B-Instruct 模型..."
aria2c -c -x 16 -s 16 \
"https://huggingface.co/$MODEL_NAME/resolve/main/config.json" \
"https://huggingface.co/$MODEL_NAME/resolve/main/generation_config.json" \
"https://huggingface.co/$MODEL_NAME/resolve/main/tokenizer.json" \
"https://huggingface.co/$MODEL_NAME/resolve/main/tokenizer.model" \
"https://huggingface.co/$MODEL_NAME/resolve/main/tokenizer_config.json"
# 下载分片权重(大文件分成了 shard)
for i in $(seq -f "%05g" 0 8); do
aria2c -c -x 16 -s 16 \
"https://huggingface.co/$MODEL_NAME/resolve/main/model-$i-of-00009.safetensors"
done
aria2c -c -x 16 -s 16 \
"https://huggingface.co/$MODEL_NAME/resolve/main/model.safetensors.index.json"
fi
# 3. 拉取 vllm Docker 镜像
if [[ "$(docker images -q vllm/vllm-openai:latest 2> /dev/null)" == "" ]]; then
echo "👉 拉取 vllm 镜像..."
docker pull vllm/vllm-openai:latest
fi
# 4. 启动容器
echo "🚀 启动 DeepSeek 服务..."
docker run --gpus all --rm -it \
-p 8000:8000 \
-v $MODEL_DIR:/models/$MODEL_NAME \
vllm/vllm-openai:latest \
--model /models/$MODEL_NAME
使用方法
chmod +x run_deepseek_simple.sh
./run_deepseek_simple.sh
启动成功后,服务跑在:
👉 http://localhost:8000/v1/chat/completions
调用示例(curl):
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/deepseek-llm-7b-instruct",
"messages": [
{"role": "system", "content": "你是一个中文助手"},
{"role": "user", "content": "给我讲一个三国的故事"}
]
}'
要不要我帮你写一个 多卡版(分布式并行推理,支持多张 GPU) 的脚本?这样如果你有多卡服务器(比如 2×A100/3090),就能把大模型分布在多卡上运行。
您说:
ChatGPT 说:
完全可以 👍。DeepSeek 的模型有很多不同大小,你不一定要上 7B 或 67B 这种“吃显存怪兽”,可以先从 小模型版本 开始跑。
适合低配置服务器的选择
-
DeepSeek-LLM-1.3B
参数量 13 亿,单张 4GB 显存就能跑(比如 3060/2060/消费级显卡)。
👉 Hugging Face: deepseek-ai/deepseek-llm-1.3b -
DeepSeek-LLM-6.7B(轻量优化版)
参数量 67 亿,比 7B 要轻一些,至少需要 12GB 显存才能跑。
如果显存更小(<4GB),可以考虑:
-
CPU 推理(很慢,不推荐,但能跑)。
-
量化版本(GGUF),比如用
llama.cpp或ollama加载 4bit/8bit 压缩模型,就能在 2~4GB 显存甚至 CPU 上运行。
部署最小模型(DeepSeek-1.3B)
我给你写个“最弱版”的跑法:
# 1. 拉取 ollama (适合小显存/CPU)
curl -fsSL https://ollama.com/install.sh | sh
# 2. 下载并注册模型
ollama pull deepseek-r1:1.3b
# 3. 启动聊天
ollama run deepseek-r1:1.3b
这样就能直接在本地交互,哪怕只有 笔记本 + CPU 也能跑,只是速度会慢一些。
建议
如果你的服务器显存 ≤4GB,就选 DeepSeek 1.3B + 量化(GGUF);
如果有 8–12GB 显存,可以跑 6.7B;
如果 ≥24GB 显存,才能轻松跑 7B/33B。
要不要我帮你整理一个 显存大小 ↔ 推荐模型版本对照表?这样你就能一眼知道自己能跑哪一档。
您说:
ChatGPT 说:
👌 那我给你整理一份 显存需求 ↔ 可部署 DeepSeek 模型版本对照表,这样你直接对照服务器配置就能选到能跑的版本:
🖥️ 显存需求对照表(DeepSeek 系列)
| 显存大小 | 推荐模型 | 部署方式 | 速度体验 |
|---|---|---|---|
| ≤ 4GB | DeepSeek-1.3B(量化 GGUF) | ollama / llama.cpp |
慢(CPU 也能跑),适合体验 |
| 6–8GB | DeepSeek-1.3B(FP16)或 DeepSeek-6.7B(4bit 量化) | PyTorch + Transformers / ollama |
勉强能跑,响应几秒~十几秒 |
| 12GB | DeepSeek-6.7B(FP16 或 8bit) | PyTorch / vLLM / ollama | 可以跑得比较顺畅 |
| 16GB | DeepSeek-7B(FP16) | PyTorch / vLLM / ollama | 响应速度可接受 |
| 24GB | DeepSeek-7B(全精度)/ DeepSeek-33B(4bit 量化) | PyTorch / vLLM | 可以流畅跑 7B,量化 33B 勉强能用 |
| 40GB+(A100/4090 等) | DeepSeek-33B | PyTorch / vLLM / Deepspeed | 大模型体验顺滑 |
| 80GB+(A100 80G/H100) | DeepSeek-67B | PyTorch + Deepspeed + vLLM | 真正高性能部署 |
🚀 小白推荐路线
-
低配 VPS / 家用电脑(CPU 或小显卡) → 用 Ollama + DeepSeek-1.3B GGUF
-
有一张 3060/4060(12GB)显卡 → 跑 DeepSeek-6.7B 就够用了
-
如果是大厂显卡(24G+) → 跑 DeepSeek-7B,体验接近在线 API
浙公网安备 33010602011771号