【2023H1】漫谈ChatGPT系列(5):如何理解 大型语言模型的逻辑推理能

栏目:家庭教育  时间:2023-07-28
手机版

  本文是一个偏理论分析向的文章,阅读难度相对较大。

  有一些作为基础的观点包含在前置文章中,建议阅读以下文章后再阅读本文:

  【2022Q2】重新思考如何从语言模型中挖掘知识——GPT-3能理解我们的提示么?谈思维链CoT prompt的发现【2023Q1】数据集 并不能告诉我们 什么样的数据永远不会存在 ChatGPT中语义理解和知识表达的基础仍然是大型语言模型(LLM),所以以下主要讨论LLM。

  以单向语言模型为例,它的功能是:在给定了一段文字后(以下称为Context),给出在其后接一个指定【文字单元】的概率。这个文字单元称为token,一般是一个词。选择了一个token之后,可以再重复上述过程不断产生后续的文本。也就是说,语言模型就是一个“接话”模型。

  语言模型可以在大量无需标注的文字内容(称为语料)上训练,由于全球已经文字化的信息非常多,又无需标注,所以其“性价比”似乎较高。但由于之前受到数据量、技术和应用场景等等诸多方面的限制,该类模型在过去并不知名,不是做NLP领域的机器学习从业者对其不了解是很正常的。

  本质上来讲,语言模型最多只有“单步逻辑推理”的能力。这里的单步并不容易严格定义,因为到底如何确定步的划分尚未有非善完备的定义。不过语言模型可以在Context中考虑较长一段文字,来事先考虑前述“多步”的推理过程。

  从Context产生一段完整的内容需要多次的使用语言模型进行预测,由于在Context之后每次可以接的内容token并不唯一,每个token的位置都有多种可能可以选择,所以这个是逐步分叉的树的探索过程,每个分支都有自己的选择概率(对应到语言模型输出的token的概率)。一般是选择在这个树中,联合概率最大(或前X名)的token序列作为结果返回。

  考虑到inference的成本,目前很可能是是产生每个token时候,在备选token集中按预测的概率随机选择了一个token来继续。这并不是完全是一个贪心策略,但它的好处是可以多次运行产生不同的结果。

  某种意义上,这里的按token逐步迭代的过程才是一个多步推理的引擎。这个引擎既不高大上,也不是从大量数据中学到的。在领域外的人来看,要说这个系统中的瓶颈有哪些,可能这里才是最大的嫌疑。但很遗憾,这方面的改善是比较难的。

  概括一下就是:基于语言模型的单步推理结果来进行大范围的推理探索。这导致了如下特点:

  产生(给定语言模型认为的)低概率的文本比较困难。由于实际文本只在所有可能的文本空间中占极小的部分,所以从实际文本学得的语言模型也只在接近这些实际文本的“附近”才有较为准确的效果,脱离这些“常见区域”越远,给出的概率准确性越差。在给定的语言模型定义的推理空间中,可能会存在自环,导致探索过程如果进入这些区域,会反复循环无法脱离,导致产生重复的文本。这类bug在已有的AI翻译或者ChatGPT产品中也时常出现。以上对LLM的推理原理有了一个大概的了解,接下来我们先看一下人更容易理解的知识图谱和其上的推理,然后再来继续讨论LLM上的推理。

  本文的知识图谱取一种广义的含义,即以结构化的方式表达知识并以图的方式进行存储和组织。本质上来说,这只限定了知识的表达方式,类似于限定了格式只能用Excel的xlsx。实际如何产生这些结构化的知识,如何规定这些知识数据应该符合的标准都是很复杂的问题,也不同的知识图谱案例也各不相同。

  在这个思路下,所有的知识都是明确的表达为图中的一个顶点或者边或者其他结构,通过图上的推理算法可以明确的直到从已有知识是否能够推理到达指定的位置,所有内容都是明确的。这非常符合人的理性思维的那一面。

  知识图谱最大的问题是,如何确定知识表达的标准和如何产出这些知识数据。

  但在通用领域,这个问题非常困难,因为:

  很多知识和信息的表达是模糊的难以明确其严格定义很多知识和信息之间有共性,并不是非此即彼可以独立区分的知识的抽象层面也各种各样,难以划分出统一的抽象体系这都导致对于某个特定的知识或信息的表达都经常会陷入分歧。

  更别说传统的知识图谱并不包含概率性的知识关系,概率化的推理也不是普通人所习惯的。

  此外,对通用领域中包含的极多的知识和信息的归纳成本也极其的高昂,以至于不太可能有人真的能做成。

  从知识图谱的角度上来看,LLM放弃了知识图谱中的精确定义和显示表达知识,但很好的解决了:规模化构建成本、模糊知识的表达等等问题。

  也就是说,如果放弃显性的获取知识,把LLM当成一个知识图谱黑盒数据库来查询,且不拘泥于把其输出结果都结构化的化,LLM是一个很成功的通用领域知识图谱类似物。仅就“常见区域”来说,它的准确性远比同样成本下做出的传统知识图谱要好的多的多。说LLM是互联网上所有知识的有损(且黑盒的)压缩,这个话非常准确。

  但很遗憾,目前还做不到从LLM中提取出其中包含的大部分知识和信息,因为:

  LLM本身是一个巨型的黑盒模型,甚至是人类炼出的最大的黑盒模型。想要彻底的解析它,人类很可能还缺乏很多数学工具。现在就像是通过CPU内部的电磁场分布来研究它上面运行的系统上的虚拟机中跑的一个python脚本的逻辑。由于知识和信息的数量极多,在没有指导的情况下,穷举LLM在所有输入情况下的输出来获取所有单步知识几乎不可能。当我们需要显性表达知识和信息的时候,前述的知识表达标准问题就变得无法忽视。我们可以随意在某个抽象层面和表达模糊性上向LLM请求,但毫无组织的将其都丢入知识图谱只会破坏我们所期望的知识图谱的很多良好的性质。到这里,我们知道可以将LLM看成是带有一个巨大、黑盒、模糊、不那么精确但覆盖很好的“知识图谱”的推理能力孱弱的推理系统。

  需要注意的是,这里的推理并不拘泥于逻辑推理。主观感性的反应、作品中的艺术性的连贯、常见复杂系统中的常见的连续性操作等等都可以被这个框架捕捉和表达。

  而这个系统的问题就是:模糊性、不精确、掺杂错误、偏离“常见区域”越远时表现越差。

  某种意义上来说,LLM系统可以看成是一个阅历极其丰富的人的快速直觉反馈,而不是深入思考和复杂推演后给出的反馈。用《思考,快与慢》中的概念来说就是,它更像系统1,而不是系统2。需要注意的是:系统1也可以做一些理性的反馈或者是复杂场景的应对,只要它们是经常出现的。

  这里举一个例子来体现ChatGPT在逐渐脱离“常见区域”/常识上下文后,错误率增加的情况:

  当ChatGPT面对越来越多的脱离“常见区域”的假设时,开始犯错,也就是这里的最后一问。需要注意的是,由于ChatGPT给的反应是有随机性的,所以第三个问题实际上是犯错的概率明显增加了,如果重复要求它生成回答,你可以看到它也能以一定概率给出正确的回答。

  本文的“常见区域”都是说的从训练数据的角度,对于个体的人来说,超过他熟悉的范围很正常。

  特别是,即使是对于一些特定领域的从业者,也可能会发现LLM给出的结果对自己来说并不显然(但正确或有启发性)。这其实才是一个危险的信号,表示这个从业者可能已经落后于行业第一梯队,(毕竟这连LLM都学到了),并且已经能够被LLM在某些方面超越,而且至少成本上肯定被打败了。要说焦虑的话,遇到这种才是真的需要焦虑的时候。

  应对方式就是,打不过的就要加入,要学会使用LLM以及其他AI工具来补上自己的短板,发挥自己的长处。注意这并不是说要把LLM当成老师学习他的输出,更多是指:与LLM一起工作。

  LLM是一种低垂的果实,是另一种意义上的黑盒的通用知识图谱。任何对其准确性和可解释性的大幅改进都会需要极大的增加研发成本,因为本质上LLM就是因为成本最低才首先得到应用的,即使如此也拖了很久。LLM很强大,但也有不低的错误率,这些错误很难被系统性的修复,需要应用上来寻找可以容许这些错误的场景,例如【可以低成本验证】或者【用户可以快速判断正确性】。LLM的优势是在其“常见区域”附近,脱离它的训练数据越远、需要反常识的推理的步数越多、它需要处理的内容复杂性越高时,越容易出错。其实本文写作时希望表达是:LLM没有一般意义上的那种能自己(在经验之外)正确推理很多步的推理能力。其实这个标准是以传统的算法和程序的标准来设定的。但实际上很多人也做不到能凭空推理很多步且都正确无误,严密的推理能力是数学专业所训练的能力,一般人也只是做一些相对模糊的推理,且经常做不到无限推理。目前来看,不少人对于评价是否有推理能力的标准并没有这么强,思维链CoT的方式就已经能够满足这些标准了,特别是像GPT-4这样。考虑到OpenAI也在着重发展LLM这方面的能力,我认为后续版本在这方面能力还能够明显的进步。综上我觉得已经不能说“LLM没有推理能力”,至少大部分人深入体验过GPT-4之后不会接受这个判断。如果希望和我交流讨论,或参与相关的讨论群,或者建立合作,可以从我知乎的签名或 交流及合作方式 中的方式联系我。

  【2023Q2】Rethinking LLM(1):Token 与 语义 的Gap

  【2023H1】Rethinking LLM(2):如何理解LLM中的微调和RLHF阶段

  【2023Q2】Rethinking LLM:自动化的RLHF数据生成 与 Multi-Agent Alignment

  【2023.6】Rethinking LLM(3):语义层面 探索的一些想法

  【2023.6】Rethinking LLM(4):从总体视角看LLM

  【2023.7】Rethinking LLM:谈OpenAI 0613版本System Message的实现方式

  【2023Q2】谈 基于LLM的程序:概念介绍

  【2023.5】基于LLM的程序开发:策略开发基础(1)

  【2023.5】基于LLM的程序开发:LLM的Context Window 与 短期发展展望

  【2023Q2】基于LLM的程序开发:LLM是否能通过文本输出score数值?

  【2023Q2】基于LLM的程序开发:Tree of Thoughts专题

  【2023Q3】基于LLM的程序开发:策略内部状态是否应该结构化

  【2023Q3】基于LLM的程序开发:System Message的崛起

  【2023Q2】LLM炼丹trick拾遗:(0)系列定位及背景介绍

  【2023.5】LLM炼丹trick拾遗:LLM场景的Tokenizer设计

  【2023Q2】LLM炼丹trick拾遗:数据集并不只是燃料,更是准星

  【2023Q2】LLM炼丹trick拾遗:LLM的MoE架构与Lifelong learning

  【2023Q2】产品视角看LLM:(1)不是所有的“智能大脑”都能被LLM赋能

  【2023.6】产品视角看LLM:(2)谈 面向应用场景的LLM benchmark平台 如何设计

  【2023.6】OpenAI LLM API 6月更新简报

  【2023.6】产品视角看LLM:开源LLM进展 简评

  【2023.6】产品视角看LLM:LLM的benchmark结果已经不可信

  【2023Q3】产品视角看LLM:重新审视 长文档摘要 需求

  【2023Q3】产品视角看LLM:LLM-native应用的算法壁垒在哪里

  【2023H1】漫谈ChatGPT系列(7):谈LLM能处理的最大 有效上下文长度

  【2023Q1】漫谈ChatGPT系列(8):谈LLM的语义级回避 与 二阶自监督学习

  【2023H1】漫谈ChatGPT系列(9):谈 语义处理框架 的设计

  【2023Q2】漫谈ChatGPT系列(10):Auto-GPT、ReAct模式 与 策略流程的自动化生成

  【2023Q2】思考如何设计 可靠的长文档问答系统

  【2023.5】ChatGPT Plugin 与 AutoGPT

  本文成文于 2023.2.13

  2023.2.28,移除了关于beam search的内容

  2023.3.16,追加了GPT4的测试结果

  2023.3.20,增加了LLM到底有没有推理能力的讨论。

上一篇:胖东来广告公司案例分析:让你轻松学会营销策略!
下一篇:本周六河南局部有雨,周日将迎39度高温

最近更新家庭教育