continuous_evaluation
continuous_evaluation copied to clipboard
CE 模型重构
目前一个模型目录中, 所有gpu,cpu场景都配置在里面。 导致其中kpi相关配置,以及model中记录kpi的变量越来越多。 比如: 加一个4卡和8卡
需要把kpi配置, 启动脚本等,都平铺开来。
https://github.com/PaddlePaddle/paddle-ce-latest-kpis/pull/37
随着我们机器型号和模型场景(Gpu单卡、多卡,cpu等)不断扩充, 维护起来比较费劲。
计划进行如下重构:
每一个模型有一个对应的base模型:
resnet50
base模型里存放的内容有: model.py(模型脚本), continuous_evaluation.py (kpi 变量), 所有模型共用。
可以在此基础上定义各种场景模型
resnet50-p40-card8
resnet50-p40-card4
resnet50-p40-card1
resnet50-v100-card4
resnet50-v100-card1
每个模型里面的内容是一个启动脚本run.xsh, 一个latest_kpis目录,里面对应的是这个场景的kpi标杆数据。
进行的改动
-
main.xsh 和 eva.xsh 1.1 base 模型不跑(base模型中不含run.xsh) 1.2 import kpi配置,改为from tasks.%s.continuous_evaluation import tracking_kpis' % task_name.split('-')[0]
-
main.xsh需要加入模型匹配跑模型(比如在 aws agent上只跑 '-p40-'的 模型) ./main.xsh --task_pre -p40-
-
bug fix: delete 模型目录,会计入changed tasks中, 在模型入库时,pr check会失败。需要刨去delete的模型目录(如从 resnet50 改为__resnet50)
后续有两个问题 1 base模型的名字__xxx ,等所有模型改造完成后,统一改为 base_xxx之类,该类模型不跑 2. 一个模型各类数据对比, 后续从web层面出数据做。
可以把传 flag 改成环境变量,会更灵活可读
恩恩, 可读性更好一点~