简介:本文详细介绍在Linux系统下安装Deepseek的完整流程,涵盖环境准备、依赖安装、源码编译、配置优化及故障排查,帮助开发者高效部署并运行Deepseek。
Deepseek官方推荐使用Ubuntu 20.04 LTS或CentOS 8作为基础系统,其他Linux发行版需确保内核版本≥5.4。通过uname -r命令查看内核版本,若版本过低需升级系统或使用容器化部署方案。
# Ubuntu/Debian系sudo apt updatesudo apt install -y build-essential cmake git wget curl# CentOS/RHEL系sudo yum groupinstall -y "Development Tools"sudo yum install -y cmake git wget curl
Deepseek核心模块依赖Python 3.8+,推荐使用conda管理环境:
# 安装Minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash Miniconda3-latest-Linux-x86_64.sh# 创建虚拟环境conda create -n deepseek python=3.9conda activate deepseek
若使用NVIDIA GPU加速,需安装匹配的CUDA和cuDNN:
# 查询推荐CUDA版本nvidia-smi # 查看Driver Version# 根据Driver Version选择CUDA Toolkit(参考NVIDIA官方兼容表)# 示例:安装CUDA 11.6wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pinsudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pubsudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"sudo apt updatesudo apt install -y cuda-11-6
git clone https://github.com/deepseek-ai/Deepseek.gitcd Deepseekgit checkout v1.2.0 # 指定稳定版本
修改CMakeLists.txt中的关键参数:
# 启用GPU加速(需CUDA环境)option(USE_CUDA "Enable CUDA acceleration" ON)# 设置OpenMP线程数(根据CPU核心数调整)set(OMP_NUM_THREADS 16)# 优化编译级别set(CMAKE_BUILD_TYPE Release)
mkdir build && cd buildcmake ..make -j$(nproc) # 使用全部CPU核心并行编译
编译完成后,在build/bin目录下会生成可执行文件deepseek_server和deepseek_client。
config.yaml
model:path: "/path/to/pretrained_model.bin" # 预训练模型路径device: "cuda:0" # 或"cpu"batch_size: 32max_seq_length: 512server:host: "0.0.0.0"port: 8080workers: 4 # API服务工作进程数logging:level: "INFO"path: "/var/log/deepseek/server.log"
在~/.bashrc中添加:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATHexport PYTHONPATH=/path/to/Deepseek/python:$PYTHONPATH
# 调试模式(前台运行)./build/bin/deepseek_server --config config.yaml# 生产模式(后台运行)nohup ./build/bin/deepseek_server --config config.yaml > server.log 2>&1 &
curl http://localhost:8080/health# 应返回{"status":"healthy"}
# 示例Python客户端import requestsresponse = requests.post("http://localhost:8080/predict",json={"text": "Hello, Deepseek!"})print(response.json())
CUDA out of memory. Tried to allocate 2.00 GiB
解决方案:
batch_size(如从32改为16)gradient_checkpointing: truenvidia-smi监控GPU内存使用情况
Error: Cannot bind to port 8080
解决方案:
config.yaml中的server.port
sudo netstat -tulnp | grep 8080
FileNotFoundError: [Errno 2] No such file or directory: '/path/to/pretrained_model.bin'
解决方案:
wget https://deepseek-models.s3.amazonaws.com/deepseek-base-v1.bin
model.path指向正确路径nvidia-smi dmon监控GPU利用率batch_sizefp16: true到配置)对于CPU模式,优化OMP_NUM_THREADS:
export OMP_NUM_THREADS=$(nproc) # 自动匹配CPU核心数
ulimit -v限制进程内存使用
import mmapwith open("large_model.bin", "r+b") as f:mm = mmap.mmap(f.fileno(), 0)# 直接映射文件到内存
FROM nvidia/cuda:11.6.0-base-ubuntu20.04RUN apt update && apt install -y python3.9 python3-pip gitRUN pip install torch==1.12.1+cu116 -f https://download.pytorch.org/whl/torch_stable.htmlCOPY . /appWORKDIR /appRUN pip install -r requirements.txtCMD ["python", "server.py"]
构建并运行:
docker build -t deepseek .docker run --gpus all -p 8080:8080 deepseek
示例Deployment配置:
apiVersion: apps/v1kind: Deploymentmetadata:name: deepseekspec:replicas: 3selector:matchLabels:app: deepseektemplate:metadata:labels:app: deepseekspec:containers:- name: deepseekimage: deepseek:latestresources:limits:nvidia.com/gpu: 1memory: "16Gi"requests:nvidia.com/gpu: 1memory: "8Gi"ports:- containerPort: 8080
# 拉取最新代码git pull origin main# 备份当前版本cp -r build build_backup_$(date +%Y%m%d)# 重新编译cd build && make clean && make -j$(nproc)
# 从备份恢复rm -rf buildmv build_backup_20230801 build# 或使用Git指定版本git checkout v1.1.5
本教程系统覆盖了Deepseek在Linux环境下的完整安装流程,从基础环境搭建到高级部署方案均有详细说明。实际部署时,建议先在测试环境验证配置,再逐步迁移到生产环境。对于企业级部署,推荐结合Prometheus+Grafana构建监控体系,确保服务稳定性。