ChatGPT原理解读

目录

  • GPT痛点
  • 基于人类反馈的强化学习机制(ChatGPT)
    • step1:Fine-tune SFT模型
    • step2:训练Reward模型
    • step3:强化学习训练PPO模型
  • 一些技术问题猜想
    • ChatGPT的多轮对话能力
    • ChatGPT的交互修正能力

GPT痛点

GPT作为一个通用大数据训练的生成式语言模型,对于输入的prompt,它的回答往往不见得是我们希望的,可能只是它之前在海量网络页面上“看”到过的一个相关,但无用,甚至是“有毒”的内容。例如:

  • 我们的提问是: ACL会议的主题是什么?
  • 期待的回答是:ACL的会议主题是自然语言处理,包括自然语言生成,自然语言理解,…
  • 但GPT的回答可能是:ACL的会议地址在XXX,时间是XXX,… (相关但无用的回答)

因此如何让GPT的输出更靠近我们希望的回答方向,是使得GPT成为真正具有“智能”的AI工具的主要困难。


基于人类反馈的强化学习机制(ChatGPT)

ChatGPT的流程图如下:
在这里插入图片描述

step1:Fine-tune SFT模型

研究人员首先准备了一些 “prompt + 人工回答” 作为训练数据喂给了 GPT-3 模型,通过fine-tune得到SFT模型,这一步总共用到了13K的prompt数据


step2:训练Reward模型

第二步就比较关键了,这里说一句,其实想让GPT-3变成一个“听话”的模型,也可以直接通过利用 “prompt + 人工回答” 给它做微调来实现。但一方面,人工prompt和回答是很贵的,另一方面,可能需要非常多这样的人工数据才可以把模型微调好。

所以这里的Reward模型可以认为是我们造的一个“人工标注机”,我们希望它的偏好尽量靠近人的偏好;换句话说,只有当GPT给出的回答是人类希望的回答时,Reward模型才会对这个回答给出高分。

Reward模型的结构也非常简单,只需要将上面的SFT模型拿来,将最后一层embedding层换成一维线性输出层。然后把 prompt+回答A 输入到Reward模型,输出的一维标量,就是“回答A”相对于这个prompt的得分了。

有了模型结构,ChatGPT是怎么构造Reward模型的损失函数的呢?

这里也非常巧妙,研究人员首先给了一些prompt,对于每个promt,让SFT生成N个回答。这里可以把prompt记为 x x x,把这N个生成的回答记为 { y 1 , y 2 , ⋯ , y N } \{y_1,y_2,\cdots,y_N\} {y1,y2,,yN}。他们首先让人工标记员将这N个回答进行排序,从这个排序中就可以获得这N个回答两两之间的对比。比如: y 1 好于 y 2 y_1好于y_2 y1好于y2,那么我们构造的损失函数就希望 y 1 y_1 y1 在Reward模型的得分也尽量比 y 2 y_2 y2高,由此,论文中给出的损失函数公式如下:
在这里插入图片描述
其中 E ( x , y w , y l ) ∼ D [ l o g ( ⋅ ) ] E_{(x,y_w,y_l)\sim D}[log(\cdot)] E(x,yw,yl)D[log()]是cross-entropy,根据我们在 最大似然估计与交叉熵对交叉熵的介绍来看,这里是希望 σ ( r θ ( x , y w ) − r θ ( x , y l ) ) \sigma(r_{\theta}(x,y_w)-r_{\theta}(x,y_l)) σ(rθ(x,yw)rθ(x,yl)) 尽量与真实的 ( x , y w , y l ) (x,y_w,y_l) (x,yw,yl) 的情况一致。这里面用到的sigmoid函数一般是用来做二分类的。所以这里其实是将排序问题转化成二分类问题

  • y w y_w yw 好于 y l y_l yl 时:
    O b j : σ ( r θ ( x , y w ) − r θ ( x , y l ) ) → 1 Obj: \sigma(r_{\theta}(x,y_w)-r_{\theta}(x,y_l)) \rightarrow 1 Obj:σ(rθ(x,yw)rθ(x,yl))1
  • y w y_w yw 坏于 y l y_l yl 时:
    O b j : σ ( r θ ( x , y w ) − r θ ( x , y l ) ) → − 1 Obj: \sigma(r_{\theta}(x,y_w)-r_{\theta}(x,y_l)) \rightarrow -1 Obj:σ(rθ(x,yw)rθ(x,yl))1

论文还提到,也可以只选出最好的结果,然后将它与剩下的N-1个回答做对比。但实验显示,这样由于数据量少且有冗余性,模型很容易就overfit了。换成两两对比之后,就不容易出现这样的问题了


step3:强化学习训练PPO模型

PPO模型初始化也是基于上面的SFT模型,它的目标是微调SFT模型,使得微调过后的PPO模型生成的回答,在Reward模型上的得分尽量高。再结合我们上面训练的Reward模型的目标是使得它的偏好尽量靠近人的偏好,所以这里我们训得的PPO模型就是最开始想得到的“智能”模型。

这里用到了强化学习中的PPO(Proximal Policy Optimization)近端策略优化算法。众所周知,强化学习是一种根据实时反馈来优化策略的一种学习方法,我们上面训练得到的Reward模型就是在这里提供实时反馈的模型,优化目标如下:
在这里插入图片描述
这里第一项 r θ ( x , y ) r_\theta(x,y) rθ(x,y) 很好理解,就是我们希望模型生成的结果 ( x , y ) (x,y) (x,y) 在Reward模型的得分尽量高。第二部分是当前模型和初始SFT模型的KL散度,那么为什么会有这一项呢?

这里我们要简单说一下强化学习中的 on-Policy 与 off-Policy:

  • on-Policy:每次使用的 ( x , y ) (x,y) (x,y) 都是当前模型生成的结果
    缺点:更新速度慢,而且如果模型的训练出现了问题,那么采集到的数据也不好,会陷入恶性循环。
  • off-Policy:从初始模型拿到 ( x , y ) (x,y) (x,y) 后,每次更新模型都用这批数据
    优点:更新速度快,保证数据质量不会飘移

因为强化学习需要的是实时反馈,所以理想情况,我们是想用on-Policy策略的,但由于on-Policy策略有如上种种缺点,因此在PPO算法中,实际使用的是off-Policy策略。这里假设当前模型可以用分布 p ( x ) p(x) p(x)表示,初始模型用分布 q ( x ) q(x) q(x)表示,那么根据下图推导:

在这里插入图片描述
当我们将策略从 on-Policy 转为 off-Policy,想要保持优化目标不随之改变太多,就要求 q ( x ) q(x) q(x) 尽量靠近 p ( x ) p(x) p(x)。而KL散度正是衡量两个分布之间的差距的,因此需要在loss func中减去这一项,以使得 off-Policy 策略有效。

loss func中的第三项是加上了原始预训练LM模型的目标函数,这是因为如果只有对 r θ ( x , y ) r_\theta(x,y) rθ(x,y)的约束,那么极端情况下,找到的 θ \theta θ 可以是使得生成的任意 y y y 都满足 r θ ( x , y ) r_{\theta}(x,y) rθ(x,y) 尽量大的 θ \theta θ,而这样生成的 y y y 可能是没有意义的句子,甚至是乱码


到这里就介绍完了ChatGPT的算法思路。可以看出ChatGPT能够取得巨大的成功,一方面是因为GPT-3本身已经很强大了,它虽然输出的结果有些不尽如人意,但它是“有能力”输出好的回答的。只有在这样的基础上,我们再训练打分模型才有意义。另一方面,研究人员利用了强化学习的思路,将人工偏好注入了模型,使得经过调整的模型更知道如何给出人类想要的回答。

一些技术问题猜想

在实际使用当中,我们发现ChatGPT不仅仅是回答比以前更“智能”,还在其他方面出现了令人惊喜和意外的效果,由于原文中没有对这部分做详细阐述,以下是一些猜想:

ChatGPT的多轮对话能力

在传统的对话系统中,多轮对话中的省略,指代和话题一致性一直是比较难以解决的问题。但ChatGPT在这方面的表现非常令人惊讶。以下是几个可能的猜想:

  1. 原始的数据当中就有对话数据,例如微调时,用到的数据里面有一部分是few-shot数据,这个里面就蕴含了对话信息
  2. 模型的宽度达到了8072,远超一般多轮对话的总长度。所以只要在一次对话框内,每轮都将之前所有的问答信息+本轮提问输入到模型,就能实现类似多轮对话的效果

ChatGPT的交互修正能力

这也是ChatGPT表现出的超乎预料的一种能力,在对话过程中对之前的问题或者回答进行修正,ChatGPT都可以给出对应反馈。由于可以排除实时更新的可能,因为新开一轮对话,同样的错误ChatGPT还有可能会犯。因此源头可能还是在大规模语言模型的历史信息处理能力上。

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

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

相关文章

ChatGPT 基地

大家好,我是贺同学。 一直以来密切关注 ChatGPT 的趋势,最近相关的话题可谓是热度不减,并且相关的付费社群已经有雨后春笋般冒出来很多,但我最近发现一个比较独特的星球。 在这个星球里面,大家不搞噱头,而是…

关于安卓以及微软用户chatgpt上一篇文章如今第五点无法正常进入更新解决方法以及附加本地部署

目录 一、问题出现: 1、问题: 原因: 二、解决办法(本地部署chatgpt) 1、解决(国内网络使用真的chatgpt并非镜像)一次部署终生使用 第一步: ​编辑第二步: 三、实现结…

chatgpt赋能python:Python手机App开发:打包你的Python代码并在Android或iOS上运行

Python 手机App开发:打包你的Python代码并在Android或iOS上运行 Python是当今最受欢迎的编程语言之一,经过了十多年的发展,其用户群体已经非常庞大,和诸多行业广泛应用。从网站开发到机器学习和Data Science,Python都…

ChatGPT:如何使用正在改变一切的 AI 聊天机器人

转载自ChatGPT: How to use the AI tool thats changing everything | Digital Trends DownLoad 个人中心 ChatGPT 继续通过AI 生成的内容让互联网眼花缭乱,从一个新颖的聊天机器人转变为一项推动下一个创新时代的技术。不过,并不是每个人都参与其中&…

谷歌或被抛弃!ChatGPT 引爆手机市场新一轮洗牌:Android 手机销冠三星30亿美元大单欲改投 Bing...

点击上方“AI遇见机器学习”,选择“星标”公众号 第一时间获取价值内容 整理 | 褚杏娟 核子可乐 今年三月,谷歌员工突遭意外打击:韩国消费电子巨头三星正考虑用微软 Bing 取代谷歌搜索,作为其设备上的默认搜索引擎。 以 New Bing …

利用ChatGPT进行表格的数据分析!

第一步:既然是分析表格数据,我们就先让GPT来生成一组表格数据,提问问题如下,你也可以自己发挥 请给我生成10组表格数据,姓名,年龄,基本工资,全勤奖励,绩效奖金&#xff0…

chatgpt帮你制作excel表格

场景: 让chatgpt帮你制作工作表格方法 输入你的需求,让chatgpt帮你解答逐步添加需求

ChatGPT辅助处理excel表格数据

选择使用方法 找现成的工具。试了两个,有各种问题。比如比如北大团队出品的ChatExcel等。我的表格列比较多,上传文件后需要砍掉一部分。输入几个命令以后就识别不了了。即使识别到了,输出也受限制,还不如手工处理。另外&#xff…

让ChatGPT来制作Excel表格,ChatGPT实现文本和表格的相互转换

Office 三套件可以说是现代办公族必备的办公工具。其中,Excel 因为内置的计算函数、VBA 宏等高级功能又成为了非专业人士最头疼的 Office 组件。非财务专业人士,估计平常会用的 Excel 函数仅限于 SUM(), AVERAGE() 等,甚至这些都是通过界面点…

使用ChatGPT处理Excel表格-终极指南

ChatGPT是由OpenAI开发的人工智能聊天机器人,可用于各种Excel任务,以提高您的办公效率,无论您是会计师、金融分析师、经理、管理员还是其他企业专业人士。 我们将讨论ChatGPT在Excel中可以帮助您的顶级方法。您会惊叹于使用ChatGPT将办公室在…

这么方便吗?用ChatGPT生成Excel(详解步骤)

文章目录 前言使用过 ChatGPT 的人都知道,提示占据非常重要的位置。而 Word,Excel、PPT 这办公三大件中,当属 Excel 最难搞,想要熟练掌握它,需要记住很多公式。但是使用提示就简单多了,和 ChatGPT 聊聊天就…

ChatGPT使用技巧—如何快速制作表格?

一、背景: 在学习或工作中,时常会需要做一些表格进行数据统计、分析,通常我们会用word或者excel做出表格,然后把数据一个个复制进去,非常慢,用了ChatGPT之后,你会发现工作会变得如此简单…

使用ChatGPT做简单Excel表格及数据分析

解锁 ChatGPT 表格能力 如果我们想用ChatGPT做一些简单的表格 或者想让他具备编辑分析能力 只需要在提问的时候告诉 ChatGPT:请以表格的形式展示回复的内容 这么说... 可能有点抽象 下面我们就用一个完整的例子展开学习一下 举例 假如我们拿到了下面这组数据 希望…

Chatgpt使用技巧(一):Chatgpt处理python+excel+tableau的技巧。

#分享一个使用chatgpt处理pythonexceltableau的技巧。 首先需要一个chatgpt的账号,如果没有的话可以在csdn中使用。 其次(图一)中是我建的excel样本。 我通过询问(图二)chatgpt获取python跑取excel的代码。 然后绘制…

chatGPT是什么?最新需要了解的都在这

ChatGPT是什么? ChatGPT是一种基于人工智能的聊天机器人。它能够使用自然语言处理技术,与人类进行交互,并回答各种问题或提供帮助。ChatGPT的目的是为了让用户更容易地获取所需信息,并进行沟通。 ChatGPT是一款基于人工智能技术的…

ChatGPT更新说明(20230524)

原文传送门:ChatGPT — Release Notes 更新说明(5月24日) 简要:iOS应用在更多国家可用,Alpha测试中的共享链接,Bing插件,iOS上的历史记录禁用 ChatGPT iOS应用在更多国家可用 好消息&#xf…

突发!ChatGPT!王炸级更新!!!

ChatGPT宣布推出插件功能,赋予ChatGPT使用工具、联网、运行计算的能力。 有多牛逼,举例来说,之前的 ChatGPT 如果相当于 iPhone手机的话,现在的插件就相当于苹果的 App Store。 直接解决了ChatGPT原有不能联网的问题,原…

[技术杂谈][chatgpt]chatgpt相关开源代码地址汇总

1、有预训练模型且可以训练自己的数据集: OpenChatKit: GitHub - togethercomputer/OpenChatKitContribute to togethercomputer/OpenChatKit development by creating an account on GitHub.https://github.com/togethercomputer/OpenChatKit dolly:…

iOS版ChatGPT初体验,还支持语音输入 !

北京时间5月19日凌晨,OpenAI官方推出了iOS版ChatGPT。 据介绍,iOS版ChatGPT供用户免费使用,并在不同设备(移动端和网页端)上同步聊天历史。同时,它还集成了开源语音识别系统Whisper,可以实现语音…

ChatGPT迎来史诗级iPhone时刻!IOS版ChatGPT首发体验!免费、响应快、新增语音识别

OpenAI昨晚正式发布了ChatGPT的iOS版App,官方版ChatGPT正式杀入移动手机端(各类山寨App恐将失业[dog])。 现在你已经可以在App Store中下载该应用了,这款App的名称为“OpenAI ChatGPT”。 我第一时间也下载体验了,让…