ChatGPT技术原理
- ChatGPT技术原理概要
- 第一阶段:冷启动阶段的监督策略模型
- 第二阶段:训练回报模型,reward model
- 第三阶段:强化学习增强预训练模型的能力
- ChatGPT技术相关简介
- L2R(learning to rank)
- 相关引用
ChatGPT技术原理概要
第一阶段:冷启动阶段的监督策略模型
- GPT3.5 + 用户提供的prompt + 专业标注人员提供的对应prompt高质量答案,<prompt,answer>fine-tune GPT3.5,初步理解人类prompt中蕴含的意图;并根据意图给出相对高质量的回答的能力。
第二阶段:训练回报模型,reward model
- 新采样用户提供的prompt,使用第一阶段fine-tune的冷启动模型,对于每个prompt,由冷启动模型生成K个不同答案:<prompt,answer1>,<prompt,answer2>…<prompt,answerK>数据;
- 标注人员对K个结果按特定标准(如相关性,信息熵,有害信息等)进行排序,给出K个结果的排名;
- 使用上述标注数据按照pair-wise L2R(learning to rank)训练回报模型,K个排序结果,两两组合,形成 K! / [(K-2)! * 2!]个训练数据;
- 回报模型接收一个输入<prompt,answer>,输出评价回答质量高低的回报分数score;
- 对于任一训练数据<answer1,answer2>,如果answer1>>answer2,回报模型的Score(<prompt,answer1>) > Score(<prompt,answer2>),或者说Loss(<prompt,answer1>) < Loss(<prompt,answer2>)。
第三阶段:强化学习增强预训练模型的能力
- 新采样prompt,冷启动模型来初始化PPO模型参数;
- 对于新采样的prompt指令,使用PPO模型生成答案answer,并使用第二阶段训练好的RM模型给出answer质量评估的回报分数score,该score等价于RM模型赋予answer的整体reward(answer是有单词序列构成);
- answer的整体reward相当于单词序列的最终回报,基于此,即可把每个单词看做一个时间步,将reward由后向前依次传递,进而产生的策略梯度更新PPO模型参数。
ChatGPT技术相关简介
L2R(learning to rank)
详见 Learning to Rank简介
简单介绍下pair-wise: pair-wise用于给定查询下,衡量两个文档间的相对相关度;
- 相对相关度:给定查询 q i q_{i} qi 的一个真实文档序列,只需考虑任意两个相关度不同的文档之间的相对相关度: d i > d j d_{i}>d_{j} di>dj,或 d i < d j d_{i}<d_{j} di<dj
- 如上图中二分类模型,输入为文档序列中的文档两两组合(一对,pair命名由来),标签为+1和-1:如果两两组合的文档对中的第一个文档得分比第二个高,标签为+1,反之为-1。
简单归纳下,pair-wise中排序模型 h θ h_{θ} hθ能够让正确候选文档的得分高于错误候选文档。给定一个查询,pair-wise L2R学习候选答案对,并预测哪个句子是目标查询的最佳文档。
若训练样例是 ( q i , c i + , c i − ) (q_{i}, c_{i}^+, c_{i}^-) (qi,ci+,ci−),其中 q i q_{i} qi为给定查询, c i + c_{i}^+ ci+是正确候选文档, c i − c_{i}^- ci−是错误候选文档中的一个。
-
损失函数为 T r i p l e L o s s Triple Loss TripleLoss:
L = m a x { 0 , m − h θ ( q i , c i + ) + h θ ( q i , c i − ) } L = max\left\{0, m- h_{θ}(q_{i}, c_{i}^+)+ h_{θ}(q_{i}, c_{i}^-)\right\} L=max{0,m−hθ(qi,ci+)+hθ(qi,ci−)} -
m m m为边界的阈值:如果 m − h θ ( q i , c i + ) + h θ ( q i , c i − ) > 0 m- h_{θ}(q_{i}, c_{i}^+)+ h_{θ}(q_{i}, c_{i}^-) > 0 m−hθ(qi,ci+)+hθ(qi,ci−)>0,也就是 h θ ( q i , c i + ) − h θ ( q i , c i − ) < m h_{θ}(q_{i}, c_{i}^+)- h_{θ}(q_{i}, c_{i}^-) < m hθ(qi,ci+)−hθ(qi,ci−)<m,则损失函数 L > 0 L>0 L>0,这时模型把非正确的文档排在正确文档之上;如果 m − h θ ( q i , c i + ) + h θ ( q i , c i − ) = 0 m- h_{θ}(q_{i}, c_{i}^+)+ h_{θ}(q_{i}, c_{i}^-) = 0 m−hθ(qi,ci+)+hθ(qi,ci−)=0,也就是 h θ ( q i , c i + ) − h θ ( q i , c i − ) > = m h_{θ}(q_{i}, c_{i}^+)- h_{θ}(q_{i}, c_{i}^-) >= m hθ(qi,ci+)−hθ(qi,ci−)>=m,模型把正确的文档排在非正确文档之上。
-
损失函数的目的就是让正确文档的得分-错误文档的得分大于m,这样预测阶段时,得分最高的候选文档会被当做正确的文档。
相关引用
- Learning to Rank: pointwise 、 pairwise 、 listwise
- Learning to Rank简介