添加快捷方式
分享
assignment5:rl&sft
输入“/”快速插入内容
assignment5:rl&sft
飞书用户6963
9月15日修改
Sft
只用正确样本进行sft确实效果更好一些, 其他setting一致的情况下
少量sft的样本反而比大量的更好, 熵也下降的更快更低, 样本多了模型反而confuse
•
一个learning: sft和rl的区别也可从熵的角度来说, sft是最小化交叉熵, 理想情况下是完全和标准答案的0-1分布一致的, 比较好的训练过程(上面样本少的情况)会观察到熵一直在降低, 所以熵会非常低; 而rl的目标是最大化reward, 熵并不是目标, 我们反而需要加强探索性去寻找能最大化reward的方法, 所以熵相对比较大
Expert iteration
效果不佳, 且并不能稳定看到熵的下降, 原因是拟合的样本是自己本身就能做对的, 所以对loss贡献小, 模型一直在自己的舒适区, 不会强制去学习自己还没学会的东西
Grpo
训练循环:
代码块
Python
for grpo_step in n_grpo_step:
get_rollout_response()
num_train_steps_per_epoch = rollout_batch_size // train_batch_size # rollout_batch_size per epoch
for train_step in num_train_steps_per_epoch:
for train_microstep in gradient_accumulation_steps:
get_old_prob_train()
for train_epoch in epoch_per_rollout_batch:
for train_step in num_train_steps_per_epoch:
for train_microstep in gradient_accumulation_steps: