前 言

OpenAI这家公司又放大招了,继发布GPT、GPT2和GPT3模型后,本月初发布了ChatGPT模型【也被称为GPT3.5】,结合大家的测试效果来看,该模型效果确实很震撼,在人工智能圈子引起了不小的轰动。在AI发展相对处于低谷期的今天,如此震撼的模型发布出来,确实为该行业带来一阵暖风,本文就详细解读一下该模型。

官方并没有公开ChatGPT的原始Paper,但提到 InstructGPT 是该模型的兄弟模型,因此,本文主要来解读InstructGPT模型。

相关模型解读
【GPT】Improving Language Understanding by Generative Pre-Training
【GPT2】Language Models are Unsupervised Multitask Learners
【GPT3】Language Models are Few-Shot Learners

部分测试截图


InstructGPT 模型解读

摘要

把语言模型做大并不能本质上让它们更贴合用户的意图。例如,大型语言模型可能生成不真实、有害或对用户没有帮助的输出。换言之,这些模型与它们的用户并不是对齐的 (Aligned)。本文提出了一种方法,通过使用人类反馈进行微调,使语言模型在广泛的任务中与用户意图保持一致。我们从一组由人工撰写以及通过 OpenAI API 所提交的提示 (Prompt)开始,整理了一个人工给模型作出示范的数据集,并将其应用到微调GPT-3的监督学习任务中去。然后,我们采集了模型输出的排名,并利用该数据集,结合人类反馈进行强化学习,进一步微调这个监督模型。我们将最终的模型称为 InstructGPT。在对提示分布的人类评估中,尽管参数量少了 100 倍,13 亿参数的 InstructGPT 模型表现仍要好于 1750 亿参数的 GPT-3。此外,InstructGPT 模型在提高真实性并减少有害输出的同时,在公共 NLP 数据集上表现出了最优的性能。尽管 InstructGPT 仍然会犯一些简单的错误,但我们的研究结果表明,通过人类反馈微调,将语言模型与人类意图对齐是一个有前景的方向。

引言


模型整体框架:

在“人工标注数据+强化学习”框架下,具体而言,InstructGPT的训练过程分为以下三个阶段:

  • 第一阶段:冷启动阶段的监督策略模型
    靠GPT 3本身,尽管它很强,但是它很难理解人类不同类型指令中蕴含的不同意图,也很难判断生成内容是否是高质量的结果。为了让GPT 3初步具备理解指令中蕴含的意图,首先会从测试用户提交的prompt(就是指令或问题)中随机抽取一批,靠专业的标注人员,给出指定prompt的高质量答案,然后用这些人工标注好的<prompt,answer>数据来Fine-tune GPT 3模型。经过这个过程,我们可以认为GPT 3初步具备了理解人类prompt中所包含意图,并根据这个意图给出相对高质量回答的能力,但是很明显,仅仅这样做是不够的。

  • 第二阶段:训练回报模型(Reward Model,RM)
    这个阶段的主要目的是通过人工标注训练数据,来训练回报模型。具体而言,随机抽样一批用户提交的prompt(大部分和第一阶段的相同),使用第一阶段Fine-tune好的冷启动模型,对于每个prompt,由冷启动模型生成K个不同的回答,于是模型产生出了<prompt,answer1>,<prompt,answer2>….<prompt,answerK>数据。之后,标注人员对K个结果按照很多标准(上面提到的相关性、富含信息性、有害信息等诸多标准)综合考虑进行排序,给出K个结果的排名顺序,这就是此阶段人工标注的数据。接下来,我们准备利用这个排序结果数据来训练回报模型,采取的训练模式其实就是平常经常用到的pair-wise learning to rank。对于K个排序结果,两两组合,形成 (k2)\binom{k}{2}(2k​) 个训练数据对,ChatGPT采取pair-wise loss来训练Reward Model。RM模型接受一个输入<prompt,answer>,给出评价回答质量高低的回报分数Score。对于一对训练数据<answer1,answer2>,我们假设人工排序中answer1排在answer2前面,那么Loss函数则鼓励RM模型对<prompt,answer1>的打分要比<prompt,answer2>的打分要高。归纳下:在这个阶段里,首先由冷启动后的监督策略模型为每个prompt产生K个结果,人工根据结果质量由高到低排序,以此作为训练数据,通过pair-wise learning to rank模式来训练回报模型。对于学好的RM模型来说,输入<prompt,answer>,输出结果的质量得分,得分越高说明产生的回答质量越高。

  • 第三阶段:采用强化学习来增强预训练模型的能力
    本阶段无需人工标注数据,而是利用上一阶段学好的RM模型,靠RM打分结果来更新预训练模型参数。具体而言,首先,从用户提交的prompt里随机采样一批新的命令(指的是和第一第二阶段不同的新的prompt,这个其实是很重要的,对于提升LLM模型理解instruct指令的泛化能力很有帮助),且由冷启动模型来初始化PPO模型的参数。然后,对于随机抽取的prompt,使用PPO模型生成回答answer, 并用上一阶段训练好的RM模型给出answer质量评估的回报分数score,这个回报分数就是RM赋予给整个回答(由单词序列构成)的整体reward。有了单词序列的最终回报,就可以把每个单词看作一个时间步,把reward由后往前依次传递,由此产生的策略梯度可以更新PPO模型参数。这是标准的强化学习过程,目的是训练LLM产生高reward的答案,也即是产生符合RM标准的高质量回答。

如果我们不断重复第二和第三阶段,很明显,每一轮迭代都使得LLM模型能力越来越强。因为第二阶段通过人工标注数据来增强RM模型的能力,而第三阶段,经过增强的RM模型对新prompt产生的回答打分会更准,并利用强化学习来鼓励LLM模型学习新的高质量内容,这起到了类似利用伪标签扩充高质量训练数据的作用,于是LLM模型进一步得到增强。显然,第二阶段和第三阶段有相互促进的作用,这是为何不断迭代会有持续增强效果的原因。

ChatGPT能否取代Google、Baidu,成为下一代搜索引擎?一文了解最近火出圈的ChatGPT相关推荐

  1. 聊聊火出圈的ChatGPT

    前言 OpenAI 近期发布聊天机器人模型 ChatGPT,迅速火爆各大技术网站,就像一个突然激起的巨浪打破了沉寂已久的水面.它的出现无论是对人工智能的资本圈还是技术圈都感受到了春风回暖,前兔似锦的未 ...

  2. 火出圈的ChatGPT,如何让安全检测更智能

    ChatGPT是什么 ChatGPT(Chat Generative Pre-trained Transformer)是一款美国OpenAI研发的聊天机器人程序,能够通过理解和学习人类语言来进行对话, ...

  3. ChatGPT火出圈,80%的设计师无事可做

    自从疫情过后,设计行业开始变得很凌乱.很多同行开始打价格战,设计岗位逐渐演变成了一种新型的流水线.在我国,不管什么行业,到最终都会演变成饱和状态. 用金融理论来说: 供不应求,就赚钱,供过于求,就不赚 ...

  4. 爆火出圈的chatGPT

  5. 张俊林:ChatGPT 会成为下一代搜索引擎吗

    文|张俊林@知乎 这是「进击的Coder」的第 774 篇技术分享 作者:张俊林 来源:知乎 " 阅读本文大概需要 9 分钟. " 本文将从以下几个方面展开: 引言 ChatGPT ...

  6. 张俊林:ChatGPT会取代搜索引擎吗?

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入->CV微信技术交流群 作者:张俊林 | (源:知乎)编辑:CVer https://zhua ...

  7. 下一代搜索引擎长啥样?Google 给出了TA的答案

    https://www.toutiao.com/a6688932552368980488/ 2019-05-09 15:54:31 作为一家靠搜索引擎发展起来的科技巨头,Google 在今年的开发者大 ...

  8. 今日发现的:一个类似Google Baidu的搜索引擎[C#]代码比较简单

    里面实现很简单,当然只能算是一个演示版本吧!不可能有Google Baidu的那么强大.有爬虫代码 Web代码 主要的代码分析如下: /// <summary>        /// 取得 ...

  9. 为什么 ChatGPT 会引起 Google 的恐慌?

    在 ChatGPT 尚未全面开放使用之际,它散发的巨大威力,似乎已经让行业内的竞争对手感到了威胁. 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 距离 ChatGPT 上线不足一个月的 ...

最新文章

  1. 1968年12月9日,恩格尔巴特公开演示了世界上第一个鼠标盒子
  2. 贪心 ---- 贪心 + STL维护 + 划分集合 L. Neo-Robin Hood(好题)
  3. React学习笔记3:React脚手架
  4. 核酸序列特征信息分析
  5. python执行的命令_如何在Python中执行外部命令
  6. 华为Mate30 5G评测:首款5G爆品, 一步到位兼容5G双模全网通
  7. 2021年中国电动气动控制器市场趋势报告、技术动态创新及2027年市场预测
  8. windows加域后的问题
  9. sap模块介绍_一分钟掌握SAP小知识-系统基本操作
  10. Laravel 速记表
  11. 在Linux 中如何从进程相关的文件描述中恢复数据
  12. Sniffer安全技术从入门到精通
  13. zabbix通过jmx监控jdbc连接池的各项指标
  14. 姿态(Orientation)
  15. 详解Django的CSRF认证
  16. 如何将网站转化为桌面应用
  17. 18位身份证号编码规则最后一位
  18. 某学生的记录由学号、5门课程成绩和平均分组成,学号和5门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分,并放在记录的ave成员中。
  19. Leetcode 174. Dungeon Game 地下城游戏
  20. 面向对象和应用软件系统设计

热门文章

  1. Unity文件导入格式
  2. 全球造船业发展现状分析,正处于行业上升时期「图」
  3. OPenCV笔记-Mat转Base64(使用Qt进行转换)
  4. Win10-时钟屏保
  5. 计算机专业英语考试试题及答案,计算机专业英语测试题及答案.doc
  6. blackbox_exporter+grafana+prometheus监控主机存活,端口存活及网站状态
  7. Unity查找功能编辑器扩展Searcher
  8. (附源码)心理治愈平台 毕业设计 041506
  9. Android仿超级课程表的课程界面设计
  10. Yii2 定制表单输入字段的标签和样式