首页 > 其他分享 >大模型面试准备(七):ChatGPT 的内核 InstructGPT 详细解读

大模型面试准备(七):ChatGPT 的内核 InstructGPT 详细解读

时间:2024-03-30 14:03:13浏览次数:22  
标签:模型 面试 内核 https GPT ChatGPT zhihu InstructGPT

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。


合集在这里:《大模型面试宝典》(2024版) 正式发布!


喜欢本文记得收藏、关注、点赞,文末提供技术、面试交流群。

GPT-3 虽然在各大 NLP 任务以及文本生成的能力上令人惊艳,但是它仍然还是会生成一些带有偏见的,不真实的,有害的造成负面社会影响的信息,而且很多时候,他并不按人类喜欢的表达方式去说话。

在这个背景下,OpenAI 提出了一个 “Alignment” 概念,意思是模型输出与人类真实意图对齐,符合人类偏好。因此,为了让模型输出与用户意图更加 “align”,就有了 InstructGPT 这个工作。

InstructGPT 提出了一个理想化语言模型的 3H 目标:

  • Helpful: 能帮助用户解决问题

  • Honest: 不能捏造事实,不能误导用户

  • Harmless: 不能对用户或环境造成物理、精神、社会层面的伤害

从做研究的角度来讲,其实很多时候人们并不在意 “Alignment”问题,只要一个模型在评估的数据集上表现好,那基本就可以说是一个好模型。

但是对于工业界来说,一个产品的安全性就显得尤为重要,历史上也出现过不止一次因为某个负面 case,引发社会争议,从而导致整个产品下线的例子,特别是对于大公司来讲,出现一次负面 case 通常是比较严重的。比如之前 google 和 facebook 就都出现过把照片中的黑人识别成黑猩猩的事件,然后随之而来的就是产品的整改,公关道歉之类的。所以从这个角度来讲,OpenAI 做 InstructGPT 的出发点是非常合理且重要的。

关于 InstructGPT 的技术方案,原文分为了三个步骤:有监督微调,奖励模型训练,强化学习训练;实际上可以把它拆分成两种技术方案,一个是有监督微调(SFT),一个是基于人类反馈的强化学习(RLHF),下面我来概要介绍一下这两种技术方案,更多细节可以去阅读原始论文和文末推荐的解读文章。

有监督微调(SFT)

有监督微调(SFT: Supervised Fine-Tuning)过程如下图所示:

图片

本质上来说,SFT 可以理解为人工标注了一批数据,然后去微调 GPT-3。 但是值得一提的是,这里标注的数据与 GPT-3 之前用来做下游任务使用的 few-shot 格式,有非常本质的区别。

GPT-3 中的 few-shot 对于同一个下游任务,通常采用固定的任务描述方式,而且需要人去探索哪一种任务表述方式更好。显然这种模式与真实场景下用户的使用方式存在较大的 gap,用户在向 GPT-3 提问时才不会采用某种固定的任务表述,而是随心所欲地以自己的说话习惯去表达某个需求。

InstructGPT 在 SFT 中标注的数据,正是为了消除这种模型预测与用户表达习惯之间的 gap。在标注过程中,他们从 GPT-3 的用户真实请求中采样大量下游任务的描述,然后让标注人员对任务描述进行续写,从而得到该问题的高质量回答。这里用户真实请求又被称为某个任务的指令(Instruct)****,即 InstructGPT 的核心思想“基于人类反馈的指令微调”。

基于人类反馈的强化学习(RLHF)

基于 SFT 得到的模型被用于接下来的 RLHF 做进一步的模型优化,流程如下:

图片

如上图所示,以摘要生成任务为例,详细展示了如何基于人类反馈进行强化学习,最终训练完成得到 InstructGPT 模型。主要分为三步:

  1. 收集人类反馈: 使用初始化模型对一个样本生成多个不同摘要,人工对多个摘要按效果进行排序,得到一批排好序的摘要样本;

  2. 训练奖励模型: 使用第1步得到的样本集,训练一个模型,该模型输入为一篇文章和对应的一个摘要,模型输出为该摘要的得分;

  3. 训练策略模型: 使用初始化的策略模型生成一篇文章的摘要,然后使用奖励模型对该摘要打分,再使用打分值借助 PPO (Proximal Policy Optimization,近端策略优化)算法重新优化策略模型。

整体流程

InstructGPT 整体训练流程如下图三步所示:

图片

而 ChatGPT 的训练流程如下图所示:

图片

我们不能说很像,只能说是一模一样了,所以这就是为什么说 InstructGPT 是强大但闭源的 ChatGPT 的内核的由来,也是所有 LLMer 必须研读的工作了。

InstructGPT 总结

总的来说,InstructGPT 相对于之前的 GPT 系列,有以下几点值得注意:

  1. 解决 GPT-3 的输出与人类意图之间的 Align 问题;

  2. 让具备丰富世界知识的大模型,学习“人类偏好”;

  3. 标注人员明显感觉 InstructGPT 的输出比 GPT-3 的输出更好,更可靠;

  4. InstructGPT 在真实性,丰富度上表现更好;

  5. InstructGPT 对有害结果的生成控制的更好,但是对于“偏见”没有明显改善;

  6. 基于指令微调后,在公开任务测试集上的表现仍然良好;

  7. InstructGPT 有令人意外的泛化性,在缺乏人类指令数据的任务上也表现很好。

最后一点讨论

从 InstructGPT 到 ChatGPT,我们是不是本质上还是回到“人工”智能那条路?像 GPT-2 和 GPT-3 那种完全的无监督还是行不通,最终不还是需要人工干预去标数据?

这个观点个人还是比较赞同的:不太倾向于这种悲观态度,人工智能目前最重要的还是要找到人工和智能之间的平衡点,而不是一味的去追求完全的无监督,无人工代价。

技术交流群

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了算法岗技术与面试交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2040。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2040,备注:技术交流

用通俗易懂方式讲解系列

相关文章和阅读推荐:
[1] InstructGPT:Training language models to follow instructions with human feedback
[2] https://zhuanlan.zhihu.com/p/609716668
[3] https://zhuanlan.zhihu.com/p/590311003
[4] https://zhuanlan.zhihu.com/p/639252063
[5] https://zhuanlan.zhihu.com/p/637419868
[6] https://zhuanlan.zhihu.com/p/595891945
[7] https://zhuanlan.zhihu.com/p/622134699

标签:模型,面试,内核,https,GPT,ChatGPT,zhihu,InstructGPT
From: https://blog.csdn.net/2201_75499313/article/details/137127950

相关文章

  • 在Linux中,Linux内核和Shell有何区别?
    Linux内核和Shell是Linux操作系统中两个截然不同的组成部分,它们各自承担着不同的职责,有着明显的区别:Linux内核:定义:Linux内核是操作系统的核心组件,它是Linux系统的心脏,负责管理系统的硬件资源(如CPU、内存、磁盘、网络等)和提供基本的服务,为运行在其上的应用程序提供一个抽象、统......
  • Linux内核驱动编程的一道陷阱题(转载)
    本篇转载于:https://blog.csdn.net/yhb1047818384/article/details/84073838 原文如下:------看过一道linux内核驱动编程的题目,我觉得有点价值。题目很简单,凭记忆整理了下,代码如下:#include<linux/init.h>#include<linux/module.h>#include<linux/delay.h>#include<l......
  • 国内好用的chatGPT和AI绘图工具
    分享一个比较好用的AI分享一个比较好用的AI,只是需要开通会员,目前官网的价格是:298,开通之后可以使用chatgpt4、AI绘画、图片融合等等!不开通的话是可以免费使用15次的,下面是一些介绍图片!链接放在最后!!!首页工作台对话绘画画廊写作......
  • 【课件】ChatGPT+AI项目实战,打造多端智能虚拟数字人
     ChatGPT+AI技术项目实战,打造多端智能虚拟数字人分享课程——ChatGPT+AI技术项目实战,打造多端智能虚拟数字人,附源码ChatGPT全称为ChatGenerativePre-trainedTransformer,一个基于深度学习的大型语言模型,其模型结构使用了Transformer网络。这个网络可以从输入的文......
  • 转:cpu性能和功耗相关的内核子系统
    http://arthurchiao.art/blog/linux-cpu-2-zh/ 1.1调度器:时分复用+任务调度——sched1.3有任务:用哪个频率执行任务?——cpufreq1.4无任务:执行轻量级占坑程序——idletask从原理来说,非常简单。产品经理:什么都不做。从实现来说,非常模糊。程序员:“什么都不做”的代......
  • ChatGPT指南:如何利用AI撰写优质学术论文
    ChatGPT无限次数:点击直达htmlChatGPT指南:如何利用AI撰写优质学术论文引言随着人工智能技术的不断发展,越来越多的研究者开始探索如何利用AI工具辅助学术论文的撰写过程。其中,ChatGPT作为一种基于生成式预训练模型的自然语言处理工具,为研究人员提供了更快速、更高效的写作......
  • 如何合理利用chatgpt写中文论文,10分钟速成(二)
    演示站点: https://www.cnsai.net/ 论文模块官方论坛: www.jingyuai.com 京娱AI一,编写提纲编写提纲能使作者树立全局观念,从整体出发,明确写作的先后顺序和重点。编写提纲是在写作之前对文章的整体架构进行组织和概括,明确写作的内容以及主要方向。编写提纲需要注意以下几......
  • 北京理工大学操作系统 实验一 编译Linux内核
    实验一编译Linux内核实验一编译Linux内核一、实验目的二、实验内容三、实验步骤1.安装虚拟机并配置环境实验环境:2.下载并解压Linux内核源码3.配置内核编译选项4.编译并安装内核和模块5.修改GRUB配置四、实验结果及分析五、实验收获与体会Copyright©2024Squar......
  • [转帖]Arm更新Neoverse产品路线图:N3/V3内核曝光,能效及AI性能大涨
    https://new.qq.com/rain/a/20240222A0495O00 +关注2月22日,半导体IP大厂Arm宣布推出新一代ArmNeoverse技术。其中包括,通过性能效率更优异的N系列新IP扩展ArmNeoverse计算子系统(CSS)产品路线图。与NeoverseCSSN2相比,NeoverseCSSN3的每瓦性能可提高......
  • MappedByteBuffer VS FileChannel:从内核层面对比两者的性能差异
    本文基于Linux内核5.4版本进行讨论自上篇文章《从Linux内核角度探秘JDKMappedByteBuffer》发布之后,很多读者朋友私信我说,文章的信息量太大了,其中很多章节介绍的内容都是大家非常想要了解,并且是频繁被搜索的内容,所以根据读者朋友的建议,笔者决定将一些重要的章节内容独......