ChatGPT/InstructGPT论文(二)

一. 导读

第一篇解读:ChatGPT/InstructGPT论文(一)
继ChatGPT大火后,越来越多人想了解ChatGPT相关技术。OpenAI官网虽然没有给出ChatGPT足够详细的信息,但给出了一篇推荐阅读论文InstructGPT,经过对比,可以发现两者技术相差不大,所以完全可以通过InstructGPT了解ChatGPT。下面就给出InstructGPT内容详解。阅读本文内容最好提前了解GPT1-GPT3。

二. 摘要和概述

这篇文章企图解决的问题:已有的大型语言模型(例如GPT3.5)并非模型越大越好。越大的模型仍然会生成假的、有害的、简单的和没有用的内容。简单的说,得不到用户想要的内容。
解决方法:1.人工引导,使用监督学习。2.强化学习,人工帮助的情况下,训练一个模型,该模型会进一步引导GPT模型生成优质的结果。
实验结果:InstructGPT使用1.3B参数的模型对比GPT-3的1750B参数模型能取得更优的性能(即能生成更优,更有用,更安全,更无害的内容,调戏过ChatGPT的人应该更有体会)。

三. 引言

已有大型语言模型经常会生成不想要的内容(很好理解,因为目标函数只是预测下一个词和数据集信噪比高的原因)。

所以,本文使用微调的方法在一个大型语言模型LM上进行改进。大致思路是:

  • 首先,收集大量的指令prompt(可以理解为问题,但实际是指令大于问题,例如帮我写一首诗是一个指令,但具体问题的时候我们可能不是这么问的,即我们有多种问法,所以一个指令对应于多个问题),让人工提供答案,扩充数据集,进行第一步的引导
  • 其次,人工给LM的回答进行排名,并用这些排名作为标签label。以(prompt,label)形式训练一个RM模型,该训练完成后模型能对LM生成的答案进行打分,告诉LM哪些是好的回答
  • 最后,RM会作为一个奖励函数,同时使用PPO算法微调GPT模型最大化RM奖励函数

评估:使用未在数据集中出现的prompt,采用人工的方式对GPT模型生成的结果进行打分。

模型:InstructGPT模型考虑3种设置方案:1.3B,6B,150B。模型的结构和GPT-3保持一致。

实验结果:

  1. 在人工打分结果上,InstructGPT显著优于GPT-3
  2. InstructGPT的结果比GPT-3更真实,即不会瞎说(但从ChatGPT的结果来看,还是有待提高)
  3. InstructGPT的结果比GPT-3更不会有害,即不会有种群歧视之类的
  4. 面对具体的NLP数据集,还可以改进
  5. 面对没有出现的人工引导的prompt, InstructGPT的结果也会更好,即 InstructGPT模型得到了推广
  6. InstructGPT效果会比使用一般的公开的NLP数据集后的GPT模型更好
  7. InstructGPT仍然会犯简单的小错误(从ChatGPT的结果来看确实)。

四. InstructGPT流程

InstructGPT流程如下图所示。可以分成3个阶段:

  1. 阶段一:在这个阶段前,我们首先有一个大型语言模型GPT-3.5。然后,我们随机从指令库中采样出一些指令prompt,并人工给出答案。最后,将这些指令和答案作为新的数据集进一步训练GPT-3.5模型,这里是由人工给出的答案作为标签,所以是有监督学习。我们将这一阶段完成后的模型称为SFT(supervised fine-tuning )。
  2. 阶段二:使用SFT对指令库中的指令生成多个答案。然后人工对这些答案进行排名。使用这些排名训练一个奖励模型RW,即可以通过这个模型对一个指令的多个回答给出奖励值
  3. 阶段三:从指令库中采样一批指令,让SFT回答多个答案,并使用RW给出预测的奖励值。最后,使用奖励值采用PPO算法更新模型

chatgpt

五.数据集

我觉得主要包含4个数据集,并且刚好4个数据集对应于不同的阶段。第2、3和4个数据集对应于InstructGPT流程的第1-3个阶段,而第1个数据集对应于第一个阶段前的训练GPT3.5模型的阶段。

1. 在了解4个数据集前要先了解OpenAI先做了个指令库数据集

指令库数据集:前面多次提到指令库,这个指令库来自于OpenAI以前的GPT模型提供的API中收集的用户问题。但这些问题经过了一定的处理,包括去除重复,限制每个用户最多200个指令,去除个人身份信息等。下表Table1给出了来自API的指令分布。然而,这个处理好后的指令库数据集也并不全面,好用。所以InstructGPT让人工(请的labelers)写了3类指令进行扩充:(1)Plain:尽可能广地写各种指令,增加多样性。(2)Few-shot:写出一些指令,并给出多对(问题,回答)。(3)User-based:根据刚才OpenAI提供的API中得到的用户的请求队列waitlist中收集用户需求,并写出对应的指令。

chatgpt

下面是InstructGPT用到的4个数据集:

  1. 已有的用于训练GPT3.5的数据集:这个数据集主要来自NLP数据集、网络爬虫和OpenAI从其他公司拿来的。可参考GPT-3(Language Models are Few-Shot Learners)的工作。
  2. 训练SFT的模型(数据量:13k):来自指令数据库中的API和人工写的(prompt,answer),用于第一阶段初步训练InstructGPT
  3. 训练RM的排名数据集(数据量:33k):首先从指令数据库中的API和人工写的指令中获得指令,再使用InstructGPT进行回答,人工给InstructGPT的回答进行排名得到排名数据集(prompt,Rank)。该数据集会用于训练得到一个RM模型
  4. PPO数据集(数据量:31k):只从指令数据库的API中获得指令,并使用InstructGPT和RM模型分别得到answer和RM给出的分数。最后这个数据集由多个三元组(prompt,answer,RM给出的分数)组成,用于进一步微调采用PPO算法微调InstructGPT

总结:InstructGPT特有的数据集并不大,13k-33k对于一个公司来说是很小的了。不过仍然有效,能显著提升模型性能。

六.模型的训练

SFT(Supervised fine-tuning ):第一阶段训练的模型SFT。具体地,迭代轮数使用16个epoch、学习率使用余弦衰减、模型残差连接,dropout率为0.2

RM:第二阶段训练的奖励模型,模型结构是在SFT基础上去掉了最后的unembedding层,并以(prompt,answer,Rank=Reward)训练模型。模型大小使用6B

七. 相关链接

  1. InstructGPT论文详解(学习ChatGPT必看论文)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21810.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023了,学习深度学习框架哪个比较好?

PPT、视频和对应的文章免费开源在:https://chenzomi12.github.io/ 都2023年,才来回答这个问题,自然毫无悬念地选择PyTorch,TensorFlow在大模型这一波浪潮中没有起死回生,有点惋惜,现在GLM、GPT、LLaMA等各种…

【ChatGPT】人工智能发展的背后厉害:跌宕起伏的近百年

文章目录 前言一、麦卡洛克-皮特斯神经元二、赫布式学习三、感知机四、反向传播算法五、卷积神经网络六、递归神经网络七、通用计算GPU芯片八.生成式神经网络与大型语言模型总结 前言 今天,ChatGPT等大型语言预训练神经网络模型已经成为广为人知的名字,…

ChatGPT又添劲敌?OpenAI核心员工创业,新模型获一片叫好

关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 计算机视觉研究院专栏 作者:Edison_G 在 ChatGPT 巨人的肩膀上又有了改进。 转自《机器之心》 ChatGPT 给 AI 领域带来的变革&#xff0c…

aigc分享

AIGC技术分享 AIGC概述 AIGC的概念、应用场景和发展历程https://36kr.com/p/2135547607286144 ppt https://36kr.com/p/2243237713604482 机器学习基础 机器学习的基本概念、分类和常用算法,如线性回归、决策树、支持向量机、神经网络等。 深度学习基础 深度学…

【倒计时2天】CCIG文档图像智能分析与处理论坛开启直播预约,共探智能文档处理前沿技术

文档是人们在日常生活、工作中产生的信息的重要载体,各领域从业者几乎每天都要与金融票据、商业规划、财务报表、会议记录、合同、简历、采购订单等文档“打交道”。让计算机具备阅读、理解和解释这些文档图像的能力,在智能金融、智能办公、电子商务等许…

Chatgpt-plus帮我写的Python教程

Chatgpt-plus帮我写的Python教程 昨天急不可耐的开通了Chatgpt plus,就想着赶快试用下,不得不说真的强大!,现在还只是gpt4模型,不知道gpt5模型出来会变成什么样子,下面是gpt花了三分钟帮我写的教程&#x…

程序员与chatgpt的碰撞

背景:生产环境要复制一条数据,并修改指定字段且id要自增 ChatGPT是一款非常出色的聊天机器人,它使用了最先进的自然语言处理技术,可以与人类进行自然的对话。它可以回答各种问题,包括一般的知识问题、天气、新闻、娱乐…

AI掌绘艺术:揭秘Stable Diffusion华美图韵背后那些提示词的秘密

开篇 好了好了,我知道这个标题有点大,大得像我妈的锅一样。但是,我保证,当你读完这篇文章后,你不仅会明白我为什么敢用这样的标题,而且你也会想试试宝贵的AI画画方法。 首先,我要说&#xff0…

ChatGPT背后的开源AI框架Ray,现在值10亿美元

机器之心报道 编辑:泽南、小舟 Ray 被 OpenAI、亚马逊等科技公司用来开发大模型,是最近异军突起的框架。 最近一段时间,文本生成的人工智能在互联网上掀起了一阵风暴:ChatGPT 因为可以对人们能想到的几乎任何问题提供非常详细、近…

ChatGPT背后的故事和秘密是什么?

大家好。近期,德国一家公司在公司内部暂停了使用人工智能应用ChatGPT,原因竟然是担心其可能会泄露敏感数据。这则消息引发了广泛的关注和探讨,下面我们来了解其中的详情吧! 首先,让我们了解一下ChatGPT是什么。ChatGP…

【阿里云】第一次进行域名注册、备案以及使用全过程

前言 随着ChatGPT的爆火,让我直面感受到了一项技术的突破可以产生堪比原子弹爆炸的威力,因而在品尝过ChatGPT带来的便利与甜头后,就一直在跟进,同时也在能力范围内,让数十位朋友使用上了ChatGPT 前段时间&#xff0c…

【AI提示】ChatGPT提示工程课程(吴恩达OpenAI)转换文本(中文chatgpt版)

设置 翻译 通用翻译器 语调变换 格式转换 拼写检查/语法检查。 转换 在本笔记中,我们将探索如何使用大型语言模型进行文本转换任务,例如语言翻译、拼写和语法检查、语气调整和格式转换。 设置 import openai import osfrom dotenv import load_dotenv, f…

ChatGPT游戏领域的创新助手|小智ai

ChatGPT丨小智ai丨chatgpt丨人工智能丨OpenAI丨聊天机器人丨AI语音助手丨GPT-3.5丨开源AI平台 导语: ChatGPT(Chat Generative Pre-trained Transformer)作为一种先进的自然语言处理模型,不仅在对话领域取得了突破,而且…

用ChatGPT控制NPC,行动逼真到像正常人!斯坦福谷歌新研究炸场,赋予大模型准确记忆力...

萧箫 发自 凹非寺量子位 | 公众号 QbitAI 放任25个AI共同生活,他们竟然模拟起了人类的行动! 不仅像人一样起床、刷牙、吃饭、睡觉,还会被迫“出门打工”,甚至在闲暇时分一起庆祝节日。 这一切,来自斯坦福和谷歌的一项新…

ChatGPT背后的技术和多模态异构数据处理的未来展望——我与一位资深工程师的走心探讨

上周,我和一位从业三十余年的工程师聊到ChatGPT。 作为一名人工智能领域研究者,我也一直对对话式大型语言模型非常感兴趣,在讨论中,我向他解释这个技术时,他瞬间被其中惊人之处所吸引🙌,我们深…

openai项目部署服务器,使用反向代理时候,响应数据缺失的问题

openai项目部署服务器,使用nginx配置反向代理后遇到的问题 一、问题描述二、问题解决 一、问题描述 openapi的问题,当你成功科学上网接入chatgpt3.5的时候(使用的是流式响应),在本地跑应用如丝般顺滑,然后满心欢喜的把应用部署上…

ChatGLM模型通过api方式调用响应时间慢怎么破,Fastapi流式接口来解惑,能快速提升响应速度

ChatGLM-6B流式HTTP API 本工程仿造OpneAI Chat Completion API(即GPT3.5 API)的实现,为ChatGLM-6B提供流式HTTP API。 文章目录 ChatGLM-6B流式HTTP API前言一、下载代码安装环境二、接口服务脚本代码三、运行启动命令总结 前言 现在市面上…

相见恨晚,这才是横跨三大操作系统的终极神器!真的太太太好用了。。。

点关注公众号,回复“1024”获取2TB学习资源! 此前给大家推荐过无数的Chrome插件,涉及工作、生活、学习、娱乐等方方面面,大大提高了浏览器的可玩性。 但回到桌面端,我们依然还是需要下载大量的软件客户端,来…

str.replace()——Python的“第四”字符串格式

str.replace(),Python的“第四”字符串格式。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… 地址:https://lqpybo…

详解Handler

详解Handler 文章目录 详解Handler1.Handler的工作流程1.1主线程具有如上性质的原因1.2流程图 2.Handler流程中的重要的几个方法2.1Message中的属性2.2.1what2.2.2replyTo2.2.3obtain 2.2Handler.post()与Handler.sendMessage()2.2.1post的源码2.2.1.1sendMessageDelayed()源码…