庆云古诗词

庆云古诗词

chat gpt 优化算法 ChatGPt算法

互联资讯 0

自从我那篇BERT通俗笔记一经发布,然后就不断改、不断找人寻求反馈、不断改,其中一位朋友倪老师(之前我司NLP高级班学员现课程助教老师之一)在谬赞BERT笔记无懈可击的同时,给我建议到,“后面估计可以尝试尝试在BERT的基础上,讲一讲prompt学习了”,然后我看了下prompt学习,一看果然牛..

再然后,当我还在各种改BERT笔记的时候,12月初突然出来了一个ChatGPT刷爆朋友圈,即便很多之前不接触AI的朋友也在问ChatGPT这种类似聊天机器人却远胜一般聊天机器人各种问题(上一次出现这种盛况的还是16年的AlphaGo)。

据我观察,大家问ChatGPT的问题千奇百怪,比如给他任意一段代码,要求它解释或添加对应的注释(这可不是单纯的翻译问题,需要有类似人的提炼、概括、总结能力),甚至有人让其根据要求排查代码bug,要知道此前debug想寻求帮助?

  • 要么问人(问熟人用社交软件,问陌生人则类似那种问答网站,持续问一般得付费,毕竟没人乐意持续免费答疑大量技术难题)
  • 要么Google搜有没人遇到类似的问题(但别人遇到的问题很难与你的百分百一致)

所以ChatGPT就相当于你写代码或各类问题的私人顾问,而这个私人顾问能瞬间、精准理解你的意图,不会让你像用以前那种聊天机器人经常觉得智障甚至对牛弹琴,加之其背后依托的是人类级百科全书式的资料库,所以有人惊呼:ChatGPT会不会替代Google这类搜索引擎。

虽然大部分技术者对待ChatGPT还是比较冷静的,毕竟它给的答案不像权威技术专家那样具备足够的公信力,也不像Google给出来源从而不能比较好的验证其正确程度(注意我这里的措辞:“不能比较好的”、“正确程度”,^_^),但最近遇到的几件事改变了我的一些看法

  1. 这两天我刷到一条新闻:微软欲用 ChatGPT 扶必应“上位”,对抗 Google,导致即便很多技术从业者也不一定淡定了
  2. ChatGPT直接让其所在的公司OpenAI估值翻倍,而我司七月在线的最新一期NLP大课,NLP11也加入了ChatGPT的原理解析
  3. 目前关于ChatGPT中文的资料里,真正能让人一看就懂的非常非常少,当少数文章具备比较好的可读性之后,你又会发现一旦涉及算法细节就千篇一律的泛泛而谈,如果不是泛泛而谈的,则更多堆砌概念和公式 总之中文资料里,可能因为【【淘密令】】/ChatGPT刚出来不久的缘故,兼顾可读性和细节性的文章少的可怜

考虑到ChatGPT非一蹴而就,而是经过了各个前置技术的发展、迭代、结合而成,故逐一阐述

  • 2017年之前早已有之的一些数学/AI/RL等基础技术,比如微积分、概率统计、最优化、策略梯度、TRPO算法(2015年提出)
  • 2017年6月OpenAI联合DeepMind首次正式提出的RLHF,试图解决的问题是,在奖励函数不够明确的情况下,通过基于人类对事物比较的偏好而非绝对奖励值训练奖励函数,最后通过TRPO算法迭代策略
  • 2017年7月的OpenAI团队提出的对TRPO算法的改进:PPO算法 关于RL所需的微积分/概率统计基础修订在了《概率统计极简入门:通俗理解微积分/期望方差/正态分布前世今生(23修订版)》 关于RL所需的最优化基础修订在了《一文通透优化算法:从梯度下降、SGD到牛顿法、共轭梯度(23修订版)》 关于RL、策略梯度、TRPO、PPO则写在了此文《强化学习极简入门:通俗理解MDP、DP MC TC和值函数、策略梯度、PPO》 且在这篇RL极简入门笔记之前,99%的文章都不会把PPO算法从头推到尾,该文把PPO从零推到尾,按照“RL-策略梯度-重要性采样(重要性权重)-增加基线(避免奖励总为正)-TRPO(加进KL散度约束)-PPO(解决TRPO计算量大的问题)”的顺序逐步介绍每一步推导 ?
  • 2017年6月的Transformer/Self-Attention 关于【【微信】】/self-attention,除了本文,更可以看下上篇《BERT通俗笔记:从Word2Vec/Transformer逐步理解到BERT》 ?
  • 2018年6月的GPT(Generati【【微信】】rmer),其关键构成是基于Transformer-Decoder的Masked Self-Attention
  • 2019年2月的融合prompt learning的GPT2,prompt learning的意义在于小样本也能出大效果 关于prompt learning,本文后续会进一步完善
  • 2020年5月的GPT3,参数规模到了1750亿,且你可能没想到的是,这一年的9月份OpenAI已经开始研究GPT3与RLHF的结合了,且此时用的策略优化方法为PPO
  • 2022年1月的思维链技术(Chain of Thought,简称CoT) ?
  • 2022年3月的【【淘密令】】:GPT3 + RLHF + PPO,且更多融合了Instruct Learning,和prompt learning的核心区别在于Instruct Learning会提供更多的指令引导模型输出更符合预期的结果,例如 提示学习:给女朋友买了这个项链,她很喜欢,这个项链太____了 指示学习:判断这句话的情感:给女朋友买了这个项链,她很喜欢。选项:A=好;B=一般;C=差
  • 2022年11月的ChatGPT:语言模型层面的核心架构是GPT3.5(基于Transformer-Decoder的Masked Self-Attention且融合prompt Learning) + RLHF + PPO

如你所见,自从1.6日开始写ChatGPT笔记,1.15日发布本文,但为把ChatGPT背后所涉及的关键技术阐述细致、透彻,故本文越写越长,长到最后成了一个系列,有的内容抽离出去独立成文,有的还待后续不断完善,预计2月底完全成型

再次强调说明下,本第一部分在23年2.10日有个重要修改

  • 2.10日之前,考虑到本文的主旨核心ChatGPT用到了RLHF和PPO,所以本文的第一部分从强化学习讲到PPO算法,毕竟虽然只是想重点介绍下PPO,但写到最后还是把PPO所有相关的前置知识都细致介绍了个遍,不然,总感觉有细节没交待而不够透彻
  • 2.10日之后,又考虑到有些朋友可能对RL细节有所了解,或者更多希望整体了解ChatGPT整体架构而暂不细究其所用的策略迭代算法PPO的前置技术、RL细节

综上,为兼顾两者,且加之为避免本文篇幅过长而影响完读率,故把下面原先第一部分的大部分内容抽取出来放到了新一篇RL笔记里进一步细致阐述:强化学习极简入门:通俗理解MDP、DP MC TC和Q学习、策略梯度、PPO

第一部分 RL基础:什么是RL与MRP、MDP 1.1 入门强化学习所需掌握的基本概念

  • 1.1.1?什么是强化学习:依据策略执行动作-感知状态-得到奖励
  • 1.1.2 RL与监督学习的区别和RL方法的分类

1.2 什么是马尔科夫决策过程

  • 1.2.1 MDP的前置知识:随机过程、马尔可夫过程、马尔可夫奖励
  • 1.2.2 马尔可夫决策过程(MDP):马尔可夫奖励(MRP) + 智能体动作因素

第二部分 RL进阶之三大表格求解法:DP、MC、TD 2.1 动态规划法

  • 2.1.1 什么是动态规划
  • 2.1.2 通过动态规划法求解最优策略

2.2 蒙特卡洛法 2.3 时序差分法及与DP、MC的区别

第三部分 价值学习:从n步Sarsa算法到【【微信】】、DQN 3.1 TD(0)控制/Sarsa(0)算法与TD(n)控制/n步Sarsa算法 3.2 【【微信】】

  • 3.2.1 重要性采样:让同策略完成到异策略的转变
  • 3.2.2?Sarsa算法与【【微信】】更新规则的对比

3.3 DQN

第四部分 策略学习:从策略梯度、Actor-Criti到TRPO、PPO算法 4.1 策略梯度与其突出问题:采样效率低下

  • 4.1.1 什么是策略梯度和梯度计算/更新的流程
  • 4.1.2 避免采样的数据仅能用一次:重要性采样(为采样q解决p从而增加重要性权重)

4.2 优势演员-评论家算法(Ad【【微信】】):为避免奖励总为正增加基线 4.3 基于信任区域的TRPO:加进KL散度解决两个分布相差大或步长难以确定的问题

如上所述,PPO算法是针对TRPO计算量的大的问题提出来的,正因为PPO基于TRPO的基础上改进,故PPO也解决了策略梯度不好确定学习率Learning?rate?(或步长Step?size)?的问题

毕竟通过上文,我们已经得知

  1. 如果?step?size?过大,?学出来的?Policy?会一直乱动,不会收敛;但如果?Step?Size?太小,想完成训练,我们会等到地老天荒
  2. 而PPO?利用?New?Policy?和 Old?Policy?的比例,限制了?New?Policy?的更新幅度,让策略梯度对稍微大点的?Step?size?不那么敏感

具体做法是,PPO算法有两个主要的变种:近端策略优化惩罚(PPO-penalty)和近端策略优化裁剪(PPO-clip),其中PPO-penalty和TRPO一样也用上了KL散度约束。

近端策略优化惩罚PPO-penalty的流程如下

  1. 首先,明确目标函数,通过上节的内容,可知咱们需要优化,让其最大化

    『注:如果你想仔细抠接下来各种公式但一上来就被上面这个弄迷糊了,说明还是需要先看下上文说过的这篇RL极简入门的前半部分内容,而一旦踏入RL,便得做好两万五千里的准备,当然,对于不需要深究技术细节的比如投资人/非技术人士,PPO的公式不用太抠,下文会讲其在ChatGPT中是如何运用的

  2. 接下来,先初始化一个策略的参数,在每一个迭代里面,我们用前一个训练的迭代得到的actor的参数与环境交互,采样到大量状态-动作对,?根据交互的结果,估测

  3. 由于目标函数牵涉到重要性采样,而在做重要性采样的时候,不能与相差太多,所以需要在训练的时候加个约束,这个约束就好像正则化的项一样,是?与?输出动作的 KL散度,用于衡量??与??的相似程度,我们希望在训练的过程中,学习出的??与??越相似越好 所以需要最后使用 PPO 的优化公式:

    当然,也可以把上述那两个公式合二为一『如此可以更直观的看出,PPO-penalty把KL散度约束作为惩罚项放在了目标函数中(可用梯度上升的方法去最大化它),此举相对TRPO减少了计算量』

上述流程有一个细节并没有讲到,即是怎么取值的呢,事实上,是可以动态调整的,故称之为自适应KL惩罚(adapti【【微信】】),具体而言

  • 先设一个可以接受的 KL 散度的最大值 假设优化完以后,KL 散度值太大导致,意味着?与差距过大(即学习率/步长过大),也就代表后面惩罚的项惩罚效果太弱而没有发挥作用,故增大惩罚把增大
  • 再设一个 KL 散度的最小值 如果优化完以后,KL散度值比最小值还要小导致,意味着?与??差距过小,也就代表后面这一项的惩罚效果太强了,我们怕它只优化后一项,使与??一样,这不是我们想要的,所以减小惩罚即减小

总之,近端策略优化惩罚可表示为

如果觉得计算 KL散度很复杂,则还有一个?PPO2算法,即近端策略优化裁剪PPO-clip。近端策略优化裁剪的目标函数里面没有 KL 散度,其要最大化的目标函数为(easy RL上用代替,为上下文统一需要,本笔记的文字部分统一用)?

整个目标函数在这个大括号里有两部分,最终对比两部分那部分更小,就取哪部分的值,这么做的本质目标就是为了让和可以尽可能接近,不致差距太大。

换言之,这个裁剪算法和KL散度约束所要做的事情本质上是一样的,都是为了让两个分布之间的差距不致过大,但裁剪算法相对好实现,别看看起来复杂,其实代码很好写

回到公式,公式的第一部分我们已经见过了,好理解,咱们来重点分析公式的第二部分

  • 首先是括号里的部分,如果用一句话简要阐述下其核心含义就是:如果和之间的概率比落在范围和之外,将被剪裁,使得其值最小不小于,最大不大于
  • 然后是括号外乘以,如果大于0,则说明这是好动作,需要增大,但最大不能超过;如果小于0,则说明该动作不是好动作,需要减小,但最小不能小过

最后把公式的两个部分综合起来,针对整个目标函数

  • 如果大于0且大于 则相当于第二部分是,和第一部分对比 取更小值当然是的截断值:??
  • 如果大于0且小于 则相当于第二部分是,和第一部分对比 取更小值当然是原函数值:??

反之,如果小于0,则最终目标函数的取值为了更小则和大于0时反过来,毕竟加了个负号自然一切就不同了,为方便初学者一目了然,咱们还是把计算过程列出来,即

  • 如果小于0且大于 则相当于第二部分是,和第一部分对比 取更小值当然是原函数的值:?
  • 如果小于0且小于 则相当于第二部分是,和第一部分对比 取更小值当然是的截断值:

虽然RL理论上虽不需要大量标注数据,但实际上它所需求的reward会存在缺陷:

  1. 比如游戏AI中,reward的制定非常困难,可能要制定成百上千条游戏规则,这并不比标注大量数据来得容易,又比如自动驾驶的多步决策(se【【微信】】)场景中,学习器很难频繁地获得reward,容易累计误差导致一些严重的事故

  2. 再比如聊天机器人方面,不好定义什么是好的对话、什么是不好的对话,当然,对此可以收集很多人类的对话当做范例,如此,模仿学习思路下的从人来反馈中学习(对应论文为:Deep Reinforcement Learning from Human Preferences 2017,简称RLHF)应运而生 RLHF试图解决的问题是,在奖励函数不够明确的情况下,通过基于人类对事物比较的偏好而非绝对奖励值训练奖励函数

模仿学习的思路是不让模型在人类制定的规则下自己学习,而是让模型模仿人类的行为。而逆强化学习就是模仿学习的其中一种,何谓逆强化学习呢?

  • 原来的强化学习里,有En【【微信】】和Reward Model(由奖励函数推出什么样的策略/动作是最好的),但逆强化学习没有奖励函数,只有一些人类/专家的示范,怎么办呢
  • 可以通过人类标注数据训练得到Reward Model(相当于有了人类标注数据,则相信它是不错的,然后反推人类因为什么样的奖励函数才会采取这些行为)
  • 有了奖励函数之后,就可以使用一般的强化学习的方法去找出最优策略/动作

关于RLHF,你可能会看到有些文章说是【【微信】】epMind推出的,有些文章呢,说是OpenAI推出的,莫衷一是,实际上RLHF最早于2017年6月由OpenAI联合【【微信】】epMind一块推出,对应的论文为《Deep Reinforcement Learning from Human Preferences》

当让一个强化学习智能体探索环境并与之交互(比如Atari游戏),RLHF的核心步骤如下图所示:

  1. 首先,智能体的一对1-2秒的行为片段定期地回馈给人类操作员,人类基于偏好对智能体的行为作出某种偏好性的选择评判
  2. 接着,人类这种基于偏好的选择评判被预测器(reward predictor)来预测奖励函数
  3. 智能体通过预测器预测出的奖励函数作出更优的行为(毕竟智能体要最大化奖励嘛)

再之后,OpenAI团队通过下述两篇论文进一步阐述了RLHF

  • Fine-Tuning Language Models from Human Preferences?(Zieglar et al. 2019) 在Reward model的训练中,我们需要人的参与,human labelers给policy模型生成的文本打分,这个分数作为reward model学习的标签 Reward mode训练好后,那么在训练【【微信】】时,Reward model便可以完全取代human labeler打分,分数作为信号传给【【微信】】,再利用OpenAI默认的策略优化算法PPO来训练
  • Learning to summarize with human feedback?(Stiennon et al., 2020) 如你所见,OpenAI团队在2020年9月的这篇论文里就已经提出了类似【【淘密令】】/ChatGPT的训练模式: 1 根据人来标注数据微调监督模型 2 训练一个奖励函数(下文会详述reward的这个损失函数,这里暂且做个粗略理解,即相当于reward不再是人直接给了,而是用高质量标注训练一个好的reward模型) 3 有了reward,接下来便可以通过PPO优化原始监督模型的策略(下文也会详细阐述这个公式)

再之后?再之后经过后续一系列的工作,最终OpenAI于2022年3月份通过这篇论文《Training language models to follow instructions with human feedback》提出了ChatGPT的前身――InstructGPT(下文详述),发现没有,没有一个好的工作是一蹴而就的

在上一篇BERT笔记中,我们已经了解到:GPT是“Generati【【微信】】”的简称,从名字看其含义是指的生成式的预训练。

由于Decoder具备文本生成能力,故作为侧重生成式任务的GPT选择了Transformer Decoder部分作为核心架构

不过,与原始的Transformer Decoder相比,GPT所用的结构删除了Encoder-Decoder Attention,只保留了多头注意力层Multi-Head Attention层和前馈神经网络Feed forward层,最后再加上求和与归一化的前置LN层 + 残差,其中的关键便是这个Masked Self-Attention

所谓自注意力,即指当我们需要用到自注意力编码单词的时候,会按下面几个步骤依次处理(配图来自此文)

  1. 为每个单词路径创建Query、Key、Value,具体做法就是每个单词的表示向量和对应的权重矩阵()做矩阵乘法
  2. 对于每个输入token,使用其Query向量对其他所有的to

    chatgpt注册邮箱会封号吗 ChatGPT防止封号的注意事项

    注册chess的邮箱,statista注册邮箱,corp邮箱注册,cl注册邮箱

    最近,ChatGPT大面积封号的消息冲上微博、知乎热搜榜,亚洲则成为重灾区。不仅是免费用户,多数Plus会员也受到了影响。其实,上个月ChatGPT就因为数据泄露问题宕机过十几个小时,使得国内外一大群重度用户哀声哉道。

    不少网友表示,仅用了几个月的时间便对ChatGPT产生了重度依赖症,突然间不让用了对搜索资料、写论文、翻译英文资料、文章润色、撰写文案、开发代码等造成了严重影响,感觉自己就像被斩断手臂的“杨过”啥招式都使不出来了,瞬间失去了武功~

    求人不如求己,下面分享3个自救方法,希望可以帮助大家顺利渡过难关。

    1、写申诉信

    这是目前公认最有效方法之一,并且很多用户通过写一封与声俱下的申诉信,发送给Open AI(【【邮箱】】)竟然奇迹般解封了。当然,这个效果不是100%有效,这要看你的表述能力了。

    下面这段是网友提供的解封率较高的英文模版,有需要的可以照着来一份试试。

    Dear ChatGPT Support Team.

    I hope this email finds you well. My name is xxxxx(写上你的英文名字), and I am writing to appeal for the remo【【微信】】PT account (username: 写上ChatGPT账户名字). I belie【【微信】】n mistakenly flagged and banned due to suspicious acti【【微信】】, which I suspect were the result of unauthorized access and misuse.

    I recently disco【【微信】】s compromised, and I ha【【微信】】t it was accessed and misused by someone else without my knowledge or consent. I deeply regret any incon【【微信】】 this may ha【【微信】】 to the ChatGPT community and would like to assure you that I had no part in the acti【【微信】】 that led to the ban.

    To resol【【微信】】e my account, I ha【【微信】】essary steps to secure my account by changing my password and enabling two-factor authentication. I kindly re【【微信】】ate my account to verify my claims and consider lifting the ban.

    I ha【【微信】】pected the ChatGPT community guidelines and ha【【微信】】 positive and constructi【【微信】】. I understand the importance of maintaining a safe and enjoyable en【【微信】】 and sincerely apologize for any trouble this situation may ha【【微信】】.

    Please let me know if there is any additional information or action re【【微信】】ilitate the investigation and resolution of this issue. I am more than willing to cooperate with any further in【【微信】】.

    Thank you for your time and consideration. I eagerly await your response and hope that my account can be reinstated as soon as possible.

    Best regards.

    2、ChatGPT平替应用

    如果申诉不成功那只能找备胎了。放眼全球除了ChatGPT,支持中文效果最好的当属是百度的文心一言了,可惜目前处于邀请测试状态,不过可以去碰碰运气申请试用一下。

    除了文心一言之外,「AIGC开放社区」为大家分享几个类ChatGPT产品,有几个功能甚至比ChatGPT更细化,支持自己训练模型、实时联网等强大功能。多数应用无需任何费用和注册,打开地址可以直接使用非常简单。

    文心一言

    支持问答式服务理解能力好,回答内容丰富,非常适用中文用户。

    地址:【【网址】】/welcome

    ChatSonic AI

    ChatSonic AI在功能方面可以媲美GPT-4,是一个多模态大语言模型平台。支持文字生成图片、支持语音发问、一次性可输入4000字符、支持与谷歌新闻实时连接、支持连续发问等。可以选择生成专业领域的内容,例如,人事、旅游、脱口秀、哲学、会计等。目前该产品在欧美非常火,还支持用户训练自己的模型。

    地址:【【网址】】/chat

    Colossal Chat

    简单粗暴无需任何注册直接使用。虽然支持中文但是范围有限,估计是训练数据太少。英文效果不错,适合撰写各种文本类内容。

    地址:【【网址】】/

    Character.ai

    类似ChatGPT的对话式AI平台,除了回答文本之还可以附加一张图片。最大技术亮点是,用户可以在其服务器上创建独属自己的聊天机器人,也可以使用其他人或官方的机器人,支持中文、无任何使用限制。

    地址:https://beta.character.ai/

    SlidesAI

    一个谷歌浏览器插件提供类ChatGPT功能,可以在几分钟内自动帮助用户快速生成PPT内容。添加文本、选择样式、页数之后,点击生成即可自动完成。

    地址:【【网址】】/marketplace/app/slidesaiio_create_slides_with_ai/904276957168

    【【微信】】

    一个功能非常强大的类ChatGPT平台。可以自动总结文档、会议内容、自动翻译、自动生成文本等。

    地址:https://www.notion.so/product/ai

    Jasper

    与ChatGPT功能几乎差不多,支持更细的文本内容创建,例如,博客、营销、电子邮件、人事招聘等。支持通过浏览器插件使用。

    地址:https://www.jasper.ai/

    Perplexity AI

    一个类ChatGPT的搜索引擎,支持中文提问、支持实时联网、支持连续发问,还支持Ios移动版。无需任何注册直接使用。

    地址:https://www.perplexity.ai/

    Tome AI

    用户只需要输入一个标题、想法、创意,能便在几分钟内自动生成PPT。最大技术亮点是支持调用Dall-E,可实时自动生成PPT配图。例如,输入了一个NBA巨星詹姆斯的标题,立刻自动生成了8页带文本、图片的PPT。如果不满意,可以进行文字、图片调整。

    地址:https://beta.tome.app/

    3、自己训练ChatGPT模型

    这个方法对技术要求较高适用于开发人员,并且对资源消耗很少平常笔记本就能运行。但如果你有超强的动手和学习能力,这个就是最好的选择了,并且不会再次受到封禁的影响。

    ColossalAI

    ColossalChat只用了不到100亿参数就达到中英文双语能力,通过在大语言模型基础上的RLHF微调,实现了与ChatGPT和GPT-3.5类似的效果。

    开源地址:【【网址】】/hpcaitech/ColossalAI

    GPT4All

    GPT4All是基于LLaMA模型70亿参数微调而成。GPT4All 在GPT-3.5-Turbo的800k 条数据上进行训练,包括文字问题、故事描述、多轮对话和代码。在答案生成方面,几乎与ChatGPT相似,但资源消耗方面更低。

    开源地址:【【网址】】/nomic-ai/gpt4all

    Vicuna

    Vicuna拥有130亿参数,具备生成详细、结构更合理的文本答案,可以媲美ChatGPT 和Bard 90%的能力。

    开源地址:【【网址】】/lm-sys/FastChat

    报名参赛

    报告下载

    大 佬观点分享

    关于RPA、AI、企业数字化转型

    (点击文字即可阅读)

    行业知识交流分享,结识扩展人脉圈层