简介:这份PDF面向需要在Linux环境下部署DeepSeek的开发者与深度学习爱好者,系统梳理了从环境准备到模型运行的手动部署流程,适合具备一定Linux与Python基础、希望独立完成本地部署的中级用户参考。资源包内仅含1个PDF文件,大小约215KB,内容紧凑,便于随时查阅与打印。文档围绕系统要求、Python虚拟环境创建、代码库克隆、依赖包安装、配置文件修改以及训练与推理命令等环节展开,并重点提示依赖冲突、GPU未识别、内存不足与文件权限等常见问题的排查思路,帮助读者少走弯路。目前已有794人学习下载,可作为部署前的检查清单与排错手册使用。
1. 从一次“装完却跑不起来”的部署说起
DeepSeek 在 Linux 系统下的手动部署,是很多做深度学习任务的开发者绕不开的一关。我见过太多人把pip install -r requirements.txt跑完就以为大功告成,结果python train.py一执行,要么 CUDA 版本对不上,要么虚拟环境根本没激活,终端里报的错跟模型本身一点关系都没有。这套环境对版本极其敏感:Ubuntu 20.04 LTS 起步、Python 3.8 以上、至少 4 核 CPU 且支持 AVX 指令集、内存 8GB 打底(16GB 才舒服)、20GB 可用空间,显卡那块还得看 CUDA 和 cuDNN 的脸色。装不好不会立刻炸,而是在训练跑到一半时给你来个内存不足或者 GPU 未检测到,排查起来相当费劲。这篇笔记适合两类人:第一次在 Linux 上手动部署 DeepSeek、想照着走通的新手,以及装过但被依赖冲突和 GPU 识别坑过的熟手。下面按环境准备、虚拟环境、代码克隆、依赖安装、配置运行、避坑验证的顺序,把每一步的命令和参数取舍讲清楚。
2. 环境准备:Ubuntu 20.04 下的系统要求与基础软件安装
2.1 系统要求逐项核对
在敲任何安装命令之前,先把机器条件对一遍。DeepSeek 官方给出的最低门槛是 Ubuntu 20.04 LTS 或更高版本,其他基于 Debian 的发行版也可以,但 Ubuntu 的兼容性最稳。处理器至少 4 核,并且要支持 AVX 指令集——这一点容易被忽略,老旧的服务器 CPU 如果不支持 AVX,后面 TensorFlow 相关依赖装上了也跑不动。内存最低 8GB,我一般建议直接上 16GB 或更高,因为训练过程中 batch size 稍微调大一点,8GB 很快就见底。存储空间至少留 20GB 可用,模型文件、依赖包和数据集加起来很容易超。显卡是可选项,但如果你有支持 CUDA 的 NVIDIA 显卡,强烈建议启用 GPU 加速,否则训练速度差距非常明显。
核对 CPU 是否支持 AVX,可以用下面这条命令:
grep -o 'avx' /proc/cpuinfo | head -1如果输出avx,说明支持;如果什么都没输出,那这台机器只能走 CPU 路线,后面 CUDA 相关的步骤可以跳过。内存和存储用free -h和df -h看一眼就行,不展开。
2.2 安装 Python、pip 和 Git
系统自带的 Python 版本可能偏低,先更新软件源再装:
sudo apt update sudo apt install python3 python3-pip git -y装完后验证版本:
python3 --version pip3 --version git --versionDeepSeek 要求 Python 3.8 或更高,Ubuntu 20.04 默认的 Python 3.8 刚好达标。如果你的系统 Python 低于 3.8,需要额外添加软件源升级,这一步在 Ubuntu 20.04 上一般不会遇到。Git 用来克隆代码库,版本没有特殊要求,apt 源里的就够用。
2.3 CUDA 和 cuDNN 的安装与路径配置
这一步只针对有 NVIDIA 显卡并打算用 GPU 加速的情况。CUDA Toolkit 和 cuDNN 需要从 NVIDIA 官方渠道获取,安装时最关键的是版本匹配:CUDA 版本要和后面安装的 TensorFlow 版本兼容,cuDNN 又要和 CUDA 版本对应。我一般会先确定要装的 TensorFlow 版本,再倒推 CUDA 和 cuDNN 的版本,而不是先随便装一个 CUDA。
安装完成后,把 CUDA 的路径写进环境变量:
export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH这两行的作用是让系统能找到nvcc编译器和 CUDA 的动态链接库。PATH影响命令查找,LD_LIBRARY_PATH影响运行时库加载。注意这种写法只在当前终端会话生效,关掉终端就没了。想持久化的话,把这两行追加到~/.bashrc里,然后source ~/.bashrc。我见过有人装完 CUDA 后nvcc -V能显示版本,但 Python 里就是检测不到 GPU,十有八九是LD_LIBRARY_PATH没配或者配错了路径。
2.4 安装 venv 虚拟环境工具
为了避免依赖冲突,虚拟环境是必须的。安装 venv:
sudo apt install python3-venv -y这一步很快,但别跳过。后面所有 Python 包都装在虚拟环境里,不污染系统 Python,出问题直接删掉虚拟环境重建,比在系统环境里修依赖省事得多。
3. 创建 Python 虚拟环境:隔离依赖的第一步
3.1 创建虚拟环境的命令与参数
在项目存放目录下执行:
python3 -m venv deepseek_env这条命令会在当前目录创建一个名为deepseek_env的文件夹,里面包含独立的 Python 解释器和 pip。-m venv是调用 Python 自带的 venv 模块,不需要额外安装。虚拟环境的名字可以自定义,我习惯用项目名加_env后缀,方便一眼看出对应关系。创建过程通常几秒钟,如果卡住不动,检查一下磁盘空间和 Python 安装是否完整。
3.2 激活虚拟环境与验证
创建完成后必须激活才能生效:
source deepseek_env/bin/activate激活后终端提示符前面会出现(deepseek_env)字样,这是最直观的判断依据。验证一下当前 Python 指向的是虚拟环境里的解释器:
which python3输出应该是.../deepseek_env/bin/python3,而不是/usr/bin/python3。如果输出还是系统路径,说明激活没成功,检查命令路径是否正确。退出虚拟环境用deactivate,但部署过程中一般不需要退出。
提示:每次新开终端窗口都要重新执行
source deepseek_env/bin/activate,虚拟环境不会自动激活。忘记激活是后面依赖装错位置的头号原因。
3.3 虚拟环境常见误区
有人图省事直接用系统 Python 装依赖,结果和系统自带的包版本打架,把系统工具都搞坏了。还有人创建虚拟环境时用了sudo,导致文件夹归属 root,后面普通用户装包权限不足。记住两条:创建和激活虚拟环境都不需要sudo;虚拟环境文件夹放在你有写权限的目录下,比如用户主目录或项目目录。
4. 克隆代码库与安装依赖包:版本匹配是关键
4.1 克隆 DeepSeek 代码库
确保虚拟环境已激活,然后执行:
git clone https://github.com/deepseek-ai/deepseek.git cd deepseek克隆完成后进入项目目录。如果网络原因导致克隆慢或失败,可以多试几次,或者检查 Git 的配置。进入目录后用ls看一眼,确认requirements.txt、train.py、infer.py这些文件都在。
4.2 安装 requirements.txt 中的依赖
pip install -r requirements.txt这条命令会读取requirements.txt里列出的所有包并逐个安装。安装过程中要留意输出,如果有版本冲突的警告,先记下来,不要急着忽略。requirements.txt里的版本号是官方测试过的组合,尽量不要手动改版本,除非你明确知道自己在做什么。安装时间取决于网络和包的数量,几分钟到十几分钟都正常。
4.3 GPU 支持:TensorFlow 版本选择与验证
如果你有 NVIDIA 显卡,需要安装支持 GPU 的 TensorFlow:
pip install tensorflow-gpu装完后验证 GPU 是否被检测到:
import tensorflow as tf print(tf.config.list_physical_devices('GPU'))如果输出里显示了 GPU 设备信息,说明 GPU 支持已启用。如果输出是空列表[],说明 TensorFlow 没找到 GPU,按下面的顺序排查:先确认 CUDA 和 cuDNN 已正确安装且版本与 TensorFlow 兼容;再检查PATH和LD_LIBRARY_PATH是否包含 CUDA 路径;最后确认虚拟环境里装的是tensorflow-gpu而不是普通的tensorflow。这三个原因覆盖了绝大多数 GPU 未检测到的情况。
4.4 依赖冲突的处理方式
安装依赖时遇到冲突,常见做法有两种:一是用pip install --upgrade升级冲突的包,但要注意升级后是否影响其他依赖;二是干脆删掉虚拟环境重建,重新走一遍创建和安装流程。我一般倾向于第二种,因为依赖冲突一旦出现,手动修起来很容易按下葫芦浮起瓢,重建虚拟环境的成本反而更低。重建的命令就是删掉deepseek_env文件夹,重新python3 -m venv deepseek_env,再激活、再装依赖。
5. 配置与运行:config.yaml 参数与训练推理命令
5.1 修改 config.yaml 配置文件
DeepSeek 通常包含一个config.yaml配置文件,用于设置模型参数、数据路径等。用编辑器打开后,重点看这几类参数:模型相关的超参数(如层数、隐藏单元数)、数据路径(指向你的数据集位置)、训练参数(如 batch size、学习率)。数据路径一定要写绝对路径或者相对于项目根目录的正确相对路径,路径写错是运行时报错的高频原因。修改前建议先备份一份原始配置:
cp config.yaml config.yaml.bak这样改坏了还能还原。
5.2 数据准备与路径配置
确保训练或推理所需的数据集已经准备好,并且路径正确配置在config.yaml里。数据集的格式要求参考项目文档,不同任务对输入格式的要求不一样。如果数据集很大,注意存储空间是否够用,前面提到的 20GB 可用空间要留足余量。
5.3 训练模型
一切就绪后,执行训练命令:
python train.py训练过程中留意终端输出,重点关注 loss 变化和是否有内存不足的警告。如果出现内存不足,优先尝试减小config.yaml里的 batch size,这是最直接有效的方法。其次可以考虑使用更小的模型或数据集,或者启用 GPU 加速来分担内存压力。
5.4 推理任务
如果已经有训练好的模型,执行推理:
python infer.py推理对内存的要求通常比训练低,但同样要确保模型文件路径和输入数据路径配置正确。推理脚本的参数如果有额外选项,用python infer.py --help查看。
6. 避坑与排查:五条血泪经验
6.1 依赖包冲突导致安装中断
现象:pip install -r requirements.txt执行到一半报错,提示某个包版本不兼容。原因:系统环境或其他已安装包与 DeepSeek 依赖的版本要求冲突。解决:确认虚拟环境已激活,然后删掉虚拟环境重建,重新安装。不要试图在冲突环境里硬修。
6.2 GPU 未检测到
现象:tf.config.list_physical_devices('GPU')返回空列表。原因:CUDA/cuDNN 版本与 TensorFlow 不匹配,或环境变量未配置,或装错了 TensorFlow 版本。解决:按 4.3 节的顺序逐项排查,重点确认LD_LIBRARY_PATH包含 CUDA 的lib64路径。
6.3 训练过程中内存不足
现象:训练跑到一半被系统 kill,或报 MemoryError。原因:batch size 过大、模型或数据集超出内存容量。解决:减小 batch size 是最快的手段;其次换更小的模型或数据集;有 GPU 的话启用 GPU 加速。
6.4 文件权限问题
现象:程序无法读取配置文件或写入输出目录,报 Permission denied。原因:项目目录或相关文件的权限不足,常见于用sudo创建过文件的情况。解决:用ls -l检查文件归属,必要时用chown改回当前用户,避免后续操作继续用sudo。
6.5 虚拟环境未激活就装依赖
现象:依赖装完了,但运行时报模块找不到,或者版本和预期不符。原因:新开终端后忘记激活虚拟环境,依赖装到了系统 Python 里。解决:养成习惯,每次操作前先看终端提示符有没有(deepseek_env),没有就执行source deepseek_env/bin/activate。
7. 装完怎么验证跑通:三步确认法
部署完成后别急着上正式任务,先用一个最小流程确认环境真的通了。第一步,确认虚拟环境和 Python 版本:
source deepseek_env/bin/activate python3 --version which python3输出应该是 Python 3.8 以上,且路径指向deepseek_env。第二步,确认关键依赖能正常导入:
import tensorflow as tf print(tf.__version__) print(tf.config.list_physical_devices('GPU'))TensorFlow 版本能打印出来,GPU 列表符合预期(有显卡就显示设备,没显卡就是空列表),说明依赖层没问题。第三步,用一个小数据集跑一次推理或短训练,观察是否能正常开始并输出结果。我一般会先把config.yaml里的 batch size 调到最小,跑通后再逐步调回正常值。
| 验证项 | 命令 | 预期结果 |
|---|---|---|
| 虚拟环境 | which python3 | 指向 deepseek_env/bin/python3 |
| TensorFlow | print(tf.__version__) | 正常输出版本号 |
| GPU 检测 | tf.config.list_physical_devices('GPU') | 有显卡则显示设备,无则空列表 |
| 推理流程 | python infer.py | 正常开始并输出结果 |
从那以后我每次部署完 DeepSeek,都强制走一遍这三步验证,哪怕前面每一步看起来都顺利。因为环境问题往往藏在“看起来装好了”和“实际能跑”之间,提前花两分钟验证,比训练跑了一半崩掉再回头查要划算得多。希望帮到你。
本文还有配套的精品资源,点击获取