二、第二阶段:训练回报模型
这个阶段的主要目标是通过手动标注训练数据来训练回报模型。具体是随机抽取用户提交的请求prompt(大部分与第一阶段相同),使用第一阶段Enhancement的冷启动模型。对于每个prompt,冷启动模型都会生成K个不同的答案,所以模型会生成数据<prompt, answer1>, <prompt, answer2>....<prompt, answerX>。之后,标注者根据各种标准(上述的相关性、富含信息性、有害信息等诸多标准)对X个结果进行排序,并指定X个结果的排名顺序,这就是这个阶段人工标注的数据。
接下来,使用这个排名结果数据来训练回报模型。使用的训练方式实际上是常用的pair-wise learning to rank。对于 X 排序结果,两两组合起来形成一个训练数据对,ChatGPT 使用 pair-wise loss 来训练 Reward Model。RM 模型将 <prompt, answer> 作为输入,并提供奖励分数来评估答案的质量。对于一对训练数据,假设 answer1 排在 answer2 之前,那么Loss函数驱动 RM 模型比其他得分更高。
总结一下:在这个阶段,首先冷启动后的监控策略模型对每个prompt生成X个结果,并根据结果的质量从高到低排序,并作为训练数据,通过pair-wise learning to rank模式来训练回报模型。对于学好的 RM 模型来说,输入 <prompt, answer>,并输出结果质量分数。分数越高,答案的质量就越高。其工作原理是:
选择prompt列表,SFT 模型为每个命令生成多个输出(4 到 9 之间的任何值);
标注者从最好到最差对输出进行排名。结果是一个新标记的数据集,其大小大约是用于 SFT 模型的确切数据集的 10 倍;
此新数据用于训练 RM 模型。该模型将 SFT 模型的输出作为输入,并按优先顺序对它们进行排序。
这个阶段的主要目标是通过手动标注训练数据来训练回报模型。具体是随机抽取用户提交的请求prompt(大部分与第一阶段相同),使用第一阶段Enhancement的冷启动模型。对于每个prompt,冷启动模型都会生成K个不同的答案,所以模型会生成数据<prompt, answer1>, <prompt, answer2>....<prompt, answerX>。之后,标注者根据各种标准(上述的相关性、富含信息性、有害信息等诸多标准)对X个结果进行排序,并指定X个结果的排名顺序,这就是这个阶段人工标注的数据。
接下来,使用这个排名结果数据来训练回报模型。使用的训练方式实际上是常用的pair-wise learning to rank。对于 X 排序结果,两两组合起来形成一个训练数据对,ChatGPT 使用 pair-wise loss 来训练 Reward Model。RM 模型将 <prompt, answer> 作为输入,并提供奖励分数来评估答案的质量。对于一对训练数据,假设 answer1 排在 answer2 之前,那么Loss函数驱动 RM 模型比其他得分更高。
总结一下:在这个阶段,首先冷启动后的监控策略模型对每个prompt生成X个结果,并根据结果的质量从高到低排序,并作为训练数据,通过pair-wise learning to rank模式来训练回报模型。对于学好的 RM 模型来说,输入 <prompt, answer>,并输出结果质量分数。分数越高,答案的质量就越高。其工作原理是:
选择prompt列表,SFT 模型为每个命令生成多个输出(4 到 9 之间的任何值);
标注者从最好到最差对输出进行排名。结果是一个新标记的数据集,其大小大约是用于 SFT 模型的确切数据集的 10 倍;
此新数据用于训练 RM 模型。该模型将 SFT 模型的输出作为输入,并按优先顺序对它们进行排序。