以下是 Windows 系统下 DeepSeek 大模型本地部署的详细说明:
一、环境准备
1. 硬件要求
GPU:NVIDIA 显卡(显存 ≥ 16GB,如 RTX 3090/4090),需安装最新驱动(NVIDIA 驱动下载)
CPU:≥ 8 核,内存 ≥ 32GB
硬盘空间:≥ 50GB(模型文件通常较大)
2. 软件依赖
操作系统:Windows 10/11(建议 64 位专业版)
安装 CUDA 和 cuDNN:
下载 CUDA Toolkit 11.8(选择 Windows 版本)
下载 cuDNN 8.9.7 for CUDA 11.x(需注册 NVIDIA 账号)
解压 cuDNN 文件,将
bin
、include
、lib
文件夹内容复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
对应目录。
Python 环境:
安装 Python 3.10(勾选 Add to PATH)
安装 Git for Windows(包含 Git-LFS)
3. 创建 Conda 环境
# 打开 PowerShell 或 Anaconda Prompt conda create -n deepseek python=3.10 conda activate deepseek pip install torch==2.1.0+cu118 --index-url https://download.pytorch.org/whl/cu118 pip install transformers sentencepiece accelerate
二、获取模型文件
1. 通过 Git-LFS 下载(推荐)
git lfs install git clone https://huggingface.co/deepseek-ai/deepseek-7b-chat
若速度慢,可设置镜像:
set HF_ENDPOINT=https://hf-mirror.com git clone https://huggingface.co/deepseek-ai/deepseek-7b-chat
2. 手动下载(备用)
访问模型页面(如 DeepSeek-7B-Chat)
点击 "Files and versions",下载所有
.safetensors
或.bin
文件及配置文件(config.json
,tokenizer.json
等)将文件保存到本地目录(如
D:\models\deepseek-7b-chat
)
三、加载模型推理
1. 基础推理脚本
创建 inference.py
文件:
import torch from transformers import AutoTokenizer, AutoModelForCausalLM model_path = "D:/models/deepseek-7b-chat" # 替换为实际路径(注意用 / 分隔路径) tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", torch_dtype=torch.float16 ) prompt = "如何用 Windows 系统部署大模型?" inputs = tokenizer(prompt, return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_new_tokens=200) print(tokenizer.decode(outputs[0], skip_special_tokens=True))
2. 启用量化(显存不足时)
model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", load_in_4bit=True, # 4-bit 量化 bnb_4bit_compute_dtype=torch.float16 )
注意:
bitsandbytes
在 Windows 可能需要手动编译或替换 DLL 文件,参考 bitsandbytes-windows。
四、部署为 API 服务
1. 使用 FastAPI
创建 api.py
:
from fastapi import FastAPI from pydantic import BaseModel from transformers import AutoTokenizer, AutoModelForCausalLM import torch app = FastAPI() model_path = "D:/models/deepseek-7b-chat" tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", torch_dtype=torch.float16 ) class Request(BaseModel): prompt: str max_tokens: int = 200 @app.post("/generate") async def generate(request: Request): inputs = tokenizer(request.prompt, return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_new_tokens=request.max_tokens) return {"response": tokenizer.decode(outputs[0], skip_special_tokens=True)}
2. 启动服务
uvicorn api:app --host 0.0.0.0 --port 8000
访问 http://localhost:8000/docs
测试 API。
五、常见问题解决
1. CUDA 安装失败
检查显卡驱动是否支持 CUDA 11.8。
确保环境变量
PATH
包含 CUDA 路径(如C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
)。
2. 缺少动态链接库(DLL)
若报错
Could not locate zlibwapi.dll
,安装 Windows 10 SDK。
3. 显存不足
使用
load_in_4bit
量化。添加
--max_split_size_mb 128
到脚本启动参数:set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128 python inference.py
六、进阶优化
1. 使用 DirectML(仅 CPU 或 AMD GPU)
pip install torch-directml
import torch_directml device = torch_directml.device() model = model.to(device)
2. Docker 部署(需 WSL2 支持)
启用 WSL2 并安装 Docker Desktop。
创建
Dockerfile
:FROM nvidia/cuda:11.8.0-base RUN apt-get update && apt-get install -y python3.10 python3-pip COPY . /app WORKDIR /app RUN pip install -r requirements.txt CMD ["uvicorn", "api:app", "--host", "0.0.0.0", "--port", "8000"]
构建镜像:
docker build -t deepseek-api . docker run --gpus all -p 8000:8000 deepseek-api
注意事项:
模型路径避免使用中文或空格。
部分依赖需从非官方源安装(如
bitsandbytes-windows
),需谨慎验证文件安全性。生产环境建议使用 WSL2 或 Linux 服务器以获得更好兼容性。