DeepSeek本地部署完整教程

一、环境准备

1.1 硬件要求

  • GPU:推荐NVIDIA显卡(RTX 3090/4090或A100/V100),显存至少16GB
  • 内存:32GB及以上
  • 存储:模型文件需要15-30GB空间(根据模型版本)

1.2 软件环境

基础依赖

bash

复制

Ubuntu 20.04/22.04

sudo apt update && sudo apt install -y
python3.10
python3-pip
git
git-lfs
build-essential
nvidia-cuda-toolkit

Python环境

建议使用conda创建虚拟环境:

bash

复制

conda create -n deepseek python=3.10 -y
conda activate deepseek

CUDA版本验证

bash

复制

nvidia-smi # 查看驱动支持的CUDA版本
nvcc –version # 查看实际安装版本

需确保CUDA版本≥11.8(推荐12.1)


二、模型获取

2.1 官方渠道下载

方法一:Hugging Face Hub

  1. 访问模型页面(例:https://huggingface.co/deepseek-ai)
  2. 申请模型使用权限(部分模型需要审核)
  3. 使用huggingface-cli下载:

bash

复制

pip install huggingface_hub
huggingface-cli login # 输入Access Token
huggingface-cli download deepseek-ai/deepseek-llm-7b-base –local-dir ./model

方法二:Git LFS

bash

复制

2.2 文件结构验证

成功下载后目录应包含:

复制

├── config.json
├── model.safetensors
├── tokenizer.model
├── tokenizer_config.json
└── generation_config.json


三、依赖安装

3.1 基础依赖

bash

复制

pip install torch==2.1.2+cu121 –extra-index-url https://download.pytorch.org/whl/cu121
pip install
transformers>=4.34
accelerate
sentencepiece
einops
tiktoken

3.2 可选优化组件

Flash Attention 2

bash

复制

pip install flash-attn==2.5.0 –no-build-isolation

vLLM推理加速

bash

复制

pip install vllm==0.3.0


四、配置与运行

4.1 基础推理脚本

创建inference.py

python

复制

from transformers import AutoTokenizer, AutoModelForCausalLM

model_path = “./deepseek-llm-7b-chat”
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(
model_path,
device_map=”auto”,
torch_dtype=”auto”
)

prompt = “如何做西红柿炒鸡蛋?”
inputs = tokenizer(prompt, return_tensors=”pt”).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=500)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

4.2 启动参数优化

量化加载(减少显存占用)

python

复制

model = AutoModelForCausalLM.from_pretrained(
model_path,
device_map=”auto”,
load_in_4bit=True, # 4位量化
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type=”nf4″,
)

多GPU配置

python

复制

from accelerate import dispatch_model

model = dispatch_model(
model,
device_map=”auto”,
main_device=”cuda:0″,
offload_buffers=True
)


五、高级部署方案

5.1 使用vLLM加速

python

复制

from vllm import LLM, SamplingParams

llm = LLM(
model=model_path,
tensor_parallel_size=2, # GPU数量
gpu_memory_utilization=0.9
)

sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=1000)
outputs = llm.generate([“请写一首关于春天的诗”], sampling_params)
print(outputs[0].outputs[0].text)

5.2 API服务部署

安装FastAPI:

bash

复制

pip install fastapi uvicorn

创建api_server.py

python

复制

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Request(BaseModel):
prompt: str
max_tokens: int = 500

@app.post(“/generate”)
def generate(request: Request):
inputs = tokenizer(request.prompt, return_tensors=”pt”).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=request.max_tokens)
return {“response”: tokenizer.decode(outputs[0], skip_special_tokens=True)}

启动服务:

bash

复制

uvicorn api_server:app –host 0.0.0.0 –port 8000 –workers 2


六、常见问题排查

6.1 显存不足

  • 启用4bit/8bit量化
  • 使用accelerate进行CPU offload:

python

复制

from accelerate import infer_auto_device_map

device_map = infer_auto_device_map(
model,
max_memory={0:”20GiB”, “cpu”:”32GiB”}
)

6.2 依赖冲突

建议使用官方推荐版本:

bash

复制

pip install transformers==4.34.0

6.3 模型加载失败

检查文件完整性:

bash

复制

sha256sum model.safetensors # 对比官方提供的哈希值


七、性能优化建议

  1. 启用Flash Attention:可提升20-30%推理速度
  2. 使用vLLM:吞吐量提升3-5倍
  3. 调整批处理大小:根据显存动态调整
  4. 开启Tensor并行:多GPU分布式推理

八、附录:典型配置示例

8.1 RTX 3090 (24GB)配置

python

复制

model = AutoModelForCausalLM.from_pretrained(
model_path,
device_map=”auto”,
load_in_8bit=True,
torch_dtype=torch.float16,
attn_implementation=”flash_attention_2″
)

8.2 A100 (40GB)配置

python

复制

model = AutoModelForCausalLM.from_pretrained(
model_path,
device_map=”auto”,
torch_dtype=torch.bfloat16,
use_cache=True
)


通过以上步骤,您已完成DeepSeek大模型的本地部署。建议首次运行时添加--log-level debug参数查看详细日志。如需进一步优化,可参考官方文档调整Attention机制和内存分配策略。

发表评论