为了让新手也能轻松部署 DeepSeek 模型到本地,以下是更详细的 **分步指南**,包含具体命令和常见问题的解决方案。假设你使用的是类似 **DeepSeek-7B** 的开源模型(以 Hugging Face 平台为例)。
---
### **1. 环境准备(逐条操作)**
#### **1.1 检查 GPU 驱动(如果使用 GPU)**
- 确保 NVIDIA 驱动已安装:
```bash
nvidia-smi # 查看 GPU 信息,确认 CUDA 版本(例如 12.2)
```
- 如果没有输出,需先安装 [NVIDIA 驱动](
https://www.nvidia.com/Download/index.aspx)。
#### **1.2 安装 Python 和 PyTorch**
- 推荐使用 **Python 3.10**:
```bash
# 安装 Python(如已安装可跳过)
sudo apt update
sudo apt install python3.10 python3.10-venv
```
- 创建虚拟环境(避免依赖冲突):
```bash
python3.10 -m venv deepseek-env
source deepseek-env/bin/activate # 激活环境
```
- 安装 PyTorch(根据 CUDA 版本选择):
- 到 [PyTorch 官网](https://pytorch.org/) 复制安装命令,例如:
```bash
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # CUDA 12.1
```
#### **1.3 安装依赖库**
```bash
pip install transformers accelerate sentencepiece huggingface_hub
```
---
### **2. 下载模型文件(适合新手的两种方法)**
#### **方法1:直接下载(无需 Git LFS)**
- 访问 Hugging Face 模型页(如 [DeepSeek-7B](
https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat))。
- 点击右上角 **“Files and versions”**,手动下载所有文件(需登录 Hugging Face 账号)。
- 将文件保存到本地文件夹,例如 `./models/deepseek-7b`。
#### **方法2:使用 `huggingface_hub` 工具下载**
```python
from huggingface_hub import snapshot_download
model_id = "deepseek-ai/deepseek-llm-7b-chat"
snapshot_download(repo_id=model_id, local_dir="./models/deepseek-7b")
```
---
### **3. 运行最简单的推理代码**
#### **3.1 创建 Python 脚本 `demo.py`**
```python
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
# 模型路径(替换为你实际的路径)
model_path = "./models/deepseek-7b"
# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.float16, # 半精度减少显存占用
device_map="auto", # 自动分配到 GPU 或 CPU
trust_remote_code=True
)
# 输入文本
prompt = "你好,请介绍一下你自己。"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
# 生成回复
outputs = model.generate(**inputs, max_new_tokens=100)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("模型回复:", response)
```
#### **3.2 运行脚本**
```bash
python demo.py
```
---
### **4. 常见问题解决(新手必看)**
#### **问题1:显存不足(OOM)**
- **表现**:程序崩溃,报错 `CUDA out of memory`。
- **解决**:
- 减少生成长度:设置 `max_new_tokens=50`。
- 启用 4-bit 量化(需安装 `bitsandbytes`):
```bash
pip install bitsandbytes
```
修改模型加载代码:
```python
model = AutoModelForCausalLM.from_pretrained(
model_path,
load_in_4bit=True, # 启用 4-bit 量化
device_map="auto"
)
```
#### **问题2:模型下载失败**
- **表现**:`ConnectionError` 或下载速度慢。
- **解决**:
- 使用国内镜像源(如阿里云):
```bash
pip install huggingface_hub -i https://mirrors.aliyun.com/pypi/simple/
```
- 设置镜像下载(在代码中添加):
```python
import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
```
#### **问题3:缺少依赖库**
- **表现**:`ModuleNotFoundError: No module named 'xxx'`。
- **解决**:
```bash
pip install xxx # 根据报错提示安装缺失的库
```
---
### **5. 进阶:启动本地 API 服务(适合测试)**
#### **5.1 安装 FastAPI 和 Uvicorn**
```bash
pip install fastapi uvicorn
```
#### **5.2 创建 `api.py`**
```python
from fastapi import FastAPI
from pydantic import BaseModel
from demo import model, tokenizer # 导入之前加载的模型和分词器
app = FastAPI()
class Request(BaseModel):
prompt: str
@app.post("/chat")
def chat(request: Request):
inputs = tokenizer(request.prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=100)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"response": response}
```
#### **5.3 启动服务**
```bash
uvicorn api:app --host 0.0.0.0 --port 8000
```
#### **5.4 测试 API**
- 浏览器访问:`
http://localhost:8000/docs`
- 或用 `curl` 测试:
```bash
curl -X POST "
http://localhost:8000/chat" -H "Content-Type: application/json" -d '{"prompt": "你好!"}'
```
---
### **6. 最终检查清单**
1. [ ] 确认 GPU 驱动和 CUDA 已安装。
2. [ ] 虚拟环境激活并安装所有依赖。
3. [ ] 模型文件已完整下载到本地。
4. [ ] 尝试运行 `demo.py` 并得到回复。
5. [ ] 如果遇到错误,根据控制台输出调整参数(如减少 `max_new_tokens`)。
---
通过以上步骤,即使是新手也能顺利完成本地部署!如果遇到其他问题,欢迎提供具体报错信息进一步排查。
本文暂时没有评论,来添加一个吧(●'◡'●)