离线训练

更新时间:

本节为您介绍离线训练的常见问题。

# Q:离线任务创建时,点“提交”没反应,为什么?

资源配置 处资源设置超出个人配额或超出平台总资源了,可调小 CPU 或 GPU 资源后再尝试提交,后续产品中会增加这方面的提示。

# Q:平台部署在不通公网的环境上,自动任务无法正常触发,为什么?

因为网络不通,厂商(特指 GitLab、GitHub、Gitee)就不能将回调信息发送回来。

# Q:自动任务启用“条件触发”,提示“当前环境不支持创建 webhook 触发器...”,怎么办?

如您使用的代码托管服务是私有部署的 GitLab,则联系管理员将下图的“允许钩子和服务访问本地网络”打开即可,英文版相应文字是 “Allow requests to the local network from web hooks and services”。因为 GitLab 服务会直接拒绝这种本地网络的 hook 地址。
webhook

# Q:自动任务在启用“条件触发”触发器时,遇到错误。

如您使用 GitHub 平台托管您的代码,单一代码仓库最多可以创建 20 个 webhook。

# Q:(v3.0.1)某一时刻突然多个离线任务同时失败,什么原因?

说明:该问题存在于 3.0.1 及之前版本。

查看 seaweed-filer 日志报错信息是否有 error reading from server: EOF,有则可能是 seaweed 的已知问题,每 10 小时左右会断开连接一次,间隙很短但若正在读写数据,则会报错,该问题已在 v3.0.2 版本修复,建议升级平台版本。

# Q:训练任务时报错“conda:command not found”?

训练任务如需使用 conda 工具,您需确保训练所用镜像中已包含该工具,且 启动命令 最前面需加入类似如下命令激活 trans 环境并进入,若镜像中仅安装了 conda 工具还未创建虚拟环境,您需先创建环境。

cd /root/anaconda3/bin
source activate trans
conda activate trans

上述 /root/anaconda3/bin 路径为 conda 工具的安装目录,trans 为您曾创建的虚拟环境名,您需根据实际情况替换。

# Q:离线任务已执行一段时间,但日志仍为空,什么原因?

手动选择日志的时间范围,看是否正常显示。

# Q:在开发环境可执行 source /root/.bashrc,但是在离线训练时就会报错 .bashrc: line 6: PS1: unbound variable,为什么?

脚本前加一行 set +o nounset

# Q:多卡任务共享内存不足报错“ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).”

建议关闭 NCCL 的 SHM 功能,即在启动命令中设置 NCCL_SHM_DISABLE=1、并调小 batch_size。

# Q:内存不足:torch.multiprocessing.spawn.ProcessExitedException: process 0 terminated with signal SIGKILL

调整任务的资源规格,换个内存大一点的规格。