©作者 | 袁洋
单位 | 清华大学交叉信息研究院
研究方向 | 智能医疗、AI基础理论
假如我们有无限的资源,比如有无穷多的数据,无穷大的算力,无穷大的模型,完美的优化算法与泛化表现,请问由此得到的预训练模型是否可以用来解决一切问题?
这是一个大家都非常关心的问题,但已有的机器学习理论却无法回答。它与表达能力理论无关,因为模型无穷大,表达能力自然也无穷大。它与优化、泛化理论也无关,因为我们假设算法的优化、泛化表现完美。换句话说,之前理论研究的问题在这里不存在了!
今天,我给大家介绍一下我在 ICML'2023 发表的论文 On the Power of Foundation Models,从范畴论的角度给出一个答案。
On the Power of Foundation Models论文链接:
https://arxiv.org/abs/2211.16327
倘若不是数学专业的同学,对范畴论可能比较陌生。范畴论被称为是数学的数学,为现代数学提供了一套基础语言。现代几乎所有的数学领域都是用范畴论的语言描述的,例如代数拓扑、代数几何、代数图论等等。范畴论是一门研究结构与关系的学问,它可以看作是集合论的一种自然延伸:在集合论中,一个集合包含了若干个不同的元素;在范畴论中,我们不仅记录了元素,还记录了元素与元素之间的关系。
Martin Kuppe 曾经画了一幅数学地图,把范畴论放到了地图的顶端,照耀着数学各个领域:
关于范畴论的介绍网上有很多,我们这里简单讲几个基本概念:
1. 范畴:一个范畴 包含很多对象,以及对象与对象之间的关系,例如 表示两个 对象 之间的关系。2. 函子:两个范畴 与 之间的函数被称为函子 。它不仅把 中的对象映射到 ,同时还保持关系结构不变。3. 自然映射:函子之间也可以有关系,被称为自然映射。
监督学习的范畴论视角
我给本科生教了 4 年机器学习,深刻感受到监督学习框架是其根本。这个框架极为优美:我们假设存在一个真实分布 ,表示输入 和标签 的分布。训练数据集 和测试数据集 都是从 中均匀采样得到的。我们希望能够学习一个函数 ,使得 能够准确地计算出 的标签。为了达到这个目标,我们需要定义一个损失函数 ,用来度量 和正确标签 的距离,这个距离自然是越接近于 0 越好。过去十多年,人们围绕着监督学习框架进行了大量的研究,得到了很多优美的结论。但是,这一框架也限制了人们对AI算法的认识,让理解预训练大模型变得极为困难。例如,已有的泛化理论很难用来解释模型的跨模态学习能力。用范畴论来理解监督学习,则会得到不一样的结果。我们可以把输入空间 与输出空间 当做两个不同的范畴,把具体的数据点 和 当做范畴中的对象。在范畴论中我们经常用大写字母表示对象,用花体字符表示范畴,所以下面我们切换符号,使用 和 表示数据点。同时,我们也不再关心概率分布,而使用从 到 的一个函子表示输入与输出的正确关系。在新的视角下,测试数据、训练数据就变成了从函子 中采样得到的输入输出数据。所以说,监督学习在讨论如下问题:我们能不能通过采样函子的输入输出数据,学到这个函子?注意到,在这个过程中我们没有考虑两个范畴 内部的结构。实际上,监督学习没有对范畴内部的结构有任何假设,所以可以认为在两个范畴内部,任何两个对象之间都没有关系。因此,我们完全可以把 和 看作是两个集合。这个时候,泛化理论著名的 no free lunch 定理告诉我们,假如没有额外假设,那么学好从 到 的函子这件事情是不可能的(除非有海量样本)。为了处理这个问题,之前的泛化理论假设函子满足某些性质,相当于加了一个比较强的约束,就可以绕开 no free lunch 定理。但是,从范畴论的角度看,给函子加约束是一件很奇怪的事情:函子并不是一个实体,它只是描述了两个范畴之间的一些映射关系,是伴随着带有内部结构的范畴的出现而存在的一一我们怎么可以说有些映射关系不能出现,有些可以出现呢?所以,正确的做法应该是对范畴结构加约束。举个例子,如果我们知道 有线性结构,并且函子 保持了这个结构,那么我们一样可以绕开 no free lunch 定理,通过很少的样本学习 。乍看之下,这个新视角毫无用处。给范畴加约束也好,给函子加约束也好,似乎没什么本质区别。实际上,新视角更像是传统框架的阉割版本:它甚至没有提及监督学习中极为重要的损失函数的概念,也就无法用于分析训练算法的收敛或泛化性质。那么我们应该如何理解这个新视角呢?我想,范畴论提供了一种鸟瞰视角。它本身不会也不应该替代原有的更具体的监督学习框架,或者用来产生更好的监督学习算法。相反,监督学习框架是它的“子模块”,是解决具体问题时可以采用的工具。因此,范畴论不会在乎损失函数或者优化过程——这些更像是算法的实现细节。它更关注范畴与函子的结构,并且尝试理解某个函子是否可学习。这些问题在传统监督学习框架中极为困难,但是在范畴视角下变得简单。
在自监督学习框架中,数据集不再有标签。不过,我们还是可以对数据集设置预训练任务,学习数据集本身的信息。已有的预训练任务多种多样,比如对比学习,遮挡学习,语言模型等等。我们在预训练模型中学习的目标是 ,即把每个数据点 映射到它的特征表示 ,使得这些特征表示可以用于解决预训练任务。下面我们先明确在预训练任务下范畴的定义。实际上,倘若我们没有设计任何预训练任务,那么范畴中的对象之间就没有关系;但是设计了预训练任务之后,我们就将人类的先验知识以任务的方式,给范畴注入了结构。而这些结构就成为了大模型拥有的知识。1. 对比学习:正如我在对比学习在学啥?[1] 文章里介绍的,对比学习构建了一个相似图,使得任何两个对象之间的关系可以用一个相似度来表示,而这个相似度恰好对应于正样本的采样概率,即 被采样为一对正样本)。2. 遮挡学习:遮挡学习的意思是把一个对象的一部分内容遮挡起来,然后让模型预测遮挡的部分是 什么。对于这个任务,我们可以把遮挡之后的对象当做 ,把遮挡位置当做 ,然后将 定义为完整的对象本身。这样,每一组关系都对应一个遮挡学习问题的解决方案。3. 语言模型:对象 是一个句子,对象 则是它的续写,只有最后一个词不同。例如, “我今天很开”, “我今天很开心”。语言模型关心的是 ,我们把它定义为 。换句话说,当我们在一个数据集上定义了预训练任务之后,我们就定义了一个包含对应关系结构的范畴。预训练任务的学习目标,就是让模型把这个范畴学好。具体来说,我们看一下理想模型的概念。
理想模型
给定一个预训练模型 ,它什么时候是比较理想的呢?很简单,当它计算出的特征可以用来很方便地刻画范畴 内部关系的时候。对于这个概念不太明白的朋友,可以参见上一篇对比学习在学啥?[1],里面有一些直观的例子。在这里,“数据无关"意味着 是在看到数据之前就预先定义的;但下标 则表示 可以通过黑盒调用的方式使用 和 这两个函数。换句话说, 是一个"简单"的函数,但可以借助模型 的能力来表示更复杂的关系。这一点可能不太好理解,我们用压缩算法来打个比方。压缩算法本身可能是数据相关的,比如它可能是针对数据分布进行了特殊优化。然而,作为一个数据无关的函数 ,它无法访问数据分布,但可以调用压缩算法来解压数据,因为“调用压缩算法"这一操作是数据无关的。对比学习。在对比学习中,任何两个对象之间的关系可以使用一个实数表示,因此 可以被看作以 为核函数的空间。例如,在 SimCLR [2] 和 MoCo [3] 中, 是一个简单的高斯核函数。遮挡学习。就像之前说的,我们用 表示可见部分, 表示遮蔽部分。在 MAE [4] 中,我们用 和 计算这两个部分的表征。然后, 将 和 进行拼接,并使用 恢复完整的对象。语言模型。我们想要计算 ,其中 是 的续写,只有最后一个词不同。 运行一个线性函数(可以预先定义好,不参与优化)和一个 Softmax 函数来计算下一个词的概率分布。基于这个分布, 运行 来提取 ,并计算 。因此,我们可以这么说:预训练学习的过程,就是在寻找理想模型 的过程。可是,即使 是确定的,根据定义,理想模型也并不唯一。理论上说,模型 可能具有超级智能,即使在不学习 中数据的前提下也能做任何事情。在这种情况下,我们无法对 的能力给出有意义的论断。因此,我们应该看看问题的另一面:给定由预训练任务定义的范畴 ,对于任何一个理想的 ,它能解决哪些任务?这是我们在本文一开始就想回答的核心问题。我们先介绍一个重要概念。简单来说, 是一个专门存放各种函子的范畴(被称为预层范畴),输入一个对象 ,输出一个集合。而 接受 并输出关于 的所有关系。如果 ,我们可以把 定义成先使用 计算出 ,再将 传给 ,得到 。所以我们知道 是理想的。很容易证明, 是能力最弱的理想模型,因为给定其他理想模型 中的所有关系也包含在 中。同时,它也是没有其他额外假设前提之下,预训练模型学习的最终目标。因此,为了回答我们的核心问题,我们下面专门考虑 。
提示调优(Prompt tuning):见多才能识广
为了理解模型能够解决哪些任务,我们需要先明确什么是任务。一个任务 可以看作是 中的函子。我们说模型解决了一个任务 ,如果对于任何输入 ,模型输出的答案与 是同构的。在范畴论中,当两个对象(或函子)是同构的,我们就将它们视为相等的。我们不去考虑如何让两个同构的对象变得完全一致,因为这在现代神经网络中并不是问题。例如,如果两个对象 和 之间存在一个同构映射,使得 ,那么神经网络可以轻松地找到这个 。 能否解决某个任务 ?要回答这个问题,我们先介绍范畴论中最重要的一个定理。米田引理
给定任务 ,提示调优意味着我们需要冻结模型的参数,并仅使用任务特定提示 (通常为文本或图像),加上输入 ,得到输出 。因此,提示 和输入 是模型的输入。由米田引理,如果我们直接将 和 作为 中的函子发送到 ,由于 是 函数的实现,我们有:即, 可以用这两种表征计算出 。然而,注意到任务提示 必须通过 而非 发送,这意味着我们会得到 而非 作为 的输入。这引出了范畴论中另一个重要的定义。可表函子:对于 ,如果存在某个 使得 ,则称 是可表的。 被称为 的代表。基于这个定义,我们可以得到如下定理(证明略去)。
定理 1 与推论
定理 1. 可以通过提示调优解决任务 ,当且仅当任务 是可表的。当 可表时,最优的提示是 的代表。换句话说,当我们设计一个提示词 ,发现它有比较好的效果的时候,其实是因为它是(或 者很接近)要解决的任务的一个代表。具体来说,。值得一提的是,有些提示调优算法的提示不一定是范畴中的对象,可能是特征空间中的表征。这种方法有可能支持比可表任务更复杂的任务,但增强效果取决于特征空间的表达能力。下面我们提供定理 1 的一个简单推论。
推论 1. 对于预测图像旋转角度的预训练任务 [5],提示调优不能解决分割或分类等复杂的下游任务。
证明:预测图像旋转角度的预训练任务会将给定图像旋转四个不同的角度:0°, 90°, 180°, 和 270°,并让模型进行预测。因此,这个预训练任务定义的范畴将每个对象都放入一个包含 4 个元素的群中。显然,像分割或分类这样的任务不能由这样简单的对象表出。
推论 1 有点反直觉,因为原论文提到 [5],使用该方法得到的模型可以部分解决分类或分割等下游任务。然而,在我们的定义中,解决任务意味着模型应该为每个输入生成正确的输出,因此部分正确并不被视为成功。这也与我们文章开头提到的问题相符:在无限资源的支持下,预测图像旋转角度的预训练任务能否用于解决复杂的下游任务?推论 1 给出了否定的答案。
提示调优的能力有限,那么微调算法呢?基于米田函子扩展定理(参见 [6] 中的命题 2.7.1),我们可以得到如下定理。
定理 2. 给定足够的资源,针对任何任务 Set, 的表征可以用于学习 Set,使得 。定理 2 考虑的下游任务是基于 的结构,而不是数据集中的数据内容。因此,之前提到的预测旋转图片角度的预训练任务定义的范畴仍然具有非常简单的群结构。但是根据定理 2,我们可以用它解决更多样化的任务。例如,我们可以将所有对象映射到同一个输出,这是无法通过提示调优来实现的。定理 2 明确了预训练任务的重要性,因为更好的预训练任务将创建更强大的范畴 ,从而进一步提高了模型的微调潜力。对于定理 2 有两个常见的误解。首先,即使范畴 包含了大量信息,定理 2 只提供了一个粗糙的上界,说 记录了 中所有的信息,有潜力解决任何任务,而并没有说任何微调算法都可以达到这个目的。其次,定理 2 乍看像是过参数化理论。然而,它们分析的是自监督学习的不同步骤。过参数化分析的是预训练步骤,说的是在某些假设下,只要模型足够大且学习率足够小,对于预训练任务,优化和泛化误差将非常小。而定理 2 分析的则是预训练后的微调步骤,说该步骤有很大潜力。
讨论与总结
监督学习与自监督学习。从机器学习的角度来看,自监督学习仍然是一种监督学习,只是获取标签的方式更巧妙一些而已。但是从范畴论的角度来看,自监督学习定义了范畴内部的结构,而监督学习定义了范畴之间的关系。因此,它们处于人工智能地图的不同板块,在做完全不一样的事情。与 ChatGPT 的关系。很多朋友可能会关心本文的结论应该如何应用到 ChatGPT 等聊天模型上去?简单来说,ChatGPT 等模型不光有预训练的过程,还有 RLHF 等进一步微调部分,所以定理 1 的结论没法直接应用。不过,它也可以看作是对 进行微调的一种变体,获得了强大的能力。这也符合数学家们使用 的感受:很多问题在原来的范畴 中很困难,但是往往在 中就迎刃而解。适用场景。由于本文开头考虑了无限资源的假设,导致很多朋友可能会认为,这些理论只有在虚空之中才会真正成立。其实并非如此。在我们真正的推导过程中,我们只是考虑了理想模型与 这一预定义的函数。实际上,只要 确定了之后,任何一个预训练模型 (哪怕是在随机初始化阶段)都可以针对输入 计算出 ,从而使用 计算出两个对象的关系。换句话说,只要当 确定之后,每个预训练模型都对应于一个范畴,而预训练的目标不过是将这个范畴不断与由预训练任务定义的范畴对齐而已。因此,我们的理论针对每一个预训练模型都成立。核心公式。很多人说,如果 AI 真有一套理论支撑, 那么它背后应该有一个或者几个简洁优美的公式。我想,如果需要用一个范畴论的公式来描绘大模型能力的话,它应该就是我们之前提到的:
对于大模型比较熟悉的朋友,在深入理解这个公式的含义之后,可能会觉得这个式子在说废话,不过是把现在大模型的工作模式用比较复杂的数学式子写出来了而已。
但事实并非如此。现代科学基于数学,现代数学基于范畴论,而范畴论中最重要的定理就是米田引理。我写的这个式子将米田引理的同构式拆开变成了不对称的版本,却正好和大模型的打开方式完全一致。
我认为这一定不是巧合。如果范畴论可以照耀现代数学的各个分支,它也一定可以照亮通用人工智能的前进之路。
本文灵感源于与北京智源人工智能研究院千方团队的长期紧密合作。
[1] https://zhuanlan.zhihu.com/p/634466306
[2] https://arxiv.org/abs/2002.05709
[3] https://arxiv.org/abs/1911.05722
[4] https://arxiv.org/abs/2111.06377
[5] https://arxiv.org/abs/1803.07728
[6] Masaki Kashiwara, P. S. Categories and Sheaves. Springer, 2006. https://link.springer.com/book/10.1007/3-540-27950-4
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧