谷歌公布chatgpt速度 谷歌垄断优势分析
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
4 月 14 日消息,当地时间周四,美国司法部在诉谷歌垄断案的法庭辩论中称,如果谷歌没有垄断搜索市场,ChatGPT 和其他技术创新可能早在几年前就已经出现了。
美国司法部反垄断案件的首席律师肯尼斯?丁策(Kenneth Dintzer)说,在微软宣布将人工智能研究公司 OpenAI 的聊天技术纳入必应搜索引擎短短几天后,谷歌也表示将发布自己的对话式人工智能产品。
丁策告诉法官阿米特?梅塔(Amit Mehta):“这表明了真正的竞争将会带来什么。过去 12 年中,谷歌始终在维持其在搜索领域的垄断地位。我们会在六年前看到 ChatGPT 吗?我们会看到其他五家竞争对手在搜索领域展开竞争吗?这些都是我们无法回答的问题。”
谷歌要求梅塔法官驳回美国司法部和多州总检察长联合提起的两起反垄断案件,这些审判定于 9 月份进行。美国司法部和多个州在 2020 年分别提起诉讼,指控谷歌确保其搜索引擎预装在网络浏览器和移动设备上的交易违反了反垄断法。梅塔负责审理这两起诉讼。
谷歌的律师约翰?施米德莱因(John Schmidtlein)承认,与苹果公司和其他智能手机制造商达成的协议给了谷歌“优势”,但这并不违反反垄断法。按照这些协议,谷歌搜索成为这些手机上的默认搜索引擎。他说:“这绝对带来了优势,但也不是不可逾越的。”
施米德莱因的评论回应了梅塔法官的问题,即谷歌的默认搜索引擎协议是否给它带来了竞争对手无法比拟的优势。梅塔法官说:“这些协议具有自我强化的性质。在我看来,唯一的独特之处在于,只要有默认设置,产品就会变得更好。谷歌凭借这类协议收集了更多的数据,也有能力提供更准确、更高效的搜索结果。”
据施米德莱因透露,谷歌于 2003 年首次与苹果签订合同,成为其 Safari 浏览器的默认搜索引擎。当时,谷歌是众多搜索引擎之一,而苹果 Mac 电脑所占市场份额也相当小。谷歌到底向苹果支付了多少费用依然处于保密中,但可能每年都不少于数十亿美元。
梅塔还向谷歌追问,当谷歌成为搜索领域无可争议的领先者时,为什么它今天仍在为获得默认地位付钱。施米德莱因对此解释称:“他们花钱是为了推广自己的产品,让人们可以使用它。至于人们是否会转而使用谷歌的搜索服务,完全取决于用户。”
然而,美国司法部律师丁策表示,谷歌坚持签署排他性协议和支付巨额费用才是关键。他说:“谷歌为获得和维持其搜索引擎的默认地位支付了数十亿美元。谷歌一直在说:‘这是因为人们需要我们。’但是如果人们真的想用它,他们就不用每年花数十亿美元了。”
梅塔法官也驳回了司法部的一些论点,并要求该机构具体说明谷歌应该采取哪些不同的纠正措施。丁策说,获得主导地位后,谷歌本应取消合同中的排他性条款。他说,这将允许潜在的竞争对手竞标智能手机和浏览器上的接入点,也会让苹果或火狐浏览器开发商 Mozilla 等公司以不同的方式设计产品,为消费者提供更多选择。
梅塔法官预计将在今年夏天作出裁决。
第二部分 从GPT/GPT2/GPT3到GPT3.5/GPT4:微调到prompt学习的过渡
写在最前面,23年2.27日起,我个人和十来位博士朋友精读100篇ChatGPT相关技术的论文(每天一篇,100天读完100篇,这100篇的论文清单见此文),过程中几乎每天都会不断优化本文,优化记录见本文文末的“后记”中..
自从我那篇Transformer通俗笔记一经发布,然后就不断改、不断找人寻求反馈、不断改,其中一位朋友倪老师(之前我司NLP高级班学员现课程助教老师之一)在谬赞Transformer笔记无懈可击的同时,给我建议到,“后面估计可以尝试尝试在BERT的基础上,讲一讲prompt学习了”
再然后,当我还在各种改Transformer笔记的时候,12月初突然出来了一个ChatGPT刷爆朋友圈,即便很多之前不接触AI的朋友也在问ChatGPT这种类似聊天机器人却远胜一般聊天机器人各种问题(上一次出现这种盛况的还是16年的AlphaGo)。
据我观察,大家问ChatGPT的问题千奇百怪
- 有的让他算经典的鸡兔同笼问题(一个笼子里装有鸡和兔子,数头的话一共35个头,数脚的话一共94只脚,问笼中分别有多少只鸡和兔子),且也能在和人类自然而流畅的互动中举一反三
- 有的让其根据要求排查代码bug,要知道此前debug想寻求帮助 要么问人(问熟人用社交软件,问陌生人则类似那种问答网站,持续问一般得付费,毕竟没人乐意持续免费答疑大量技术难题) 要么Google搜有没人遇到类似的问题(但别人遇到的问题很难与你的百分百一致) 要么用Codex这类代码软件,但在和人类的互动交互上,还不是那么善解人意
所以ChatGPT就相当于你写代码或各类问题的私人顾问,而这个私人顾问能瞬间、精准理解你的意图,不会让你像用以前那种聊天机器人经常觉得智障甚至对牛弹琴,加之其背后依托的是人类级百科全书式的资料库,所以有人惊呼:ChatGPT会不会替代Google这类搜索引擎。
虽然大部分技术者对待ChatGPT还是比较冷静的,毕竟它给的答案不像权威技术专家那样具备足够的公信力,也不像Google给出来源从而不能比较好的验证其正确程度,但最近遇到的几件事改变了我的一些看法
- 这两天我刷到一条新闻:微软欲用 ChatGPT 扶必应“上位”,对抗 Google,导致即便很多技术从业者也不一定淡定了
- ChatGPT直接让其所在的公司OpenAI估值翻倍,而我司七月在线的最新一期NLP大课,NLP11也加入了ChatGPT的原理解析
- 目前关于ChatGPT中文的资料里,真正能让人一看就懂的非常非常少,当少数文章具备比较好的可读性之后,你又会发现一旦涉及算法细节就千篇一律的泛泛而谈,如果不是泛泛而谈的,则更多堆砌概念和公式 总之中文资料里,可能因为【【淘密令】】/ChatGPT刚出来不久的缘故,兼顾可读性和细节性的文章少的可怜
考虑到ChatGPT非一蹴而就,而是经过了各个前置技术的发展、迭代、结合而成,故逐一阐述
- 2017年之前早已有之的一些数学/AI/RL等基础技术,比如微积分、概率统计、最优化、策略梯度、TRPO算法(2015年提出)
- 2017年6月OpenAI联合DeepMind首次正式提出的:Deep Reinforcement Learning from Human Preferences,简称RLHF
- 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,除了本文,更可以看下上篇《Transformer通俗笔记:从Word2Vec、【【微信】】逐步理解到GPT、BERT》 ?
- 2018年6月的GPT(Generati【【微信】】rmer),其关键构成是基于Transformer-Decoder的Masked Self-Attention
- 2019年2月的融合prompt learning的GPT2,prompt learning的意义在于不用微调也能做任务
- 2020年5月的GPT3,参数规模到了1750亿,终于真正做到预训练之后不用再微调模式,通过In-context learning(简称ICL)开启prompt新范式,且你可能没想到的是,这一年的9月份OpenAI已经开始研究GPT3与RLHF的结合了,且此时用的策略优化方法为PPO ?
- 2021年7月的Codex,通过对GPT3进行大量的代码训练迭代而出Codex,从而具备代码/推理能力
- 2021年9月Google提出的FLAN大模型:基于指令微调技术Instruction Fine-Tuning (IFT)
- 2022年1月的Google研究者提出的思维链技术(Chain of Thought,简称CoT) ?
- 2022年3月的OpenAI正式发布【【淘密令】】:GPT3 + instruction tuning + RLHF + PPO,其中,instruction tuning和prompt learning的核心区别在于instruction tuning会提供更多的指令引导模型输出更符合预期的结果,例如 提示学习:给女朋友买了这个项链,她很喜欢,这个项链太____了 指令微调:判断这句话的情感:给女朋友买了这个项链,她很喜欢。选项:A=好;B=一般;C=差 你也可以暂简单理解instruction tuning为带人类指令的prompting
- 2021年第4季度逐步发展而来的GPT3.5,并于22年不断融合Codex、InstructGPT的技术能力
- 2022年11月的ChatGPT:语言模型层面的核心架构是GPT3.5(基于Transformer-Decoder的Masked Self-Attention且融合了Codex的代码/推理能力、instruction tuning等技术) + RLHF + PPO3 ?
- 2023年3月中旬,OpenAI正式对外发布GPT-4,增加了多模态(支持图片的输入形式),且ChatGPT底层的语言模型直接从GPT3.5升级到了GPT4
如你所见,自从1.6日开始写ChatGPT笔记,1.15日发布本文,但为把ChatGPT背后所涉及的关键技术阐述细致、透彻,故本文越写越长,长到最后成了一个系列,有的内容抽离出去独立成文,有的还在不断完善
再次强调说明下,本第一部分在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)?的问题
毕竟通过上文,我们已经得知
- 如果?step?size?过大,?学出来的?Policy?会一直乱动,不会收敛;但如果?Step?Size?太小,想完成训练,我们会等到地老天荒
- 而PPO?利用?New?Policy?和 Old?Policy?的比例,限制了?New?Policy?的更新幅度,让策略梯度对稍微大点的?Step?size?不那么敏感
具体做法是,PPO算法有两个主要的变种:近端策略优化惩罚(PPO-penalty)和近端策略优化裁剪(PPO-clip),其中PPO-penalty和TRPO一样也用上了KL散度约束。
近端策略优化惩罚PPO-penalty的流程如下
-
首先,明确目标函数,咱们需要优化,让其最大化
『注:如果你想仔细抠接下来各种公式但一上来就被上面这个弄迷糊了,说明还是需要先看下上文说过的这篇RL极简入门,而一旦踏入RL,便得做好两万五千里的准备,当然,如果只是想了解ChatGPT背后大概的技术原理,可以不用细抠PPO的公式怎么来的,不影响你对ChatGPT整体架构的理解,且下文会讲其在ChatGPT中是如何运用的』
-
接下来,先初始化一个策略的参数,在每一个迭代里面,我们用前一个训练的迭代得到的actor的参数与环境交互,采样到大量状态-动作对,?根据交互的结果,估测
- 由于目标函数牵涉到重要性采样,而在做重要性采样的时候,不能与相差太多,所以需要在训练的时候加个约束,这个约束就好像正则化的项一样,是?与?输出动作的 KL散度,用于衡量??与??的相似程度,我们希望在训练的过程中,学习出的??与??越相似越好 所以需要最后使用 PPO 的优化公式:
当然,也可以把上述那两个公式合二为一『如此可以更直观的看出,PPO-penalty把KL散度约束作为惩罚项放在了目标函数中(可用梯度上升的方法去最大化它),此举相对TRPO减少了计算量』
上述流程有一个细节并没有讲到,即是怎么取值的呢,事实上,是可以动态调整的,故称之为自适应KL惩罚(adapti【【微信】】),具体而言
- 先设一个可以接受的 KL 散度的最大值 假设优化完以后,KL 散度值太大导致,意味着?与差距过大(即学习率/步长过大),也就代表后面惩罚的项惩罚效果太弱而没有发挥作用,故增大惩罚把增大
- 再设一个 KL 散度的最小值 如果优化完以后,KL散度值比最小值还要小导致,意味着?与??差距过小,也就代表后面这一项的惩罚效果太强了,我们怕它只优化后一项,使与??一样,这不是我们想要的,所以减小惩罚即减小
总之,近端策略优化惩罚可表示为
当然,如果觉得计算 KL散度很复杂,则还有一个PPO2算法,即近端策略优化裁剪PPO-clip,详见RL极简入门一文
虽然RL理论上虽不需要大量标注数据,但实际上它所需求的reward会存在缺陷:
-
比如游戏AI中,reward的制定非常困难,可能要制定成百上千条游戏规则,这并不比标注大量数据来得容易,又比如自动驾驶的多步决策(se【【微信】】)场景中,学习器很难频繁地获得reward,容易累计误差导致一些严重的事故
-
再比如聊天机器人方面,不好定义什么是好的对话、什么是不好的对话,当然,对此可以收集很多人类的对话当做范例,如此,模仿学习思路下的从人来反馈中学习(对应论文为:Deep Reinforcement Learning from Human Preferences 2017,简称RLHF)应运而生 RLHF试图解决的问题是,在奖励函数不够明确的情况下,通过基于人类对事物比较的偏好而非绝对奖励值训练奖励函数
模仿学习的思路是不让模型在人类制定的规则下自己学习,而是让模型模仿人类的行为。而逆强化学习就是模仿学习的其中一种,何谓逆强化学习呢?
- 原来的强化学习里,有En【【微信】】和Reward Model(由奖励函数推出什么样的策略/动作是最好的),但逆强化学习没有奖励函数,只有一些人类/专家的示范,怎么办呢
- 可以通过人类标注数据训练得到Reward Model(相当于有了人类标注数据,则相信它是不错的,然后反推人类因为什么样的奖励函数才会采取这些行为)
- 有了奖励函数之后,就可以使用一般的强化学习的方法去找出最优策略/动作
实际上,RLHF(Reinforcement Learning with Human Feedback)这一概念最早是在2008年《TAMER:Training an Agent Manually 【【微信】】cement》一文中被提及的
在2017年前后,深度强化学习(Deep Reinforcement Learning)逐渐发展并流行起来,如你所见,2017年6月由OpenAI联合【【微信】】epMind一块推出《Deep Reinforcement Learning from Human Preferences》,也简称RLHF
当让一个强化学习智能体探索环境并与之交互(比如Atari游戏),RLHF的核心步骤如下图所示:
- 首先,智能体的一对1-2秒的行为片段定期地回馈给人类操作员,人类基于偏好对智能体的行为作出某种偏好性的选择评判
- 接着,人类这种基于偏好的选择评判被预测器(reward predictor)来预测奖励函数
- 智能体通过预测器预测出的奖励函数作出更优的行为(毕竟智能体要最大化奖励嘛)
再之后,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优化原始监督模型的策略(下文也会详细阐述这个公式)
NLP自发展以来,先后经历了4种任务处理范式
- 第一种范式,非神经网络时代的完全监督学习(Fully Super【【微信】】, Non-Neural Network) 具体而言,即手工设计一系列特征模板,来输入模型。模型对任务的处理结果高度依赖于特征模板的设计,同时也高度依赖领域专家的知识。举个例子,比如对于条件随机场CRF模型,业界甚至有一个专门的库CRF++帮助自动生成大量的随机模板然后输入模型进行训练,从而避免对领域专家的过度依赖
- 第二范式,基于神经网络的完全监督学习(Fully Super【【微信】】, Neural Network) 神经网络学派开始流行以后,处理范式基本基本是预训练后的词嵌入表征 + 模型架构的调整,在这个时期,一方面的工作在词嵌入上,比如NNLM/CBOW/SKIP/GRAM/GLOVE/ELMO等,另一方面的工作则在模型架构上,比如BI-LSTM/SEQ2SEQ架构在神经机器翻译领域NMT的应用等
- 第三范式,预训练-微调范式 (Pre-train、Fine-tune) 相比于第二范式而言,第三范式的优点在于更进一步减少了人工的参与,不再需要对于每个任务采取不同的模型架构,而是在超大的文本数据集上预训练一个具备泛化能力的通用的模型,然后再根据下游任务本身的特点对模型进行针对性的微调即可,使得一个模型解决多种任务成为可能,比如GPT1模型
- 第四范式,预训练、提示、预测范式(Pre-train、Prompt、Predict) 版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。