cheng peng
cheng peng
> 1. 第一个认为可以扩展的地方是验证器的输入无法简单地从模型输出获得,因为在libai中,默认所有的计算是在模型中计算完毕。但我在复现Nerf时存在需要每个epoch中batch的索引,这个需求模型无法完成,经过chengpeng老师的指导,我将代码转移到了Evaluator中,并继承之。但是模型的输出需要通过libai/evaluation/evaluator.py中210行开始的检查,因此无法轻易通过,只能像NeRF项目中采用projects/NeRF/modeling/System.py中411行开始到416行结束的形式,以及projects/NeRF/evaluation/nerf_evaluator.py中38行开始到44行结束的形式通过冗余代码来实现。 > 2. 第二个认为可以扩展的地方是可以借鉴openmmlab采用装饰器的形式,毕竟以后的项目肯定不可能都是公司的人来实现,用户也会为了自己需求进行扩展。这样的话,可以通过装饰器来将相应的模型,数据加载器,验证器加入其中并实现轻易地扩展。 第二点我没有太get到, 用装饰器来实现轻易的扩展, 和目前在config里面使用lazycall在python层面进行自由的拼接, 看上去打成的目的是一样的。 有个issue有过对于这个详细的讨论,从使用感官和添加代码的量来看,目前config下的lazycall的调用方式应该是比较灵活的。 https://github.com/Oneflow-Inc/libai/issues/12
运行: ``` python python libai/onnx_export/t5_to_onnx.py ``` 会报错: ``` shell loaded library: /lib/libibverbs.so.1 Distributed env is not set up, configure it by default (single node, single gpu). F20220913 03:06:14.356911 2954732 math_binary_broadcast_ops.cpp:187]...
修正了一下代码, 目前报错是 ``` loaded library: /lib/libibverbs.so.1 Distributed env is not set up, configure it by default (single node, single gpu). Traceback (most recent call last): File "libai/onnx_export/t5_to_onnx.py", line 64, in...
这个分支 根据用户反馈还有些吞吐和显存的问题. 在解决问题的过程中可能需要修改一下这个分支的代码. 等问题解决了以后, 再让大家review吧
目前stable diffusion遇到的需要转换的算子: ``` flow.randn() flow.empty() flow.tensor() flow.arange() ```
之前我遇到过`Signals.SIGBUS: 7`之类的报错, 是由于端口号被占用引起的. 可以在你的运行脚本里面加上 `--master_port 12344` 之类的, 换一个端口试试
> 原本的测试代码中对auto placement之后的module调用了generate函数,这样是不成立的,因为fx就是针对Module的forward进行trace的。这个和2无关,不论是否使用interpreter都是这样。这个可能可以实现,但是肯定会需要自己指定要trace的函数名,这部分后续需要再讨论一下。 @BBuf 这个我们可以一起讨论
看上去这个代码是个临时版本, 等ready了以后我再来review吧
这个PR要review吗, 还是测试用的
### lazy graph 四卡ddp consistent + sbp 对齐情况 (弃用,请查看最新进展[comment](https://github.com/Oneflow-Inc/models/issues/187#issuecomment-918928649)) 关于老版本lazy 输出的loss类型有疑问 #### 现状 - [x] 无法对齐的条件:在graph的loss输出为 broadcast之后的loss时,无法和lazy对齐 - 代码片段为 `loss = loss.to_consistent(sbp=flow.sbp.broadcast).to_local().numpy()` - loss 曲线为  - [x] 对齐的条件: 在graph的loss...