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

Env 中的多牌桌流程优化 数倍以上效率提升 #291

Open
leafsoar opened this issue Jun 8, 2023 · 7 comments
Open

Env 中的多牌桌流程优化 数倍以上效率提升 #291

leafsoar opened this issue Jun 8, 2023 · 7 comments

Comments

@leafsoar
Copy link

leafsoar commented Jun 8, 2023

在 evn 中 run 函数内部,step 所执行的是单牌桌的单步操作,跟牌时的可操作数量往往很少(单牌只能根单牌和炸弹),所以频繁的调用 AI 计算次数的同时,计算量并不高。整体来说 GPU 的使用率会很高,多进程(CPU 核数多)时 GPU 可能会打满。

而使用多牌桌模型,将多个牌桌的 setp 所需数据,组合一次性送入 AI 模型计算,然后拆分到每桌进行逻辑处理。

计算量可能不会减少,但是送入的次数会大大降低。可以多尝试一些牌桌数量,这里测试的结果是,相比单桌 GPU 运算慢载(CPU 核数多,所以 GPU 成了瓶颈),修改成 32 桌同时进行,GPU 占用率会下降到百分之十几,帧率可以提高数倍(CPU 会成为瓶颈)。更多的牌桌数,会导致 GPU 的运算量下降到个位数,显存有一定提升,但不明显。更多的牌桌数不意味着更高的帧率,有个平衡点,这里测试的是 32 桌左右同时送入 step 中,会提高数倍的效率。均衡 CPU 和 GPU 的性能配比

测试硬件:13900KF + 4090

@leafsoar leafsoar changed the title Env 中的多牌桌流程优化 10 倍以上效率提升 Env 中的多牌桌流程优化 数倍以上效率提升 Jun 9, 2023
@daochenzha
Copy link
Member

@leafsoar 感谢 有代码可以分享吗

@leafsoar
Copy link
Author

@daochenzha 这边是基于 douzero 针对灌蛋的 “魔改” 尝试,融入了一些 rlcard 设计的优点。而针对 rlcard 框架的版本支持,可能涉及到的模型定义,流程上就需要考虑的比较多,还没有支持。

@daochenzha
Copy link
Member

@leafsoar 好的 期待您的code

@xxTree
Copy link

xxTree commented Jun 28, 2024

请教一个问题,我使用DouZero训练出来的掼蛋模型发现一个问题,就是训练一个月了,loss值一直在5到6之间,不下降了,而且好像还不如随机出牌这么厉害请问是哪里的问题呢

@leafsoar
Copy link
Author

请教一个问题,我使用DouZero训练出来的掼蛋模型发现一个问题,就是训练一个月了,loss值一直在5到6之间,不下降了,而且好像还不如随机出牌这么厉害请问是哪里的问题呢

可能的原因很多。每个环节都可能出问题,但没一点效果,主要是这两点排查一下:

是否对出牌输赢奖励进行区分
是否将学习模型的状态更新到下次出牌模型中

@PromptExpert
Copy link

@xxTree 哥们,掼蛋是怎么实现的,求分享。

@xxTree
Copy link

xxTree commented Aug 12, 2024

请教一个问题,我用DouZero训练出来的掼蛋模型发现一个问题,就是训练一个月了,loss值一直在5到6之间,不回升了,而且好像还不如随机出牌那么厉害请问是哪里的问题呢

每个人可能的原因很多。第一步都可能出问题,但是一点效果都没有,主要是这几点排查一下:

是否对出牌输赢奖励进行区分 是否将学习模型的状态更新到下一个出牌模型中

就是loss值不收敛,打比方刚开始训练loss在5左右,然后训练一段时间loss就在2.8到3.8之间 不会再降了

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

4 participants