当前位置: 首页 > news >正文

网站内容wordpress 图片木马

网站内容,wordpress 图片木马,京东第一次做网站,中老年适合在哪个网站做直播转自#xff1a;https://mp.weixin.qq.com/s/eMrv15yOO0oYQ-o-wiuSyw 导读#xff1a;ChatGPT出现后惊喜或惊醒了很多人。惊喜是因为没想到大型语言模型#xff08;LLM,Large Language Model#xff09;效果能好成这样#xff1b;惊醒是顿悟到我们对LLM的认知及发展理念https://mp.weixin.qq.com/s/eMrv15yOO0oYQ-o-wiuSyw 导读ChatGPT出现后惊喜或惊醒了很多人。惊喜是因为没想到大型语言模型LLM,Large Language Model效果能好成这样惊醒是顿悟到我们对LLM的认知及发展理念距离世界最先进的想法差得有点远。我属于既惊喜又惊醒的那一批也是典型的中国人中国人善于自我反思于是开始反思而这篇文章正是反思的结果。 实话实说国内在LLM模型相关技术方面此刻距离最先进技术的差距进一步加大了。技术领先或技术差距这事情我觉得要动态地以发展的眼光来看。在Bert出现之后的一到两年间其实国内在这块的技术追赶速度还是很快的也提出了一些很好的改进模型差距拉开的分水岭应该是在 GPT 3.0出来之后也就是2020年年中左右。在当时其实只有很少的人觉察到GPT 3.0它不仅仅是一项具体的技术其实体现的是LLM应该往何处去的一个发展理念。自此之后差距拉得越来越远ChatGPT只是这种发展理念差异的一个自然结果。所以我个人认为抛开是否有财力做超大型LLM这个因素如果单从技术角度看差距主要来自于对LLM的认知以及未来应往何处去的发展理念的不同。 国内被国外技术甩得越来越远这个是事实不承认也不行。前阵子网上很多人担忧说国内AI现在处于“危急存亡之秋”我觉得倒也不至于这么严重。君不见这个世界上具备这么超前眼光的只有OpenAI一家吗包括Google在内其实对于LLM发展理念的理解明显都落后OpenAI一个身位。现实是OpenAI表现过于优秀把所有人都甩开了不仅仅是国内。 我觉得OpenAI对LLM在理念及相关技术方面领先国外的Google、DeepMind大约半年到一年的时间领先国内大概两年左右的时间。在LLM这个事情上感觉梯队很明显Google应该是排在第二位最能体现Google技术眼光的是PaLM和Pathways推出时间大概在22年2月到4月间同一时期OpenAI推出的却是InstructGPT从这里就可以看出Google和OpenAI的差距了至于为何这么说你看了我后面的正文后大概能理解。DeepMind之前的重心一直在强化学习攻克游戏和AI for science这些方面切入LLM其实很晚应该是21年才开始重视这个方向目前也处于追赶状态。Meta就更不用说了重心一直不在LLM上目前感觉也发力开始追赶。这还是目前做得最好的一批机构尚且如此更何况国内呢我觉得情有可原。至于OpenAI关于LLM的理念是什么我在本文的最后一部分会谈谈我的认知。 本文梳理自GPT 3.0出现之后的主流LLM技术在此之前的主流技术可以参考《乘风破浪的PTM两年来预训练模型的技术进展》 https://zhuanlan.zhihu.com/p/254821426 我相信看完这两篇文章能够让您对LLM领域的技术脉络LLM技术发展过程中出现过的不同发展理念乃至未来可能的发展趋势有比较清晰的认知。当然很多地方讲的内容是我个人看法有很大的主观性错漏难免所以还请谨慎参考。 本文试图回答下面一些问题ChatGPT是否带来了NLP乃至AI领域的研究范式转换如果是那会带来怎样的影响LLM从海量数据中学到了什么知识LLM又是如何存取这些知识的随着LLM规模逐步增大会带来什么影响什么是In Context Learning?为什么它是一项很神秘的技术它和Instruct又是什么关系LLM具备推理能力吗思维链CoT又是怎么做的等等相信看完能让您对这些问题有一个答案。 首先在谈LLM技术现状前先宏观地谈下我心目中的研究范式转换问题。这样我们才能“先见森林再见树木”对具体技术为何会是如此变化有个更清晰的认知。 01.潮流之巅NLP研究范式的转换 如果我们把时间线往前拉得更长一些回到NLP领域的深度学习时代在更长时间窗口内观察技术变迁及其影响可能会更容易看清其中的一些关键节点。我个人认为在最近10年来NLP领域的技术发展过程中可能存在两次大的研究范型转换。 1. 范式转换1.0:从深度学习到两阶段预训练模型 这个范式转换所涵盖的时间范围大致在深度学习引入NLP领域2013年左右到GPT 3.0出现之前2020年5月左右。 在Bert和GPT模型出现之前NLP领域流行的技术是深度学习模型而NLP领域的深度学习主要依托于以下几项关键技术以大量的改进LSTM模型及少量的改进CNN模型作为典型的特征抽取器以Sequence to Sequence或叫encoder-decoder亦可Attention作为各种具体任务典型的总体技术框架。 在这些核心技术加持下NLP领域深度学习的主要研究目标如果归纳一下是如何有效增加模型层深或模型参数容量。就是说怎么才能往encoder和decoder里不断叠加更深的LSTM或CNN层来达成增加层深和模型容量的目标。这种努力尽管确实不断增加了模型层深但是从解决具体任务的效果角度看总体而言不算很成功或者说和非深度学习方法相对带来的优势不算大。 深度学习之所以不够成功我认为主要原因来自于两个方面一方面是某个具体任务有限的训练数据总量。随着模型容量的增加需要靠更大量的训练数据来支撑否则即使你能把深度做起来任务效果也做不上去。而在预训练模型出现之前很明显这是NLP研究领域一个严重问题另外一个方面是LSTMCNN特征抽取器表达能力不够强。意思是就算给你再多的数据也没用因为你不能有效地吸收数据里蕴含的知识。主要应该是这两个原因阻碍了深度学习在NLP领域的成功突围。 Bert/GPT这两个预训练模型的出现无论在学术研究角度看还是工业应用角度来看都代表了NLP领域的一个技术飞跃并带来了整个领域研究范式的转换。这种范式转换带来的影响体现在两个方面首先是部分NLP研究子领域的衰退乃至逐步消亡其次NLP不同子领域的技术方法和技术框架日趋统一在Bert出现后一年左右技术栈基本收敛到两种技术模式中。关于这两点我们分头来谈。 影响一中间任务的消亡 NLP是一个宏观研究领域的统称里面有五花八门具体的子领域与子方向如果仔细分析从任务的性质角度可以把这些任务分成两大类一类可以叫做“中间任务”一类可以称为“最终任务”。 典型的中间任务包括中文分词、词性标注、NER、句法分析、指代消解、语义Parser等这类任务一般并不解决应用中的实际需求大多数是作为那些解决实际需求任务的中间阶段或者辅助阶段存在的比如几乎没有需求说我要一个句法Parser把这个句子的句法分析树给用户看看用户不需要看到这些NLP的中间阶段处理结果他只关心某个具体任务你有没有干好。“最终任务”包括比如文本分类、文本相似性计算、机器翻译、文本摘要等等有很多。这类任务的特点是每个子领域都解决某个实际需求任务结果基本能直接呈现给用户比如用户确实存在给你一句英文告诉他中文是什么的需求。 按理说“中间任务”就不应该出现而之所以会存在这是NLP技术发展水平不够高的一种体现。在技术发展早期阶段因为当时的技术相对落后很难一步做好有难度的最终任务。比如机器翻译早期技术要做好机器翻译是很困难的于是科研人员就把难题分而治之分解成分词、词性标注、句法分析等各种中间阶段先把每个中间阶段做好然后再拼起来完成最终任务这也是没办法的事情。 但是自从BertGPT出现之后其实就没有必要做这些中间任务了因为通过大量数据的预训练BertGPT已经把这些中间任务作为语言学特征吸收到了Transformer的参数里此时我们完全可以端到端地直接解决那些最终任务而无须对这种中间过程专门建模。这里可能争议最大的是中文分词其实道理也是一样的哪些字应该组成一个词这个其实你不用管让LLM自己当特征去学就行了只要对于解决任务有帮助它自然会去学该学的合理分词方式也未必一定要和我们人类理解的分词规则相同。 基于以上认知其实在Bert/GPT一出现你就应该得出这类NLP的中间阶段的任务会逐步退出历史舞台这个结论。 影响二不同研究方向技术路线的统一 在说明具体影响前我们先讨论下另外一种NLP任务划分方式这对于理解后面内容有帮助。如果对“最终任务”进一步进行分类又大致可以分为两大不同类型的任务自然语言理解类任务和自然语言生成类任务。如果排除掉“中间任务”的话典型的自然语言理解类任务包括文本分类、句子关系判断、情感倾向判断等这种任务本质上都是分类任务就是说输入一个句子文章或者两个句子模型参考所有输入内容最后给出属于哪个类别的判断。自然语言生成也包含很多NLP研究子方向比如聊天机器人、机器翻译、文本摘要、问答系统等。生成类任务的特点是给定输入文本对应地模型要生成一串输出文本。这两者的差异主要体现在输入输出形式上 自从Bert/GPT模型诞生后出现了明显的技术统一趋向。首先NLP中不同的子领域其特征抽取器都逐渐从LSTM/CNN统一到Transformer上。其实自Bert公开后不久就应该意识到这必然会成为技术趋势。至于其原因在几年前我写的这篇 《放弃幻想全面拥抱Transformer自然语言处理三大特征抽取器CNN/RNN/TF比较》https://zhuanlan.zhihu.com/p/54743941 中做了说明和分析感兴趣的同学可参考。而且目前Transformer不仅统一了NLP诸多领域也正在逐步地替换图像处理各种任务中被广泛使用的CNN等其它模型的进程之中类似的多模态模型目前也基本都采用了Transformer模型。这种Transformer从NLP出发攻城略地逐步统一AI越来越多领域的趋势起始于2020年底出现的Vision Transformer (ViT) 之后蓬勃发展到目前已大获成功且其继续向更多领域拓展的势头会越来越迅猛。 其次大多数NLP子领域的研发模式切换到了两阶段模式模型预训练阶段应用微调Fine-tuning或应用ZeroFew Shot Prompt模式。更准确地说NLP各种任务其实收敛到了两个不同的预训练模型框架里对于自然语言理解类任务其技术体系统一到了以Bert为代表的“双向语言模型预训练应用Fine-tuning”模式而对于自然语言生成类任务其技术体系则统一到了以GPT 2.0为代表的“自回归语言模型即从左到右单向语言模型Zero /Few Shot Prompt”模式。至于为何会分化成两条技术路线有其必然性关于这点我们放在后面解释。 这两种模式看似比较相像但其背后蕴含了迥异的发展思路也会导向不同的未来发展方向。不过遗憾的是我们中的绝大多数人在当时都低估了GPT 这条发展路线的潜力而把视觉中心聚焦到了Bert这种模式上。 2. 范式转换2.0: 从预训练模型走向通用人工智能 AGIArtificial General Intelligence 这个范式转换所涵盖的时间范围大致在GPT3.0出现之后20年6月左右一直到目前为止我们应该正处于这个范式转换过程中。 ChatGPT是触发这次范型转换的关键节点但是在InstructGPT出现之前其实LLM处于这次范式转换前的一个过渡期。 过渡期以GPT 3.0为代表的“自回归语言模型Prompting”模式占据统治地位 前面说过在预训练模型发展的早期技术框架收敛到了Bert模式和GPT模式这两种不同的技术范型而且人们普遍更看好Bert模式一些相当多数的后续技术改进都是沿着Bert那条路走的。但是随着技术的继续发展你会发现目前规模最大的LLM模型几乎清一色都是类似GPT 3.0这种“自回归语言模型Prompting”模式的比如GPT 3、PaLM、GLaM、Gopher、Chinchilla、MT-NLG、LaMDA等没有例外。为什么会这样呢背后一定有其必然性我认为可能主要源于两个原因。 首先Google的T5模型在形式上统一了自然语言理解和自然语言生成任务的外在表现形式。如上图所示标为红色的是个文本分类问题黄色的是判断句子相似性的回归或分类问题这都是典型的自然语言理解问题。在T5模型里这些自然语言理解问题在输入输出形式上和生成问题保持了一致也就是说可以把分类问题转换成让LLM模型生成对应类别的字符串这样理解和生成任务在表现形式就实现了完全的统一。 这说明自然语言生成任务在表现形式上可以兼容自然语言理解任务若反过来则很难做到这一点。这样的好处是同一个LLM生成模型可以解决几乎所有NLP问题。而如果仍然采取Bert模式则这个LLM模型无法很好处理生成任务。既然这样我们当然倾向于使用生成模型这是一个原因。 第二个原因如果想要以零示例提示语zero shot prompting或少数示例提示语few shot prompting的方式做好任务则必须要采取GPT模式。现在已有研究参考On the Role of Bidirectionality in Language Model Pre-Training证明如果是以fine-tuning方式解决下游任务Bert模式的效果优于GPT模式若是以zero shot/few shot prompting这种模式解决下游任务则GPT模式效果要优于Bert模式。这说明了生成模型更容易做好zero shot/few shot prompting方式的任务而Bert模式以这种方式做任务是天然有劣势的。这是第二个原因。 但是问题来了为什么我们要追求zero shot/few shot prompting这种方式来做任务呢要解释清楚这个问题我们首先需要搞清楚另外一个问题什么样的LLM模型对我们是最理想的 上图展示了一个理想的LLM该有的样子。首先LLM应该具备强大的自主学习能力。假设我们把世界上能获得的所有文本或者图片等不同类型的数据喂给它它应该能够自动从中学习到里面包含的所有知识点学习过程不需要人的介入并且能灵活应用所学知识来解决实际问题。因为数据是海量的要吸收所有知识就要非常多的模型参数来存储知识所以这个模型必然会是一个巨无霸模型。 其次LLM应该能解决NLP任何子领域的问题而不仅支持有限领域甚至它应该可以响应NLP之外其它领域的问题最好是任意领域的问题都能得到很好地回答。 再者当我们使用LLM解决某个具体领域问题的时候应该用我们人类习惯的表达方式就是说LLM应该理解人类的命令。这体现出让LLM适配人而不是反过来让人去适配LLM模型。人适配LLM的典型例子比如绞尽脑汁去尝试各种不同的prompt以试图找到好的提示语才能很好地解决手头问题。关于这点上图在人类和LLM交互的接口层举了几个例子说明什么是好的人使用LLM模型的接口形式。 看完这个理想中的LLM我们再回头解释上面遗留的问题为什么我们要追求zero shot/few shot prompting这种方式来做任务呢有两个原因。 第一这个LLM模型规模必然非常巨大有能力作出这个模型或改动这个模型参数的机构必然很少。而任务需求方是千千万万的中小机构甚至是个人就算你把模型开源出来他们也无力部署这个模型更不用说再用Fine-tuning这种模式去修改模型参数了。所以我们应该追求不修正模型参数就能让任务需求方完成任务的方式也就是应该采取prompt模式完成任务而非Fine-tuning模式由此可看出soft prompting技术方向是违背这个发展趋势的。模型制作方则将LLM作成公用服务以LLM as Service的模式运行。作为服务支持方考虑到千变万化的用户需求所以LLM模型制作方更要追求让LLM能完成尽可能多类型的任务这是附带的影响也是为何超级大模型一定会追求走向AGI的现实因素。 第二zero shot prompting也好few shot prompting也好甚至促进LLM推理能力的思维链CoT,Chain of ThoughtPrompting也好就是上图中接口层中的现有技术。具体而言zero shot prompting的初衷其实就是人类和LLM的理想接口直接用人类所习惯的任务表述方式让LLM做事情但是发现LLM并不能很好地理解效果也不好。经过继续研究转而发现对于某项任务如果给LLM几个示例用这些示例来代表任务描述效果会比zero shot prompting好于是大家都去研究更好的few shot prompting技术。可以理解为本来我们希望LLM能够用人类常用的命令方式来执行某个任务但是目前技术还做不到所以退而求其次用这些替代技术来表达人类的任务需求。 如果理解了上述逻辑很容易得出如下结论few shot prompting也被称为In Context Learning只是一种过渡时期的技术。如果我们能够更自然地去描述一个任务而且LLM可以理解那么我们肯定会毫不犹豫地抛弃这些过渡期的技术原因很明显用这些方法来描述任务需求并不符合人类的使用习惯。 这也是为何我将GPT 3.0Prompting列为过渡期技术的原因ChatGPT的出现改变了这个现状用Instruct取代了Prompting由此带来新的技术范式转换并产生若干后续影响。 影响一让LLM适配人的新型交互接口 在理想LLM的背景下我们再来看ChatGPT能更好理解它的技术贡献。ChatGPT应该是目前所有的现有技术里最接近理想LLM的技术方法。如果归纳下ChatGPT最突出特点的话我会用下面八个字“能力强大善解人意”。 “能力强大”这一点我相信应该主要归功于ChatGPT所依托的基础LLM GPT3.5。因为ChatGPT 尽管加入了人工标注数据但是量级只有数万这个规模的数据量和训练GPT 3.5模型使用的几千亿token级别的数据量相比包含的世界知识数据中包含的事实与常识可谓沧海一粟几可忽略基本不会对增强GPT 3.5的基础能力发挥什么作用。所以它的强大功能应该主要来自于隐藏在背后的GPT 3.5。GPT 3.5对标理想LLM模型中的那个巨无霸模型。 那么ChatGPT向GPT 3.5模型注入新知识了吗应该是注入了这些知识就包含在几万人工标注数据里不过注入的不是世界知识而是人类偏好知识。所谓“人类偏好”包含几方面的含义首先是人类表达一个任务的习惯说法。比如人习惯说“把下面句子从中文翻译成英文”以此表达一个“机器翻译”的需求但是LLM又不是人它怎么会理解这句话到底是什么意思呢你得想办法让LLM理解这句命令的含义并正确执行。所以ChatGPT通过人工标注数据向GPT 3.5注入了这类知识方便LLM理解人的命令这是它“善解人意”的关键。其次对于什么是好的回答什么是不好的回答人类有自己的标准例如比较详细的回答是好的带有歧视内容的回答是不好的诸如此类。这是人类自身对回答质量好坏的偏好。人通过Reward Model反馈给LLM的数据里包含这类信息。总体而言ChatGPT把人类偏好知识注入GPT 3.5以此来获得一个听得懂人话、也比较礼貌的LLM。 可以看出ChatGPT的最大贡献在于基本实现了理想LLM的接口层让LLM适配人的习惯命令表达方式而不是反过来让人去适配LLM绞尽脑汁地想出一个能Work的命令这就是instruct技术出来之前prompt技术在做的事情而这增加了LLM的易用性和用户体验。是InstructGPT/ChatGPT首先意识到这个问题并给出了很好的解决方案这也是它最大的技术贡献。相对之前的few shot prompting它是一种更符合人类表达习惯的人和LLM进行交互的人机接口技术。 而这必将启发后续的LLM模型继续在易用人机接口方面做进一步的工作让LLM更听话。 影响二很多NLP子领域不再具备独立研究价值 就NLP领域而言这次范式转换意味着很多目前独立存在的NLP研究领域将被纳入LLM的技术体系进而不再独立存在逐步消失。经过第一次范式转换尽管NLP中很多“中间任务”继续作为独立研究领域存在不再必要但是大多数“最终任务”仍然是以独立研究领域存在的只是切换成在“预训练fine-tuning”框架下面对领域独有问题陆续提出新的改进方案。 目前研究表明很多NLP任务随着LLM模型规模增长效果会大幅提升。据此我觉得可得到如下推论大多数某领域所谓“独有”的问题大概率只是缺乏领域知识导致的一种外在表象只要领域知识足够多这个所谓领域独有的问题就可以被很好地解决掉其实并不需要专门针对某个具体领域问题冥思苦想去提出专用解决方案。也许AGI的真相超乎意料地简单你只要把这个领域更多的数据交给LLM让它自己学习更多知识即可。 在这个背景下同时ChatGPT证明了我们现在是可以直接去追求理想LLM模型的那么未来的技术发展趋势应该是追求规模越来越大的LLM模型通过增加预训练数据的多样性来涵盖越来越多的领域LLM自主从领域数据中通过预训练过程学习领域知识随着模型规模不断增大很多问题随之得到解决。研究重心会投入到如何构建这个理想LLM模型而非去解决某个领域的具体问题。这样越来越多NLP的子领域会被纳入LLM的技术体系进而逐步消失。 我认为判断某个具体领域是否该立即停止独立研究其判断标准可采取以下两种方法占其一即可第一判断某个任务是否LLM的研究效果超过人类表现对于那些LLM效果超过人类的研究领域已无独立研究的必要。举个例子GLUE与SuperGLUE测试集合里的很多任务目前LLM效果已超过人类表现与这个数据集合密切相关的研究领域其实就没有继续独立存在的必要。第二对比两种模式的任务效果第一种模式是用较大的领域专用数据进行Fine-tuning第二种是few-shot prompting或instruct-based方法。如果第二种方法效果达到或超过第一种方法则意味着这个领域没有继续独立存在的必要性。如果用这个标准来看其实很多研究领域目前fine-tuning效果还是占优的因为这种模式领域训练数据量大看似还可独立存在。但是考虑到很多任务随着模型规模增大few shot prompting效果持续增长随着更大模型的出现这个拐点很可能短期就会达到。 如果上述猜测成立将意味着如下残酷事实对于很多NLP领域的研究人员将面临往何处去的选择是继续做领域独有问题呢还是放弃这种看似前途不大的方式转而去建设更好的LLM如果选择转向去建设LLM又有哪些机构有能力、有条件去做这个事情呢你对这个问题的回答会是什么呢 影响三更多NLP之外的研究领域将被纳入LLM技术体系 如果站在AGI的视角参照之前描述的理想LLM模型它所能完成的任务不应局限于NLP领域或某一两个学科领域理想中的LLM应该是领域无关的通用人工智能模型它现在在某一两个领域做得好不代表只能做这些任务。ChatGPT的出现证明了现在这个时期我们去追求AGI是有可行性的而现在是抛开“领域学科”这个思维束缚的时候了。 ChatGPT除了展示出以流畅的对话形式解决各种NLP任务外也具备强大的代码能力。很自然的之后越来越多其它的研究领域也会被逐步纳入LLM体系中成为通用人工智能的一部分。 LLM从NLP向外进行领域拓展一个自然的选择就是图像处理及多模态相关任务。目前已经有些工作在尝试把多模态融入让LLM成为一个支持多模态输入输出的通用人机接口典型的例子包括DeepMind的Flamingo和微软的“Language Models are General-Purpose Interfaces”上图展示了这种方式的概念结构。 我的判断是无论是图像还是多模态未来被融入LLM成为好用的功能可能比我们想象的进度要慢。主要原因在于尽管图像领域最近两年也一直在模仿Bert预训练的路子尝试引入自监督学习释放模型自主从图像数据中学习知识的能力典型技术就是“对比学习”和MAE这是两条不同的技术路线。然而从目前效果来看尽管取得了很大的技术进步但貌似这条路尚未走通这体现在图像领域预训练模型应用到下游任务带来的效果收益远不如Bert或GPT应用在NLP下游任务那样显著。所以图像预处理模型仍需深入探索以释放图像数据的潜力而这会迟滞它们被统一到LLM大模型的时间。当然如果哪天这条路被趟通大概率会复现NLP领域目前的局面就是图像处理各个研究子领域可能会逐步消失被融入到大型LLM中来直接完成终端任务。 除了图像与多模态很明显其它领域也会逐渐被纳入到理想LLM中来这个方向方兴未艾是具备高价值的研究主题。 以上是我对范式转换的个人思考接下来我们来梳理下GPT 3.0之后LLM模型的主流技术进展。如理想LLM模型所示相关的技术其实可以分为两大类一类是关于LLM模型如何从数据中吸收知识也包括模型规模增长对LLM吸收知识能力带来的影响第二类是关于人如何使用LLM内在能力来解决任务的人机接口包括In Context Learning和Instruct两种模式。思维链CoTprompting这种LLM推理技术本质上也属于In Context Learning因为比较重要我就把它们单独拎出来讲一下。 02.学习者从无尽数据到海量知识 从目前研究结果看Transformer是足够强大的特征抽取器尚不需要做特别的改进。那么通过预训练过程Transformer学到了什么知识是如何存取的我们又如何修正错误知识本节讲述这方面的研究进展。 1. 求知之路LLM学到了什么知识 LLM从海量自由文本中学习了大量知识如果把这些知识做粗略分类的话可以分为语言类知识和世界知识两大类。 语言类知识指的是词法、词性、句法、语义等有助于人类或机器理解自然语言的知识。关于LLM能否捕获语言知识有较长研究历史自从Bert出现以来就不断有相关研究很早就有结论各种实验充分证明LLM可以学习各种层次类型的语言学知识这也是为何使用预训练模型后各种语言理解类自然语言任务获得大幅效果提升的最重要原因之一。另外各种研究也证明了浅层语言知识比如词法、词性、句法等知识存储在Transformer的低层和中层而抽象的语言知识比如语义类知识广泛分布在Transformer的中层和高层结构中。 世界知识指的是在这个世界上发生的一些真实事件事实型知识Factual Knowledge以及一些常识性知识(Common Sense Knowledge)。比如“拜登是现任美国总统”、“拜登是美国人”、“乌克兰总统泽连斯基与美国总统拜登举行会晤”这些都是和拜登相关的事实类知识而“人有两只眼睛”、“太阳从东方升起”这些属于常识性知识。关于LLM模型能否学习世界知识的研究也有很多结论也比较一致LLM确实从训练数据中吸收了大量世界知识而这类知识主要分布在Transformer的中层和高层尤其聚集在中层。而且随着Transformer模型层深增加能够学习到的知识数量逐渐以指数级增加可参考BERTnesia: Investigating the capture and forgetting of knowledge in BERT。其实你把LLM看作是一种以模型参数体现的隐式知识图谱如果这么理解我认为是一点问题也没有的。 “When Do You Need Billions of Words of Pre-training Data?”这篇文章研究了预训练模型学习到的知识量与训练数据量的关系它的结论是对于Bert类型的语言模型来说只用1000万到1亿单词的语料就能学好句法语义等语言学知识但是要学习事实类知识则要更多的训练数据。这个结论其实也是在意料中的毕竟语言学知识相对有限且静态而事实类知识则数量巨大且处于不断变化过程中。而目前研究证明了随着增加训练数据量预训练模型在各种下游任务中效果越好这说明了从增量的训练数据中学到的更主要是世界知识。 2. 记忆之地LLM如何存取知识 由上可知LLM确实从数据中学到了很多语言类及世界知识。那么对于某条具体的知识LLM把它存储到了哪里又是如何提取出来的这也是一个有意思的问题。 显然知识一定存储在Transformer的模型参数里。从Transformer的结构看模型参数由两部分构成多头注意力MHA部分占了大约参数总体的三分之一三分之二的参数集中在FFN结构中。MHA主要用于计算单词或知识间的相关强度并对全局信息进行集成更可能是在建立知识之间的联系大概率不会存储具体知识点那么很容易推论出LLM模型的知识主体是存储在Transformer的FFN结构里。 但这样的定位粒度还是太粗无法很好回答具体某条知识是如何存储与提取的比如 “中国的首都是北京”这条知识以三元组表达就是北京is-capital-of中国其中“is-capital-of”代表实体间关系。这条知识它存储在LLM的哪里呢 “Transformer Feed-Forward Layers Are Key-Value Memories”给出了一个比较新颖的观察视角它把Transformer的FFN看成存储大量具体知识的Key-Value存储器。如上图所示图左是原始论文图其实不太好理解可以看做了注释的图右更好理解些FFN的第一层是个MLP宽隐层这是Key层第二层是MLP窄隐层是Value层。FFN的输入层其实是某个单词对应的MHA的输出结果Embedding也就是通过Self Attention将整个句子有关的输入上下文集成到一起的Embedding代表了整个输入句子的整体信息。 Key层的每个神经元节点记载了一对Key,Value信息。比如对于上图中FFN第一个隐层的第 个节点 也许就是它记载了北京is-capital-of中国这条知识。 节点对应的key向量其实指的是节点 和输入层每个节点的权重向量而对应的Value向量指的是节点 和FFN第二层的Value层每个节点形成连接的权重向量。每个神经元的Key向量用于识别输入中的某种语言或者知识模式是一种模式探测器。如果输入中包含它要检测的某种模式那么输入向量和 节点的key权重进行向量内积计算加上Relu形成 的大数值响应意味着 检测到了这个模式于是再把这个响应值通过 节点的Value权重向量向FFN第二层传播。这等价于将Value向量的值用响应值加权然后传递并体现到第二层Value层每个节点的输出上。如此这般FFN的正向传播计算过程看起来就像是通过Key检测到某种知识模式然后取出对应的Value并把Value体现在FFN的第二层输出上。当然FFN第二层每个节点会收集FFN的Key层所有节点信息所以是一种混合响应而Value层所有节点的混合响应可以解读为代表输出单词的概率分布信息。 听着可能还是比较复杂我们用个极端的例子来说明。我们假设上图的节点 就是记载北京is-capital-of中国这条知识的Key-Value存储器它的Key向量用于检测”中国的首都是…”这个知识模式它的Value向量基本存储了与单词“北京”的Embedding比较接近的向量。当Transformer的输入是“中国的首都是[Mask]”的时候 节点从输入层探测到这个知识模式所以产生较大的响应输出。我们假设Key层其它神经元对这个输入都没有任何响应那么对应的Value层的节点其实只会接收到“北京”这个Value对应的单词embedding并通过 的大响应值进行了进一步的数值放大。于是Mask位置对应的输出就自然会输出“北京”这个单词。基本就是这么个过程看着很复杂其实很简单。 而且这篇文章还指出Transformer低层对句子的表层模式作出反应高层对语义模式作出反应就是说低层FFN存储词法、句法等表层知识中层和高层存储语义及事实概念知识这和其它研究结论是一致的。 要我猜把FFN看成Key-Value存储器这种思路很可能不是最终的正确答案但是距离最终正确答案的距离估计也不太远。 3. 知识涂改液如何修正LLM里存储的知识 既然我们已知具体的某条世界知识存储在某个或者某些FFN节点的参数里自然会引发另外一个问题我们能否修正LLM模型里存储的错误或者过时的知识呢比如对于问题“英国的现任首相是谁”鉴于近年来英国首相频繁更迭你猜LLM更倾向输出“鲍里斯”还是更青睐“苏纳克”很明显训练数据中包含“鲍里斯”的数据会更多这种情况很大可能LLM会给出错误回答于是我们就有修正LLM里存储的过时知识的必要性。 如果归纳下目前有三类不同方法来修正LLM里蕴含的知识 第一类方法从训练数据的源头来修正知识。“Towards Tracing Factual Knowledge in Language Models Back to the Training Data”这篇文章的研究目标是对于指定的某条知识我们是否可以定位到是哪些训练数据导致LLM学会了这条知识答案是肯定的这意味着我们可以逆向追踪到某条知识对应的训练数据源头。如果利用这项技术假设我们想要删除某条知识则可首先定位到其对应的数据源头删除数据源然后重新预训练整个LLM模型这样即可达成删除LLM中相关知识的目的。但是这里有个问题如果修正一小部分知识我们就需要重新做一次模型预训练这样做明显成本太高。所以这种方法不会太有发展前景可能比较适合那种对于某个特定类别数据的一次性大规模删除场合不适合少量多次的常规知识修正场景比如可能比较适合用来做去除偏见等去toxic内容的处理。 第二类方法是对LLM模型做一次fine-tuning来修正知识。一个直观能想到的方法是我们可以根据要修正成的新知识来构建训练数据然后让LLM模型在这个训练数据上做fine-tuning这样指导LLM记住新的知识遗忘旧的知识。这个方法简单直观但是也有一些问题首先它会带来灾难遗忘问题就是说除了忘掉该忘的知识还忘掉了不该忘的知识导致这么做了之后有些下游任务效果下降。另外因为目前的LLM模型规模非常大即使是做fine-tuning如果次数频繁其实成本也相当高。对这种方法感兴趣的可以参考“Modifying Memories in Transformer Models”。 另外一类方法直接修改LLM里某些知识对应的模型参数来修正知识。假设我们想要把旧知识英国现任首相鲍里斯修正到英国现任首相苏纳克。首先我们想办法在LLM模型参数中定位到存储旧知识的FFN节点然后可以强行调整更改FFN中对应的模型参数将旧知识替换成新的知识。可以看出这种方法涉及到两项关键技术首先是如何在LLM参数空间中定位某条知识的具体存储位置其次是如何修正模型参数来实现旧知识到新知识的修正。关于这类技术的细节可以参考“Locating and Editing Factual Associations in GPT”和“Mass-Editing Memory in a Transformer”。理解这个修正LLM知识的过程其实对于更深入理解LLM的内部运作机制是很有帮助的。 03.规模效应当LLM越来越大时会发生什么 我们知道近年来LLM模型规模在快速增长目前效果最好的LLM模型其参数规模大都超过了千亿100B参数规模。比如OpenAI的GPT 3的规模为175BGoogle的LaMDA规模为137BPaLM的规模为540BDeepMind的Gogher规模为280B等不一而足。国内也有中文巨型模型比如智源GLM规模130B华为“盘古”规模200B百度“文心”规模260B浪潮“源1.0”规模245B。那么一个很自然的问题就是随着LLM模型规模不断增长会发生些什么呢 预训练模型的应用往往是两阶段的预训练阶段及具体场景应用阶段。在预训练阶段其优化目标是交叉熵对GPT这种自回归语言模型来说也就是看LLM是否正确预测到了下一个单词而场景应用阶段一般要看具体场景的评价指标。一般我们的直觉是如果LLM模型在预训练阶段的指标越好自然它解决下游任务的能力就越强。然而事实并非完全如此。现有研究已证明预训练阶段的优化指标确实和下游任务表现出正相关关系但是并非完全正相关。也就是说只看预训练阶段的指标来判断一个LLM模型是否够好这是不够的。基于此我们分头来看在这两个不同阶段随着LLM模型增大有什么影响。 首先我们先看在预训练阶段随着模型规模逐步增大会发生什么。OpenAI在“Scaling Laws for Neural Language Models”中专门研究了这个问题并提出LLM模型所遵循的“伸缩法则”scaling law。如上图所示这个研究证明当我们独立增加训练数据量、模型参数规模或者延长模型训练时间比如从1个Epoch到2个Epoch预训练模型在测试集上的Loss都会单调降低也就是说模型效果越来越好。 既然三个因素都重要那么我们在实际做预训练的时候就有一个算力如何分配的决策问题假设用于训练LLM的算力总预算比如多少GPU小时或者GPU天给定那么是应该多增加数据量、减少模型参数呢还是说数据量和模型规模同时增加减少训练步数呢此消彼长某个要素规模增长就要降低其它因素的规模以维持总算力不变所以这里有各种可能的算力分配方案。最终OpenAI选择了同时增加训练数据量和模型参数但是采用早停策略(early stopping)来减少训练步数的方案。因为它证明了对于训练数据量和模型参数这两个要素如果只单独增加其中某一个这不是最好的选择最好能按照一定比例同时增加两者它的结论是优先增加模型参数然后才是训练数据量。假设用于训练LLM的算力总预算增加了10倍那么应该增加5.5倍的模型参数量1.8倍的训练数据量此时模型效果最佳。 DeepMind的一项研究参考Training Compute-Optimal Large Language Models更深入地探究了这个问题其基本结论和OpenAI的结论差不多比如确实需要同时增加训练数据量和模型参数模型效果才会更好。而很多大模型在做预训练的时候并没有考虑这一点很多LLM大模型只是单调增加模型参数而固定住了训练数据量这个做法其实是不对的限制了LLM模型的潜力。但是它修正了两者的比例关系认为训练数据量和模型参数是同等重要的也就是说假设用于训练LLM的算力总预算增加了10倍那么应该增加3.3倍的模型参数量3.3倍的训练数据量这样模型效果才最好。 这意味着增加训练数据量的重要性比我们之前所认为的还要重要。基于这个认知DeepMind在设计Chinchilla模型时在算力分配上选择了另外一种配置对标数据量300B、模型参数量280B的Gopher模型Chinchilla选择增加4倍的训练数据但是将模型参数降低为Gopher的四分之一大约为70B。但是无论预训练指标还是很多下游任务指标Chinchilla效果都要优于规模更大的Gopher。 这带给我们如下启示我们可以选择放大训练数据并同比例地减少LLM模型参数以达到在不降低模型效果的前提下极大缩小模型规模的目的。缩小模型规模有很多好处比如在应用的时候推理速度会快很多等无疑这是一个很有前途的LLM发展路线。 以上是从预训练阶段来看模型规模的影响如果从LLM解决下游具体任务效果的角度来看随着模型规模增大不同类型的任务有不同的表现具体而言有以下三类情况。 第一类任务完美体现了LLM模型的scaling law就是说随着模型规模逐步放大任务的表现越来越好如上图里的a图所示。这类任务通常符合如下共性它们往往都是知识密集型任务也就是说如果LLM模型包含的知识量越多这类任务表现越好。而很多研究已经证明越大的LLM模型学习效率越高也就是说相同训练数据量模型越大任务效果越好说明面对的即使是同样的一批训练数据更大的LLM模型相对规模小一些的模型从中学到了更多的知识。更何况一般情况下在增大LLM模型参数的时候往往会同步增加训练数据量这意味着大模型可以从更多数据中学习更多的知识点。这些研究可以很好地解释上图为何随着模型规模增大这些知识密集型的任务效果越来越好。大多数传统的自然语言理解类任务其实都属于这种知识密集型任务而很多任务在近两年获得了极大的效果提升甚至超过了人类表现。很明显这大概率是LLM模型的规模增长带来的而非归功于某项具体的技术改进。 第二类任务展现出LLM具备某种“涌现能力Emergent Ability”如上图b所示。所谓“涌现能力”指的是当模型参数规模未能达到某个阀值时模型基本不具备解决此类任务的任何能力体现为其性能和随机选择答案效果相当但是当模型规模跨过阀值LLM模型对此类任务的效果就出现突然的性能增长。也就是说模型规模是解锁(unlock)LLM新能力的关键随着模型规模越来越大会逐渐解锁LLM越来越多的新能力。这是个很神奇的现象因为它意味着如下让人对未来可报乐观预期的可能或许很多任务目前LLM还不能很好地解决甚至站在现在这个时刻的我们看起来LLM完全没有能力解决这类任务但因LLM具备“涌现能力”所以如果我们继续推大模型也许某一天它的这项能力就被突然解锁了。LLM模型的规模增长会给我们带来意想不到的精彩礼物。 “Beyond the Imitation Game: Quantifying and extrapolating the capabilities of language models”这篇文章指出这类体现出“涌现能力”的任务也有一些共性这些任务一般由多步骤构成要解决这些任务往往需要先解决多个中间步骤而逻辑推理能力在最终解决这类任务中发挥重要作用。思维链Chain of ThoughtPrompting是典型的增强LLM推理能力的技术能大幅提升此类任务的效果关于CoT技术在随后小节内容会做解释此处暂不展开。 问题是为何LLM会出现这种“涌现能力”现象呢上述文章以及“Emergent Abilities of Large Language Models”给出了几个可能的解释 一种可能解释是有些任务的评价指标不够平滑。比如说有些生成任务的判断标准它要求模型输出的字符串要和标准答案完全匹配才算对否则就是0分。所以即使随着模型增大其效果在逐步变好体现为输出了更多的正确字符片段但是因为没有完全对只要有任何小错误都给0分只有当模型足够大输出片段全部正确才能得分。也就是说因为指标不够平滑所以不能体现LLM其实正在逐步改善任务效果这一现实看起来就是“涌现能力”这种外在表现。 另外一种可能的解释是有些任务由若干中间步骤构成随着模型规模增大解决每个步骤的能力也在逐步增强但是只要有一个中间步骤是错的最终答案就是错的于是也会导致这种表面的“涌现能力”现象。 当然上面的解释目前还都是猜想至于为何LLM会出现这种现象还需要进一步更深入的研究。 还有少部分任务随着模型规模增长任务的效果曲线展现出U形特性随着模型规模逐渐变大任务效果逐渐变差但是当模型规模进一步增长则效果开始越来越好呈现出U形增长趋势如上图所示的粉红色PaLM模型在两个任务上的指标走势。为何这些任务表现得如此特殊呢“Inverse scaling can become U-shaped”这篇文章给出了一种解释这些任务内部其实隐含了两种不同类型的子任务一种是真正的任务另外一种是“干扰任务distractor task”。当模型规模小的时候无法识别任意一种子任务所以模型的表现跟随机选择答案差不多当模型增长到中等规模的时候主要执行的是干扰任务所以对真正的任务效果有负面影响体现为真正任务效果的下降而当进一步增加模型规模则LLM可以忽略干扰任务执行真正的任务体现为效果开始增长。 对于那些随着模型规模增大效果一直下降的任务如果采用思维链CoTPrompting则部分任务的表现转换为遵循Scaling law即模型规模越大效果越好而其它任务则转换为U性增长曲线。这其实侧面说明了此类任务应属于推理类型的任务所以加入CoT后任务表现会发生质的变化。 04.人机接口从In Context Learning到Instruct理解 一般我们经常提到的人和LLM的接口技术包括zero shot prompting、few shot prompting、In Context Learning以及Instruct。这些其实都是表达某个具体任务的描述方式。不过如果你看文献会发现叫法比较乱。 其中Instruct 是ChatGPT的接口方式就是说人以自然语言给出任务的描述比如“把这个句子从中文翻译成英文”类似这种。zero shot prompting我理解其实就是现在的Instruct的早期叫法以前大家习惯叫zero shot现在很多改成叫Instruct。尽管是一个内涵但是具体做法是两种做法。早期大家做zero shot prompting实际上就是不知道怎么表达一个任务才好于是就换不同的单词或者句子反复在尝试好的任务表达方式这种做法目前已经被证明是在拟合训练数据的分布其实没啥意思。目前Instruct的做法则是给定命令表述语句试图让LLM理解它。所以尽管表面都是任务的表述但是思路是不同的。 而In Context Learning和few shot prompting意思类似就是给LLM几个示例作为范本然后让LLM解决新问题。我个人认为In Context Learning也可以理解为某项任务的描述只是Instruct是一种抽象的描述方式In Context Learning是一种例子示范的例子说明法。当然鉴于目前这几个叫法用的有点乱所以上述理解仅代表个人看法。 所以我们此处只对In Context Learning和Instruct进行介绍不再提zero shot和few shot了。 1. 神秘的In Context Learning 如果你细想会发现In Context Learning是个很神奇的技术。它神奇在哪里呢神奇在你提供给LLM几个样本示例 然后给它 LLM竟然能够成功预测对应的 。听到这你会反问这有什么神奇的呢Fine-tuning不就是这样工作的吗你要这么问的话说明你对这个问题想得还不够深入。 如果你细想会发现In Context Learning是个很神奇的技术。它神奇在哪里呢神奇在你提供给LLM几个样本示例 然后给它 LLM竟然能够成功预测对应的 。听到这你会反问这有什么神奇的呢Fine-tuning不就是这样工作的吗你要这么问的话说明你对这个问题想得还不够深入。 Fine-tuning和In Context Learning表面看似都提供了一些例子给LLM但两者有质的不同参考上图示意Fine-tuning拿这些例子当作训练数据利用反向传播去修正LLM的模型参数而修正模型参数这个动作确实体现了LLM从这些例子学习的过程。但是In Context Learning只是拿出例子让LLM看了一眼并没有根据例子用反向传播去修正LLM模型参数的动作就要求它去预测新例子。既然没有修正模型参数这意味着貌似LLM并未经历一个学习过程如果没有经历学习过程那它为何能够做到仅看一眼就能预测对新例子呢这正是In Context Learning的神奇之处。这是否让你想起了一句歌词“只是因为在人群中多看了你一眼 再也没能忘掉你容颜”而这首歌名叫“传奇”。你说传奇不传奇 看似In Context Learning没从例子里学习知识实际上难道LLM通过一种奇怪的方式去学习还是说它确实也没学啥关于这个问题的答案目前仍是未解之谜。现有一些研究各有各的说法五花八门很难判断哪个讲述的是事实的真相甚至有些研究结论还相互矛盾。这里提供几个目前的说法至于谁对谁错只能你自己把握了。当然我认为追求这个神奇现象背后的真相是一个好的研究课题。 试图证明In Context Learning没有从例子中学习的工作是“Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?”。它发现了在提供给LLM的样本示例 中 是否 对应的正确答案其实并不重要如果我们把正确答案 替换成随机的另外一个答案 这并不影响In Context Learning的效果。这起码说明了一点In Context Learning并没有提供给LLM那个从 映射到 的映射函数信息否则的话你乱换正确标签肯定会扰乱这个 映射函数。也就是说In Context Learning并未学习这个输入空间到输出空间的映射过程。 真正对In Context Learning影响比较大的是x 和 y 的分布也就是输入文本 x 的分布和候选答案 y 有哪些如果你改变这两个分布比如把 y 替换成候选答案之外的内容则In Context Learning效果急剧下降。 总之这个工作证明了In Context Learning并未学习映射函数但是输入和输出的分布很重要这两个不能乱改。 有些工作认为LLM还是从给出的示例学习了这个映射函数 yf(x) 不过是种隐式地学习。比如“What learning algorithm is in-context learning? Investigations with linear models”认为Transformer能够隐式地从示例中学习 x 到 y 的映射过程它的激活函数中包含了一些简单映射函数而LLM通过示例能够激发对应的那一个。而“Why Can GPT Learn In-Context? Language Models Secretly Perform Gradient Descent as Meta-Optimizers”这篇文章则将ICL看作是一种隐式的Fine-tuning。 总而言之目前这还是一个未解之谜。 神奇的Instruct理解 我们可以把Instruct当作一种方便人类理解的任务表述在这个前提下目前关于Instruct的研究可以分成两种偏学术研究的Instruct以及关于人类真实需求描述的Instruct。 我们先来看第一种偏学术研究的Instruct。它的核心研究主题是多任务场景下LLM模型对Instruct理解的泛化能力。如上图中FLAN模型所示就是说有很多NLP任务对于每个任务研究人员构造一个或者多个Prompt模版作为任务的Instruct然后用训练例子对LLM模型进行微调让LLM以同时学习多个任务。训练好模型后给LLM模型一个它没见过的全新任务的Instruct然后让LLM 解决zero shot任务从任务解决得是否足够好来判断LLM模型是否有对Instruct理解的泛化能力。 如果归纳下目前的研究结论可参考“Scaling Instruction-Fine-tuned Language Models”“Super-NaturalInstructions: Generalization via Declarative Instructions on 1600 NLP Tasks”能够有效增加LLM模型Instruct泛化能力的因素包括增加多任务的任务数量、增加LLM模型大小、提供CoT Prompting 以及增加任务的多样性。如果采取任意一项措施都可以增加LLM模型的Instruct理解能力。 第二种是人类真实需求下的Instruct这类研究以InstructGPT和ChatGPT为代表。这类工作也是基于多任务的但是和偏向学术研究类工作最大的不同在于它是面向人类用户真实需求的。为什么这么说呢因为它们用于LLM多任务训练的任务描述Prompt是从大量用户提交的真实请求中抽样而来的而不是固定好研究任务的范围然后让研究人员来写任务描述prompt。这里所谓的“真实需求”体现在两个方面首先因为是从用户提交的任务描述里随机抽取的所以涵盖的任务类型更多样化也更符合用户的真实需求其次某个任务的prompt描述是用户提交的体现了一般用户在表达任务需求时会怎么说而不是你认为用户会怎么说。很明显这类工作改出来的LLM模型用户体验会更好。 InstructGPT论文里也拿这种方法和FLAN那种Instruct based方法做了比较。首先在GPT3上用FLAN提到的任务、数据以及Prompt模版进行微调来在GPT 3上复现FLAN方法然后和InstructGPT进行比较因为InstructGPT的基础模型也是GPT3所以只有数据和方法的差别两者可比结果发现FLAN方法的效果距离InstructGPT有很大的差距。那么背后的原因是什么呢论文分析数据后认为FLAN方法涉及到的任务领域相对少是InstructGPT涉及领域的子集所以效果不好。也就是说FLAN论文里涉及到的任务和用户真实需求是不符的而这导致在真实场景下效果不够好。而这对我们的启示是从用户数据中收集真实需求这事情是很重要的。 In Context Learning和Instruct的联系 如果我们假设In Context Learning是用一些例子来具象地表达任务命令Instruct是一种更符合人类习惯的抽象任务描述。那么一个很自然的问题是它们之间有什么联系吗比如我们是否能够提供给LLM完成某个任务的若干具体示例让LLM找出其对应的自然语言描述的Instruct命令 目前有零星的工作在探索这个问题我认为这个方向是很有研究价值的。先说答案答案是YesLLM Can。“Large Language Models Are Human-Level Prompt Engineers”是做这个方向很有趣的工作如上图所示对于某项任务给LLM一些示例让LLM自动生成能够描述这项任务的自然语言命令然后它再用LLM生成的任务描述去测试任务效果。它使用的基础模型是GPT 3和InstructGPT经过这项技术加持后LLM生成的Instruct的效果相比未采用这项技术的GPT 3 以及InstuctGPT来说指标有极大地提升而且在一些任务上超过人类的表现。 这说明了具象的任务示例和任务的自然语言描述之间有种神秘的内在联系。至于这种联系到底是什么我们目前对此还一无所知。 05.智慧之光如何增强LLM的推理能力 目前很多研究已证明LLM对于知识具有强大的记忆能力但是一般我们不会因为一个人记忆能力强就说这人很聪明是否具有强大的推理能力往往是我们判断一个人是否聪明的重要标准。类似的如果LLM的效果想让人觉得很惊艳强大的推理能力是必备的。推理能力本质上是综合运用很多相关知识点去推导出新知识或新结论。关于LLM的推理能力是最近一年来LLM里最重要和热门的研究领域之一。于是我们关心的问题就是LLM具备推理能力吗如果具备那么它的推理能力够强吗 这两个问题目前的答案似乎应该是当模型规模足够大的时候LLM本身是具备推理能力的在简单推理问题上LLM已经达到了很好的能力但是复杂推理问题上还需要更多深入的研究。 如果梳理现有LLM推理相关工作的话我把它们归到两大类体现出挖掘或促进LLM推理能力不同的技术思路第一类研究比较多可以统称为基于Prompt的方法核心思想是通过合适的提示语或提示样本更好地激发出LLM本身就具备的推理能力Google在这个方向做了大量很有成效的工作。第二类做法是在预训练过程中引入程序代码和文本一起参与预训练以此进一步增强LLM的推理能力这应该是OpenAI实践出的思路。比如ChatGPT肯定具备很强的推理能力但它并不要求用户必须提供一些推理示例所以ChatGPT强大的推理能力大概率来源于使用代码参与GPT 3.5的预训练。 这两种思路其实大方向是迥异的利用代码增强LLM推理能力这体现出一种通过增加多样性的训练数据来直接增强LLM推理能力的思路而基于Prompt的方法它并不会促进LLM本身的推理能力只是让LLM在解决问题过程中更好地展示出这种能力的技术方法。可以看出前者代码方法治本后者治标。当然两者其实也是互补的但从长远看治本的方法更重要。 1. 基于Prompt的方法 这方面工作非常多如果归纳一下的话大致可以分为三条技术路线。 第一种思路是直接在问题上追加辅助推理Prompt。这种方法简单直接但在众多领域都很有效。这个做法是由“Large language models are zero-shot reasoners”提出的也被称为zero-shot CoT。具体而言分为两个阶段如上图所示第一阶段在提问的问题上追加“Let’s think step by step”这句提示语LLM会输出具体的推理过程第二阶段在第一阶段的问题后拼接LLM输出的具体推理过程并再追加Prompt“Therefore, the answer (arabic numerals) is”此时LLM会给出答案。如此简单的操作却可以大幅增加LLM在各项推理任务中的效果比如在数学推理测试集GSM8K上加上提示语后推理准确率直接从原先的10.4%提升到了40.4%可谓神奇。 为什么LLM会具备给一句“Let’s think step by step”提示语就能列出详细的推理步骤并算出答案呢其原因目前尚无定论我的猜测是很可能因为预训练数据里面存在大量的此种数据就是以“Let’s think step by step”开头然后后面是详细的推理步骤最后给出答案而LLM在预训练的时候记住了这些模式。而当我们输入这个提示语的时候激发LLM模糊得“回忆”起某些例子的推导步骤于是即可模仿这些例子进行步骤推理并给出答案。当然这只是我的无依据推论若事实真的如此如果你看过后面介绍的标准CoT做法会发现Zero-shot CoT 本质上和标准CoT很可能没什么区别只是标准CoT由人工来写推理步骤的示例而Zero-shot CoT大概率是通过提示语激活了记忆中的某些包含推理步骤的示例很可能是如此区别。而标准CoT效果比Zero-Shot CoT效果好也完全可以理解因为毕竟靠LLM回忆示例精准性估计不会太高而人工给出的示例准确性是有保障的所以自然标准CoT效果会更好。 这侧面说明了一个道理就是LLM本身是具备推理能力的只是我们没有办法把它的这种能力激发出来而已通过合适的提示语来进行两步提示就在一定程度上可以释放出它的这种潜力。另外对于中文很可能存在另外一个黄金提示语比如“详细解题思路如下”类似这种因为中文语料在讲解推理步骤的时候经常用的引导句和“让我们一步一步来思考”应该是不同的这是明显的西方说法而探索出这个中文黄金提示语其实也是很有必要的。 第二种思路一般被称为基于示例的思维链few-shot CoT,Chain of ThoughtPrompting。这个方向目前是LLM推理研究的主方向很多工作都是在这个思路上做的我们简单介绍几个效果显著的代表性工作基本能代表CoT的技术发展方向。 CoT的主体思想其实很直白为了教会LLM模型学会推理给出一些人工写好的推理示例示例里把得到最终答案前一步步的具体推理步骤说清楚而这些人工写的详细推理过程就是思维链Prompting具体例子可参照上图中蓝色文字部分。CoT的意思是让LLM模型明白一个道理就是在推理过程中步子不要迈得太大否则很容易出错改变思维模式化大问题为小问题步步为营积小胜为大胜。最早明确提出CoT这个概念的文章是“Chain of thought prompting elicits reasoning in large language models”论文发布于22年1月份虽然做法很简单但是应用CoT后LLM模型的推理能力得到了巨大提升GSM8K数学推理测试集准确率提高到60.1%左右。当然这种给出详细推理步骤和中间过程的思想并非CoT最早提出的更早一些的“scratchpad”技术可参考Show Your Work: Scratchpads for Intermediate Computation with Language Models首先采用了类似的思路。 CoT提出不久很快在22年3月份一项被称为“Self-Consistency”的改进技术就将GSM8K测试集准确率提高到74.4%提出这项改进的论文是“Self-Consistency Improves Chain of Thought Reasoning in Language Models”。“Self-Consistency”的思路也很直观参考上图首先可以利用CoT给出几个写了推理过程的示例然后要求LLM对给定的问题进行推理如果是CoT直接输出一个推理过程和答案整个过程就结束了。“Self-Consistency”则不然它要求LLM输出多个不同的推理过程和答案然后采用投票的方式选出最佳答案思路非常简单直接但是效果也确实好。“Self-Consistency”其实是教导LLM学会这么一个道理孔乙己说过茴香豆的“茴”字有四种写法类似的一个数学题的正确解法也可以有很多种每个不同的推导过程都指向最终的答案。条条大路通罗马虽说也有个别迷路走到北京的但是迷路的毕竟是少数看看大多数人走到哪里哪里就是正确答案。简单的方法往往蕴含着深刻的哲学含义是不是这道理 再往后“On the Advance of Making Language Models Better Reasoners”这个工作在“Self-Consistency”基础上进一步集成了“从一个Prompt问题拓展到多个Prompt问题、检查推理中间步骤的正确性以及对多个输出的回答加权投票”这三个改进点将GSM8K测试集准确率提高到83%左右。 第三种思路体现了一种分治算法的思想。当然这个所谓“分治”是我归纳的别人没这么说。这种思路的核心思想是对于一个复杂的推理问题我们把它分解成若干容易解决的子问题一一解决掉子问题后我们再从子问题的答案推导复杂问题的答案。你看这确实比较类似分治算法的思想吧。我个人觉得这种思路可能才是揭示问题本质、最终解决LLM复杂推理问题正宗的道路。我们以“Least-to-most prompting”技术为例来说明这种思路的一种具体实现方式如上图所示它分为两个阶段第一个阶段从原始问题我们可以得知最终要问的问题是什么我们假设最终问题是Final Q然后从原始问题填充Prompt模版“如果要解决Final Q问题那么我需要先解决”然后把原始问题和这个Prompt交给LLM让LLM模型给出答案等于让LLM给出最终问题的前置子问题Sub Q接下来我们进入第二个阶段让LLM先回答刚才拿到的子问题Sub Q并拿到对应的答案然后原始问题拼接子问题Sub Q及对应答案再去问LLM最终那个问题Final Q此时LLM会给出最后的答案。如此这般体现出拆解子问题并从子问题的答案逐步找出最终答案的思路。 2. 代码预训练增强LLM推理能力 以上是目前利用Prompt激发LLM模型推理能力的三种主流做法而关于LLM的推理能力目前还观察到一个有趣且费解的现象除了文本外如果能够加入程序代码一起参与模型预训练则能大幅提升LLM模型的推理能力。这个结论从不少论文的实验部分都可以得出可以参考AUTOMATIC CHAIN OF THOUGHT PROMPTING IN LARGE LANGUAGE MODELSChallenging BIG-Bench tasks and whether chain-of-thought can solve them等论文的实验部分。 上图给出了一份实验数据来自于论文“On the Advance of Making Language Models Better Reasoners”其中GPT3 davinci就是标准的GPT 3模型基于纯文本训练code-davinci-002OpenAI内部称为Codex是同时在Code和NLP数据上训练的模型。如果比较两者效果可以看出不论采用具体哪种推理方法仅仅是从纯文本预训练模型切换到文本和Code混合预训练模型在几乎所有测试数据集合上模型推理能力都得到了巨大的效果提升比如我们以“Self Consistency”方法为例在大多数据集合上的性能提升都直接超过了20到50个百分点这是很恐怖的性能提升而其实在具体推理模型层面我们什么也没做仅仅是预训练的时候除了文本额外加入了程序代码而已。 除了这个现象从上图数据中我们还可以得出其它一些结论比如GPT 3这种纯文本预训练模型其实是具备相当程度的推理能力的除了在GSM8K这种数学推理上效果比较差外其它推理数据数据集合表现也还可以前提你需要采用合适的方法来激发出它本身就具备的这种能力再比如text-davinci-002也就是在code-davinci-002基础上加入instruct fine-tuning后的模型就是加入InstructGPT或ChatGPT模型的第一步其推理能力要弱于Codex但是有其它研究表明它在自然语言处理任务又要强于Codex。而这貌似说明了加入instruct fine-tuning会损害LLM模型的推理能力但是会在一定程度上提升自然语言理解能力。而这些结论其实都是很有意思的也能启发后续进一步的思考和探索。 那么一个自然的疑问是为何预训练模型可以从代码的预训练中获得额外的推理能力确切原因目前未知值得深入探索。我猜测可能是因为原始版本的Codex只使用代码训练可参考文献Evaluating Large Language Models Trained on Code的代码训练是从文本生成代码而且代码中往往包含很多文本注释本质上这类似于预训练模型做了文本,Code两种数据的多模态对齐工作。而数据中必然包含相当比例的数学或逻辑问题的代码、描述和注释很明显这些数学类或逻辑推理类的数据对于解决下游数学推理问题是有帮助的我猜大概率原因在此。 3. 关于LLM推理能力的思考 上面介绍了LLM推理的主流技术思路和现有的一些结论接下来谈谈我对LLM模型推理技术的思考以下内容纯个人推断没有太多证据还请谨慎参考。我的判断是虽然最近一年来关于激发LLM的推理能力这方面的技术进展很快也取得了很大的技术进步但是总体感觉是我们可能走在正确的方向上但是距离接触到真正的问题本质还有一段距离对此要有更深入的思考和探索。 首先我比较赞同上述分治算法的主体思路对于复杂的推理问题我们应该把它拆解成若干简单的子问题因为子问题对于LLM来说回答正确的概率就大很多让LLM一一回答子问题后再逐步推导出最终答案。受到“Least-to-most prompting”技术的启发如果进一步思考我觉得LLM推理本质上很可能会是如下两种可能的其中之一不断和LLM进行交互的图上推理问题抑或是不断和LLM进行交互的程序流程图执行问题。 先说图上推理问题如上图所示假设我们有办法能够把复杂问题拆解成由子问题或者子步骤构成的图结构图中的节点是子问题或者子步骤图中的边代表了子问题之间的依赖关系就是说只有回答好子问题A才能回答子问题B而且图中大概率存在循环结构就是反复做某几个子步骤。假设我们能够得到上述的子问题拆解图那么可以根据依赖关系引导LLM一步一步按照图结构回答必须首先回答的子问题直到推导出最终答案。 再说程序流程图问题参考上图假设我们有办法把复杂问题拆解成子问题或子步骤并产生一个由子步骤构成的类似程序流程图的结构在这个结构里有些步骤会反复执行多次循环结构有些步骤的执行需要进行条件判断条件分支。总而言之在执行每个子步骤的时候和LLM进行交互得到子步骤的答案然后按照流程不断执行直到输出最终答案。类似这种模式。假设这个思路大致正确的话也许可以从这个角度来解释为何加入代码会增强预训练模型的推理能力大概率因为文本代码的多模态预训练模型在模型内部是通过类似这种隐含的程序流程图作为两个模态的桥梁将两者联系起来的即由文本描述到隐含的流程图再映射到由流程图产生具体的代码。也就是说这种多模态预训练可以增强LLM模型从文本构建出隐含的流程图并按照流程图执行的能力也就是加强了它的推理能力。 当然上述思路最大的问题是我们如何根据文本描述的问题能够靠LLM模型或者其它模型得到图结构或者流程图结构这个可能是其中的难点。一种可能的思路就类似继续增强文本和更高质量的代码预训练走隐式学习内部隐含结构的方法。而目前的CoT技术如果套到上述思路来思考的话可以这么理解标准CoT其实就是靠自然语言文本来描述图结构或者程序流程图的而“Least-to-most prompting”技术则是试图根据最后一个图节点靠倒推来试图推导出其中的图结构但是很明显目前的方法限制了它倒推的深度也就是说它只能推导出非常简单的图结构这正是限制它能力的所在。 06.未来之路LLM研究趋势及值得研究的重点方向 这里列出一些我个人认为比较重要的LLM研究领域或值得深入探索的研究方向。 1. 探索LLM模型的规模天花板 尽管继续推大LLM模型的规模这事看似没有技术含量但是其实这个事情异常重要。我个人判断自从Bert出现以来到GPT 3再到ChatGPT大概率这些给人印象深刻的关键技术突破核心贡献都来自于LLM模型规模的增长而非某项具体技术。说不定揭开AGI真正的钥匙就是超大规模及足够多样性的数据、超大规模的模型以及充分的训练过程。再者做超大规模的LLM模型对技术团队的工程实现能力要求是非常高的也不能认为这事情缺乏技术含量。 那么继续推大LLM模型规模有什么研究意义呢我觉得有两方面的价值。首先如上所述我们已知对于知识密集型的任务随着模型规模越大各种任务的效果会越来越好而对很多推理类型的有难度的任务加上CoT Prompting后其效果也呈现出遵循Scaling law的趋向。那么很自然的一个问题就是对于这些任务LLM的规模效应能将这些任务解决到何种程度这是包括我在内很多人关心的问题。其次考虑到LLM具备的神奇的“涌现能力”如果我们继续增加模型规模它会解锁哪些让我们意想不到的新能力呢这也是很有意思的问题。考虑到以上两点我们仍然需要不断增大模型规模看看模型规模对解决各类任务的天花板在哪里。 当然这种事情也就只能说说对99.99%的从业者来说是没有机会和能力做这个事情的。要做这个事情对研究机构的财力及投入意愿、工程能力、技术热情都有极高的要求缺一不可。能做这事情的机构粗估下来国外不超过5家国内不超过3家。当然考虑到成本问题未来也许会出现“股份制大模型”就是有能力的几家机构合作群策群力一起来共建超级大模型的现象。 2. 增强LLM的复杂推理能力 正如之前对LLM推理能力的叙述尽管LLM在最近一年推理能力得到了很大的提升但是很多研究参考Limitations of Language Models in Arithmetic and Symbolic InductionLarge Language Models Still Can’t Plan表明目前LLM能够解决得比较好的推理问题往往都相对简单LLM的复杂推理能力仍然薄弱比如即使是简单的字符拷贝推理或者加减乘除运算当字符串或者数字非常长的时候LLM推理能力会极速下降再比如行为规划能力等复杂推理能力很弱。总而言之加强LLM的复杂推理能力应该是LLM未来研究中最重要的环节之一。 前文有述加入代码加入预训练这是一种直接增强LLM推理能力的方向。这个方向目前研究尚显不足更像是实践经验的总结探索背后的原理并进而引入更多类型除代码外的新型数据来增强LLM的推理能力这可能是更本质提升推理能力的方向。 3. LLM纳入NLP之外更多其它研究领域 目前的ChatGPT擅长NLP和Code任务作为通向AGI的重要种子选手将图像、视频、音频等图像与多模态集成进入LLM乃至AI for Science、机器人控制等更多、差异化更明显的其它领域逐步纳入LLM是LLM通往AGI的必经之路。而这个方向才刚刚开始因此具备很高的研究价值。 4. 更易用的人和LLM的交互接口 如前所述ChatGPT的最大技术贡献即在此。但是很明显目前的技术并不完美肯定还有很多命令LLM理解不了。所以沿着这个方向寻找更好的技术来让人类使用自己习惯的命令表达方式而LLM又能听懂这是个新的且非常有前景的技术方向。 5. 建设高难度的综合任务评测数据集 好的评测数据集是引导技术不断进步的基石。随着LLM模型逐步增大任务效果快速提升导致很多标准测试集快速过时。也就是说这些数据集合相对现有技术来说太容易了在没有难度的测试集合下我们不知道目前技术的缺陷和盲点在哪里。所以构建高难度的测试集合是促进LLM技术进步的关键所在。 目前行业应出现了一些新的测试集有代表性的包括BIGBench、OPT-IML等。这些测试集合体现出一些特性比如相对LLM现有技术具备一定的难度、综合了各种各样多种类型的任务等。 受到ChatGPT的启发我觉得除此外应纳入另一考虑因素体现真实用户需求。就是说这些任务的表述由用户真实发起这种方式构建出来的LLM模型才能解决用户实际需求。 除此外相信LLM会快速将能力溢出到NLP之外的领域而如何融入更多其它领域的评测数据也是需要提前去考虑。 6. 高质量数据工程 对于预训练模型来说数据是其根本预训练过程可以理解为从数据中吸取其中所包含知识的过程。因此我们需要进一步加强对高质量数据的挖掘、收集及清洗等工作。 关于数据需要考虑两个方面数据的质量和数量。而根据T5的对比实验我们可以得出结论在数量和质量两个因素里质量优先正确的道路应该是在保证数据质量的前提下再去增大数据规模。 数据质量包括数据的信息含量以及数据的多样性等多个衡量标准比如Wiki明显就属于世界知识密度极高的高质量数据这是从信息含量来说的而增加数据类型的多样性无疑是激发LLM各种新能力的根本比如加入问答网站的数据对于LLM的QA能力提升是有直接帮助的。多样化的数据赋予了LLM更好解决更多不同类型任务的能力所以这可能是数据质量里最关键的标准。 关于数据数量原则上互联网上公开发布的数据都可以纳入LLM模型的预训练过程。那么它的极限在哪里“Will we run out of data? An analysis of the limits of scaling datasets in Machine Learning” 对此进行了估算结论是到2026年左右高质量的NLP数据将会用光低质量NLP数据会在2030到2050年用光而低质量图像数据会在2030到2060年用光。而这意味着要么到时我们有新类型的数据源要么我们必须增加LLM模型对数据的利用效率。否则目前这种数据驱动的模型优化方式将会停止进步或者收益减少。 7. 超大LLM模型Transformer的稀疏化 目前规模最大的LLM中有相当比例的模型采取了稀疏Sparse结构比如GPT 3、PaLM、GLaM等GPT 4大概率也会走稀疏模型路线。之所以采用Sparse 化的模型主要好处是它可以极大减少LLM的训练时间和在线推理时间。Switch Transformer论文里指出在相同算力预算的前提下使用稀疏化Transformer相对Dense TransformerLLM模型的训练速度可以提升4倍到7倍。为何Sparse模型可以加快训练和推理时间呢这是因为尽管模型参数巨大但是对于某个训练实例Sparse模型通过路由机制只使用整个参数中的一小部分参与训练和推理的活跃参数量比较少所以速度快。 我认为未来超大的LLM模型大概率会收敛到稀疏模型。主要有两个原因一方面现有研究表明参考Large Models are Parsimonious Learners: Activation Sparsity in Trained Transformers标准的Dense Transformer在训练和推理时它本身也是稀疏激活的就是说只有部分参数会被激活大部分参数没有参与训练和推理过程。既然这样我们不如直接迁移到稀疏模型另外毫无疑问LLM模型的规模会继续推大而高昂的训练成本是妨碍其进一步扩大模型的重要阻力使用稀疏模型可以极大降低超大模型的训练成本所以随着模型规模越大稀疏模型带来的收益越明显。考虑到这两个方面大概率未来更大的LLM模型会采用稀疏模型方案。 那为何目前其它大规模模型不走稀疏模型的路线呢因为Sparse模型存在训练不稳定、容易过拟合等问题不太容易训练好。所以如何修正稀疏模型面临的问题设计出更容易训练的稀疏模型是很重要的未来研究方向。 07.取经之路复刻ChatGPT时要注意些什么 如果希望能复刻类似ChatGPT这种效果令人惊艳的LLM模型综合目前的各种研究结论在做技术选型时需要重点权衡如下问题 首先在预训练模式上我们有三种选择GPT这种自回归语言模型Bert这种双向语言模型以及T5这种混合模式(Encoder-Decoder架构在Encoder采取双向语言模型Decoder采取自回归语言模型所以是一种混合结构但其本质仍属于Bert模式)。我们应选择GPT这种自回归语言模型其原因在本文范式转换部分有做分析。目前看国内LLM在做这方面技术选型的时候貌似很多都走了Bert双向语言模型或T5混合语言模型的技术路线很可能方向走偏了。 第二强大的推理能力是让用户认可LLM的重要心理基础而如果希望LLM能够具备强大的推理能力根据目前经验最好在做预训练的时候要引入大量代码和文本一起进行LLM训练。至于其中的道理在本文前面相关部分有对应分析。 第三如果希望模型参数规模不要那么巨大但又希望效果仍然足够好此时有两个技术选项可做配置要么增强高质量数据收集、挖掘、清理等方面的工作意思是我模型参数可以是ChatGPT/GPT 4的一半但是要想达到类似的效果那么高质量训练数据的数量就需要是ChatGPT/GPT 4模型的一倍Chinchilla的路子另外一个可以有效减小模型规模的路线是采取文本检索Retrieval based模型LLM的路线这样也可以在效果相当的前提下极大减少LLM模型的参数规模。这两个技术选型不互斥反而是互补的也即是说可以同时采取这两个技术在模型规模相对比较小的前提下达到超级大模型类似的效果。 第四超级大模型因为模型规模大所以训练成本过高导致很少有机构有能力去做这件事。而且由上文分析可见继续不断推大LLM模型规模是肯定会发生、也应该去做的事情。于是如何通过技术手段降低LLM的训练成本就很重要。LLM的特征抽取器Sparse化是有效降低模型训练及推理成本的技术选择。由此可见随着模型越来越大LLM模型Sparse化是一个应该考虑的选项。 第五ChatGPT是目前最接近理想LLM的技术方案而理想中的LLM应该是以一个几乎无所不能的基础通用大模型作为依托来支持各种各样的上层任务类型。目前看支持越来越多的任务类型主要是通过增加LLM预训练数据的多样性来达成的数据多样性越好LLM能够支持的任务类型就越丰富。所以应该重视通过增加数据多样性来增加LLM新能力的思路。 第六易用的人机操作接口。人类用他们自己习惯的表达方式来描述任务而LLM要能够理解这些Instruct的真实含义。另外也要注意这些Instruct是符合人类真实需求的就是说要从最终用户那里收集任务表述方式而不能靠研发人员自己的臆想或猜测。ChatGPT给我最大的启发其实是这一点至于是否用增强学习我倒觉得不重要其它替代技术应该也能做类似的事情。 8.ChatGPT:为什么是OpenAI 为什么是OpenAI作出了ChatGPT而不是其它机构呢我们在这里可以做个简单分析。 在本文开头我们提到了OpenAI看待LLM的理念。OpenAI是怎么看待LLM的呢回顾它不断推出的技术可以看出它其实从GPT 1.0开始基本就坚定地把LLM看做是通往AGI的一条必由之路。具体而言在OpenAI眼中未来的AGI应该长这个样子有一个任务无关的超大型LLM用来从海量数据中学习各种知识这个LLM以生成一切的方式来解决各种各样的实际问题而且它应该能听懂人类的命令以便于人类使用。其实对LLM发展理念的理解在前半部分就是“构建一个任务无关的超大型LLM让它从海量数据中学习各种知识”这一点几乎是大家的共识能体现出OpenAI眼光的其实是后半部分。 OpenAI的理念比较超前对自我定位从一开始就定得比较高始终坚定不移地探索上述方式是否可以实现AGI。OpenAI之所以能作出ChatGPT胜在一个是定位比较高另一个是不受外界干扰态度上坚定不移。 我们可以回顾下它走的一些关键路程GPT 1.0走的是生成模式的自回归语言模型路线比Bert出来的还早些。Bert证明了双向语言模型对于很多NLP理解类任务效果比自回归这种单向语言模型效果更好。尽管如此GPT 2.0并没有因此切换到双向语言模型这条路上仍然走文本生成的路而且开始尝试零示例zero shotprompt和少量示例few shotprompt。其实这时候 OpenAI心目中的AGI已经开始浮出水面逐渐显示出轮廓了。只是因为zero shot/few shot效果比Bertfine-tuning差的比较远所以大家都没太当回事甚至不理解它为什么要始终坚持走单向语言模型的路线。这个时候我估计即使是OpenAI自己也不一定能确保这条路肯定能走通。 但是这不妨碍它继续在这条路上往后走。GPT 3.0已经展示出了比较强大的zero shot/few shot prompt能力这时候OpenAI心目中的AGI已经完全漏出水面轮廓清晰而且它的效果也证明了这条路是有较大可能走得通的。GPT 3.0是一个决定LLM发展方向的叉路口和分水岭与之对应的另外一条路是“Bertfine-tuning”模式。在这个岔路口不同的从业者选择走上了不同的道路后面的技术差距也是从这里开始拉开的。很遗憾地是国内很多从业者选择继续在“Bertfine-tuning”这条路上往后走这也是造成今天落后局面的一个关键时间节点。再往后就是InstructGPT和ChatGPT了OpenAI通过ChatGPT证明了一点虽然我们距离真正的AGI可能还有很长的路要走但是通过超大LLM走向AGI这条路目前看是可行的。 今天的分享就到这里谢谢大家。
http://www.dnsts.com.cn/news/190818.html

相关文章:

  • 企业网站的功能有哪些用什么做网站最好
  • 17一起做网店网站品牌网站建设怎么收费
  • 怎么自己优化网站一个网站从开发到上线的过程
  • 专做皮鞋销售网站大连网红培训基地
  • 在网站中设置网站地图做电音的软件的专业下载网站
  • 扁平化设计风格的网站模板wordpress 头部
  • 网站开发环境 对比盘锦网站变建设
  • 免费化工网站建设东莞优化seo网站关键词优化
  • 方案巴巴策划网站麻涌东莞网站建设
  • 做网站运营的职业生涯规划专业建设思路与措施
  • 做国际网站有哪些同一个网站买多家cdn
  • seo网站设计点击软件重生做网站的小说
  • 宁波建站模板源码wordpress版权说明
  • 网站建设中的定位设想自建站推广
  • 甘肃省水利工程建设网站宣传片拍摄清单
  • 教研网站建设方案关键词优化app
  • 手机全部网站龙岗住房和建设局网站官网
  • 宝山网站建设服务网站google搜索优化
  • 做招投标网站联网站
  • 企业网站开发模板下载wordpress优酷
  • 青岛城阳 软件网站开发wordpress相册插件nextgen gallery
  • 做电子商务网站公司郴州高端网站建设
  • 黄岩建设局网站网站静态页
  • 网站空间托管合同 .docphp网站制作工具
  • 在线设计系统sem seo是什么意思呢
  • 品牌建设网站有哪些百度6大核心部门
  • 平罗县住房和城乡建设局网站广告营销公司
  • wordpress设计的网站广告词
  • 做像58同城样的网站个人网站每年要多少钱
  • 一流的网站建设与优化app推广的网站