以下是 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 文件,将 binincludelib 文件夹内容复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8 对应目录。

  • Python 环境

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)

3. 显存不足

  • 使用 load_in_4bit 量化。

  • 添加 --max_split_size_mb 128 到脚本启动参数:

    powershell
    复制
    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 支持)

  1. 启用 WSL2 并安装 Docker Desktop

  2. 创建 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"]
  3. 构建镜像:

    docker build -t deepseek-api .
    docker run --gpus all -p 8000:8000 deepseek-api

注意事项

  1. 模型路径避免使用中文或空格。

  2. 部分依赖需从非官方源安装(如 bitsandbytes-windows),需谨慎验证文件安全性。

  3. 生产环境建议使用 WSL2 或 Linux 服务器以获得更好兼容性。

点赞(0) 打赏

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部