作者 | 谢凌曦 编辑 | 极市平台
原文链接:https://zhuanlan.zhihu.com/p/620631150
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【AIGC】技术交流群
导读
CV是否已经做好实现发展大一统的任务和体系?当前的视觉基础模型(包括最近的SAM)究竟做到了什么、没有做到什么?
引言
距离上次的长篇大论,已经过去了半年有余。这段时间,对于AI业界甚至整个世界,都是惊心动魄的。在这段时间里,最令人印象深刻的大事莫过于ChatGPT和GPT-4的发布。毫无疑问,GPT-4是有史以来最为强大的AI程序。在随后发表的一篇论文[1]中,学者们将GPT-4称为通用人工智能(AGI)诞生的火花。诚然,每个人对于AGI的定义不尽相同,现阶段的GPT也尚未真正解决AI领域的所有难题;然而,基于大模型的技术,确实已经接近完成NLP领域的大一统,甚至让人隐约看到了AGI的曙光。或许,在3-5年内,我们就能够看到冯诺伊曼架构基础之上的AGI计算架构;倘若如此,大模型将在其中占据核心位置。
除了GPT系列外,计算机视觉领域也好不热闹,几个前沿方向都出现了令人惊叹的进展。对于公众来说,感受最深的莫过于AI绘画了。Stable Diffusion[2]和ControlNet[3]等技术的出现,大幅降低了训练和应用扩散模型的门槛。在Midjourney等社区中,AI绘画的发展速度可谓一日千里,许多技术困难(如AI不会画手、不会数数等)也得到了初步改善。如今,只要有一块入门级GPU或者交一点订阅费用,每个人都可以创作出自己的AI作品来。就连一段时间以来颇为平淡的视觉感知领域,也被一个叫做SAM[4]的方法搅动起来:虽然SAM还存在诸多缺陷(如语义识别能力有限),但它让人看到了视觉基础模型的更多可能性。根据Google scholar的统计,仅仅两个月的时间里,SAM就得到了超过200次引用,足见关注程度之高、研究之内卷。
面对如此冲击,包括我在内的许多研究者都会感到迷茫。很显然,在NLP的引领下,发展大一统的任务和体系,将成为未来3-5年整个CV领域的核心课题。然而,CV是否已经做好实现这个宏伟目标的准备?当前的视觉基础模型(包括最近的SAM)究竟做到了什么、没有做到什么?这篇断断续续写了两个月的文章,就是我对于这些问题的思考。
文章的部分内容,也被我整理成一篇微型survey,并与VALSE上报告的PPT一起,放在以下地址:
https://github.com/198808xc/Vision-AGI-Survey
arXiv链接如下:
https://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的火花[1]。深度学习本身提供了一种通用的方法论,使得人们可以在确定输入和输出形式的情况下,使用统计学习方法,构建神经网络(一种层次化的数学函数)来近似输入和输出之间的关系。只要有足够多的数据,深度学习就能够应用于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火花”一文里系统详尽的分析[1]。我只想引述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[6]),相比于利用统一对话系统来解决所有问题的GPT,当前CV的常用方法论还比较初步,大多局限于使用独立的模型甚至算法来解决不同的问题,包括图像分类、物体检测、实例分割、注意力检测、图像描述、以文生图等。
图2:当前CV主要使用独立的算法解决问题。
艰难的CV大一统之路
为了接近GPT的水平,CV必须走向大一统,也就是使用一套系统,解决各种视觉问题。近来,业界出现了不少此类尝试,我们将其分为五个主要方向。其中前三个方向主要解决任务形式的统一、第四个方向主要解决视觉任务逻辑的统一、最后一个方向主要解决视觉和语言交互的统一。以下我们简要综述每个方向的代表性工作,并且分析它们的优缺点。
开放域视觉识别: 即要求算法不仅能够识别训练集中出现过的概念,还能够通过自然语言等方式识别训练集中未出现过的概念。当前,开放域识别的主要奠基性工作为CLIP[7],它提供了文本和图像间的跨模态特征对齐方法,使得人们能够统一使用自然语言来指代目标语义,从而完成了分类、检测、分割、定位、按需识别等各类任务。虽然自然语言提供了足够的灵活性,使得开放域识别成为可能,但自然语言难以指代视觉信号中的细粒度信息,从而在一定程度上限制了识别能力。
Segment Anything任务: 通过设计统一的prompt系统并且在标注层面完成数据闭环,SAM[4]能够分割出图像中的所有基础单元,并且在相当广泛的视觉域中展现出了泛化能力。无需重新训练,SAM就能提供基础语义单元,并应用于分割3D物体、物体消除和填充、分割医疗影像或者隐藏物体,等。SAM传递出的重要思路是:通过降低视觉任务的难度(此处主要指无语义标签的分割),来统一视觉任务形式定义,增强模型的域间迁移能力。从形式看看,SAM很像通用的视觉识别流程中的一个部分,但如何构建合理的上下游模块来配合它(以构建完整流程),依然是个开放问题。
通用视觉编码: 即一系列通过统一编码形式,来整合多种任务的尝试。它们虽然形式不同,但是都指向同一个目标,即通过把不同模态、不同任务的数据编码为统一形态,使得单个神经网络模型能够完成尽可能多的任务。其中代表性的方法分为三类:首先是Gato[8],它验证了单个transformer模型能够完成CV、NLP、强化学习等任务;其次是pix2seq[9]和OFA[10],验证了不同视觉任务(如检测、分割、描述)在自然语言形态下得到统一,从而送入单个模型进行训练;最后是Painter[11]和SegGPT[12],借鉴了NLP中in-context learning的方式,将一系列视觉任务编码为不同形式的图像密集预测任务,并训练单个纯视觉模型来解决问题。相比于传统视觉识别框架,这些方法更接近大一统的目标,也论证了当前的神经网络模型特别是transformer能够适应一大类跨模态任务。然而,这些仅仅追求形式上的统一,与多任务学习的边界并不清晰,也并未充分展现出统一带来的好处。
大语言模型引导的视觉理解: 在语言模型的协助下,将复杂视觉问题拆解为统一的逻辑链,并分步解决问题。其实这类方法并非最近才出现:至少在2017年,就出现了使用LSTM拆分问题并调用视觉模块的尝试[13]。只是大语言模型的出现,使得这一方法论的通用性大大增强。最近出现的一系列工作,其共同特点是使用GPT将文本问题转化为可分步执行的逻辑。这种逻辑可以是代码,可以对接搜索引擎,也可以表现为流程图或者自然语言。必要时,程序将调用视觉模块,以提供检测、计数、OCR、描述等基础能力。这类方法充实了视觉问答的逻辑,也提升了答案的可解释性,但它强烈地依赖于大语言模型和基础视觉模块。很多情况下,以检测为代表的视觉任务本身也需要复杂逻辑来完成。很显然,当前的方法很难下探到这一深度。
多模态对话: 在对话任务中引入图像或视频作为参考,从而允许通过对话任务来完成统一形式的视觉理解。在视觉、语言、跨模态预训练模型的基础上,只需要微调很少部分的参数,就能完成问答任务[14]。受到GPT系列的启发,研究者们将视觉标注送入语言模型,在简单的提示下,生成了问答数据[15]。多模态对话模型在这些问答数据上微调之后,就具备了回答复杂问题的能力。目前,以此种方式产生的问答结果,已经可以媲美GPT-4技术报告中提到的例子[16]。然而,当前多模态对话系统的能力,大部分来自大语言模型。这也就意味着,与开放域识别一样,多模态对话对于细粒度视觉信息的指代能力比较有限。在使用复杂图像作为参考时,算法很难针对其中某个特定的人或物进行提问,从而也限制了解决具体问题的能力。
以上几个方向的研究,将CV领域带到了新的高度。以当前进展看,CV算法能够在一定条件下完成视觉识别,也能够进行初步的多模态对话,但是距离大一统模型、距离通用的任务解决还有很远。而后者正是AGI所需要的能力。
于是我们不禁要问:为什么在CV中完成大一统如此困难? 这个问题的答案,还要从NLP中去找。
NLP给CV带来的启发
我们尝试从另一个视角来理解GPT所完成的事情。我们不妨想象自己像GPT一样,生活在一个纯文本的世界里。在这样的世界里,多轮对话任务是充分且必要的:一方面,我们只能通过文字与其他智能体交流;另一方面,我们可以通过多轮对话去完成所有任务。也就是说,在NLP领域,学习环境是完备的:我们通过多轮对话来训练算法,而算法也只需要掌握多轮对话,就是一个能够完成所有任务的AGI。我将这个性质成为“所训即所需”——这个词是模仿“所见即所得”造出来的。
这样看来,GPT所定义的对话任务,比起GPT的实现方法更加重要! 这种定义使得AI算法能够通过与环境互动来学习,恰好符合AGI的定义:与环境互动,并且最大化奖励。相较而言,CV就没有形成清晰的路线:既没有环境用于预训练,各种算法也并不能在实际环境中解决问题。显然,这背离了CV和AGI的基本原则。事实上,早在1970年代,计算机视觉的先驱大卫·马尔就提出:视觉算法必须构建真实世界的模型,并且从交互中学习[17];随后也不乏其他学者指出交互的重要性。然而如今,大部分视觉算法并非研究如何与环境交互,而是研究如何在各种任务上提升精度。
这是为什么呢?当然是环境构建的难度太大!
代理任务:理想向现实的妥协
要想构建场景用于CV任务,主要有两种方法:
构建真实环境: 在真实世界中放置大量智能体,使其通过与包括人类在内的其他智能体互动学习。这种方式的缺点在于成本太高且难以确保安全。
构建虚拟环境: 通过视觉算法模拟或者重建3D环境,在虚拟世界中训练智能体。这种方式的缺点在于真实性不足,包括场景建模的真实性和智能体行为的真实性,从而训练的智能体难以有效迁移至真实世界中。
除此之外,对环境中其他智能体行为的模拟也很重要,这决定了CV算法在真实应用场景中的适应能力。如果希望环境与智能体互动(例如在现实世界中放置一个真实的机器人),则收集数据的成本还会显著上升。另一方面,环境中的智能体的行动模式往往比较单一,难以模拟真实世界中丰富而开放(open-domain)的行为。
总的来说,目前所构建的场景,还不足以满足大规模训练CV算法的需要。在无法模拟环境情况下,人们只能退而求其次,不直接与环境互动,而从真实环境中采样大量的数据,并且将与环境互动可能需要的能力定义为一系列代理任务(即通过完成任务,接近最终的目标),如物体识别、追踪等。人们假设,通过提升这些代理任务的精度,就能够让CV算法更接近AGI。
可问题是,这个假设对吗?
图3表达了我们的观点。在深度学习出现之前,CV的算法还比较弱,代理任务的精度也不高。当时,对于代理任务的追求,很大程度上推进了AGI的发展。然而过去十年,随着深度学习的发展,各项代理任务都已经高度饱和。在ImageNet-1K数据集上,top-1分类精度已经从前深度学习时代的50%以下提升到了90%以上。此时,继续提升代理任务的精度,有可能无法逼近AGI,甚至与之背道而驰。GPT的出现,进一步印证了这个观点:在接近AGI的模型出现后,原本孤立的NLP代理任务,如翻译和命名实体抽取,就变得不再重要了。
代理将死!
未来范式:从环境中学习
我们设想的学习流程如图4(图源:Habitat[18]和ProcTHOR[19])所示,分为如下阶段:
第0阶段,环境构建。 通过各种方式构建虚拟环境,尽可能地增强环境的丰富性、真实性,可交互性。
第1阶段,生成式预训练。 让智能体探索环境,结合自身行动,预测未来将会看到的画面。这对应于GPT的预训练阶段,任务是预测下一个单词。在这个过程中,CV算法记忆了现实世界的分布,并做好了通过少量样本学习任务的能力。
第2阶段:指令微调。 训练智能体完成具体任务,如寻找特定物体,甚至与其他智能体交互。这对应于GPT的指令微调任务,同样建立在丰富的任务描述和人工指令数据基础上。在这个过程中,CV算法为了完成任务,必须掌握各种视觉概念,并习得按需处理视觉信号的能力。
下游阶段(可选)。 可以用基于prompt的方式,将AGI模型用于传统视觉任务。
需要注意的是,在这样一个流程中,代理任务只是算法在通用任务上训练过后,“顺手”习得的能力。而现在的大部分CV研究,却将代理任务作为唯一的追求,属实是本末倒置了。
要想实现上述流程,面临的困难有很多。我们从三个阶段来分析。
更复杂的虚拟环境。 当前构建虚拟环境的方法主要有两种。一是基于真实数据产生的虚拟环境: 收集实际场景数据,并将其建模为点云、面片(mesh)、神经辐射场(NeRF)等数据结构,并支持高速、大规模的渲染。这种做法的成本还比较高,难以规模化生产环境。当前可用的3D数据集(如Habitat[18]),相比于2D数据集,规模要小好几个数量级,且依然局限于某些特殊场景(如室内或者街景)。二是通过仿真学方法构建虚拟环境: 通过3D建模、生成式算法(包括GAN和扩散模型)等方式,直接采样虚拟数据并渲染3D环境。这种做法虽然能够批量生成环境(如ProcTHOR[19]),但它不易还原真实世界的数据分布。一方面,图像上通常包含影响算法学习的artifacts(即使肉眼难以观察出来),从而难以保证在虚拟数据上训练的模型的迁移能力。然而不论是哪种方法,虚拟环境的大小和真实度还不能满足要求,且难以允许AI算法与环境中的其他智能体互动。
更复杂的数据结构。 NLP的数据结构比较简单,它天然具备“单词”这样基本、不可分的[20]语义单元,也自然地设计出了transformer这样的架构来处理这些离散单元;在任务层面上,NLP将预训练定义为上下文生成(俗称完形填空),同时也将所有下游任务也建模为上下文生成。如此浑然一体的框架,使得NLP的预训练任务和下游任务之间gap很小。然而CV的数据结构就要复杂得多:这种复杂不仅体现在图像的维度更高,而且体现在图像的基本语义单元难以定义。在这种情况下,一味地“抄作业”,强行把图像切分为tokens以套用transformer架构,显然不是最优方案。当前,我越来越倾向于认为,token只是一种假象、一种权宜之法,真正适合视觉表征的数学性质,还需要更多工作来揭示。
更复杂的实际任务。 显然,引入CV信号后,智能体通过与环境互动,能够完成更多、更复杂的任务。与NLP的多轮对话相比,这些任务的形式更复杂、数据模态更丰富、多样性也更显著。可以预期,如果采用指令微调的方式,就需要收集更多的数据,甚至引入真实智能体的行为模式。这对于数据量、数据复杂度等方面,都有更高的要求。
最近,我们关注到一些令人欣喜的工作。其中一个工作是PaLM-E[21],它使用跨模态基础模型来指导具身视觉算法,增强其能力。另一个不如PaLM-E有名,但却更让人振奋的工作则是ENTL[22],它将环境建模和指令学习都建模为序列预测的形式,实现了上述框架的雏形。这些工作照亮了在环境中学习的道路;在此基础上,伴随着系统设计和工程优化,我们将会看到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领域任何一种评价指标所定义的能力,这就是无限粒度性[23]。
进一步分析,我们就会得到一个有趣的结论: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提供了一种解耦的思路,证实了在弱化语义的前提下,分割基础单元的通用性很强。在传统框架下,我比较看好将复杂任务解耦成基本单元的做法。
【指令微调】定义新的人机交互方式,通过人类演示,收集足够的指令数据。
参考
^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.
^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.
^Zhang L, Agrawala M. Adding conditional control to text-to-image diffusion models[J]. arXiv preprint arXiv:2302.05543, 2023.
^abKirillov A, Mintun E, Ravi N, et al. Segment anything[J]. arXiv preprint arXiv:2304.02643, 2023.
^Goertzel B Artificial general intelligence[M]. New York: springer, 2007.
^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.
^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.
^Reed S, Zolna K, Parisotto E, et al. A Generalist Agent[J]. Transactions on Machine Learning Research.
^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.
^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.
^Wang X, Zhang X, Cao Y, et al. Seggpt: Segmenting everything in context[J]. arXiv preprint arXiv:2304.03284, 2023.
^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.
^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.
^Liu H, Li C, Wu Q, et al. Visual instruction tuning[J]. arXiv preprint arXiv:2304.08485, 2023.
^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.
^Marr D. Vision: A computational investigation into the human representation and processing of visual information[M]. MIT press, 2010.
^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.
^abDeitke M, VanderBilt E, Herrasti A, et al. Procthor: Large-scale embodied ai using procedural generation[J]. arXiv preprint arXiv:2206.06994, 2022.
^为了处理方便,人们把单词切分为sub-tokens,但依然存在不可分的基本单元。
^Driess D, Xia F, Sajjadi M S M, et al. Palm-e: An embodied multimodal language model[J]. arXiv preprint arXiv:2303.03378, 2023.
^Kotar K, Walsman A, Mottaghi R. ENTL: Embodied Navigation Trajectory Learner[J]. arXiv preprint arXiv:2304.02639, 2023.
^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.
^想象一块冰逐渐熔化成水,或者一个黑色的方块逐渐变成白色。在这些过程中,往往存在某种(不准确的)量化边界,在经过这些边界以后,语义就发生了变化。但语义是离散的,而视觉信号的变化是连续的,在语义不变的范围内,视觉信号就体现出域间差异性。
(一)视频课程来了!
自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、多传感器标定、传感器部署、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知、决策规划、轨迹预测等多个方向学习视频,欢迎大家自取(扫码进入学习)
(扫码学习最新视频)
视频官网:www.zdjszx.com
(二)国内首个自动驾驶学习社区
近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、Occpuancy、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
(三)【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称