思路
- 定时任务不停调用 convert
- 训练|评估结束时调用 convert
key: 用户无感知;不出错
要点
convert 支持远程 repo.
修改 convert。
要点
convert 自启动。
主要是用 __init__
包导入来做。
要点
- 问题: 如何避免多个执行单元执行 convert
- 回答: 不能用普通单例模式。多进程的可能性比较多,普通单例模式难以保全。打算用系统级的文件锁。这样的话,对于分布式训练,应该也没有问题。
要点
convert 工具对目录结构有要求,见这里
而我们的模型,并不一定自动会满足这个要求。
两者存在冲突。
所以,打算修改 aim, 使它对目录下的所有 tensorboard 数据,都进行关联。
要点
结束时,要调一下 convert, 别让数据丢失。
实现:
- init-container
- slurm 拼命令
- 注意,如果 命令不存在,也不要导致命令出错。
改动涉及项目
- ai-arts aistudio-v1.7.1-tensorboard-logs
- init-container aistudio-v1.7.1-tensorboard-logs
- aim aistudio-v1.7.1-tensorboard-logs
数据准备
哪个模型,会产生 tensorboard 数据?
3.137 环境,有 gpu-model.zip:1.0 模型。
/data/nfs/apulis/pvc/aiplatform-ailab-data/1.org/orgadmin-user-group/ai-arts/17062/train-4758cbff-cc5a-4e1c-96ab-b3b4deb539f7
pvc://aiplatform-model-data-pvc/models/apulis/orgadmin-user-group/318/37
/data/nfs/apulis/pvc/aiplatform-model-data
/data/nfs/apulis/pvc/aiplatform-model-data/models/apulis/orgadmin-user-group/318/37
另一方面,凯杰之前有给过文件: tb.tar
自测
思路: 训练过程中,手动复制一些数据进去,看有没有数据增加。
可用镜像:
harbor.apulis.cn:8443/algorithm/apulistech/aimstack-sdk:aistudio-v1.7.0-rc2-mmopenlab
<== 这个镜像. aim 安装在了 conda 环境中,不能用来调 convert
harbor.apulis.cn:8443/algorithm/apulistech/save-1104-3:ubuntu-20.04-aimstack-sdk 这个镜像基于: 安装了开发工具的 ubuntu 20.04, 安装了 tensorboard 库
可用模型
aim-model: 1.0
但是环境上面没有卡…
只好用 utility model 了
select engine from studio_model_versions where id = 37;
pvc://aiplatform-model-data-pvc/models/apulis/orgadmin-user-group/318/37
update studio_model_versions engine set engine = 'harbor.apulis.cn:8443/algorithm/apulistech/aimstack-sdk:aistudio-v1.7.0-rc2-mmopenlab' where id = 37;
易错点: 要想 convert 成功, 镜像中要装有 aim, 而不是 source activate AD 中有。
本地集群
slurm 集群
caveat
- 如果用户使用的镜像没有安装 tensorflow , 则会失败。这个估计影响不大,因为这种情况,用户估计没有用 tensorboard …
其它
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn --upgrade pip
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn tensorflow
pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com tensorflow
这次阿里源比较快
aim demo:
```python3
# aim_test.py
from aim import Run
run = Run()
# set training hyperparameters
run['hparams'] = {
'learning_rate': 0.001,
'batch_size': 32,
}
# log metric
for i in range(10):
run.track(i, name='numbers')