在 Slurm 上运行 DeepSeek
介绍
DeepSeek 是一个用于深度学习模型的工具/框架,能够进行高效的模型训练和推理。在高性能计算环境中,Slurm 是一个常用的作业调度系统,用于提交和管理计算任务。此手册将指导用户如何在使用 Slurm 的集群中运行 DeepSeek。
以下所有示例作业脚本中关于 SBATCH 的选项
supervisor
,请替换为用户账号关联的付费账户名- 其它的 SBATCH 选项请根据实际使用需要进行修改
1. 准备 DeepSeek 作业脚本
首先,创建一个作业脚本(例如 deepeek.sh
),并在其中设置必要的 Slurm 指令和运行命令。以下是一个示例作业脚本:
#!/bin/bash
#SBATCH --account=supervisor
#SBATCH --job-name=deepseek
#SBATCH --partition=gpu
#SBATCH --ntasks-per-node=20
#SBATCH --gres=gpu:4
#SBATCH --time=06:00:00
#SBATCH --output=output.log
#SBATCH --error=error.log
# 加载 ollama
module load ollama/0.5.7
# 设置环境变量(如果需要自定义模型路径)
export OLLAMA_MODELS=/software/ollama/models
# 启动 DeepSeek 服务
ollama serve &
# 等待服务启动完成
sleep 60
# 运行您的训练或推理脚本
python your_training_script.py
# 关闭 DeepSeek 服务
pkill -f "ollama serve"
2. 提交作业
保存上述脚本后,使用 sbatch
命令提交作业:
sbatch deepeek.sh
3. 检查作业状态
您可以使用以下命令检查作业的状态:
squeue -u $USER
4. 查看输出和错误日志
作业运行结束后,您可以在 output.log
和 error.log
文件中查看输出和错误信息。
注意事项
- 模型路径:如果您使用自定义模型,请确保正确设置
OLLAMA_MODELS
环境变量。 - 节点选择:对于 32B 以上的大模型,建议使用 A100 节点以获得更好的性能。
- 资源需求:根据您的具体需求调整作业脚本中的资源请求(如 GPU 数量、CPU 核心数等)。