DeepSeek模型本地部署(Linux以及Windows)教程

Linux部署:

一、环境准备

(图示:Python版本检查截图/Pytorch安装界面)

  1. 硬件要求
  • GPU:NVIDIA显卡(推荐RTX 3090/4090,显存≥24GB)
  • 内存:≥32GB DDR4
  • 存储:≥50GB可用空间(建议SSD)
  1. 软件依赖

bash

复制

# 创建虚拟环境
conda create -n deepseek python=3.10
conda activate deepseek

# 安装基础依赖
pip install torch==2.1.0 torchvision==0.16.0 --index-url https://download.pytorch.org/whl/cu118
pip install transformers==4.35.0 accelerate sentencepiece

二、模型获取

(图示:HuggingFace模型下载页面示意图)

  1. 访问官方渠道:

bash

复制

# 通过git-lfs下载(需先安装git-lfs)
git clone https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat
  1. 国内镜像加速(推荐):

python

复制

from huggingface_hub import snapshot_download
snapshot_download(repo_id="deepseek-ai/deepseek-llm-7b-chat", 
                local_dir="./model",
                local_dir_use_symlinks=False)

三、部署配置

(图示:项目目录结构示意图)

  1. 创建项目结构:

复制

/deepseek-deploy
├── model/          # 模型文件
├── config.json     # 配置文件
└── inference.py    # 推理脚本
  1. 配置文件示例(config.json):

json

复制

{
  "model_path": "./model",
  "device_map": "auto",
  "torch_dtype": "bfloat16",
  "quantization": {
    "load_in_8bit": true,
    "llm_int8_threshold": 6.0
  }
}

四、推理代码

(图示:终端运行效果截图)

python

复制

# inference.py
from transformers import AutoModelForCausalLM, AutoTokenizer

def load_model(config):
    model = AutoModelForCausalLM.from_pretrained(
        config["model_path"],
        device_map=config["device_map"],
        torch_dtype=config["torch_dtype"],
        load_in_8bit=config["quantization"]["load_in_8bit"]
    )
    tokenizer = AutoTokenizer.from_pretrained(config["model_path"])
    return model, tokenizer

def generate(prompt):
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    outputs = model.generate(**inputs, max_new_tokens=200)
    return tokenizer.decode(outputs[0], skip_special_tokens=True)

五、运行测试

(图示:成功运行输出示例)

  1. 启动推理服务:

bash

复制

python -c "from inference import *; print(generate('如何解释量子纠缠?'))"
  1. 常见问题处理:
  • 显存不足:添加--device_map "cpu"或减小max_new_tokens
  • 依赖冲突:使用pip freeze > requirements.txt导出依赖
  • 中文乱码:在代码开头添加# -*- coding: utf-8 -*-

六、高级配置

(图示:vLLM加速框架架构图)

  1. 使用vLLM加速:

bash

复制

pip install vLLM>=0.2.0

python

复制

from vllm import LLM, SamplingParams
llm = LLM(model="./model", tensor_parallel_size=2)

总结

通过本教程可完成DeepSeek模型的基础部署,建议:

  1. 定期检查模型更新(git pull)
  2. 使用LangChain等框架构建应用
  3. 监控GPU使用(nvidia-smi -l 1)

官方资源:

DeepSeek-LLM GitHub

HuggingFace模型库

技术白皮书


请根据实际需求调整量化策略(4bit/8bit)和并行计算配置。部署过程中如遇问题,可通过torch.cuda.empty_cache()清理显存后重试。

Windows部署

一、系统环境准备

(图示:Windows系统信息截图 + NVIDIA控制面板显存查看)

1.1 硬件检查

  • GPU要求:NVIDIA显卡(GTX 1080Ti及以上,推荐RTX 3090/40系)
  • 显存验证:右键桌面 → NVIDIA控制面板 → 帮助 → 系统信息

1.2 软件准备

powershell

复制

# 安装必要组件(以管理员身份运行PowerShell)
winget install Git.Git
winget install Python.Python.3.10
git lfs install  # 安装大文件支持

# 验证安装
python --version  # 应显示3.10.x
nvidia-smi  # 查看CUDA版本(需≥11.8)

二、模型获取(国内优化版)

(图示:阿里云盘文件下载示意图)

2.1 国内镜像加速下载

python

复制

# 新建download.py文件
from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="deepseek-ai/deepseek-llm-7b-chat",
    local_dir="D:/deepseek_model",
    local_dir_use_symlinks=False,
    resume_download=True,
    token="hf_您的令牌"  # 可选
)

国内用户推荐使用阿里云OSS镜像下载


三、Python环境配置

(图示:Pycharm虚拟环境配置界面)

3.1 创建专用环境

powershell

复制

# 建议使用conda(需提前安装Miniconda)
conda create -n deepseek-win python=3.10
conda activate deepseek-win

# 安装核心依赖
pip install torch==2.1.0+cu118 torchvision --extra-index-url https://download.pytorch.org/whl/cu118
pip install transformers==4.35.0 accelerate sentencepiece

3.2 解决常见Windows报错

  • error: Microsoft C++ 14.0 required:安装Visual Studio Build Tools
  • DLL load failed:更新NVIDIA CUDA Toolkit至11.8+

四、模型部署实战

(项目结构图示:资源管理器窗口截图)

4.1 目录结构

复制

D:\DEEPSEEK_DEPLOY
├── model/          # 模型文件
│   ├── config.json
│   └── model.safetensors
├── deepseek.bat    # 启动脚本
└── inference.py

4.2 启动脚本(deepseek.bat)

batch

复制

@echo off
set PYTHONIOENCODING=utf-8
conda activate deepseek-win
python inference.py
pause

4.3 推理代码(inference.py)

python

复制

# -*- coding: utf-8 -*-
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_path = "D:/deepseek_model"
device = "cuda" if torch.cuda.is_available() else "cpu"

# 自动处理显存不足问题
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    device_map="auto",
    torch_dtype=torch.bfloat16,
    load_in_8bit=True  # 8位量化节省显存
)

tokenizer = AutoTokenizer.from_pretrained(model_path)

def ask(prompt):
    inputs = tokenizer(prompt, return_tensors="pt").to(device)
    outputs = model.generate(**inputs, max_new_tokens=200)
    return tokenizer.decode(outputs[0], skip_special_tokens=True)

if __name__ == "__main__":
    while True:
        question = input("请输入问题(输入exit退出): ")
        if question.lower() == 'exit':
            break
        print("思考中...")
        print(ask(question))
        print("\n" + "="*50 + "\n")

五、常见问题解决方案

(图示:Windows任务管理器GPU性能监控)

5.1 显存优化技巧

  1. 启用8bit量化:

python

复制

model = AutoModelForCausalLM.from_pretrained(..., load_in_8bit=True)
  1. 设置分页注意力:

python

复制

model = AutoModelForCausalLM.from_pretrained(...,
    device_map="auto",
    attn_implementation="flash_attention_2")

5.2 中文乱码修复

  1. 修改CMD/PowerShell编码:

batch

复制

chcp 65001  # 在bat文件开头添加
  1. 使用支持UTF-8的终端:
  • 推荐Windows Terminal

六、性能加速方案

(图示:DirectML加速配置示意图)

6.1 使用DirectML加速(AMD/Intel显卡)

powershell

复制

pip install torch-directml

python

复制

import torch_directml
device = torch_directml.device()

6.2 多GPU配置

python

复制

model = AutoModelForCausalLM.from_pretrained(...,
    device_map="balanced",
    max_memory={0:"20GiB", 1:"20GiB"})

部署验证与监控

(图示:GPU-Z实时监控截图)

  1. 运行测试:

powershell

复制

python -c "from inference import ask; print(ask('北京有哪些必去的景点?'))"
  1. 资源监控工具:
  • GPU-Z
  • HWMonitor
  • Windows任务管理器 → 性能标签

重要提示:

路径中不要包含中文或特殊字符

建议关闭Windows Defender实时保护(可能误删模型文件)

首次加载模型需要5-10分钟(观察硬盘灯状态)

推荐使用WSL2获得类Linux体验

官方技术支持:

  • DeepSeek Windows支持文档
  • CUDA Windows安装指南
原文链接:,转发请注明来源!