ChatGPT作为最接近强人工智能的系统,具有强大的信息理解和信息抽象总结能力,在这个信息过剩的时代,为我们提供了一个非常好的智能辅助工具。在我们日常的工作中,怎么充分的利用ChatGPT等类似的智能系统,会给我们生活和工作带来不一样的体验。

后面我们将从chatGPT算法流程作为切入点,分别介绍ChatGPT背后的三个深度学习模型,正是这三个基础的模型铸就了ChatGPT强大的文本信息理解表达能力。

书归正传,让我们来体验下chatGPT大道至简的神奇算法。

首先从数据库中采样一批prompt提示,然后让人工标注人员编写对应prompt答案。我们利用<prompt,prompt答案>来微调预训练好的GPT-3模型,微调后的模型SFT模型。
第二步,随机采样的一个prompt,让我们微调好的GPT-3模型预测多个答案【<prompt, 答案1>, <prompt, 答案2>…】,人工对比排序同一个prompt好坏情况,然后排序。在利用微调后的GPT-3模型构造一个RM奖励模型,利用人工标注答案顺序,训练RM奖励模型,类似于LambdaRank思想。
第三步,构造一个双头PPO模型,对于一个新采样的prompt提示,生成对应的答案,然后利用RM奖励模型,评测当前生成答案的得分score,并用score反向更新优化PPO模型。
SFT监督模型
SFT模型是微调后的GPT模型,说到GPT模型就不能介绍下大名鼎鼎的Transformer模型,Transformer模型是一个典型的encode-decode模型结构,模型是为了解决LSTM等序列生成模型训练速度慢的问题。

GPT模型和BERT模型是一对孪生兄妹,BERT模型使用了Transformer模型的encoder部分,而GPT模型使用的正好是Transformer模型的decoder部分(改造去掉了第二层multi-head attention),为什么GPT要使用decoder部分而不是encoder部分呢?这就要说到GPT设计之初要解决的问题,和BERT用来抽取文本序列信息不同,GPT生来就是为了生成序列,为了结合前序提示,生成我们后续的答案,所以我们要用Masked Attention,不能让模型看到答案,这就是GPT和BERT的本质区别。

GPT模型结构如下图所示,GPT-3将模型层数升级到了百层,模型参数升级到几千亿,在这千亿的参数中,总会储存想要的信息。

RM模型
如果我们是有SFT模型,那模型对于我们输入的prompt提示或者问题,是不会给出我们满意答案的,为什么呢?因为SFT模型训练的目标并不是让人类满意,所以他诞生和成长之初,压根也没有打算让人类满意,他训练自身的目的就是更大概率的生成下一个字符,这显然不能完全代表人类的喜好。

那我们怎么解决这样的一个问题呢?那就构造一个可以代替人来评估生成结果好坏的RM模型,这个模型结构和SFT模型是完全一样的,只不过将输出层改造成输出张量的模型层。对于同一个prompt输出的多个答案,人工评测排序后,使用lambdarank的思想,优化RM奖励模型。RM模型学习的就是对于一个prompt,人类对答案的喜好程度。

PPO模型
上面我们花了这么大力气,训练了代表人类喜好的RM模型,这样一个喜好函数有什么用呢?这就要说到我们的PPO模型,我们之前微调的SFT模型,虽然也能够生成prompt answer,但是这是一个没有感情的answer,完全是根据海量文本中上下文共现概率生成的,没有加入任何的人类喜好和意志。

怎么让这个SFT模型按照人类的喜好,生成人类喜欢的prompt呢?这就我们RM模型的作用,RM模型通过上一步人工排序标注的方式,学习到了每对<prompt, prompt answer>人类评测的好坏程度。我们利用SFT模型对输出进行改造,构造一个双头PPO模型,模型一头输出一个张量,代表生成序列每个元素的价值value;另一头将输出映射成prompt answer词典答案。

我们将<prompt, prompt answer>输入到RM模型中,获得一个评估当前prompt对的奖励R,然后用R作为奖励,反向更新每个元素的价值value,这也就是所谓的PPO强化学习算法。

以上就是ChatGPT基本的模型算法和背后的三个主要的算法模型,其实模型基本的结构和背后的算法并是不第一次提出和应用,但是ChatGPT创新的应用,将强化学习和NLP文本生成很好的结合在了一起,将生成的文本序列融入了人类的喜好,生成的内容更像是一个人在回答我们的prompt,这也就是为什么生成的内容,让我们看起来更舒服更自然。

ChatGPT背后的模型三兄弟相关推荐

  1. 解析 ChatGPT 背后的工作原理

    来源:大数据与机器学习文摘 本文约5000字,建议阅读10分钟本文解释了ChatGPT背后是如何工作的. ChatGPT 是 OpenAI 发布的最新语言模型,相较于前身 GPT-3 有显著提升.与许 ...

  2. 送RTX 4090!黄仁勋对话ChatGPT背后的英雄,GTC 2023 AI大会来了!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 大家好,我是 Amusi!今天给大家介绍的是 GTC 2023 .GTC 是全球人工智能领域行业盛会,也是规 ...

  3. 抱抱脸:ChatGPT背后的算法——RLHF | 附12篇RLHF必刷论文

    文 | 卖萌酱 大家好,我是卖萌酱. 前几天,抱抱脸公司(HuggingFace)发表了一篇博客[1],详细讲解了ChatGPT背后的技术原理--RLHF. 笔者读过之后,觉得讲解的还是蛮清晰的,因此 ...

  4. 解读ChatGPT背后的技术重点:RLHF、IFT、CoT、红蓝对抗

    近段时间,ChatGPT 横空出世并获得巨大成功,使得 RLHF.SFT.IFT.CoT 等这些晦涩的缩写开始出现在普罗大众的讨论中.这些晦涩的首字母缩略词究竟是什么意思?为什么它们如此重要?我们调查 ...

  5. 解读 ChatGPT 背后的技术重点:RLHF、IFT、CoT、红蓝对抗

    来自:Hugging Face 近段时间,ChatGPT 横空出世并获得巨大成功,使得 RLHF.SFT.IFT.CoT 等这些晦涩的缩写开始出现在普罗大众的讨论中.这些晦涩的首字母缩略词究竟是什么意 ...

  6. ChatGPT背后的标注人:在非洲只管「鉴黄」!时薪不到两美元...

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入->CV微信技术交流群 转载自:机器之心 | 选自<TIME> 最先进的 AI 技 ...

  7. 你知道ChatGPT背后的核心技术是什么吗

    你知道ChatGPT背后的核心技术是什么吗 更新:GPT-4原理:https://yunyaniu.blog.csdn.net/article/details/129573291?spm=1001.2 ...

  8. ChatGPT背后的AI背景、技术门道和商业应用(万字长文,建议收藏)

    作者:京东科技 李俊兵 各位看官好,我是球神(江湖代号). 自去年11月30日ChatGPT问世以来,迅速爆火出圈. 起初我依然以为这是和当年Transformer, Bert一样的"热点& ...

  9. 震惊!火爆全网的ChatGPT背后使用的数据库居然是……

    摘要:ChatGPT承认了自己背后使用的数据库是Cassandra. OpenAI最近发布的AI驱动的智能聊天机器人ChatGPT在互联网上掀起了一阵风暴,热衷于尝试这一新AI成果的网民不在少数.Ch ...

最新文章

  1. HbuilderX中的git的使用 git HbuilderXgit HbuilderX 使用git
  2. Codeforces 833B 题解(DP+线段树)
  3. spring el表达式 if else_Spring 获取单例流程(二)
  4. 关于placement new 和 placement delete的重载,以及basic_string重载new()实例
  5. 华为等上榜全球100大最具影响力企业;猫扑关闭发帖功能;亚马逊要给逾50万名员工加薪 |极客头条...
  6. python宽度优先搜索算法并输出路径
  7. 蓝桥杯 ALGO-38 算法训练 接水问题
  8. linux less 阻塞输出,linux – `less`命令显示输出所用的时间
  9. 人工智能发展中面临的问题有哪些?
  10. mysql实验数据库报告_MySQL数据库技术》实验报告模板
  11. 电商系统购物车流程图
  12. ios python 越狱_iOS越狱--USB连接SSH
  13. ADAU1860调试心得(13)DSP实现滤波器算法
  14. Mac 不能将项目xxx移到废纸篓,因为它已打开
  15. 基于python的个人博客系统的设计开题报告_基于JavaSSM框架的个人博客系统设计与实现开题报告...
  16. 身体指标的测试软件,Runtastic Libra体重秤(身体指标测量)
  17. LibreCAD for windows 编译
  18. 袁萌:Linux机器人来我家
  19. MySQL 中 不等于 会过滤掉 Null 的问题
  20. win10系统 ProgramData在哪里?怎么找

热门文章

  1. 使用.htaccess 开启gzip 缓存文件 网页 提高速度 和 .htaccess文件用法集锦
  2. java后端获取时间
  3. python打开autocad
  4. iphone4S 怎么激活?
  5. PHP函数计算中英文字符串长度的方法
  6. 网络错误 —未连接到互联网
  7. Nginx proxy、rewrite、alias配置
  8. 自动上传视频到B站和西瓜视频
  9. mysql账号认证_浅谈MySQL用户账号认证方式
  10. streamx如何支持我司线上实时作业