A:基于开发机构建镜像过程中请勿对开发机进行任何操作,包括但不限于关机、重启及容器内读写数据等,否则将会导致镜像构建失败。
A:以下是部分引起失败的报错内容及相应的解决建议供参考。
BUILD\_FAILED\_NO\_SPACE
CR\_BUILD\_FAILED\_SHUTDOWN
BASIC\_CR\_BUILD\_FAILED\_TOO\_LARGE
BASIC\_CR\_PUSH\_FAILED\_TOO\_LARGE
BASIC\_CR\_PUSH\_FAILED\_TOO\_MANY\_REQUEST
A:当前提交任务可能包含有大文件(日志、模型文件等),需要耐心等待。或者把模型文件托管到共享存储上(如 vePFS、TOS)。
A:支持在上传目录下配置 .gitignore
,volc 工具会根据配置忽略相应的文件。
A:可以采用下面两种方法升级,详见命令行工具-使用文档。
方法一:volc upgrade
。
方法二:
sh -c "$(curl -fsSL https://ml-platform-public-examples-cn-beijing.tos-cn-beijing.volces.com/cli-binary/install.sh)" && export PATH=$HOME/.volc/bin:$PATH
A:首先在 .volc/config
中增加配置,如下:
[ml_platform] private = True
配置完成后,通过 submit
或者 upload
命令完成上传。详见命令行工具-使用文档。
A:通过 CloudFS 方式挂载 TOS,写不支持 append 模式, 所以 logging 会报错。 解决方案是每次任务重新打开一个日志文件, 往这个新的文件中写日志即可。建议可以使用时间作为日志文件后缀。
A: 在开发机场景下,用户使用 ls/rm 场景很频繁。对于大文件夹(包含大量小文件的目录),ls 等操作需要拉取大量的元数据, 系统压力会非常大导致开发机的 WebIDE 会出现假死现象。 为了保持系统稳定性,限制了大文件夹 ls 等操作,超过 10000
时会出现上述错误。
A:查看 TOS 官方文档使用Rclone访问TOS。
A: 1. 需要确认打开方式。2. 如果多机 / 多卡同时往同一个文件写,不能保证多进程安全。 当前写相同文件是 CloudFS fuse 模拟 按照 rm,write 这个方式写的。 如果业务侧不能保证多进程安全,可能 A 进程写的文件被 B 进程删了,出现 “Input/output error”。
A:chmod、ln、chown、tuncate。
A: 挂载 TOS 对资源量有一定的要求,最好保证容器内存在 8GiB 以上(部分资源将用于文件缓存服务,提升训练效率),这部分的提示信息也在持续优化。
A: 不可见时间和挂盘任务的规格有关,高规格容器加载快,不可见时间短。 如果在规格不能改变的情况下, 可以通过 SideCarMemoryRatio(0.05 ~ 0.5)参数适当调整,具体可参考 ml_task submit 的使用方法。
A:通过挂载 TOS 训练模型时,第一个 epoch 训练数据需要从远端 TOS 拉取到 CloudFS 本地,从第二个 epoch 开始,所有数据请求通过 CloudFS 本地即可获取,将会有一定的加速效果。
A:当前账号下的 Bucket 数超过 99 个时会出现该错误。此时可以在命令行中通过输入rclone lsd <远程连接名称>:
查看当前账号下的存储桶列表。然后通过输入 rclone purge <远程连接名称>:<待删除 Bucket 的名称>
删除不用的Bucket,再重新创建 Bucket 即可成功。
A:可能是 vePFS 预取导致的读放大,需要结合业务具体分析。常见的场景 mmap 方式打开文件,默认预读机制会造成读放大,并且在 random access 的方式下,这种预读对于业务没有性能帮助,需要关闭。
A: vePFS 对于 mmap 的读取方式支持不太好。建议业务侧调整成小文件方式或者其他的打包方式(如 tfrecord、webdataset)。同时需要关注业务侧是否以读写的方式打开,以 r+/w
方式打开,vePFS对访问资源会开启读写锁,导致性能比较低,训练时对于文件尽量做到以只读方式打开。
A: DALI 使用了 mmap 特效, 尝试用 dont_use_mmap 关闭 mmap。