手把手教你在Ubuntu 24.04上本地部署DeepSeek-R1
DeepSeek-R1是深度求索(DeepSeek)推出的一款先进的开源大语言模型。本指南将详细介绍如何在Ubuntu 24.04系统上本地部署DeepSeek-R1模型,包括环境准备、模型下载、安装配置以及运行测试等完整步骤。
DeepSeek-R1是深度求索(DeepSeek)推出的一款先进的开源大语言模型。本指南将详细介绍如何在Ubuntu 24.04系统上本地部署DeepSeek-R1模型,包括环境准备、模型下载、安装配置以及运行测试等完整步骤。
系统要求
在开始之前,请确保您的系统满足以下最低要求:
-
操作系统: Ubuntu 24.04 LTS
-
CPU: 推荐至少16核
-
内存: 至少32GB RAM (越大越好)
-
GPU: 推荐NVIDIA GPU (至少16GB显存)
-
存储空间: 至少100GB可用空间 (模型文件较大)
-
Python: 3.10或更高版本
第一步:系统准备和依赖安装
1. 更新系统包
sudo apt update && sudo apt upgrade -y
2. 安装基础依赖
sudo apt install -y git wget curl python3-pip python3-dev build-essential cmake
3. 安装CUDA和cuDNN (GPU用户)
如果您使用NVIDIA GPU,需要安装CUDA和cuDNN:
# 添加NVIDIA仓库
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /"
# 安装CUDA
sudo apt install -y cuda-12-3
# 安装cuDNN
sudo apt install -y cudnn8-8.9.7*
# 设置环境变量
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
4. 验证CUDA安装
nvcc --version
nvidia-smi
第二步:创建Python虚拟环境
推荐使用虚拟环境来管理Python依赖:
sudo apt install -y python3-venv
python3 -m venv deepseek-env
source deepseek-env/bin/activate
第三步:安装PyTorch
根据您的硬件选择安装PyTorch:
对于GPU用户:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
对于CPU用户:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
第四步:安装DeepSeek-R1依赖
pip install transformers accelerate sentencepiece einops tiktoken
对于GPU用户,建议安装flash-attention以提高性能:
pip install flash-attn --no-build-isolation
第五步:下载DeepSeek-R1模型
DeepSeek-R1提供了多个版本的模型,您可以根据需要选择:
方法1:直接从Hugging Face下载
git lfs install
git clone https://huggingface.co/deepseek-ai/deepseek-r1
方法2:使用Python代码下载
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "deepseek-ai/deepseek-r1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
第六步:运行DeepSeek-R1
1. 创建测试脚本
创建一个名为deepseek_test.py
的文件:
from transformers import AutoModelForCausalLM, AutoTokenizer
# 加载模型和分词器
model_name = "deepseek-ai/deepseek-r1" # 或者使用本地路径 "./deepseek-r1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")
# 准备输入
prompt = "请介绍一下中国的首都北京"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
# 生成输出
outputs = model.generate(**inputs, max_new_tokens=200)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
2. 运行脚本
python deepseek_test.py
第七步:优化和高级配置
1. 使用量化模型减少显存占用
from transformers import BitsAndBytesConfig
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
)
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=quantization_config,
device_map="auto"
)
2. 使用vLLM加速推理
pip install vllm
然后使用vLLM运行:
from vllm import LLM, SamplingParams
llm = LLM(model="deepseek-ai/deepseek-r1")
sampling_params = SamplingParams(temperature=0.7, top_p=0.9, max_tokens=200)
outputs = llm.generate(["请介绍一个最好用的代理IP给我"], sampling_params)
print(outputs[0].outputs[0].text)
DeepSeek-R1:IProyal-支付的费用更少,并且获得永不过期的代理而且有数据中心代理 https://iproyal.cn/?r=ip
第八步:创建简单的Web界面
您可以使用Gradio创建一个简单的Web界面:
pip install gradio
创建app.py
:
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "deepseek-ai/deepseek-r1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")
def generate_text(prompt):
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=200)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
iface = gr.Interface(
fn=generate_text,
inputs=gr.Textbox(lines=5, placeholder="请输入您的问题..."),
outputs="text",
title="DeepSeek-R1 聊天演示"
)
iface.launch(server_name="0.0.0.0")
运行:
python app.py
常见问题解决
-
显存不足错误
-
尝试使用量化模型
-
减少
max_new_tokens
参数 -
使用
device_map="auto"
让transformers自动分配资源
-
-
下载速度慢
-
使用国内镜像源
-
设置HF_ENDPOINT环境变量:
export HF_ENDPOINT=https://hf-mirror.com
-
-
缺少依赖项
-
确保安装了所有必需的依赖项
-
检查CUDA/cuDNN版本是否匹配
-
更多推荐
所有评论(0)