Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

推理时更换不同的diffusion模块影响模型评估效果 #41

Open
liaojiaxin97 opened this issue Dec 18, 2024 · 1 comment
Open

Comments

@liaojiaxin97
Copy link

我在训练dp_robomimic时,训练出一个效果较好的模型,该模型使用的是ddpm,当我使用推理模式时更换diffusion,评估结果全为零
以下使用ddpm使用推理模式的结果
Mean step: 704.0 Mean reward: 26.4 Mean success: 0.84
[0] step 0.00 / mean_step 704.00 / mean_reward 26.40 / mean_success 0.84

以下使用edm、ddim进行推理模式的1-10的episode
[Episode 1-10] reward: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] success:[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

按理说更换不同diffusion应该不改变模型效果?

@ZibinDong
Copy link
Contributor

ddpm和ddim还有一部分的dpm solvers训练的loss都是score matching,他们是可以在推理的时候切换的,但是edm的loss不太一样,理论上不能换成edm来推理,edm得单独训练。

虽然ddpm和ddim在理论上可以在推理时候切换,并且性能应该差不多,但是实际上我也发现在manipulation任务中ddim的效果很容易变差,不仅如此dpm solver的一些高阶版本也会有性能下降,ddpm的确是性能最好的。您可以参考我的一篇博客https://zhuanlan.zhihu.com/p/10926370916,最后一张图展示了用score matching loss训练ode模型采样的分布会有些怪异,我观察到在模仿学习任务中这会对性能造成很显著的影响。

如果希望用ddim来完成这个任务,首先我想确认您是用的是否是lightning分支的代码?lightning分支更加稳定,修复了一些bug,还能使用pytorch lightning的很多特性帮助加速训练。其次我可能会建议您可视化看一下failure cases,失败是由于抓取精度不够,还是由于模型完全在乱动?

如果希望进一步讨论这个现象,您可以加我的微信:dongzibin1112,我们可以后续对这个问题进一步讨论

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants