从零实现带RLHF的类ChatGPT:逐行解析微软DeepSpeed Chat的源码
💡
原文中文,约42500字,阅读约需102分钟。
📝
内容提要
本文介绍了DeepSpeed Chat中phase3的训练过程,包括使用RLHF Finetuning进行经验采集,对prompt进行flip翻转操作以避免不合理的生成,以及RM模型对对话评分的处理策略。同时,文章还介绍了模型的初始化和经验数据的获取过程。
🎯
关键要点
- 本文介绍了DeepSpeed Chat中phase3的训练过程。
- 使用RLHF Finetuning进行经验采集。
- 对prompt进行flip翻转操作以避免不合理的生成。
- RM模型对对话评分的处理策略。
- 模型的初始化和经验数据的获取过程。
- DeepSpeed Chat采用三阶段训练方式,分别为phase1、phase2、phase3。
- phase1为监督微调,使用困惑度perplexity作为评估指标。
- phase2为奖励模型微调,使用排序损失对数据对进行训练。
- phase3为RLHF微调,使用DeepSpeedRLHFEngine进行模型初始化。
- 在phase3中,prompt需要进行翻转和填充以适应自回归生成。
- 经验数据的获取过程包括生成对话序列和计算奖励。
- 使用KL散度惩罚和优势函数来优化策略。
- PPO训练过程中,actor和critic模型的损失计算方法。
- 无监督训练与RLHF训练相结合,以保持模型的生成能力。
- DeepSpeed-Chat团队鼓励用户尝试不同的超参数设置。
➡️