InstructGPT论文笔记
问题:
目标:
方法:
人为制作数据集(问题+回答),对模型做SFT(有监督微调),但是人工写回答成本太高
用模型生成9个答案,并人工对这些答案进行排序,使用排序数据来训练奖励模型(6B)
奖励模型会给好的回答打高分,给差的回答打低分
模型输出后过一个输出大小为1的线性层,获得分数
奖励模型的损失函数:
- 强化学习RL
使用PPO算法
使用SFT模型的参数初始化RL模型。
每轮用RL模型生成新的回答,并计算奖励分数(目标是最大化奖励分数),调整模型,再用新的模型生成回答,如此循环。(与传统方法不同在于,传统训练过程中数据标签不会发生改变,而这里y是不断调整的)
数据来源
首先由人工写一些问答数据,用这些数据训练模型,然后将模型投入试用,并收集用户问题进行再次训练
- 数据集分为三份:
①SFT dataset(13K):人工标注回答
②RM dataset(33K):模型生成多个回答并人工排序
③PPO dataset(31K):使用Reward Model生成回答