基于大佬公开的demo进行学习,然后对复现的结果进行分析:
- github链接在此:https://github.com/QunBB/DeepLearning/tree/main/llms/train
首先分析整体的 reward
这个图可以看出,在1081step的时候reward开始上升,然后到最后趋于一个收敛的情况。
reward的std标准差也是维持在1附近,训练到最后时,保持稳定。
然后再分析各种别的reward
1. 正确率的reward
因为正确率的reward是跟格式相关的,只有当格式对了,reward才会去进一步判断正不正确,所以这里也是1080+才开始有reward。
正确率的reward的标准差则达不到1,但是最后也是比较稳定的。
2. 格式的reward
其中分为软格式reward,硬格式reward和xmlcountreward。
软格式不换行也+0.5,硬格式必须换行,这样可能会让模型从软过渡到硬,挺好的。
其中xml则是更灵活的格式奖励:
针对各种情况进行奖励。
最后基本上std也是稳定的。
3. 整型奖励
因为gsm8k数据集是整型答案,所以对答案进行额外奖励
最后分析一下KL散度以及Loss函数
1. KL散度
2. Grad Norm
3. Loss
不知道打印出来的这个loss值到底是什么。
分析一下思考的长度变化
因为GRPO会生成多个样本,所以这里还会评估一下他的长度:
设置了长度上限为1024,所以超过1024的时候截断了。