一、环境准备
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
- 访问模型页面(例:https://huggingface.co/deepseek-ai)
- 申请模型使用权限(部分模型需要审核)
- 使用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
复制
git lfs install
git clone https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat
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 # 对比官方提供的哈希值
七、性能优化建议
- 启用Flash Attention:可提升20-30%推理速度
- 使用vLLM:吞吐量提升3-5倍
- 调整批处理大小:根据显存动态调整
- 开启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机制和内存分配策略。