浅谈ChatGPT技术原理的个人理解

这篇具有很好参考价值的文章主要介绍了浅谈ChatGPT技术原理的个人理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

作为智能对话系统,ChatGPT最近两天爆火,都火出技术圈了,网上到处都在转ChatGPT相关的内容和测试例子,效果确实很震撼。上一次能引起如此轰动的AI技术,NLP领域是GPT-3发布,那都是两年半前的事了,当时人工智能如日中天如火如荼的红火日子,今天看来恍如隔世;多模态领域则是以DaLL E2、Stable Diffusion为代表的Diffusion Model,这是最近大半年火起来的AIGC模型;而今天,AI的星火传递到了ChatGPT手上,它毫无疑问也属于AIGC范畴。所以说,在AI泡沫破裂后处于低谷期的今天,AIGC确实是给AI续命的良药。

从技术角度来聊聊个人理解,ChatGPT到底是采用了怎样的技术,才能做到如此超凡脱俗的效果?
既然chatGPT功能如此强大,那么它可以取代Google、百度等现有搜索引擎吗?如果能,那是为什么,如果不能,又是为什么?


ChatGPT的技术原理

整体技术路线上,ChatGPT在效果强大的GPT-3.5大规模语言模型(LLM,Large Language Model)基础上,引入“人工标注数据+强化学习”(RLHF,Reinforcement Learning from Human Feedback ,这里的人工反馈其实就是人工标注数据)来不断Fine-tune预训练语言模型,主要目的是让LLM模型学会理解人类的命令指令的含义(比如给我写一段小作文生成类问题、知识回答类问题、头脑风暴类问题等不同类型的命令),以及让LLM学会判断对于给定的prompt输入指令(用户的问题),什么样的答案是优质的(富含信息、内容丰富、对用户有帮助、无害、不包含歧视信息等多种标准)。

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


ChatGPT第一阶段-冷启动阶段的监督策略模型

靠GPT-3.5本身,尽管它很强,但是它很难理解人类不同类型指令中蕴含的不同意图,也很难判断生成内容是否是高质量的结果。为了让GPT-3.5初步具备理解指令中蕴含的意图:

首先会从测试用户提交的prompt(就是指令或问题)中随机抽取一批,靠专业的标注人员,给出指定prompt的高质量答案。

然后用这些人工标注好的<prompt,answer>数据来Fine-tune GPT-3.5模型。

经过这个过程,我们可以认为GPT-3.5初步具备了理解人类prompt中所包含意图,并根据这个意图给出相对高质量回答的能力,但是很明显,仅仅这样做是不够的。
浅谈ChatGPT技术原理的个人理解

ChatGPT第二阶段-训练回报模型(Reward Model,RM)

这个阶段的主要目的是通过人工标注训练数据,来训练回报模型,也叫奖励模型。

具体而言,随机抽样一批用户提交的prompt(大部分和第一阶段的相同)。

1. 使用第一阶段Fine-tune好的冷启动模型,对于每个prompt,由冷启动模型生成K个不同的回答,于是模型产生出了<prompt,answer1>,<prompt,answer2>….<prompt,answerK>数据。

2. 之后,标注人员对K个结果按照很多标准(上面提到的相关性、富含信息性、有害信息等诸多标准)综合考虑进行排序,给出K个结果的排名顺序,这就是此阶段人工标注的数据。

3. 接下来,准备利用这个排序结果数据来训练回报模型,采取的训练模式其实就是平常经常用到的pair-wise learning to rank。

      对于K个排序结果,两两组合,形成 \binom{k}{2} 个训练数据对,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>,输出结果的质量得分,得分越高说明产生的回答质量越高。

浅谈ChatGPT技术原理的个人理解

ChatGPT第三阶段-采用强化学习来增强预训练模型的能力

本阶段无需人工标注数据,而是利用上一阶段学好的RM模型,靠RM打分结果来更新预训练模型参数。

1. 具体而言,首先,从用户提交的prompt里随机采样一批新的命令(指的是和第一第二阶段不同的新的prompt,这个其实是很重要的,对于提升LLM模型理解instruct指令的泛化能力很有帮助),且由冷启动模型来初始化PPO模型的参数。

2. 然后,对于随机抽取的prompt,使用PPO模型生成回答answer, 并用上一阶段训练好的RM模型给出answer质量评估的回报分数score,这个回报分数就是RM赋予给整个回答(由单词序列构成)的整体reward。有了单词序列的最终回报,就可以把每个单词看作一个时间步,把reward由后往前依次传递,由此产生的策略梯度可以更新PPO模型参数。这是标准的强化学习过程,目的是训练LLM产生高reward的答案,也即是产生符合RM标准的高质量回答。

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

尽管如此,我觉得第三阶段采用强化学习策略,未必是ChatGPT模型效果特别好的主要原因。假设第三阶段不采用强化学习,换成如下方法:类似第二阶段的做法,对于一个新的prompt,冷启动模型可以产生k个回答,由RM模型分别打分,我们选择得分最高的回答,构成新的训练数据<prompt,answer>,去Fine-tune LLM模型。假设换成这种模式,我相信起到的作用可能跟强化学习比,虽然没那么精巧,但是效果也未必一定就差很多。第三阶段无论采取哪种技术模式,本质上很可能都是利用第二阶段学会的RM,起到了扩充LLM模型高质量训练数据的作用。

浅谈ChatGPT技术原理的个人理解

ChatGPT能否取代Google、百度等传统搜索引擎

既然看上去chatGPT几乎无所不能地回答各种类型的prompt,那么一个很自然的问题就是:ChatGPT或者未来即将面世的GPT-4,能否取代Google、百度这些传统搜索引擎呢?我个人觉得目前应该还不行,但是如果从技术角度稍微改造一下,理论上是可以取代传统搜索引擎的。

为什么说目前形态的ChatGPT还不能取代搜索引擎呢?主要有三点原因:

1. 其一,对于不少知识类型的问题,ChatGPT会给出看上去很有道理,但是事实上是错误答案的内容,ChatGPT的回答看上去胸有成竹,像我这么没文化的基本看了就信了它),考虑到对于很多问题它又能回答得很好,这将会给用户造成困扰:如果我对我提的问题确实不知道正确答案,那我是该相信ChatGPT的结果还是不该相信呢?此时你是无法作出判断的。这个问题可能是比较要命的。

2. 其二,ChatGPT目前这种基于GPT大模型基础上进一步增加标注数据训练的模式,对于LLM模型吸纳新知识是非常不友好的。新知识总是在不断出现,而出现一些新知识就去重新预训练GPT模型是不现实的,无论是训练时间成本还是金钱成本,都不可接受。如果对于新知识采取Fine-tune的模式,看上去可行且成本相对较低,但是很容易产生新数据的引入导致对原有知识的灾难遗忘问题,尤其是短周期的频繁Fine-tune,会使这个问题更为严重。所以如何近乎实时地将新知识融入LLM是个非常有挑战性的问题。

3. 其三,ChatGPT或GPT-4的训练成本以及在线推理成本太高,导致如果面向真实搜索引擎的以亿记的用户请求,假设继续采取免费策略,OpenAI无法承受,但是如果采取收费策略,又会极大减少用户基数,是否收费是个两难决策,当然如果训练成本能够大幅下降,则两难自解。

以上这三个原因,导致目前ChatGPT应该还无法取代传统搜索引擎。

总结

本文讲述了ChatGPT的训练流程及一些个人理解,主要参考自InstructGPT的论文,ChatGPT是改进的InstructGPT,改进点主要在收集标注数据方法上有些区别,在其它方面,包括在模型结构和训练流程等方面基本遵循InstructGPT。可以预见的是,这种Reinforcement Learning from Human Feedback技术会快速蔓延到其它内容生成方向,比如一个很容易想到的,类似“A machine translation model based on Reinforcement Learning from Human Feedback”这种,其它还有很多。但是,我个人认为,在NLP的某个具体的内容生成领域再采用这个技术意义应该已经不大了,因为ChatGPT本身能处理的任务类型非常多样化,基本涵盖了NLP生成的很多子领域,所以某个NLP子领域如果再单独采用这个技术其实已经不具备太大价值,因为它的可行性可以认为已经被ChatGPT验证了。如果把这个技术应用在比如图片、音频、视频等其它模态的生成领域,可能是更值得探索的方向,也许不久后我们就会看到类似“A XXX diffusion model based on Reinforcement Learning from Human Feedback”,诸如此类,这类工作应该还是很有意义的。

炼丹路漫漫 山高路远 看世界 找自己 -- Luofan文章来源地址https://www.toymoban.com/news/detail-415935.html

到了这里,关于浅谈ChatGPT技术原理的个人理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ChatGPT】技术原理:ChatGPT怎么工作?

    目录 简介:ChatGPT的工作原理概述 Transformer 架构原理

    2024年02月08日
    浏览(37)
  • 深入理解 Flutter 图片加载原理 | 京东云技术团队

    随着Flutter稳定版本逐步迭代更新,京东APP内部的Flutter业务也日益增多,Flutter开发为我们提供了高效的开发环境、优秀的跨平台适配、丰富的功能组件及动画、接近原生的交互体验,但随之也带来了一些OOM问题,通过线上监控信息和Observatory工具结合分析我们发现问题的原因

    2024年02月12日
    浏览(35)
  • ChatGPT技术原理 第六章:对话生成技术

    目录 6.1 任务定义 6.2 基于检索的方法 6.3 基于生成的方法 6.4 评价指标 对话生成技术是指使用自然语言处理技术生成与人类语言相似的对话。在对话生成任务中,模型需要理解输入的语境、用户的意图和上下文信息,然后生成能够回答用户问题、完成任务或者与用户进行自然

    2024年02月02日
    浏览(48)
  • chatgpt的大致技术原理

    当然可以,让我们从技术层面更详细地探讨一下ChatGPT的工作原理。 数据收集与预处理: 数据收集:ChatGPT首先会从各种来源(如网页、新闻、书籍等)收集大量的文本数据。这些数据为模型提供了丰富的语言模式和表达方式,使得ChatGPT能够理解和生成各种类型的文本。 预处

    2024年02月20日
    浏览(34)
  • ChatGPT技术原理

    阶段一:有监督微调Supervised fine-tuning (SFT) 阶段二:训练回报模型(Reward Model, RM) 阶段三:使用强化学习微调 SFT 模型 ChatGPT 是由 GPT-3 迭代来的,原有的 GPT-3 可能难以从文本中学会一些 更高层次的表示 ,这就导致了 GPT-3 这样的语言模型, 很难理解用户的真实意图,经常出

    2024年02月08日
    浏览(57)
  • ChatGPT原理与技术演进剖析

    —— 要抓住一个风口,你得先了解这个风口的内核究竟是什么。本文作者:黄佳 (著有《零基础学机器学习》《数据分析咖哥十话》) ChatGPT相关文章已经铺天盖地,剖析(现阶段或者只能说揣测)其底层原理的优秀文章也已经出现,其中就包括爱丁堡大学符尧博士的文章:

    2023年04月26日
    浏览(38)
  • ChatGPT实现的技术原理有哪些?

    ChatGPT实现的技术原理 作为一种大型语言模型,ChatGPT的技术原理主要基于人工神经网络和自然语言处理技术。 ChatGPT使用了前馈神经网络(feedforward neural network)和递归神经网络(recurrent neural network)的结合来构建深度神经网络模型。这个模型包括多个隐藏层,每个隐藏层都包

    2023年04月12日
    浏览(46)
  • 深度解读 ChatGPT、技术原理(AIGC | State Of ChatGPT)

     图来自:State of GPT | BRK216HFS :  https://www.youtube.com/watch?v=bZQun8Y4L2A State of GPT | BRK216HFS [bZQun8Y4L2A]   目录 类ChatGPT产品的研发过程

    2024年02月09日
    浏览(57)
  • Webpack5入门到原理1:前言

    开发时,我们会使用框架(React、Vue),ES6 模块化语法,Less/Sass 等 css 预处理器等语法进行开发。 这样的代码要想在浏览器运行必须经过编译成浏览器能识别的 JS、Css 等语法,才能运行。 所以我们需要打包工具帮我们做完这些事。 除此之外,打包工具还能压缩代码、做兼容

    2024年01月20日
    浏览(50)
  • ChatGPT技术原理 第三章:深度学习基础

    目录 3.1 神经网络基础 3.2前向传播算法 3.3反向传播算法 3.4 优化器

    2024年02月02日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包