OpenLLMAI / OpenRLHF

An Easy-to-use, Scalable and High-performance RLHF Framework (70B+ PPO Full Tuning & Iterative DPO & LoRA & Mixtral)
https://openrlhf.readthedocs.io/
Apache License 2.0
1.71k stars 160 forks source link

我们正在对比DSchat跟OpenRLHF的性能以便完成选型工作,能否提供下修复后的DSChat代码,从而复现社区提供的性能对比数据 #296

Closed yinzhijian closed 1 month ago

yinzhijian commented 1 month ago

我们通过启用Adam卸载、奖励模型(RM)和参考模型(Ref)卸载等技术,尽可能优化了DSChat的性能,从而在推理阶段增加小批量大小并避免内存不足问题。我们甚至修复了DSChat中的一些bug,以启用LLaMA2的混合引擎(HE)。使用优化后的DSChat和OpenRLHF训练1024个提示需要1个PPO轮次的平均时间(秒)如下:

Size NVIDIA A800 GPUs Optimized DSChat (with Hybrid Engine) OpenRLHF Speedup
7B 16 855.09 471.11 1.82x
13B 32 1528.93 608.93 2.5x
34B 32 3634.98 1526.4 2.4x
70B 32 10407.0 4488.53 2.3x
yinzhijian commented 1 month ago

另外请教下,从原理上来说,为什么OpenRLHF的性能比DSChat混合引擎高出这么多?是DS的推理引擎性能远低于vllm?还是其它原因?谢谢

hijkzzz commented 1 month ago

两个原因 第一个是 vLLM 和 HE (这个是半成品) 的差距 第二个原因是 DSChat 共享GPU把模型切的太开 通信开销(跨节点) 以及GPU内存不够导致 batch size 加不上来(这对LLM推理训练性能很重要,避免内存瓶颈以及减少ZeRO3 通信次数)

yinzhijian commented 1 month ago

@hijkzzz 感谢回复,另外请问Hybrid vLLM inference engine这个功能大概什么时候能够发布?对现有性能的提升预计是多少?

hijkzzz commented 1 month ago

@hijkzzz 感谢回复,另外请问Hybrid vLLM inference engine这个功能大概什么时候能够发布?对现有性能的提升预计是多少?

这个尚有距离 因为目前开发者人数较少,我们主打易用性和性能平衡,倒是没有去追求极致的性能

yinzhijian commented 1 month ago

好的。最后,performance的超参,比如actor数量、critic数量、zero-stage等,能否有空在说明文档补充下?:)

hijkzzz commented 1 month ago

好的。最后,performance的超参,比如actor数量、critic数量、zero-stage等,能否有空在说明文档补充下?:)

下面是我们的实验数据,注意 我们并没有极致调优(比如开启节点合并之类的)反正 都是可以自己配置的

image image image

yinzhijian commented 1 month ago

十分感谢~~,👍🏻👍🏻👍🏻