徐祯琦
2023/03/08阅读:55主题:山吹
WebGPT简介
今天试用了下perplexity.ai的搜索功能,在常见的常见下感觉效果还不错,便思考起背后实现的逻辑。正好有一篇2021年底的文章WebGPT,解释了下OpenAI在搜索结果聚合上的实践。简单记录下要点。
注:为了跟原文对齐,一些名词使用原始英文表述。
数据生产
数据生产分为两个部分——demostration(演示)和comparison(对比)。
demonstration
demonstration就是按照人类使用搜索引擎时的操作,针对给定的问题,对搜索引擎返回的结果,进行过滤。
这里值得借鉴的一点就是OpenAI将上述复杂的过程简单抽象为了10个commands(指令)。在特定开发的标注平台,记录人类的搜索过程,并将此过程中的操作和上下文转换为带标签的语料——语料的输入是上下文,command是具体操作。值得注意的是,为了包含搜索过程中的历史操作,上下文包含了对操作的总结。

详细做法可以参考Research by searching the web: instructions for contractors

comparison
comparison就是针对某个特定的问题,模型生成两个答案,标注人员先对每个答案从trustworthness(可信度)、来源对结果的支持程度进行打分。在对两个答案进行对比打分。
详细做法可以参考Comparing researched answers: instructions for contractors,文档对各种不同的问题类型也做了详细的标注说明。

模型构成
模型由四个部分组成:
-
Behavior cloning(以下简称BC) -
Reward model(以下简称RM) -
Reinforcement learning(以下简称RL) -
Reject Sampling(以下简称RS)
这里需要注意的是,上述部分均是由GPT3类模型微调而来。做这个选择的原因就是GPT3模型在阅读理解、答案合成等领域涌现出了零样本学习的能力,原文表述为 Many of the underlying capabilities required to successfully use our environment to answer questions, such as reading comprehension and answer synthesis, emerge as zero-shot capabilities of language models [Brown et al., 2020]。
其中,各部分的主要作用如下:
Behavior cloning
基于demonstration数据,模仿人类搜索+提取信息行为。可以简单地理解为一个分类任务的微调。
Reward model
基于comparison数据,输入问题、答案以及引用,模型给出一个得分,相当于是一个回归任务的微调。但由于得分的主观性过大,这里输入采用了同一个问题、两组答案与引用,groundTruth为comparison数据的标签,训练目标函数为交叉熵。
Reinforcement learning
这里的强化学习模型采用BC模型的参数初始化,通过RM生成奖励值,利用PPO算法更新模型参数,使得模型生成的结果得分越来越高。
Reject Sampling
拒绝采样,对BC / RL模型生成的结果进行采样,并对采样后的结果通过RM选取回报值最大的结果作为最终结果。
结果对比
文章的5.1节中介绍了不同部分组合的对比结果。主要对比RL、RS与baseline的BC的结果之间的对比。
结论比较反直觉——一方面,虽然RL、RS比baseline都有提升,但RS的提升要更明显些;另一方面,经过RL、RS两步的结果没有只进行RS的结果提升大。
文章给出的可能原因是RS不需要更新基础的BC模型参数,而RL+RS同时对RM的结果优化,可能造成对RM的过度优化。
总结
WebGPT的文章第一版是2021-12-17提交到arxiv上的,是基于GPT3模型在搜索结果方面的优化。论文中的思想可以说是弱化版的InstructGPT,而InstructGPT的论文最初是2022-05-04提交到arxiv上的,随后2022年12月,chatGPT问世,OpenAI在GPT3的路上越走越远,不断探索着大模型的边界。
作者介绍