查看原文
其他

谈LLM与Agent是否有学习能力【2023Q4】

孔某人 孔某人的低维认知 2024-04-04

TLDR

  • 预训练之后,LLM并没有大家期望的概念学习能力。

  • 对Agent来说,在所依赖的LLM的学习能力有本质提升前,Agent更多是记忆能力,没有大家所期望的概念学习能力。


1、何谓学习能力

学习的定义是比较模糊的,这也是很多人的分歧点之一。本文无意创造一堆概念并进行定义,仍然会使用大家常用的一些名词,但本文会对它们的含义进行重新界定。

1.1、概念的学习

本文讨论的学习过程更接近在学校上课时的学习(特别是本科阶段),并不是说仅仅记住某个信息就算学习了,而是期望能够进行某种程度的灵活运用。即这个学习过程学到的除了信息外,还有认知方式、新的概念及运用方式等。

对人来说,这个学习过程也是需要较长时间的,典型的案例就是:本科阶段的一门不太水的课程可能需要至少64个学时的授课,辅助以作业和课后自学,还要分散在一个学期的时间内完成。在动手实践类的场景中,也很难期望普通人在短短几天内就能够完全上手,几个月到几年都是可能的。

为什么不能在短短3天内完成呢?除了“需要摄入的信息太多,超过了人的最大信息输入速度和短期记忆容量”这个因素之外,我认为更主要的原因是:这个学习过程无法仅靠人的短期记忆完成,必须要依靠长期记忆,而这个长期记忆和学习的过程是缓慢的。这个过程在我来看很像是LLM的预训练/继续预训练过程,而不是微调、RAG等等。

进一步反思这个长期记忆内化过程,它并不是一个单纯记忆的过程,学习的材料只是素材而已。学习的结果并不只是记住了素材,还有很多比较复杂的过程,其中至少包含了新概念的学习,即概念的含义、这个概念与其他概念的关系、这个概念的适用场景等。除了概念之外,人脑应该也学习了很多其他的我们尚无法定义的东西。由于概念这个词读者相对容易想象,所以以下会使用【广义概念】这个词来指代传统认知的概念、概念之间的相对关系、概念使用的场景、以及其他人脑能够学习但未必能使用语言进行较准确描述的“信息”。

1.2、可持续的学习

无论是人自己、还是人所期望的智能工具的学习能力都是可持续的,即学习过程不应该损害已有的能力,也不应该损害后续的学习能力,甚至应该提升后续的学习能力。

如果有满足这个的方式,那么则可以:先使用按时间维度切一半的数据集进行预训练,然后用剩下的一半数据逐步进行增量学习,也能达到跟整体一起预训练接近的效果。在我来看目前没有那种方式能够基本稳定的实现这个效果,除了不断追加新数据进行继续预训练。

1.3、学习的主动性

学习的主动性这个概念颇为模糊,本文仅选择了一种定义进行讨论,即学习的主动性包括:

  • 自我激励/驱动:不需要外部压力/激励等就能够不断地去学习。

  • 自主确定目标:能够自己选择学习目标

  • 主动探索:不是被动接受信息,而是通过主动提问、讨论、实践、查找各种资源等方式等改善自己的学习过程。

本文认为,所有的人和动物都有学习的主动性,但问题是:这个主体的主动性未必符合别人对它的期待。

想象一只猫总是懒洋洋的躺在树荫下,这时候可能不少人会直观认为:它的学习主动性不足够,这个时间应该用来去探究世界而不是休息。但使用上述定义就能够对其行为进行辩护:它认为它周围能够触达的范围内没有再值得它去学习的事物了,它只能休息。如果你能丢给它一个足够新奇的对象,大概会引发它的继续探索。

几乎同样的逻辑放在孩子身上也是一样的,总有人觉得孩子的行为不符合自己的预期,所以才有很多对于“如何提高孩子学习主动性”的讨论。但如果你观察孩子的行为,他其实仍然在探索他有兴趣的对象,即使是大量时间在玩游戏也是因为他可以在这个游戏中探索不同的东西。大家对于孩子的学习主动性的质疑更多是对他的学习目标没有符合自己期望的质疑。

回到LLM和Agent上,其实也有类似的问题:如果LLM或Agent选择了某种我们不期望的目标进行学习,那么这到底算不算有学习的主动性呢?好在目前已有的技术方案并不像人和动物那样有着明确的学习目标偏好和兴趣阈值,它默认学习所有它已经获得数据,没有什么是我们期望它去学而它没学的,只有“它没能获得或者更优先的去获得某些数据”、“它把更多算力和模型参数用在了我们不重视的方向上而影响了我们期望方向的能力学习”。这与其说是学习主动性的问题,不如说是“资源有限的情况下如何侧重学习目标”与“如何让LLM/Agent的学习目标与人的期望对齐”的问题。

对于人和动物来讲,自我激励是一种生物本能,甚至不光是在整个神经系统层面,在单个神经元的层面也存在主动去拟合环境信号的特性。对于有学习能力的系统来说,自我激励特性并非天然的,但要实现它很容易:即在学习过程外增加一个循环,当获得新数据后就触发新一轮学习过程。实现这个触发过程并不难,难的是有一个低成本和无人值守的学习过程,目前的LLM还没有达到这点。

主动探索对人和动物来讲是一个要求,因为生物演化中自然面对能源消耗的约束,每份投入的能源都应该期望有更多的未来回报。所以人和动物的行动是有惰性的,主动学习过程是有选择性偏好的——兴趣,不会把所有的精力和能源都投入到漫无目的的学习中。但对于人造的系统来说,这个主动探索的意愿就是几行指令的事情,“让系统把所有资源都投入到探索与学习”,“让系统能够不断的提问(不要求提问的质量)”并不难做,只要系统有足够的算力、能够访问所有的信息。但问题仍然在于:系统的行动方向是否符合人的期望的问题。可能有人会认为“至少可以优化主动探索的效率,这是个客观的目标”,但实际上效率是与目标强绑定的,如果目标都有争议或者依赖自主性选择,也很难评价效率的高低。

不少人觉得“能够主动进行学习”是智能系统能力智能性的一个重要里程碑,但这与其说是学习的主动性问题,不如说是系统的行动和结果是否符合人类期望的问题。目前各种系统的学习能力较低是一方面问题,但人经常不理解别人或者别的系统的内部目标也是一方面问题。当系统的某方面智力显著超过人的时候,普通人还能理解它的目标和行动的正确性么?

1.4、学习 与 单纯记忆

不同人对于“学习”和“单纯记忆”的边界认知是有差异的,很多时候也是较为模糊的,本文在这方面有自己的标准。

很多系统具有记忆能力,最典型的例子莫过于数据库,而大部分人并不认为数据库具有学习能力。但对于LLM应用层常用的简单RAG技术(指通过embedding模型、可选的rank模型召回chunk,加入到LLM context进行回答)就有了分歧,不少人认为RAG具有学习能力。确实在LLM的加持下,包含RAG系统能够展现超过数据库系统的“学习能力”,例如在其检索数据集中新增一个任务的执行SOP,它就可能在不变动系统其他部分的情况下增加了完成这个任务的能力。

本文的观点是这种简单的RAG系统具有的是简单的记忆能力,而不是学习能力,除非能够在学习过程中更新各种模型的参数。本文的标准是以是否能够“有效地学习广义概念”来评价的,在不改变系统中各模块参数的情况下,简单RAG架构并不能【有效】地进行学习,它确实可以几乎无限的新增检索文档,但它是否具有广义概念的学习能力是值得讨论的。

目前的LLM、RAG系统、Agent并非不能理解一定范围内的新概念,我们可以在LLM的context中加入一个新概念的定义,然后LLM就能够在某种程度上使用这个概念,这确实给人一种具有学习能力的感觉。但这种 in-context learning 的能力并非无限的,它基本上是有限的,且它的消耗速度大致与context中新广义概念的特性有关

  • 新广义概念偏离LLM已有数据集的程度,偏离的越多消耗越快

  • 新广义概念的多少,以及它们之间的引用/耦合深度,越深则消耗越快

LLM通过context确实能够处理一定程度的新广义概念,但这类似于人随手带的提包,容量终归是有限的。这导致了一个问题:放入context的新广义概念越多,就会越损伤这个系统后续再处理新的广义概念的能力。通过类似于RAG或者其他一些技术方案,我们可以在单次LLM调用中只放入该次需要的广义概念,减缓整个系统撞上LLM处理广义概念总容量的速度。但这种方式更多只适合于概念水平增加的场景,对于科学体系那种不断层层叠叠各种新概念的场景,这种容量的限制是无法逾越的。也就是说,把一本数学书切成若干片段喂给一个RAG系统或者Agent,指望这样就能让它学会这本数学书就不现实的。

实际上人和动物的大脑也有类似的特性,短期记忆可以让我们处理一定程度内的新概念和信息,但这并非无限的。生物的大脑需要睡眠中的长期记忆转化过程来把新概念内化,不必让这些新概念在未来还占用短期记忆的容量,由此可以不断学习和应对更多更复杂的概念体系。这个过程在LLM这就是预训练/继续预训练阶段。

在不更新模型参数的时候,通过外部存储+RAG或者其他外部方式记忆新广义概念的方式能够有一些不完整的学习能力,但这是以损害整个系统后续的学习能力为代价的。它并不足够“有效”,这样的系统没有可持续的学习能力。这是很多人没有意识到的,这也并非大家所期望的那种学习能力。

(本节提到的LLM context的新概念的容量并非单纯的context window长度,我在3月份的《【2023H1】漫谈ChatGPT系列(7):谈LLM能处理的最大 有效上下文长度 》中就提过类似的概念,对我思路演化有兴趣的读者可以去考古。)

2、广义概念的学习过程

本文认为广义概念的学习能力在学习过程中是非常关键的,从实现的角度来说也是相对困难的,衡量人或者智能系统学习能力的最核心维度就是对于新概念体系的有效学习能力。所以以下都是围绕着广义概念的学习过程来讨论。

2.1、人的学习过程

目前人的学习过程仍未研究清楚,特别是非意识层面都有哪些过程。这方面可以参考认知科学方面的内容,以及我之前的一些相关主题的文章:

我在大约一个季度之前认为是人脑在非意识层面之前产生了某个想法。但我目前认为这可能对于生物大脑过于困难,更可能是先召回广义概念然后再组装出想法的。我在 探索LLM的语义loss与模型设计(2)【2023Q4】的3.3节中对此思路以及LLM该如何去模仿有详细描述,本文不再重复写作。

人脑的学习过程不光有样本利用很高的特性,还能够把自己的思考结果再加入到训练数据之中,进行迭代思考和学习。通过这种方式就能不断的抽象新概念,发展出一套复杂度远超人类短期记忆容量的概念体系。

除此之外,人的学习过程还有个特点是对于“理由”的追求,这个特性在人很小的时候就体现出来了。

2.2、新的广义概念的构建

构建一个概念体系的第一步是要能够创造新概念。什么是概念呢?本文将概念看作是对象之间的相关性。创造一个概念需要三方面能力:

  • 发现对象之间的相关性

  • 将发现的相关性使用可以沟通的方式进行表达,一般是通过自然语言进行表达。

  • 对新的概念进行命名

LLM已经能够完成上述三步,虽然说其中第二步“使用自然语言对于新概念进行表达”的效果可能还不够好,但确实已经是有了,并可以期待这方面能力可以随着未来模型的针对性优化而提升。

但我们所接触的基于LLM应用并没有表现出它有构建新概念的能力,至少大多数人并没有这种感觉。一方面原因是:系统没有有效地记忆自己过去创造的概念并再次使用的能力,系统的开发者也故意没有把系统往这方面去构建。更主要的原因是:新概念要有用才值得被记忆和再次使用。LLM现在构建的新概念有用么?大概率没用。这并非因为LLM的能力差,而是因为对于人来说,构建一个有用的新概念也并非易事

概念的价值是由它的使用价值决定的。而一个新的概念刚被构造出来,几乎没有什么引用该概念的其他新概念和知识,无论是人还是系统都没有办法简单知道这是否是个有价值的概念。所以这个问题变成:如何构建出一个有价值的概念和知识体系。这和“如何构建一个新科学体系”没什么不同,无论是科学还是创新,靠的是大量近乎随机的探索,最终“偶然”发现其中的某些能够构建出一个有用的东西。创造一个有用的新概念也是如此,需要投入算力继续进行探索,看是否能够探索出一些有价值的东西,然后才知道是否构建出了一个有价值的新概念,是否值得被长期记忆下来、展示给用户。

从科学发展的角度,这个答案又变得有所不同:如果我们使用严格一些定义、严格一些的推理、适当的联想、并会去验证我们得到的结论,那么就能让探索到的结论都是大概率正确的。这其中产出的新概念和新结论都是值得被记住的,没人知道它们是否会在1年之后被某个新场景所依赖。也就是说从科学本身的探索过程来看,所有探索过程的结果都是值得被记住的

2.3、广义概念的内化

前面1.4节已经提过,简单的记住新的广义概念并不是一种有效地方式。因为无论是人还是LLM,处理广义概念的容量都是有限的,面对足够复杂的概念体系,肯定需要将其内化才能够维持后续的学习能力不下降。

目前LLM只有在预训练和继续预训练阶段才有将广义概念内化的能力并能保持后续学习能力。但LLM的预训练样本利用率很低,也很难对炼成的LLM进行显性的知识编辑。

我在 探索LLM的语义loss与模型设计(2)【2023Q4】 中讨论了一些如何改善样本利用率和显性知识编辑能力的新的模型结构设计思路。但即使我其中说的方式有效,也可能距离期望的样本利用效率还有不小的距离,这方面仍然有待全人类进行探索。

估计上一代知识图谱的拥趸会觉得知识图谱很适合这里,但我对此并不看好。目前需要的是能够对大量模糊概念进行处理的方案,虽然也可以算作是某种新型的知识图谱,但明显不是过去大家期望的那种精确的。

我目前对此的估计是:

  • 需要新的模型结构和问题设计,原始的LLM效率较低。

  • 配合新的模型结构和问题设计所准备的世界知识集,有点类似于一种模糊的大型知识谱图。这种知识集的生产依赖于使用现有的LLM方案进行很高成本的加工。

  • 更加高效和小样本的增量学习方案,(我目前对此没有头绪)

  • 人工对于这个世界知识集进行review和编辑,未必能够覆盖所有地方,但可以把已经发现的问题进行矫正。

3、Agent的学习能力

前面更多的讨论LLM和简单的一些上层结构系统所能提供的学习能力,从应用的角度来说,还没有能够有效学习新概念且成本又可接受的方案。

目前的各种Agent设计大多只是类似RAG一样的软性Key-Value外部存储,甚至可以暴力一些“每次枚举所有Doc-Query对来进行更准确地匹配”,但在新概念的学习能力方面这都没有超过RAG的水平,仍然受到LLM context window的限制。

当然也有更复杂的想法,例如在Agent中自己维护一个概念体系,使用能处理模糊概念的某种知识谱图方案来进行处理。但我目前并没有听说有这样的方案。我无法否定这个技术路线,但我怀疑这条线真的做成的时候,大概跟我上一节提的思路是殊途同归,跟做了新一代的文本大模型没什么本质不同。而现在抱着Agent大旗的人其实并没有自己重新炼一个基座LLM的能力,更别说能够构建出下一代的LLM。

我对于Agent框架能够(在不依赖底层LLM的新概念学习能力条件下)自己实现不错的新概念学习能力是怀疑的,但我也期待看到全球社区中新的想法,只是希望大家不要低估这个问题的难度。

尾记

对我来说,如何认知和评价LLM的学习能力,是一个很长时间一直没有形成一个明确认知的问题。直到12月才算是有了第一版的认知。

我目前这个认知的来源主要有以下几方面的因素:

  • 一开始就没有神化LLM的有色眼镜

  • 2023Q3去了解认知科学方面的一些研究成果

  • 2023Q4花了不少时间去系统性的找了一些理科研究生课程来学

  • 获得上述素材之后还有足够多的空闲时间来放空、沉淀和重新整理认知

也许有读者对我如何获得本文的观点感兴趣,这就是我大致的认知路径。

交流与合作

如果希望和我交流讨论,或参与相关的讨论群,或者建立合作,请私信联系,见 联系方式

希望留言可以知乎对应文章下留言

本文于2024.1.3首发于微信公众号与知乎。

知乎链接 https://zhuanlan.zhihu.com/p/675820896

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存