本文转自谢凌曦的知乎博客文章,所有内容均只代表作者本人观点,其中涉及的前沿内容均有可能被推翻。二次转载须连同出处、作者、声明等一并转载。
链接地址:
https://zhuanlan.zhihu.com/p/620631150
https://zhuanlan.zhihu.com/p/6525811401

引言

距离上次的长篇大论,已经过去了半年有余。这段时间,对于AI业界甚至整个世界,都是惊心动魄的。在这段时间里,最令人印象深刻的大事莫过于ChatGPT和GPT-4的发布。毫无疑问,GPT-4是有史以来最为强大的AI程序。在随后发表的一篇论文 中,学者们将GPT-4称为通用人工智能(AGI)诞生的火花。诚然,每个人对于AGI的定义不尽相同,现阶段的GPT也尚未真正解决AI领域的所有难题;然而,基于大模型的技术,确实已经接近完成NLP领域的大一统,甚至让人隐约看到了AGI的曙光。或许,在3-5年内,我们就能够看到冯诺伊曼架构基础之上的AGI计算架构;倘若如此,大模型将在其中占据核心位置。
除了GPT系列外,计算机视觉领域也好不热闹,几个前沿方向都出现了令人惊叹的进展。对于公众来说,感受最深的莫过于AI绘画了。Stable Diffusion 和ControlNet 等技术的出现,大幅降低了训练和应用扩散模型的门槛。在Midjourney等社区中,AI绘画的发展速度可谓一日千里,许多技术困难(如AI不会画手、不会数数等)也得到了初步改善。如今,只要有一块入门级GPU或者交一点订阅费用,每个人都可以创作出自己的AI作品来。就连一段时间以来颇为平淡的视觉感知领域,也被一个叫做SAM 的方法搅动起来:虽然SAM还存在诸多缺陷(如语义识别能力有限),但它让人看到了视觉基础模型的更多可能性。根据Google scholar的统计,仅仅两个月的时间里,SAM就得到了超过200次引用,足见关注程度之高、研究之内卷。S 面对如此冲击,包括我在内的许多研究者都会感到迷茫。很显然,在NLP的引领下,发展大一统的任务和体系,将成为未来3-5年整个CV领域的核心课题。然而,CV是否已经做好实现这个宏伟目标的准备?当前的视觉基础模型(包括最近的SAM)究竟做到了什么、没有做到什么?这篇断断续续写了两个月的文章,就是我对于这些问题的思考。
文章的部分内容,也被我整理成一篇微型survey,并与VALSE上报告的PPT一起,放在以下地址:
https://link.zhihu.com/?target=https%3A//github.com/198808xc/Vision-AGI-Survey
图1:调研报告首页截图
arXiv链接如下:
https://link.zhihu.com/?target=https%3A//arxiv.org/abs/2306.08641
在这篇文章中,我将从AGI的定义说起。随后,我将简要回顾NLP领域所经历的变革。基于大语言模型的GPT系列,为自然语言处理带来了划时代的改变,点燃了AGI的火花。接着,我将进入CV领域的讨论。作为AGI的下一个重要战场,CV领域正在走向大一统模型,但是面临的困难还很大。我将回顾现有工作,分析本质困难,并且在GPT的启发下提出一种新的研究范式。最后,我还将分享一些个人观点。

人工智能和通用人工智能

今天的人们,对于人工智能(AI)一词并不陌生。现代意义上的AI诞生于1956年的达特茅斯会议,随后经历了几十年的发展,几经兴衰。AI的根本目标,在于使用数学方法复现人类智能。近年来,在深度学习的带动下,AI领域取得了长足进步,也深刻地改变了人们的生产生活方式。
通用人工智能(AGI),是AI发展的最高目标。关于AGI的定义有很多,其中最通俗的一种,即AGI是能够具有任何人类和动物所具有能力的算法。从早期的图灵测试(早于达特茅斯会议)开始,关于AGI的追求和争论从未停止。深度学习的出现,大大加快了AGI的进程;而近期的GPT系列,则被学者们认为是点燃了AGI的火花 。深度学习本身提供了一种通用的方法论,使得人们可以在确定输入和输出形式的情况下,使用统计学习方法,构建神经网络(一种层次化的数学函数)来近似输入和输出之间的关系。只要有足够多的数据,深度学习就能够应用于CV、NLP、强化学习等诸多AI子领域。
关于AGI的形式化定义,则可以借鉴2007年出版的《通用人工智能》一书 的观点。将智能体放在一个环境中,当它观察到一系列状态时,可以从某个集合 里选择相应的行动,并且得到相应的奖励 。AGI的目标是学习一种映射 ,使得其在环境中行动时,得到的累计奖励 最大化。AGI的定义虽然很简单,但是实现起来却非常难,主要困难包括但不限于:实际数据具有很高的维度、人类智能具有复杂特性、神经和认知科学的理论缺失等。

GPT:点燃NLP领域的AGI火花

发布以来,GPT系列刷新了无数纪录,其中就包括2个月内达到1亿用户的神迹。这个纪录的重要性在于,它表明了AI算法已经具备面向普通用户(to consumers,即2C)的能力,这在历史上还是第一次。为了做到2C,AI算法必须具备极强的通用能力,能够满足用户的绝大部分要求。令人吃惊的是,GPT做到了这一点。GPT基本上解决了NLP领域的常见问题。在许多问题(如编写代码)上,GPT的能力甚至超越了专门设计的算法。也就是说,GPT实现了NLP领域的大一统:原先看似孤立的各个任务,都可以在多轮对话任务下统一起来。诚然,GPT还不完美,也会在许多问题上犯错或者胡言乱语,但是在可预见的范围内,NLP的研究范式不会再发生大的变革了。这场旷日持久(从达特茅斯会议算起,已有近70年)的NLP战争已经分出胜负,接下来就是些打扫战场的工作,比如解决垂直领域问题、逻辑推理、提高用户体验,等等。
关于GPT的能力展示,此处不再赘述,大家可以参考互联网上浩如烟海的资料,或者“AGI火花”一文里系统详尽的分析 。我只想引述GPT-4官方新闻的一句话:
As a result, our GPT-4 training run was (for us at least!) unprecedentedly stable, becoming our first large model whose training performance we were able to accurately predict ahead of time.

结果表明,GPT-4的训练过程(至少对我们来说)前所未有地稳定,它也成为我们训练过的第一个能够提前准确预测效果的大模型。
换句话说,GPT-4的本质是个神经网络,是个概率模型;但是它表现出来的行为(不论是训练还是测试),已经稳定得不像个概率模型了。这着实是一次了不起的技术突破!
关于GPT系列的实现原理,许多优秀的文章已经做过分析,此处我不再赘述。简单地说,GPT训练分为两个阶段。第一阶段被称为生成式预训练,主要在无标注的通用语料库中进行。大规模语言模型通过预测下一单词,拟合通用文本的数据分布,并获得in-context learning能力,能够通过少量示例来适应新任务。第二阶段被称为指令微调,主要在有标注的对话数据库中进行。在此过程中,大规模语言模型将通用文本分布对齐到问答数据中,显著提升了针对性解决问题的能力。同时,模型还可以从人类用户的反馈中学习奖励函数,从而进一步增强其满足用户偏好的能力。如果对更具体的分析感兴趣,可以自行搜索ChatGPT的实现原理。

CV:AGI的下一个战场

由于人类通过多种模态来理解世界,因此真正的AGI必须结合CV和NLP来实现。然而,在CV中实现AGI,比在NLP中实现AGI的难度大很多。根据前面的定义,真正的AGI应该具有即解决通用问题、与环境互动的能力,而不仅仅是完成万物识别和多模态对话等初级任务。然而如图2所示(示例图源:UberNet),相比于利用统一对话系统来解决所有问题的GPT,当前CV的常用方法论还比较初步,大多局限于使用独立的模型甚至算法来解决不同的问题,包括图像分类、物体检测、实例分割、注意力检测、图像描述、以文生图等。
图2:当前CV主要使用独立的算法解决问题

艰难的CV大一统之路

为了接近GPT的水平,CV必须走向大一统,也就是使用一套系统,解决各种视觉问题。近来,业界出现了不少此类尝试,我们将其分为五个主要方向。其中前三个方向主要解决任务形式的统一、第四个方向主要解决视觉任务逻辑的统一、最后一个方向主要解决视觉和语言交互的统一。以下我们简要综述每个方向的代表性工作,并且分析它们的优缺点。
  • 开放域视觉识别:即要求算法不仅能够识别训练集中出现过的概念,还能够通过自然语言等方式识别训练集中未出现过的概念。当前,开放域识别的主要奠基性工作为CLIP,它提供了文本和图像间的跨模态特征对齐方法,使得人们能够统一使用自然语言来指代目标语义,从而完成了分类、检测、分割、定位、按需识别等各类任务。虽然自然语言提供了足够的灵活性,使得开放域识别成为可能,但自然语言难以指代视觉信号中的细粒度信息,从而在一定程度上限制了识别能力。
  • Segment Anything任务:通过设计统一的prompt系统并且在标注层面完成数据闭环,SAM 能够分割出图像中的所有基础单元,并且在相当广泛的视觉域中展现出了泛化能力。无需重新训练,SAM就能提供基础语义单元,并应用于分割3D物体、物体消除和填充、分割医疗影像或者隐藏物体,等。SAM传递出的重要思路是:通过降低视觉任务的难度(此处主要指无语义标签的分割),来统一视觉任务形式定义,增强模型的域间迁移能力。从形式看看,SAM很像通用的视觉识别流程中的一个部分,但如何构建合理的上下游模块来配合它(以构建完整流程),依然是个开放问题。
  • 通用视觉编码:即一系列通过统一编码形式,来整合多种任务的尝试。它们虽然形式不同,但是都指向同一个目标,即通过把不同模态、不同任务的数据编码为统一形态,使得单个神经网络模型能够完成尽可能多的任务。其中代表性的方法分为三类:首先是Gato,它验证了单个transformer模型能够完成CV、NLP、强化学习等任务;其次是pix2seq 和OFA,验证了不同视觉任务(如检测、分割、描述)在自然语言形态下得到统一,从而送入单个模型进行训练;最后是Painter 和SegGPT,借鉴了NLP中in-context learning的方式,将一系列视觉任务编码为不同形式的图像密集预测任务,并训练单个纯视觉模型来解决问题。相比于传统视觉识别框架,这些方法更接近大一统的目标,也论证了当前的神经网络模型特别是transformer能够适应一大类跨模态任务。然而,这些仅仅追求形式上的统一,与多任务学习的边界并不清晰,也并未充分展现出统一带来的好处。
  • 大语言模型引导的视觉理解:在语言模型的协助下,将复杂视觉问题拆解为统一的逻辑链,并分步解决问题。其实这类方法并非最近才出现:至少在2017年,就出现了使用LSTM拆分问题并调用视觉模块的尝试 。只是大语言模型的出现,使得这一方法论的通用性大大增强。最近出现的一系列工作,其共同特点是使用GPT将文本问题转化为可分步执行的逻辑。这种逻辑可以是代码,可以对接搜索引擎,也可以表现为流程图或者自然语言。必要时,程序将调用视觉模块,以提供检测、计数、OCR、描述等基础能力。这类方法充实了视觉问答的逻辑,也提升了答案的可解释性,但它强烈地依赖于大语言模型和基础视觉模块。很多情况下,以检测为代表的视觉任务本身也需要复杂逻辑来完成。很显然,当前的方法很难下探到这一深度。
  • 多模态对话:在对话任务中引入图像或视频作为参考,从而允许通过对话任务来完成统一形式的视觉理解。在视觉、语言、跨模态预训练模型的基础上,只需要微调很少部分的参数,就能完成问答任务 。受到GPT系列的启发,研究者们将视觉标注送入语言模型,在简单的提示下,生成了问答数据 。多模态对话模型在这些问答数据上微调之后,就具备了回答复杂问题的能力。目前,以此种方式产生的问答结果,已经可以媲美GPT-4技术报告中提到的例子 。然而,当前多模态对话系统的能力,大部分来自大语言模型。这也就意味着,与开放域识别一样,多模态对话对于细粒度视觉信息的指代能力比较有限。在使用复杂图像作为参考时,算法很难针对其中某个特定的人或物进行提问,从而也限制了解决具体问题的能力。
以上几个方向的研究,将CV领域带到了新的高度。以当前进展看,CV算法能够在一定条件下完成视觉识别,也能够进行初步的多模态对话,但是距离大一统模型、距离通用的任务解决还有很远。而后者正是AGI所需要的能力。
于是我们不禁要问:为什么在CV中完成大一统如此困难?这个问题的答案,还要从NLP中去找。

NLP给CV带来的启发

我们尝试从另一个视角来理解GPT所完成的事情。我们不妨想象自己像GPT一样,生活在一个纯文本的世界里。在这样的世界里,多轮对话任务是充分且必要的:一方面,我们只能通过文字与其他智能体交流;另一方面,我们可以通过多轮对话去完成所有任务。也就是说,在NLP领域,学习环境是完备的:我们通过多轮对话来训练算法,而算法也只需要掌握多轮对话,就是一个能够完成所有任务的AGI。我将这个性质成为“所训即所需”——这个词是模仿“所见即所得”造出来的。
这样看来,GPT所定义的对话任务,比起GPT的实现方法更加重要!这种定义使得AI算法能够通过与环境互动来学习,恰好符合AGI的定义:与环境互动,并且最大化奖励。相较而言,CV就没有形成清晰的路线:既没有环境用于预训练,各种算法也并不能在实际环境中解决问题。显然,这背离了CV和AGI的基本原则。事实上,早在1970年代,计算机视觉的先驱大卫·马尔就提出:视觉算法必须构建真实世界的模型,并且从交互中学习;随后也不乏其他学者指出交互的重要性。然而如今,大部分视觉算法并非研究如何与环境交互,而是研究如何在各种任务上提升精度。
这是为什么呢?当然是环境构建的难度太大!

代理任务:理想向现实的妥协

要想构建场景用于CV任务,主要有两种方法:
  • 构建真实环境:在真实世界中放置大量智能体,使其通过与包括人类在内的其他智能体互动学习。这种方式的缺点在于成本太高且难以确保安全。
  • 构建虚拟环境:通过视觉算法模拟或者重建3D环境,在虚拟世界中训练智能体。这种方式的缺点在于真实性不足,包括场景建模的真实性和智能体行为的真实性,从而训练的智能体难以有效迁移至真实世界中。
除此之外,对环境中其他智能体行为的模拟也很重要,这决定了CV算法在真实应用场景中的适应能力。如果希望环境与智能体互动(例如在现实世界中放置一个真实的机器人),则收集数据的成本还会显著上升。另一方面,环境中的智能体的行动模式往往比较单一,难以模拟真实世界中丰富而开放(open-domain)的行为。
总的来说,目前所构建的场景,还不足以满足大规模训练CV算法的需要。在无法模拟环境情况下,人们只能退而求其次,不直接与环境互动,而从真实环境中采样大量的数据,并且将与环境互动可能需要的能力定义为一系列代理任务(即通过完成任务,接近最终的目标),如物体识别、追踪等。人们假设,通过提升这些代理任务的精度,就能够让CV算法更接近AGI。
可问题是,这个假设对吗?
图3表达了我们的观点。在深度学习出现之前,CV的算法还比较弱,代理任务的精度也不高。当时,对于代理任务的追求,很大程度上推进了AGI的发展。然而过去十年,随着深度学习的发展,各项代理任务都已经高度饱和。在ImageNet-1K数据集上,top-1分类精度已经从前深度学习时代的50%以下提升到了90%以上。此时,继续提升代理任务的精度,有可能无法逼近AGI,甚至与之背道而驰。GPT的出现,进一步印证了这个观点:在接近AGI的模型出现后,原本孤立的NLP代理任务,如翻译和命名实体抽取,就变得不再重要了。
代理将死!
图3:CV的代理任务正在失去意义,甚至使我们远离AGI

未来范式:从环境中学习

我们设想的学习流程如图4(图源:Habitat 和ProcTHOR)所示,分为如下阶段:
  • 第0阶段,环境构建。通过各种方式构建虚拟环境,尽可能地增强环境的丰富性、真实性,可交互性。
  • 第1阶段,生成式预训练。让智能体探索环境,结合自身行动,预测未来将会看到的画面。这对应于GPT的预训练阶段,任务是预测下一个单词。在这个过程中,CV算法记忆了现实世界的分布,并做好了通过少量样本学习任务的能力。
  • 第2阶段:指令微调。训练智能体完成具体任务,如寻找特定物体,甚至与其他智能体交互。这对应于GPT的指令微调任务,同样建立在丰富的任务描述和人工指令数据基础上。在这个过程中,CV算法为了完成任务,必须掌握各种视觉概念,并习得按需处理视觉信号的能力。
  • 下游阶段(可选)。可以用基于prompt的方式,将AGI模型用于传统视觉任务。
图4:设想中的未来CV训练流程,在环境探索、完成任务,并迁移到下游感知任务
需要注意的是,在这样一个流程中,代理任务只是算法在通用任务上训练过后,“顺手”习得的能力。而现在的大部分CV研究,却将代理任务作为唯一的追求,属实是本末倒置了。
要想实现上述流程,面临的困难有很多。我们从三个阶段来分析。
  • 更复杂的虚拟环境。当前构建虚拟环境的方法主要有两种。一是基于真实数据产生的虚拟环境:收集实际场景数据,并将其建模为点云、面片(mesh)、神经辐射场(NeRF)等数据结构,并支持高速、大规模的渲染。这种做法的成本还比较高,难以规模化生产环境。当前可用的3D数据集(如Habitat),相比于2D数据集,规模要小好几个数量级,且依然局限于某些特殊场景(如室内或者街景)。二是通过仿真学方法构建虚拟环境:通过3D建模、生成式算法(包括GAN和扩散模型)等方式,直接采样虚拟数据并渲染3D环境。这种做法虽然能够批量生成环境(如ProcTHOR),但它不易还原真实世界的数据分布。一方面,图像上通常包含影响算法学习的artifacts(即使肉眼难以观察出来),从而难以保证在虚拟数据上训练的模型的迁移能力。然而不论是哪种方法,虚拟环境的大小和真实度还不能满足要求,且难以允许AI算法与环境中的其他智能体互动。
  • 更复杂的数据结构。NLP的数据结构比较简单,它天然具备“单词”这样基本、不可分的 语义单元,也自然地设计出了transformer这样的架构来处理这些离散单元;在任务层面上,NLP将预训练定义为上下文生成(俗称完形填空),同时也将所有下游任务也建模为上下文生成。如此浑然一体的框架,使得NLP的预训练任务和下游任务之间gap很小。然而CV的数据结构就要复杂得多:这种复杂不仅体现在图像的维度更高,而且体现在图像的基本语义单元难以定义。在这种情况下,一味地“抄作业”,强行把图像切分为tokens以套用transformer架构,显然不是最优方案。当前,我越来越倾向于认为,token只是一种假象、一种权宜之法,真正适合视觉表征的数学性质,还需要更多工作来揭示。
  • 更复杂的实际任务。显然,引入CV信号后,智能体通过与环境互动,能够完成更多、更复杂的任务。与NLP的多轮对话相比,这些任务的形式更复杂、数据模态更丰富、多样性也更显著。可以预期,如果采用指令微调的方式,就需要收集更多的数据,甚至引入真实智能体的行为模式。这对于数据量、数据复杂度等方面,都有更高的要求。
最近,我们关注到一些令人欣喜的工作。其中一个工作是PaLM-E,它使用跨模态基础模型来指导具身视觉算法,增强其能力。另一个不如PaLM-E有名,但却更让人振奋的工作则是ENTL,它将环境建模和指令学习都建模为序列预测的形式,实现了上述框架的雏形。这些工作照亮了在环境中学习的道路;在此基础上,伴随着系统设计和工程优化,我们将会看到CV大一统的光明未来。

小结

在达特茅斯会议的提议书中,AI的先驱者们写下了一个看似平凡,却无比困难的问题:如何让计算机学会使用人类语言?经过几十年的努力,研究者们终于在NLP领域看到了AGI的曙光,但是CV领域距离这个目标还有很远。造成CV当前困境的本质原因,在于CV领域没有构建起“从环境中学习”的范式,因而只能采样环境、设计代理任务,无法形成系统层面的闭环。未来,为了实现CV的大一统,我们必须抛弃现有框架,设计全新的具身范式,让CV算法在与环境的交互中增强能力,不断进化。

一些感性的思考

最近一段时间,我看到了许多稍显浮躁的论调。其中最为常见的,莫过于AI将要革新一切,甚至消灭大部分AI从业者,最终达到共同失业(划掉最后一句)。作为理智的从业人员,我知道CV算法的能力还比较有限,硬骨头还有很多。不过有一点是确定的:大规模语言模型(LLM)已经具备了强大的意图理解和初步的逻辑推理能力,因而达到了成为AI与人类沟通的“中枢系统”的条件。一旦如此,这条技术路线就会固化下来,在未来3-5年甚至更长的时间内,业界要做的事情只有两件:继续强化中枢系统(增强LLM或者构建其多模态的变种、以模块化的形式完善其各项能力),并且将这种范式复刻到CV领域里去。如今,再讨论大模型是否是未来已经没有意义,我们要做的,就是为CV真正用上大模型做好铺垫和准备。
目前看来,大模型很可能会成为与深度学习本身相媲美的革命性技术,我们很可能正在经历一场技术革命。在大模型定义的新时代里,我们每个人都是初学者。以代理任务为代表的旧时代遗存,将很快失去价值;而不能勇敢地拥抱新方法的人,也将随着代理任务一并消亡。

附录

以下文字,是对上述观点的补充,也是一些暂时还没有形成体系的思考。

再谈CV的根本困难

在去年的那篇文章里,我阐述了CV的三大根本困难,即信息稀疏性、域间差异性、无限粒度性,并且指出它们正是采样+代理任务的范式所带来的副作用。文章链接如下:https://zhuanlan.zhihu.com/p/558646681
其中的关键段落摘抄如下:
从根本上说,自然语言是人类创造出来,用于存储知识和交流信息的载体,所以必然具有高效和信息密度高的特性;而图像则是人类通过各种传感器捕捉的光学信号,它能够客观地反映真实情况,但相应地就不具有强语义,且信息密度可能很低。从另一个角度看,图像空间比文本空间要大得多,空间的结构也要复杂得多。这就意味着,如果希望在空间中采样大量样本,并且用这些数据来表征整个空间的分布,采样的图像数据就要比采样的文本数据大许多个数量级。顺带一提,这也是为什么自然语言预训练模型比视觉预训练模型用得更好的本质原因——我们在后面还会提到这一点。根据上述分析,我们已经通过CV和NLP的差别,引出了CV的第一个基本困难,即语义稀疏性。而另外两个困难,域间差异性和无限粒度性,也多少与上述本质差别相关。正是由于图像采样时没有考虑到语义,因而在采样不同域(即不同分布,如白天和黑夜、晴天和雨天等场景)时,采样结果(即图像像素)与域特性强相关,导致了域间差异性。同时,由于图像的基本语义单元很难定义(而文本很容易定义),且图像所表达的信息丰富多样,使得人类能够从图像中获取近乎无限精细的语义信息,远远超出当前CV领域任何一种评价指标所定义的能力,这就是无限粒度性 。
进一步分析,我们就会得到一个有趣的结论:CV的本质困难在于人类对视觉信号的理解十分有限。人类从来就没有真正掌握视觉信号的结构,乃至为其定义某种专用语言,而只能通过自然语言来指代和表示视觉信号。许多明显的证据都能够表达这一点:大部分人在没有经过训练的情况下,很难画出具有真实感的图像(这表明人类没有掌握图像的数据分布);同时,大部分人很难通过语言交流,向另外一个人准确地表达图像上的意思——即使两人在语音通话,且看着电脑上的同一张图,要想通过纯语言交流指代图中的某些细节元素,也未必总是容易的。
如果重新审视CV的三大根本困难,就会发现它们可以统一起来,体现为视觉信号的表征粒度具有主观性和不确定性,或者追求客观的视觉信号与追求简洁的语义信号之间的矛盾。当表征粒度较大(即追求语义信号的简洁性)时,人类可以用较为简洁的方式表达视觉信息,于是认为视觉信号具有语义稀疏性;当表征粒度较小(即追求视觉信号的客观性)时,人类又能够识别出图像中丰富的视觉信息,于是认为视觉信号具有无限粒度性;当表征粒度不确定时,人类很难将连续变化的视觉信号与离散的语义空间对应起来,于是在视觉信号改变而语义不变的范围内,就产生了域间差异性[24]。
此外需要特别指出的是,信息稀疏性和无限粒度性之间的矛盾,主要体现在传统的代理任务中。此时,如果追求表征的高效性(如使用信息压缩作为指标),就难以保证识别的细粒度和准确率。为了规避这样的矛盾,唯一的方案是构建真实的交互环境,允许智能体根据任务来调整视觉信号的粒度。
再次对比CV和NLP,就会发现,NLP很好地避免了粒度不确定的问题。由于NLP处理的文本信号是人为创造的,它的粒度就是文字本身的粒度。虽然这个粒度可变(例如用语言描述一个物体或者场景时,既可以描述得很精确,也可以描述得很粗略),但人类确定了这个粒度,并且保证它与实际需求相吻合。
既然NLP的粒度比较明确,是否可以帮助CV完成任务?我们发现,以往几乎所有CV方法,都使用NLP的方式来定义粒度。其中典型的例子有两个:基于分类的任务以及语言指代的任务。这两种方式各自存在的缺陷,我在之前的文章中也分析过,摘录如下。
基于分类的方法:这包括传统意义上的分类、检测、分割等方法,其基本特点是给图像中的每个基本语义单元(图像、box、mask、keypoint等)赋予一个类别标签。这种方法的致命缺陷在于,当识别的粒度增加时,识别的确定性必然下降,也就是说,粒度和确定性是冲突的。举例说,在ImageNet中,存在着“家具”和“电器”两个大类;显然“椅子”属于“家具”,而“电视机”属于“家电”,但是“按摩椅”属于“家具”还是“家电”,就很难判断——这就是语义粒度的增加引发的确定性的下降。如果照片里有一个分辨率很小的“人”,强行标注这个“人”的“头部”甚至“眼睛”,那么不同标注者的判断可能会不同;但是此时,即使是一两个像素的偏差,也会大大影响IoU等指标——这就是空间粒度的增加引发的确定性的下降。语言驱动的方法:这包括CLIP带动的视觉prompt类方法,以及存在更长时间的visual grounding问题等,其基本特点是利用语言来指代图像中的语义信息并加以识别。语言的引入,确实增强了识别的灵活性,并带来了天然的开放域性质。然而语言本身的指代能力有限(想象一下,在一个具有上百人的场景中指代某个特定个体),无法满足无限细粒度视觉识别的需要。归根结底,在视觉识别领域,语言应当起到辅助视觉的作用,而已有的视觉prompt方法多少有些喧宾夺主的感觉。
说了这么多,还是回到开始的那个根本症结:视觉没有定义好自己的语言。当前可见的方法,都是用NLP的方式来定义CV。这些方法可以解决CV的初级问题,但要深入探索下去,就要碰得头破血流!

CV所处的发展阶段

很显然,GPT范式在NLP领域的大获成功,让CV研究者有些心痒难耐。遵循NLP的发展路径看,NLP在GPT-1阶段构建了大模型,在GPT-3阶段观察到了能力涌现,进而在ChatGPT阶段采用了指令学习来解决具体任务。
于是一个很重要的问题是:当前的CV研究,到底发展到了什么阶段?
4月底,我参加了一次VALSE线上研讨会的panel环节,其中一个问题就是:SAM是否解决了计算机视觉问题,或者是否达到了GPT-3的水平(以致于可以在此基础上构建强大的CV算法)。我给出的结论很悲观:SAM没有达到GPT-3的水平,甚至离GPT-1还很远。其中最重要的原因,就是CV没有构建合适的学习环境。前面说到,NLP构建了对话环境,并且针对对话任务,设计了完形填空配合指令微调的学习范式。如果CV要仿照这套流程,就应当也构建交互任务,并且设计相应的预训练和微调任务。很显然,当前的CV学习范式并没有做到这一点,因此我们总感觉CV的上下游任务是脱节的:即使当前效果最好的MIM方法,似乎也和下游任务关系不大。要解决这个问题,很可能要从源头下手,构建起真正的学习环境来。
接着我们讨论能力涌现的问题。关于NLP的大模型为什么能够观察到能力涌现,业界似乎还存有疑问。我自己有一个大胆的假说:能力涌现的前提,是预训练数据已经覆盖了现实世界的一定比例。在这种情况下,预训练模型不必担心过拟合,因为它的任务就是记忆数据分布,某种意义上就是过拟合——这个假说也同时揭示了为什么NLP可以追求大模型:因为在不担心过拟合的情况下,大模型的拟合能力要更强。在这里,NLP的特征空间小、数据形态简单的优势就体现出来,而CV要想达到这样的状态,还需要更多的数据和更大的算力。
我有一个不严格的类比:NLP好比国际象棋,CV好比围棋。1996年,超级计算机深蓝通过启发式搜索的方式,在国际象棋中战胜了人类世界冠军,但是相似的方法无法在围棋中复现,因为围棋的状态空间要远远超过国际象棋。后来,在深度学习的帮助下,围棋的启发式函数得到了非平凡的改进,终于能够支撑起更复杂的状态空间的探索。如果没有深度学习,也许人类要再过几十年,才能够通过超大计算量的堆砌,达成同样的成就。深度学习的出现极大地加速了这个过程。
回到CV的发展上来。诚然,按照当前数据收集和计算量提升的速度,或许再过足够长的时间,CV也能够跌跌撞撞地达到当前NLP的水平。不过我相信,在此之前,一定会有某项技术突破,加速CV赶超NLP的过程。而我们CV研究者的使命,就是找到这项技术,或者至少找对正确的方向。

对未来研究方向的展望

经过上面的讨论,未来CV的pipeline已经有了雏形:基于交互环境的生成式预训练和指令微调方法。这未必是唯一的路线,只是在NLP的启发下催生出来的最有可能的路线。实现它的困难有很多,但只要认准了方向,当前的困难恰恰对应于最有前景的研究方向。
退一步说,如果上述pipeline在短期内难以实现,那么CV就应当尽可能吸收NLP的能力,以期提升通用能力。很显然,纯粹基于图像信号的CV研究将越来越少,融合语言的跨模态研究将成为绝对主流:只要使用了CLIP或者类似的多模态基础模型用于特征抽取,就相当于接受了跨模态的思想。在这条路线上,最重要的研究方向可以概括为“找到图像与自然语言的交互方式”,或者更进一步地说,“找到图像本身的语言”:这一点对于交互类任务也是至关重要的。
一些重要的研究方向包括
  • 【环境构建】新的三维表征方法,结合NeRF、点云等多种数据结构,目标是构建大规模、真实性强、可运动、可交互的具身环境。
  • 【环境构建】智能体行为模拟,包括基于进化算法,演进智能体的行为模式。
  • 【生成式预训练】新的自回归预训练方法,其中神经网络架构设计,需要追求预训练的效果而不是代理任务的精度。为了解决视觉信号的冗余性,动态压缩率可能是一个很好的指标。
  • 【生成式预训练】图文生成算法,不仅能够辅助环境构建,还会成为预训练的评价指标。
  • 【指令微调】以prompt形式统一各种类型的视觉任务,使得同一套计算模型能够适应尽可能多的任务。顺便,SAM提供了一种解耦的思路,证实了在弱化语义的前提下,分割基础单元的通用性很强。在传统框架下,我比较看好将复杂任务解耦成基本单元的做法。
  • 【指令微调】定义新的人机交互方式,通过人类演示,收集足够的指令数据。

补充&问答篇

前言

大约三个月前,我在知乎发了一篇文章,阐述了我对计算机视觉(CV)未来发展的看法,尤其是CV如何才能像自然语言处理(NLP)那样快速发展,擦出通用人工智能(AGI)的火花。
三个月来,我在不同场合做了学术报告,也得到了不少反馈。我希望通过今天的补充文章,把自己的想法说得更清楚一些,也更方便理解。为了方便起见,这篇文章以问答的形式展开,其中不少问题都来源于听众的现场提问,读者可以结合上述文章一并阅读。

关于总体思想的问题

问:请简要叙述一下上述文章的核心思想。
答:简单地说,文章的核心思想分为几个部分。
  • AGI的定义:我们采用2007年Goetzel《通用人工智能》一书的定义,将AGI定义为一类与环境交互并最大化奖励的计算机程序。这种定义方式,既符合NLP的最高成果(ChatGPT等对话系统),也指出了大部分CV算法的交互能力不足。以实际效果来说,NLP的对话系统已经能够通过对话来解决通用问题,但是CV的各类算法还属于单独模块,只能在特定场合解决特定问题。
  • NLP给CV的启发:构建强交互环境,才能实现智能体的观测-行动闭环(即计算机程序的输出可以反作用于环境,产生下一个状态作为输入:这与当前大部分CV算法的单步式推理有本质不同),这是通往AGI的很有前景的路径(我甚至怀疑这是唯一路径)。换句话说,ChatGPT让我们意识到在CV中构建环境的重要性,这远比它的两阶段训练(预训练+指令微调)带来的启发要更大。
  • CV当前困境的本质原因:难以构建起足够好的环境,以在交互中训练智能体。由于没有环境,因而智能体无法学习完成实际任务的能力,只能从各种代理任务中学习零散的能力(如检测、分割、追踪等)。然而如今,几乎所有代理任务的精度都趋于饱和,使用各种方法(包括使用更强的网络架构、引入更多训练数据、创造更多训练技巧等)继续刷精度,对于走向真正AGI的意义将变得越来越小。也就是说,过去数十年间CV研究者们所熟悉的研究范式将要走到尽头,业界亟需新的范式以走向未来。
  • CV未来应当如何发展:基于上述分析,答案是显然的。CV应该“抄NLP的作业”,构建起交互环境,然后重复预训练+指令微调的pipeline。也就是说,未来很长一段时间(3-5年甚至5-10年),CV领域的核心任务之一,就是利用各种方法,构建起大规模、真实、可交互的学习环境,并以此为基础重塑基础模型、预训练、指令微调等一系列算法。当前已有的工具,如各种3D算法、强化学习等,都有助于这个目标,但都需要改进。虽然前路漫长,但是目标至少已经明确,就是构建足够好的交互环境并且从中学习通用的解决问题能力
问:文章的逻辑,都建立在将AGI必须具备强交互能力的基础上。在CV领域,AGI只有这样唯一的定义方式吗?
答:比起说这是唯一的定义,不如说这是对AGI实现方式的一种信仰,很难用严格地论证对或错。至今为止,我看到的所有对AGI的定义中,Goetzel的定义(与环境交互并最大化奖励)是我认为最普遍也最可行的。顺便,它也很好地解释了为什么NLP最终在对话任务上实现了大一统。我希望将这种成功照搬到CV领域里来。
问:除了文章中叙述的方案,没有其他在CV领域实现AGI的方式了吗?
答:至少我没有想到其他的方案。沿着这条思路,其实我们还能得到不少推论,其中一个很显然的推论便是,在满足条件的交互环境出现之前,包含CV的AGI不可能实现。我想到之前有传闻说,OpenAI将很快推出GPT5以实现包括CV在内的AGI,但我倾向于认为这样的条件还不成熟。

关于交互环境的问题

问:按照文章的说法,CV比NLP更困难,主要就体现在交互环境上吗?
答:这不是全部,但这是一个很好的切入点。此前,对于CV比起NLP的难点,我们有一些模糊的感觉,比如CV数据的维度更高、信息密度更低、具有无限细粒度的特性,等等,但我们很难找到一个足够好的切入点,能够沿着某个确定的方向去改善现状。ChatGPT的出现,给了我们很大的启发:原来NLP的对话任务就完美符合了纯文本世界的AGI定义!从这个角度看,NLP的交互环境是如此简单直接,甚至不需要任何额外努力。但是CV就不一样了,现有技术完全无法满足训练AGI的需求(见下一个问题)。于是,我们认为,把构建交互环境作为CV的本质困难,牵引未来很长一段时间的CV研究,是恰当的。
问:理想的CV交互环境,应该满足怎样的要求?
答:回答这个问题有一个前提,就是我们构建的是虚拟环境,而非真实环境。前者具有廉价、可控、高并发等优点,应当会成为未来的主要方向。一个理想的虚拟环境,至少需要满足三个特性。
  • 可扩展:覆盖足够多场景、足够多物体,以允许智能体在其中学会足够多的概念。此外,还应当允许新场景和新概念被随时添加进来,就像现实中探索新世界一样。
  • 真实性:图像的呈现和其他智能体的行为,都与现实世界差距较小。事实上,相比于图像的真实性,智能体行为的真实性更难做到却也更重要,因为当前域适应/迁移(domain adaptation/transfer)技术已经比较成熟,足以应对虚拟和真实图像间的差异。从这个角度看,研究虚拟和真实行为间的差异以及相应的适应/迁移方法,也会成为一个重要的方向。
  • 强交互:允许智能体和环境(包括其他智能体)进行交互以解决实际问题。为了实现AGI,交互的种类可能有很多,任务的定义也可能非常复杂。本质上说,这对应于在虚拟环境中设计合理的奖励函数。
问:当前已经存在某些虚拟环境和相应任务,也有专门研究这些任务的方向(具身视觉),它们能否满足要求?
答:具身视觉确实是非常有前景的方向,但现有的技术储备还远远不够。一方面,现有虚拟环境还太简单,对上述三个要求的满足度很低;另一方面,现有的任务(如视觉语言导航)也十分简单,远远没有达到通用的水平。我有一个类比,如果将虚拟环境(包括基于它定义的任务)看成未来CV的benchmark,那么当前具身视觉就是建立在CIFAR这样的简单数据集上,但我们需要的是ImageNet这样能够开启新时代的数据集。
问:能不能用大量视频(甚至包括3D空间+1D时间的视频)来代替交互环境?
答:基于上述对AGI的定义,不能。视频虽然是动态的,但与图像一样,无法支持智能体与其交互并完成任务。更通俗地说,当智能体看到视频的某一帧时,不论它做出怎样的决策,都无法改变下一帧的内容。
问:为了构建环境,需要怎样的研究路线?
答:我认为这是一个十分艰巨的任务,值得整个CV领域研究3-5年甚至更长时间。目前看来,3D视觉一定会在其中扮演重要角色;而在此过程中,3D视觉的定位也会更加清晰。举例说,这两年最火的3D视觉算法当属NeRF,但NeRF在实际应用中的效果却不尽人意。归其原因,或许是NeRF没有被用到真正能发挥其作用的地方,只是在重建等基础任务上大材小用,没有与点云等传统数据结构拉开差距。在交互环境的构建中,NeRF很可能发挥其更易编辑的优势,允许我们以更廉价的方式来修改环境。同样可能发挥作用的也包括生成式视觉模型:我甚至猜测,未来生成式模型的评价标准,可能会与虚拟环境的构建和交互结合起来。

关于CV研究方向的问题

问:当前CV领域也有一些工作,尝试创造出更通用、更统一的CV模型,这些工作与上述思路有什么本质区别?
答:首先说明,关于这些CV领域构建统一模型的工作,请参见原文。我把这些工作分成了五类,即开放域视觉识别、Segment Anything相关任务、通用视觉编码、大语言模型引导的视觉理解、多模态对话。这些任务的本质缺陷在于无法支持与环境交互(即使多模态对话,也只是实现了文本形式的弱交互),因此基于本文对于AGI的定义,它们无法构建真正的AGI。
问:按照文章的思想,是否一些比较基础的CV研究课题(如网络架构设计、自监督学习)都不再重要?
答:这些课题非常重要,但是遇到了极大的瓶颈。最根本的问题不在于人们设计不出新的架构和算法,而在于人们已经无法评估这些架构和算法的好坏。过去十余年间,大部分CV的基础架构和自监督方法,都会在ImageNet上进行验证。然而,ImageNet的top-1分类精度已经超过90%,在transformer上发展出来的新架构和新算法,往往相较于baseline(即使非SOTA)都只有0.2%-0.5%的精度提升;更糟糕的是,许多精度提升并非来源于算法本身,而是各种实现tricks。即使是小领域研究者甚至作者本身,都很容易被精度指标所迷惑,得到错误的结论。
另一方面说,其实当前盛行的CV基础架构和自监督学习方法,都存在很大的缺陷。例如,视觉transformer的切块方式显然不是最优解(每个patch并不代表基本语义单元),而masked image modeling算法也直接沿用了这种切块方式。我相信,一旦有了更好的评价指标(极有可能来源于交互环境),它们都会继续演进。
问:能不能从上述角度,分析CV模型的参数少于NLP模型的本质原因?
答:这个问题非常好,可以从侧面反映出交互环境的重要性。NLP构建起了交互环境,彻底实现了所学即所需的目标,因此NLP模型可以放心大胆地(过)拟合训练数据,而不必担心泛化性。CV则没有这样的环境,而通过代理任务来构建整套框架;这就导致CV的基础模型必须在不同任务间迁移,而预训练任务(不论是自监督还是有监督)与实际需求任务间的差距很大,过拟合依然是魔鬼。换句话说,CV还没有做好训练大模型的准备
总结来说,之所以NLP能够动辄训练千亿甚至万亿参数的大模型,就是因为NLP已经不怕过拟合训练数据,参数量越大,拟合能力越强。一旦CV达成这个条件(交互环境趋于成熟),CV的模型参数一定会爆炸式增长。以图像数据包含的信息量看,最终CV大模型的参数量,应当比NLP大模型高出2-3个数量级。
问:前两年,你(笔者)关注的研究课题主要是压缩学习按需识别。这两个课题与本文的思想有什么联系?
答:我首先简要回顾这两个课题。压缩学习和按需识别,对应于CV的两个本质困难:压缩学习对应于视觉信号的语义稀疏性,而按需识别对应于视觉语义的无限细粒度性。压缩学习的思想,是将信息压缩作为视觉表征学习的根本目标,通过推进压缩率和恢复率间的tradeoff,来增强视觉模型的能力;简而言之,能够将信息压缩得更高效的模型,就是更好的模型。按需识别的思想,来源于视觉识别的无限细粒度特性,它超越了任何标注手段可以穷尽的范畴。为此,需要将视觉识别定义为可拆解的子模块,以在有限标注下达成无限精细的识别,同时增强算法对于新概念的扩展性。关于它们的详细表述,可以参考我于前年和去年写下的文章。
怎样的视觉识别算法才是完整的?(https://zhuanlan.zhihu.com/p/376145664)
按需视觉识别:愿景和初步方案 (https://zhuanlan.zhihu.com/p/546510418)
这里就产生了一个矛盾:我们一方面希望视觉模型学会压缩信息,一方面又希望它能够识别无限精细的语义。显然,模型需要在两者间取舍。我们在研究中发现,一旦促进了压缩,模型在密集目标检测、细粒度语义分割等问题上的精度就会退化。这说明,现有的评价指标无法提供正确的方向。顺便,前几天OpenAI的首席科学家Ilya Sutskever在学术报告中说,自监督学习的本质在于压缩。我完全同意他的说法,但是至少在CV领域,研究压缩算法的条件还不成熟。
做了这么多铺垫以后,我认为交互环境为二者提供了很好的结合点。我们类比NLP的对话系统,它是建立在两阶段训练的基础上:第一阶段通过预测下一个单词,学习文本世界的数据分布;第二阶段通过问答,将习得的分布对齐到具体任务上去。这两个阶段,就分别对应于压缩学习和按需识别(并非识别,而是完成任务)。所以我们可以想象,只要给定一个足够丰富的交互环境,CV模型也能够通过预测下一帧来学习紧凑的数据分布(压缩),并且通过完成具体任务来学会什么重要、什么不重要(按需)。
简而言之,我意识到,现有benchmark无法在压缩和按需之间取舍,因此这两个目标虽然重要,现阶段很难实现。这些思考,也是让我意识到CV应当通过交互来学习的重要线索。

总结

除了上面提到的学术问题,还有一个颇为特殊的非学术问题:按照文章的思想,是否当前绝大部分CV研究课题都不再重要?我的看法是,虽然这些研究课题不再重要,但在CV真正走进新时代之前,我们仍然需要用这些课题来培养CV的后备力量。不客气地说,在真正的变革到来前,所有CV相关的学术会议(包括CVPR这样的顶会)都会越来越水,论文和审稿质量也会越来越低。但是只要CV问题还没有彻底解决,这些会议就有延续下去的意义,因为它至少给了今后解决问题的希望。
总之,CV领域遇到的瓶颈,可能比想象中要大得多。毕竟我们要做的,是推翻已经沿用了数十年的范式,构建全新的benchmark。然而困难再大,我们也不能裹足不前,否则就看不到CV的未来!
最后,欢迎在评论区留言讨论,我会把有价值的问题更新到文章里来。

参考文献

[1]abcBubeck S, Chandrasekaran V, Eldan R, et al. Sparks of artificial general intelligence: Early experiments with gpt-4[J]. arXiv preprint arXiv:2303.12712, 2023.
[2]Rombach R, Blattmann A, Lorenz D, et al. High-resolution image synthesis with latent diffusion models[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022: 10684-10695.
[3]Zhang L, Agrawala M. Adding conditional control to text-to-image diffusion models[J]. arXiv preprint arXiv:2302.05543, 2023.
[4]abKirillov A, Mintun E, Ravi N, et al. Segment anything[J]. arXiv preprint arXiv:2304.02643, 2023.
[5]Goertzel B Artificial general intelligence[M]. New York: springer, 2007.
[6]Kokkinos I. Ubernet: Training a universal convolutional neural network for low-, mid-, and high-level vision using diverse datasets and limited memory[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 6129-6138.
[7]Radford A, Kim J W, Hallacy C, et al. Learning transferable visual models from natural language supervision[C]//International conference on machine learning. PMLR, 2021: 8748-8763.
[8]Reed S, Zolna K, Parisotto E, et al. A Generalist Agent[J]. Transactions on Machine Learning Research.
[9]Chen T, Saxena S, Li L, et al. Pix2seq: A language modeling framework for object detection[J]. arXiv preprint arXiv:2109.10852, 2021. ^Wang P, Yang A, Men R, et al. Ofa: Unifying architectures, tasks, and modalities through a simple sequence-to-sequence learning framework[C]//International Conference on Machine Learning. PMLR, 2022: 23318-23340.
[10]Wang X, Wang W, Cao Y, et al. Images speak in images: A generalist painter for in-context visual learning[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023: 6830-6839.
[11]Wang X, Zhang X, Cao Y, et al. Seggpt: Segmenting everything in context[J]. arXiv preprint arXiv:2304.03284, 2023.
[12]Johnson J, Hariharan B, Van Der Maaten L, et al. Inferring and executing programs for visual reasoning[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2989-2998.
[13]Li J, Li D, Savarese S, et al. Blip-2: Bootstrapping language-image pre-training with frozen image encoders and large language models[J]. arXiv preprint arXiv:2301.12597, 2023.
[15]Liu H, Li C, Wu Q, et al. Visual instruction tuning[J]. arXiv preprint arXiv:2304.08485, 2023.
[16]Zhu D, Chen J, Shen X, et al. Minigpt-4: Enhancing vision-language understanding with advanced large language models[J]. arXiv preprint arXiv:2304.10592, 2023.
[17]Marr D. Vision: A computational investigation into the human representation and processing of visual information[M]. MIT press, 2010.
[18]abSavva M, Kadian A, Maksymets O, et al. Habitat: A platform for embodied ai research[C]//Proceedings of the IEEE/CVF international conference on computer vision. 2019: 9339-9347.
[19]abDeitke M, VanderBilt E, Herrasti A, et al. Procthor: Large-scale embodied ai using procedural generation[J]. arXiv preprint arXiv:2206.06994, 2022.
[20]为了处理方便,人们把单词切分为sub-tokens,但依然存在不可分的基本单元。
[21]Driess D, Xia F, Sajjadi M S M, et al. Palm-e: An embodied multimodal language model[J]. arXiv preprint arXiv:2303.03378, 2023.
[22]Kotar K, Walsman A, Mottaghi R. ENTL: Embodied Navigation Trajectory Learner[J]. arXiv preprint arXiv:2304.02639, 2023.
[23]Tang C, Xie L, Zhang X, et al. Visual recognition by request[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023: 15265-15274.
[24]想象一块冰逐渐熔化成水,或者一个黑色的方块逐渐变成白色。在这些过程中,往往存在某种(不准确的)量化边界,在经过这些边界以后,语义就发生了变化。但语义是离散的,而视觉信号的变化是连续的,在语义不变的范围内,视觉信号就体现出域间差异性
[25]Goertzel, B. (2007). Artificial general intelligence (Vol. 2, p. 1). C. Pennachin (Ed.). New York: Springer.
统计之都(Capital of Statistics,简称 COS)成立于 2006 年,是一个旨在推广与应用统计学、数据科学知识的公益性网站和社区。
统计之都以专业、人本、正直、团结的理念尝试推动统计和数据科学在中国的发展,促进各行业的创新和繁荣。
编辑|李萧纹
继续阅读
阅读原文