以下是将 DeepSeek 大模型部署到本地开发环境的详细教程,分为多个步骤,包含技术细节和注意事项:
GPU:推荐 NVIDIA GPU(至少 16GB 显存,如 RTX 3090/4090 或 A100)
内存:建议 32GB 以上
存储:根据模型大小预留空间(如 7B 模型约需 15GB)
操作系统:Linux (Ubuntu 20.04+) 或 Windows WSL2
Python:3.8+(推荐 3.10)
CUDA:11.8+(需与 GPU 驱动兼容)
PyTorch:2.0+(需与 CUDA 版本匹配)
# 检查 GPU 驱动是否安装(输出应包含 GPU 信息)
nvidia-smi
# 安装 CUDA(以 CUDA 11.8 为例)
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run
从官方渠道下载:
访问 DeepSeek 官方仓库(如 Hugging Face Model Hub)
找到目标模型(如 deepseek-ai/deepseek-7b-base
)
使用 git-lfs
下载模型权重和配置文件:
sudo apt-get install git-lfs # 安装 git-lfs
git lfs install
git clone https://huggingface.co/deepseek-ai/deepseek-7b-base
权限处理:
部分模型可能需要申请访问权限,需在 Hugging Face 提交请求。
# 创建虚拟环境(推荐)
python -m venv deepseek-env
source deepseek-env/bin/activate
# 安装 PyTorch(匹配 CUDA 版本)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 安装 Transformer 库
pip install transformers>=4.35.0
# 其他必要依赖
pip install accelerate sentencepiece bitsandbytes
load_model.py
)from transformers import AutoModelForCausalLM, AutoTokenizer
model_name_or_path = "./deepseek-7b-base" # 本地路径或 Hugging Face 模型名
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = AutoModelForCausalLM.from_pretrained(
model_name_or_path,
device_map="auto", # 自动分配 GPU/CPU 资源
torch_dtype="auto", # 自动选择精度
trust_remote_code=True # 允许执行自定义代码(需信任来源)
)
# 将模型设为评估模式
model.eval()
# 使用 4-bit 量化(减少显存占用)
from transformers import BitsAndBytesConfig
quant_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)
model = AutoModelForCausalLM.from_pretrained(
model_name_or_path,
quantization_config=quant_config,
device_map="auto"
)
inference.py
)def generate_text(prompt, max_length=200):
inputs = tokenizer(
prompt,
return_tensors="pt",
padding=True,
truncation=True,
max_length=512
).to(model.device)
outputs = model.generate(
inputs.input_ids,
max_length=max_length,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.1,
do_sample=True
)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
return result
# 测试
print(generate_text("中国的首都是"))
启用 accelerate
库的混合精度训练:
from accelerate import Accelerator
accelerator = Accelerator(mixed_precision="fp16")
model = accelerator.prepare(model)
bash
复制
pip install flash-attn --no-build-isolation
修改模型加载代码:
model = AutoModelForCausalLM.from_pretrained(
model_name_or_path,
use_flash_attention_2=True # 启用 Flash Attention
)
CUDA Out of Memory:
减少 max_length
启用 4-bit/8-bit 量化
使用 batch_size=1
权限错误:
将 token 添加到环境变量:
from huggingface_hub import login
login(token="hf_YourToken")
版本冲突:
使用 pip freeze > requirements.txt
导出依赖
创建新的虚拟环境重新安装
Hugging Face Transformers 文档
DeepSeek 官方 GitHub
PyTorch 安装指南
按照以上步骤操作后,你应该可以在本地成功运行 DeepSeek 模型。如果遇到具体问题,可根据错误信息进一步排查硬件兼容性或依赖版本。