在 Ubuntu Server 24.04 上部署 DeepSeek R1 大模型时,RTX 4060 Ti 这款显卡的性能其实可以榨干。最近不少朋友问到这个问题,正好把完整流程系统梳理一遍,方便大家参考。
先看系统环境。Ubuntu Server 24.04 对 NVIDIA 生态支持良好,但关键一步是驱动版本。RTX 4060 Ti 属于新一代架构,官方推荐驱动版本为 535 或更高。驱动安装错误会导致后续 CUDA 和 cuDNN 出现各种奇怪问题。

一、系统环境准备
1. 安装NVIDIA驱动
最稳妥的方式是通过官方 PPA 安装:
# 添加官方驱动PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
# 查看推荐驱动版本
ubuntu-drivers devices
# 安装推荐版本(这里以535为例)
sudo apt install nvidia-driver-535
# 重启后验证
nvidia-smi
注意,安装完成后必须重启。当 nvidia-smi 能正常输出信息时才算成功。
2. 安装CUDA Toolkit
CUDA 版本选择有讲究。DeepSeek R1 官方文档通常推荐 CUDA 11.8 或 12.x,但最新版本更建议直接上 12.2 或 12.3。这里以 CUDA 12.2.2 为例:
# 下载CUDA 12.2.2安装包
wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run
# 执行安装
sudo sh cuda_12.2.2_535.104.05_linux.run
# 配置环境变量
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
安装时需要注意一个坑:不要勾选 driver 选项,因为驱动已单独安装完毕,避免版本冲突。
3. 安装cuDNN
从 NVIDIA 官网下载对应 CUDA 12.x 的 cuDNN 版本。解压后复制文件到 CUDA 目录:
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda12-archive/include/cudnn*.h /usr/local/cuda/include/
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda12-archive/lib/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
二、Python环境配置
环境隔离是必需的,直接用系统 Python 很容易翻车。推荐使用 Miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
创建独立虚拟环境:
conda create -n deepseek python=3.10
conda activate deepseek
PyTorch 安装务必注意 CUDA 版本对齐。这里选择 CUDA 12.1 的版本:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
接下来安装训练相关的依赖库:
pip install transformers datasets accelerate sentencepiece tensorboard
# DeepSpeed可选,但强烈推荐
pip install deepspeed
三、获取DeepSeek R1模型
模型权重可以通过两种方式获取:
# 方式一:Hugging Face(推荐)
git lfs install
git clone https://huggingface.co/deepseek-ai/DeepSeek-R1
# 方式二:训练代码仓库
git clone https://github.com/deepseek-ai/DeepSeek-R1-Training
cd DeepSeek-R1-Training
需要注意,部分模型可能需要申请访问权限,建议提前确认好。
四、训练配置与显存优化
RTX 4060 Ti 拥有 16GB 显存,在单卡训练中属于中等水平,但通过合理配置完全跑得起来。关键参数调整示例:
training_args = TrainingArguments(
output_dir="./output",
per_device_train_batch_size=4, # 从2开始测试
gradient_accumulation_steps=4, # 关键:模拟更大batch
learning_rate=2e-5,
fp16=True, # 混合精度必须开
logging_steps=100,
max_steps=1000,
deepspeed="ds_config.json"
)
DeepSpeed 配置是重点。Zero 优化阶段建议从 stage 2 开始:
{
"fp16": {
"enabled": true
},
"optimizer": {
"type": "AdamW",
"params": {
"lr": "auto"
}
},
"zero_optimization": {
"stage": 2,
"offload_optimizer": {
"device": "cpu"
}
}
}
五、启动训练
# 使用Accelerate
accelerate launch --num_processes 1 train.py
# 或使用DeepSpeed
deepspeed --num_gpus 1 train.py --deepspeed ds_config.json
六、显存优化技巧(关键)
如果遇到 OOM,以下方法非常有效:
- 梯度检查点(Gradient Checkpointing):在模型配置中加入
model.gradient_checkpointing_enable(),用计算换显存。 - batch size 试探法:从 per_device_train_batch_size=2 开始,逐步增加到 4、8,找到不产生 OOM 的最大值。
- LoRA/QLoRA:如果项目支持,16GB 显存搭配 LoRA 能直接起飞,显存占用可降至 8GB 以内。
常见问题排查
几个高频问题及解决方法:
- CUDA 版本不匹配:报错
CUDA error: no kernel image is a vailable,用conda list | grep cuda检查 PyTorch 和系统 CUDA 是否一致。 - 显存不足:先降低 batch size,再启用梯度检查点,最后考虑 DeepSpeed offload。
- 依赖冲突:用
pip freeze > requirements.txt导出环境,与官方推荐版本进行对照。
整条流程走下来,从驱动安装到模型跑通,核心就是版本对齐和参数试探。建议先用小数据集跑通流程,再逐步调优。
