专访张祥雨:多模态推理和自主学习是未来的 2 个 「GPT-4」 时刻

专访张祥雨:多模态推理和自主学习是未来的 2 个 「GPT-4」 时刻

本期内容是拾象 CEO 李广密对大模型公司阶跃星辰首席科学家张祥雨的访谈。张祥雨专注于多模态领域,他提出了 DreamLLM 多模态大模型框架,这是业内最早的图文生成理解一体化的多模态大模型架构之一,基于这个框架,阶跃星辰发布了中国首个千亿参数原生多模态大模型 Step-1V。此外,他的学术影响力相当突出,论文总引用量已经超过了 37 万次。一直以来,业界都相当期待一个理解、生成一体化的多模态,


本期内容是拾象 CEO 李广密对大模型公司阶跃星辰首席科学家张祥雨的访谈。


张祥雨专注于多模态领域,他提出了 DreamLLM 多模态大模型框架,这是业内最早的图文生成理解一体化的多模态大模型架构之一,基于这个框架,阶跃星辰发布了中国首个千亿参数原生多模态大模型 Step-1V。此外,他的学术影响力相当突出,论文总引用量已经超过了 37 万次。


一直以来,业界都相当期待一个理解、生成一体化的多模态,但直到今天这个模型还没出现,如何才能达到多模态领域的 GPT-4 时刻?这一期对谈中,祥雨结合自己在多模态领域的研究和实践历程,从纯粹的技术视角下分享了自己对多模态领域关键问题的全新思考,在他看来,虽然语言模型领域的进步极快,但多模态生成和理解的难度被低估了:


• 接下来 2-3 年,多模态领域会有两个 GPT-4 时刻:多模态推理和自主学习;


• 多模态生成理解一体化难以实现的原因在于,语言对视觉的控制能力弱,图文对齐不精确,数据质量有限,生成模块往往无法反向影响理解模块等;


• 模型 scale 到万亿参数后,在文本生成和知识问答能力增强的同时,推理能力,尤其是数学,却呈现出能力随规模增长反而下降的现象;


• 大模型出现推理能力下降的原因在于大模型在思考时,倾向跳步,next token prediction 框架天然更关注压缩率而非推理精度,这在任务目标与压缩率存在差异时会出问题;


• Rule-based RL 可通过直接优化任务目标,迫使模型选择可靠推理路径,在推理任务中抑制跳步、强化稳定的思维路径;


• o1 范式的技术本质在于激发出 Meta CoT 思维链:允许模型在关键节点反悔、重试、选择不同分支,使推理过程从单线变为图状结构。


目录

01 研究主线:重新回归大模型


02 CV 领域无法只靠视觉出现 GPT 时刻


03 训练多模态理解、生成一体化模型的难度被低估了


04 Next Token Prediction 的缺陷


05 o1 范式的重要意义


06 为什么生成理解一体化很难做


07 多模态数据对模型智能的影响


08 多模态推理的 GPT 时刻最多还有 1 年到来


09 模型自主学习与 ASI


01.

研究主线:

重新回归大模型


广密:祥雨今天的论文引用数已经超过了 37 万,代表作是 ResNet(残差网络),是之前在微软亚洲研院的时候跟何恺明、孙剑、任少卿你们几个一起完成的。能否先和我们讲讲你个人的学术经历和研究的主线?


专访张祥雨:多模态推理和自主学习是未来的 2 个 「GPT-4」 时刻


祥雨:我读博的时间点非常好,正好赶上 2012 年 AlexNet 横空出世,AlexNet 和之前生成学习框架最大的区别在于做了 scaling,影响 AI、deep learning 最大的动力其实是就是要做 scaling。


当时 AlexNet 非常成功,因为它刚好达到了当时那段时间的最佳历史契机。Scaling law 按今天的观点,要同时 scale up 模型、数据和算力。而当时在 CV 领域:


• 数据上,2009 年李威团队提出了 ImageNet,做出来了一个 120 多万的数据集。当时能跑完已经很不容易了,所以数据 scaling 在那个时候已经不是问题;


• 算力上,英伟达在 2000 年初提出了 CUDA,一开始是为了科学计算,但到 2012 年左右,CUDA 的性能已经非常好了,也有一些算力的支持,可以认为在算力的 scaling 已经解决了。


所以在那个时间点,最重要的是谁最先或者能够把这个模型 scale up 上去,之前我们做的一些神经网络只有几兆,它一下子做到了 700 多兆,AlexNet 因此就非常成功。


我在读博期间也延续了相同的路线,我整个 PhD 阶段(2012-2016 年)就是做 model scaling,我想把模型做得更大,把模型做得更大,无非就是更大的宽度、更大的深度,对于视觉信号来说还有更大的分辨率。在这方面,恺明老师和孙剑老师给我的指导非常多:


• 在宽度 scaling 上,会遇到梯度爆炸等问题,所以我们提出了一种初始化策略叫 MSRA init,比较好地解决了宽度 scaling 的问题;


• 在深度 scaling 上,深度是最困难的,之前一些模型过了十几层后效果就会迅速下降,我们刚好在那个时候提出了残差网络 ResNet,可以把网络从十几层提升到几十层、上百层,甚至上千层也是可以的。


当我们把这一系列做完以后,我认为 model scaling 这一块至少在那个时间点已经基本上解决了。我毕业以后到旷视做小模型,是因为当时继续把模型做大没有特别大的收益了,因为这时候的瓶颈重新变成了 data。把模型从大做小,思路是非常不一样的。


大家觉得模型架构设计细节非常关键,但实际上很多时候我们发现架构是没有用的,尤其对于大模型来说,架构设计更多的是针对大方向,只要大方向对了,比如用了 ResNet,至于里面的层间如何连接,效果差别是不大的。


但是一旦把计算 quota 变小,放到端侧,这时候模型架构的细节设计就会变得非常重要,尤其是对于不同的硬件设备,它的执行效果和效率都有很大不同。所以我在做 ShuffleNet 的时候也深刻地感受到,在特定的硬件上要把一些特定任务的模型跑起来,要设计出效率最高、性能最高的模型,需要有大量的经验设计。


一开始我们做了几个小模型的工作以后,我的研究点又转向就怎么能够通用地或者自动化地把这些很复杂的小模型设计出来。在 2017 - 2018 年的时候,我领导了一个项目,做神经网络架构搜索,叫做 NAS,利用自动化的手段来设计能够在特定硬件上高效跑起来的模型。2019 年我们提出了一个叫 SPOS 的项目,它可以用非常小的代价,在一个特定硬件上,去搜索一个在目标数据集上效果最好的模型,在很大程度上地解放了人工。


因此到 2019 年底的时候,我的目标重新转向要做大模型,但到 2019 年的时候,把模型做大,和 2016 年的难点已经很不一样了。2016 年之前主线故事都是怎么把模型做大,但是到 2019 年,最大的难点在于 data。


CV 发展这么多年,虽然自监督或者 label free 的方法层出不穷,但是一直以来缺少一个像 NLP 里面所谓的 GPT 时刻或者 BERT 时刻的东西。


02.

CV 领域无法只靠视觉

出现 GPT 时刻


祥雨:2019 年 NLP 进展非常大,很多人说是因为 transformer,但其实并不是,架构在这里面不起主要作用,起主要作用的是优化方法。


之前 NLP 和 CV 是一样的,来一批数据,需要标一大批 label,但只要依赖人工标注,就永远 scale up 不起来。但 NLP 通过一些特定的训练方式,比如 BERT,就是利用类似完形填空这样的方法。看起来一个 task 可能和我下游要做的千千万万个 task 没有关系,但是它就通过这样的一个上游的 task,就不需要 label,就可以无限扩展。其次,它发现数据越多,通过上游 task,神经网络就可以学到更强的表征,然后在下游 task 就能够做得更好。


GPT 这种 decode only 的 next token prediction 的方式是更进一步,不仅可以不需要 label,还可以通过 in context 建模的方式统一很多下游的 task。这里很多 insight 都是在 2020 年 GPT-3 出来之后才有的,但至少 NLP 这条路是完全打通了。


但在 2019 年,CV 还没有经历过这个时刻。2019 年上半年 Google 在半监督领域有很多突破,比如 UDA 等,指向了对比学习(contrastive learning)这一方法。到 2019 年底,像 MoCo、SimCLR 这类工作出来后,让大家重新看到了希望:对比学习是不是类似 NLP 里的 BERT、GPT 时刻?


对比学习(contrastive Learning)是一种自监督学习方法,通过将相似样本拉近、不相似样本推远,从而学习有效的特征表示,常用于图像表示学习。该方法不依赖人工标注,常见如 SimCLR 和 MoCo。


之所以这样想是因为大家看到它在很多指标上的效果,通过完全的自监督来学习 feature 的效果,已经开始快速逼近用全标注的数据训练的效果,给人很大的鼓舞。整个业界包括我们也是花了很多精力在研究,结果发现很多这些方法其实只在小模型上有效,仍然没有 scale up 的特性。


到了 2020 年,CV 里面还有一件大事:有人把纯 transformer 架构在 CV 上彻底做 work 了,也就是 ViT 系列,也一直用到今年。当时学术的人就想把 NLP 的方法都搬到 CV 里面来试试。于是产生了很多类似的方法,比如 NLP 里叫 GPT,在 CV 里叫 imageGPT;NLP 里叫 BERT,在 CV 里叫 BEiT 等等,其实就是从 NLP 里面借鉴了一些方法过来。


一开始的效果非常好,尤其是像恺明提出的 MAE 系列之后,我们可以看到它在自监督方面的性能,尤其在 fine tuning 后的下游 task 不输,甚至略有超过,对应的全监督的模型,再次让 CV 社区火起来了。


但我对此一直谨慎乐观,因为很多方法都是在小模型上 work,一旦放到大的模型上面,会发现它完全不像 NLP 那样有 scale up 的特性。大概到 2021 年底的时候,我仔细分析了为什么早期大家做 contrastive learning 放到大模型上不 work,MIM 效果可能好一些。


MIM(Masked Image Modeling)是计算机视觉中的一种自监督学习方法,通过随机遮挡图像的一部分,并训练模型重建被遮挡区域,从而学习有意义的图像表示。


原因是,这些不管是 contrastive learning 还是 MIM,都是在学习某种“不变性”。确实“不变性”对于视觉的 representation 来说是非常关键的,但问题是它学到的“不变性”不是 data-riven 的,而是完全 handcrafted 的。


对于 contrastive learning 来说,它非常依赖于 augmentation(样本构造方法),实际上是在鼓励负样本部分作为 regularized term,鼓励一个最大熵,防止信息坍缩;分子部分是在学习一种“不变性”特征,但这个“不变性”不是数据赋予的,而是通过人工 design 的 augmentation 赋予的。这其实又回到了更早期人工设计的老路上。


NLP 为什么能够 work?因为它是真正做到了 learn from data,有越高质量的语料,模型就可以学习语料中的关联性,建模它的联合分布,通过压缩学到更多的知识。但 CV 不行,你设计了一个什么样的不变性,比如说对于旋转、color augmentation 或者 multi-crop 这样的不变性,最后学到的特征就是满足你所设计的那几个不变性。它当然没有 scale up 的效果,因为你只需要少量 data,就可以让模型学会,然后就没有信息增量了。


当时 MIM 还有非常多人一拥而上,但我很早就看到了这个方法的上限,也就是它学到了“遮挡不变性”。“遮挡不变性”确实很重要,比如说人类认识一瓶水,把水挡住,只露一个头,人类仍然能猜到后面的这瓶水。但拥有“遮挡不变性”的特征只是一个必要条件,不是充分条件。做 MIM 的时候,通过算法设计可以在数据量很小的时候,学出拥有遮挡不变性的特征,这个特征非常有用。但即使数据量再扩大,学习的仍然只是这一种“不变性”,它并没有从数据中激发出更多的“不变性”,这就是它的问题。


所以在 2022 年初,我发了一篇观点性的文章,认为 MIM 其实是没有用的,没有明显的 scaling law,当时也受到圈内不少人批评,但现在看来这条路确实走的人已经很少了。


从 2022 年开始,我认为对于单纯依靠视觉这个 domain(尤其是静态图像)就可以学出智能,达到 CV 领域的 GPT 时刻的说法,是比较悲观的。大家研究了这么多年,做出了各种各样的自监督的方法,但似乎都没有取得像 NLP 领域那样 scaling 的特性。


尤其在 2022 年,我看了两篇 Jason Wei 的 paper,一篇是关于思维链的发现,另一篇是关于 NLP 里面的涌现性,我大受震撼。我感觉我研究了这么多年还停留在表征层面,而做 NLP 的同行们已经开始研究推理,更高级别的智能特性。我越来越觉得纯视觉这个 domain 可能有问题,虽然它很重要。


专访张祥雨:多模态推理和自主学习是未来的 2 个 「GPT-4」 时刻


专访张祥雨:多模态推理和自主学习是未来的 2 个 「GPT-4」 时刻


我们可以从生成、理解和人类对齐这三个角度,来看自然语言数据和图像数据的对比(视频例外,因为视频可能蕴含更丰富的信息):


对于自然语言数据,它的生成在 GPT 框架下,生成、理解和人类对齐这三件事是合三为一的。


当我做出一个类 GPT 的生成模型时,只要建模了它的联合概率分布,就同时拥有了生成、理解和人类对齐,是自闭环的。


因为 GPT 这种架构,给定前文后,在输出后文关于前文的条件概率的时候,前文一定会影响后文的条件概率,改变后面分布,输出与前文匹配的文字,这其实就是一种理解,因为可以通过一些 Prompt 约束他、任意对前文进行提问。同时,它的预训练语料都是人类自然的语料,建模分布当然就完成了与人类的对齐。


图像数据,尤其是静态图像数据,从生成、理解和人类对齐这三个维度,你会发现它不是自闭环的。


给你一张图像或一个图像数据集,能最充分利用数据集信息的模型是生成模型,来建模这个数据集的联合概率分布,这可以被认为已经拿到了这个数据集的全部信息。


但这样的模型显然不能做理解,因为建模的是数据集中图像每一个 Pixel 之间的联合分布。这种建模可以有无数种方式,但没有任何限制要求它刚好符合人类对图像的理解方式。图像的客观存在来自于大自然,人类如何理解这个信息并不蕴含在这张图上。可能有少量带文字的图可以认为拥有人类对它的理解。但一般来说,图像是大自然创造的,不必然包括人类对它的理解,是缺少这类信息的。


这就是为什么 MIM 或者 contrastive learning 能 work 到一定程度,还是因为注入了人类的理解,比如“遮挡不变性”并不蕴含在图里。所以理解和生成在静态图像上就产生了割裂。


很多人问视频能不能补上这些,因为视频可能有不同角度拍摄,自然就有“遮挡不变性”。我只能说有可能,但视频数据的有效利用实际上要比静态图像难很多,信息密度也低很多,可能是下一个方向。


最后一点是人类对齐。


自然语言模型的语料是人类生成的,在上面训练一个生成模型,分布自然与人类产生的分布对齐。但图像是来自大自然的,一定不是对齐的。


对于静态图像来说,理解和生成、人类对齐这三者是割裂的。所以我们在静态图像上做再多的东西,我认为都很难形成人类意义上所谓的质变。


想到这里,我在 2022 年那会儿就基本上停止了对静态图像做表征的研究。我认为在视觉里面,一个真正的 AGI 系统或智能系统,视觉是必不可少的模块。但肯定不是现在做 contrastive learning、做 MIM 这样的方式就能通向视觉里面的智能。


我当时大致构思了两个方向:


• 短期内,可以利用视觉和语言的对齐关系。


互联网上有大量图文交错的数据,图像自己单独存在很难表达很多东西,但如果图像嵌入在文字流里面,利用文字的自闭环性质,是否可以让图像也借由这种对齐,从而让模型也拥有智能能力。


这是一个短期内最容易想到的方法。但长期来看,这类语料的 bias 很显著、局限性也很大,比如它很少包含非常细节的视觉过程,尤其是物理运动的过程,这类数据更多还是在视频里。


• 从长期来看,我们还是要通过视频,甚至具身系统来挖掘视觉智能的可能性。


但到 2022 年的时候,框架(类 VL model)做视觉多模态大模型的想法已经显现了。当时我自己也聊了一些人,但大家都不相信。因为刚好 2022 年年中那个时间点比较尴尬,因为 2021 年国内出过一波大模型的热潮:GPT-3 出来后,很多人跳出来说做了一个多少亿参数(甚至万亿都有)的大模型,但最后都没有取得非常好的效果。大部分人不信这个故事。


这里要插一句,为什么那个时候的大模型效果都不好?我认为主要可能还是两个原因:


1. 数据质量,尤其是像那些没有 instruction tuning 的模型,确实不好用,能做的事情很少,效果也不好。


2. 当时更重要的原因是,大家远远低估了 scaling law 中数据的重要性。比如 GPT-3 刚出来的时候,用了千亿参数,但只配了几百 B 的数据。按今天的观点来看是完全倒置,当时模型都是训练严重不足的状态。这两个原因导致 2021 年大家复现 GPT3 都没有做出特别好的效果。


但很快到 22 年底,ChatGPT 出来,一下子就打了很多人的脸。原来这个东西能做得这么有用,给人感觉非常 promising,智能时代仿佛一下子就来了。


03.

训练多模态理解、生成一体化模型的难度被低估了


广密:过去主要是视觉类数据,今天是文本类数据,大家都想更好结合起来。目前视觉类很多数据尚未与文本关联起来,想要关联起来是很难的,在数据、架构、实验过程中会遇到哪些难的地方?


祥雨:很多做多模态模型的机构和团队可能和我有类似想法,就觉得语言模型(尤其是 GPT)作为纯语言模型成功后,多模态应该可以复刻同样路线,现在来看也是大大低估了这件事的难度。


我创业时的想法很简单,认为互联网和书籍中都有大量图文混排、交错的数据,既然自然语言 next token prediction 路径已验证是 work 的。那么图像进来,就想可以通过 tokenizer 方法将图像对齐到和语言同样的一个空间,并用处理语言数据的相同方式处理多模态交错数据,就是遇到文字 predict 文字,遇到图像 predict 图像。


所以 2023 年我们做第一代模型 Step-1 时,就完全走了这条路线。我们没有做纯语言模型,而是从预训练一开始就将所有数据组织成图文混排形式。文字进行 token 化了,图像也进行 token 化了。只有在生成图像的那个时间点,因为 auto-regressive 直接生成图像效果差了一些,所以外挂了一个已经预训练好的 diffusion 模块来做图像生成。这就是我们当时的第一版多模态模型。


专访张祥雨:多模态推理和自主学习是未来的 2 个 「GPT-4」 时刻


在模型效果上,首先,文字部分与直接训练的纯文字模型效果差不多,也是挺好的,通过图文混排训练得到的图像理解效果尤其好。当时学术界流行方法还是先训练语言模型,再通过后训练将其他模态对齐到语言模型,并没有在预训练一开始就把多模态数据加进去。


而我们在预训练初始就加入多模态数据,就发现图像和文字对齐的非常好。体现在图像理解上能力很强,特别是图像与文字相容性很好。比如,将字写在图像上针对这些字来问问题,与通过 OCR 提取字的问题,处理效果几乎是差不多的,说明模型能自由地利用文字和图像这两个模态的信息进行思考。


但唯独就是生成效果特别差。虽然我们外挂了一个预训练的 diffusion 单元,可以生成图像,但在这个简单构建的多模态系统中,语言部分对视觉部分的控制能力是非常差的。


更有意思的是,后续我们试验中,在训练的某一个阶段把生成部分去掉,完全没有影响到理解部分的性能,说明这个生成部分可能就是没有用的。我们本来设计这套系统,就是想从架构上实现生成理解一体化,既能生图也能理解图,既能生成文字也能理解文字,但是效果没有达到要求。


同一时期我们也注意到海外一些比较有名的工作:


比如 Gemini 1.0,号称是多模态训练,最终也没有实现图像理解与生成一体化;


GPT-4V 好像也没有实现,它们也是通过外挂方式搭了一个单元。


这让我们意识到这个事情可能没有那么简单。


看起来是强行把生成和理解做到了一个系统里面,从实际效果来看,完全没有达到语言生成与理解完全融合的特性,但我们当时对这个问题的成因还没有太好的 idea,当时做了很多假设,认为更多是数据质量问题,因为图文高度相关的数据量或数据密度不足,从互联网获取的很多内容,看似图文相关,实则图文无关,很有可能干扰训练。


2024 年我们的生成与理解部分是分开迭代的,因为我们观察到海外大厂如 OpenAI,特别是 4o 之后,也是在理解这条线,将语言、声音、视觉理解、视频理解等融合到一个模型,而生成这条线一直是单独做的,走的是 Dall-E 到 Slora 这条路线,所以我们当时也就走了这条路线。


过程中我们也不断在找这中间有没有机会可以把他们融合到一起。


对于一个生成模型来说,需要构造文本与视觉信号的 pair,我们完全可以用最新版的理解模型打标,从而做到一个更好的视觉生成模型,再把视觉生成模型外挂到理解模型里面,继续训练理解模型,这样生成模型可以提供梯度,这些梯度可以指导理解模型。


经过一轮迭代,我们认为生成与理解的 gap 已经缩小了一些,再利用生成模型给理解模型打标,循环优化。我在想是不是到中间某一个时刻,这两个 domain 的 gap 会越来越小,最终某一个时刻就可以放在一起进行训练。


如果我们有一个充分对齐的初始系统,就能把整个链路跑起来了。但我们做了大半年都没有成功,我们得到了一个越来越强的的理解模型和一个越来越强的生成模型,但放在一起后还是没有 1 + 1 > 2 的效果,两个模型的表现仍然是独立的。如果摘除生成模型,理解模型的效果不受影响,既不会变强也不会变弱,完全没有叠加效果。


理解对生成的影响更糟糕,尽管打了大量数据标签还联合训练了很久,但生成分支可控性仍然非常差,经常生成肢体畸变、违反几何约束、违反物理约束的内容(特别是视频生成的时候)。


当我把生成内容送给理解模型的时候,理解模型能准确告诉我这个东西是不符合常识的,它自己都知道,但是无法控制住自己生成出这些违反物理常识和违反空间透视关系的图像,所以这件事就一直卡在这里,我当时一直没有想清楚生成理解一体化要怎么做,做了大半年以后还是很迷茫的状态。


转机出现在 OpenAI 的 o 系列模型出现以后。2024 年语言模型走了一个很大弯路,直到 o 系列出现,我才把所有事情想清楚。


04.

Next Token Prediction 的缺陷


祥雨:时间回到 2023 年底,当时我们把 Step-1 做完了,它是一个多模态图文混排模型,参数大概 100 多 B。当时数据量够了,算力可能也够了,那是不是要挑战一个更大的模型?


于是 2024 年初我们选择上马了一个更大的模型,就万亿参数的 Step-2,尤其它跟今天的万亿参数模型还不一样,激活就有 200 多 B 参数。


专访张祥雨:多模态推理和自主学习是未来的 2 个 「GPT-4」 时刻


但模型开训后,我们就发现投入简直是一个无底洞。我们大大低估了训练这么大模型所需数据量,数据不足的时候,仅把模型 scale up,效果是很差的。并且,大家都知道参数和算力是正比关系,数据和算力也是正比关系,那么同时扩大模型参数和数据量,对算力需求就是平方关系。当时训练这个模型非常吃力,这个项目前后做了 9 个多月,总算训到一个我们比较满意的状态。


但当时发生一件事,让我们百思不得其解。


一般我们认为随着数据和参数扩大,模型能力应该是全方位增长。但我们发现 Step-2 这个模型性质很奇怪,在文科类(尤其是写作类)问题上非常强,但在理科类(特别是数学类)问题上面表现得还不如一个 7B 的模型。而且想通过 alignment 的方式,把它的数学和逻辑能力做上去,是一个非常困难的事情。这件事是非同寻常的,当时整个 community 里面,大家都认为模型越大应该是越好。


发现这个现象以后,我们一开始都以为是数据质量不行或训练时间不够,但后来做了一系列非常严谨的测试,从 1B 到 7B 到 30B 小模型到大模型一路训练上去,发现模型的通用对话能力(尤其是情商)和知识量确实是模型越大越强,但推理能力(尤其是数学这种局部推理能力)其实是表现为先上升再平稳,扩大到一定程度反而下降。


广密:这个事情是不是还是一个业界的非共识?


祥雨:到今天已有很多人意识到了。去年那个时间点,因为当时很少有人能真的把模型做到这么大,把这条增长曲线后半段画出来,发现后半段其实是推理能力随着参数规模扩大下降。


这件事让我们比较诧异。但是仔细一想,我们看到更大模型在理科问题上效果变差,是因为更大模型在学习时更倾向于跳步。不会像相对比较小的模型那样,虽然能力很弱,但是处理长链的算式的时候,哪怕每一步再简单,也会老老实实一步步计算和推导。


而更大的模型总是倾向于跳步,比如三个数相加,它可能放弃一步步推导,直接一口报结果,虽然整体思维链显示它是从头写到尾的,但中间某些细节步骤总是倾向于跳过。虽然跳步以后大部分情况都是对的,但就是少量情况是错的,但数学题就是一步错结果就全错。


这件事当时就引起我的好奇,训练语料很多来自互联网,也有一些是合成数据,合成数据可以保证跳步情况很少,但互联网数据中,人类经常省略中间过程,所以就容易理解为什么这些大模型容易跳步。


但为什么相对较小的模型训练后反而不会跳步?我认为这就是 next token prediction 的本质缺陷。Next token prediction 是 GPT 核心范式,也是支撑这一代大模型起飞的最基础的算法。它的本质是联合概率建模:模型在优化过程中会尽可能调整输出,使输出数据的分布越来越接近输入数据的分布。也可理解为压缩,根据信息论,对于一个压缩器来说,联合概率估计的越准,对数据做无损压缩的时候,码率越小,即模型通过对自身压缩和归纳,获得智能。


但数学问题上,这两件事存在一个非常本质的 gap:更大的压缩率未必对应更高的计算精度。我们可以举一个思想实验:假设数据集中,有一些十几个数字相加的操作,有 50% 的数据来自互联网语料,是没有计算过程的,直接十几个数字相加直接一个等号给出结果;另外有 50% 是精心清洗或者专门找的有过程的数据,会一步步相加,得到最终结果。现在让模型去拟合这个分布,理论上最优情况下,模型就应该有以 50% 概率直接输出结果,50% 概率是一步步相加输出结果。


但小模型因为参数量有限,处理不了复杂的函数,几乎拟合不上直接输出结果的情况,能够学会的只有一步步输出的方法,这是生成模型中的非常经典的特征坍缩现象。比如我们用 diffusion model 生成图像,模型总是会先建模简单的图,只有当模型能力足够或训练时间够久后,模型才会逐渐把完整的分布刻画出来,否则,模型每次输出基本都是一样。


在大模型则完全不一样,如 Step-2 这个激活参数 200 多 B 的模型,十几个数字相加真的可以一口报出答案,且答案可能 90% 以上都是正确的。


如果以压缩率论英雄,当然是大模型压缩率更高,和原来的分布更接近;小模型缺少直接少了一个峰,是压缩率不足的表现。但问题在于,对于数学题来说,我们首要要求是得算对,而不是输出分布离预训练语料更接近。


而小模型一步步计算(都是一些简单的数学运算)几乎不会错,大模型就倾向于一步报出答案,虽然 90% 都是对的,但那错的 10% 就很要命,最终错误率就会很高。所以它做长链的 CoT(数学、长链的推理性问题)的时候,总在中间跳过一些必要步骤,直接输出一个它自认为正确的答案。很多时候确实是对,但一旦逻辑推理变得越复杂、步骤越多,这种小错误的可能性持续累积,使得错误率大幅增加,效果很多时候还不如小模型。


这个现象非常糟糕,可能直接指向了 next token prediction 的本质缺陷。现在 next token prediction 在业界受到的批评也很多了,因为它本质是 behavior cloning,天生容易 OOD、在中间出现分叉,陷入一个没见过的环境,很多幻觉就是这样产生的。但是我刚刚发现这个现象的时候,可能在业界讨论还不多,是一个比较有趣的问题。


OOD(Out-of-Distribution)指的是模型在测试或部署时遇到的、与训练数据分布不同的数据。识别和处理 OOD 数据对于提升模型的稳健性和安全性至关重要,尤其在现实世界应用中尤为关键。


当然解决方案也比较自然,就是引入 RL,next token prediction 本质上还是基于信息论去最大化压缩率,如果问题本身和压缩率这两个优化目标之前存在 gap,那还不如直接关心优化任务的本身,这就是引入 RL 的依据。


这一波 o1 出现后,包括 Deepseek - R1 这样优秀的工作,都用了 rule-based RL 这一套方案。但实际上这套方案在大模型上大规模使用时间很早,在 2024 年初非常多的人就都尝试过,原因都是为了克服 behavior cloning 这套范式的缺陷。


RL 跳出了拟合分布的范畴,直达最终目标,不管中间怎么做,只要把目标做对就行。这种情况下,大模型和小模型一视同仁,大模型只要跳步,就会降低遇到正确答案的概率,一旦上了 RL 的方法,大模型容易跳步这个缺陷可以很大程度上缓解,因为它会找到最可靠、最有可能达到目标的路径。这种方法有收益,大模型收益会更大,因为它的起点是更低的;小模型也会有收益,对稳定思维链有效果,但总体来说收益是非常小的,很多问题还是做不对。


05.

o1 范式的重要意义


祥雨:直到 o1 出现,情况得到非常大的改观。我觉得把 o1 也当成某种意义上 GPT 时刻一点不为过。


OpenAI 的 o1 同样是 RL,与之前范式有什么不同?很多人都觉得是 RL 算法或者数据的演进,但其实都不是,算法还是 rule-based RL。核心原因是思维链的 pattern。很多人都说,做思考模型,本质就是 pattern is all you need,你要找到最佳的思维链组织方式,再由 RL 方法来激发。


至于 RL 算法选什么并不关键,业界用的比较多是 PPO、GRPO,但其实用更简单的 Reinforce++,甚至最原始的 Policy Gradient 的算法都是可以的。真正让 o1-like 的范式和之前范式产生差别的最主要原因还是思维链的 pattern。


为什么 o1-like 的范式,虽然用了 RL 的方法,但 community 里面很多人(尤其是做 RL 的人)都觉得这种方式不是 RL,只是借用了 RL 的一些名词和方法论,但世界观是完全不一样的。


比如传统做打游戏或做控制的 RL 算法,遇到的问题很多时候都是奖励回报过于稀疏,而且难以估计。打游戏想打到高分,让人物随机胡乱操作时,是非常困难的,需要写非常多的规则或技巧,鼓励人物去探索,让它能够真正走到达到高分的点。如果让人物上来就挑战一个训练好的智能体,获得正 reward 几乎是不可能的。


而且关于回报的估计也会遇到很多问题,比如在训练的早期想要获得精准的回报是不太可能的,而且决策空间也非常不光滑,可能需要用 MCTS 搜到非常后期的高质量的机会分支并筛选出来,才能拿到高质量的 sample,那么 RL 的路径才可以继续。


MCTS(Monte Carlo Tree Search)是一种基于随机模拟的决策算法,用于在高维搜索空间中逐步构建搜索树,通过模拟和更新评估节点的潜在价值,常用于博弈和规划问题,如 AlphaGo 中的决策引擎。


但是做 o1 的时候,很多人发现上 MCTS 似乎完全没什么用,做一个 PRM 不能说完全没用,但也许目前大家研究的问题,可能是因为过于简单或其他原因,种种现象都表明在传统 RL 里流行和方法论和语言模型里是非常不一样的。


PRM(Probabilistic Roadmap Method)是一种用于机器人路径规划的采样式算法,通过在自由空间中随机采样可行点并连接成图,从而构建“路线图”,帮助机器人在复杂环境中找到可行路径。


我认为这里最核心的原因还是在于语言是有 pre-training 的,且这个 pre-training 很重,和打游戏场景几乎完全靠冷启动或者非常轻量级的 pre-training 完全不同。


比如解数学题,需要上千甚至上万 tokens,从动作序列的角度来说,相当于有成千上万的动作序列,每个动作序列的 action space 都是整个词表,这是一个非常大的搜索空间,如果这样的话可以说目前所有的 RL 算法可能都无能为力。


但并不是这样的,以数学题为例,预训练的时候模型见过各种类型、各种难度的数学题目,甚至可能是全天下的数学题都见过,使得动作空间得到极大压缩。看起来长度是几万的 token 序列,真正解法产生本质区别的分叉点只有几个。


我做过一些统计,对于一个 4000-5000 长度的输出序列,可能只有不超过 10 个关键的 decision 会影响最终结果。一旦进入到每个分支,后续 token 基本是确定的,其他 token 根本不在 RL 要解决的 search space 里面,RL 实际要解决的是那些 critical 的 tokens,数量很少。


看起来语言模型解决一个困难问题的时候,决策训练是很长的。但跟传统游戏和控制相比,由于存在预训练,实际的 action space 是非常小的,只要想办法把几个 critical tokens 搜对就解决了。这也可以解释,为什么我们今天用 rule-based RL 训练一个语言模型的时候,在刚开还没有怎么训练的初始阶段,如果题目不太难,甚至有一半以上一开始都能做对;即便对于一个很难的题目,随机尝试一百次都有几次能做对,过程中没有任何监督。这在传统 RL 的 setting 里面是不可想象的:游戏里面你不太可能在原地随便走走就突然通关了。如果把解对题目定为通关,那这个通关率也太高了。


这说明语言模型中 RL 的核心作用就是决定这些 critical tokens 要怎么走。模型多次随机尝试可能能做对,但不能稳定做对,所以需要 RL 让模型 focus 在 critical tokens 上,选择正确分支就能做对,根本不需要考虑被预训练压缩掉的 tokens。


那么这和 pattern is all you need 有什么关系?为什么大家之前做 rule-based RL 不 work,做了很久但 critical tokens 仍然不能做对?问题在于,当模型走到某一步的时候,眼前有两个分支,走左边还是右边,可不可以通过一个 token 直接解决呢?我认为对于很多问题是不可能的。


举个最简单的例子,比如大数乘法,在位数很多的时候,让语言模型一口报答案几乎不可能做对,核心原因在于复杂度。大数乘法的时间复杂度是 O(n log n),这比 O(n) 要大。而 transformer 的单步处理复杂度上限是 O(n),所以如果某个操作的复杂度超过 O(n),就大概率无法通过单个 token 解决。


所以,现在虽然 search space 已经非常小,可能只有 10 个 critical tokens 是要搜索的,是 RL 算法需要优化、决定走哪个分支以最大概率通向正确答案。但是,当一个问题足够复杂的时候(尤其是很多数学的问题),模型是无法根据这个题目和前面一些浅显的推导,就立刻决定在中间某一步使用一个怎样的构造或一个怎样的算法,也就是说它的 decision complexity 已远超单个 token 的能力上限。


人类处理复杂数学问题也依赖巧妙构造,比如一些不等式问题,如果想不到这个构造、或者构造错了可能就解不出来,但是在算完以前,做决定的那一刻只能凭感觉选择构造方法。对于人来说,做提前判断都太过复杂,那对于 transformer 这样一种单步计算量的复杂度限制在 O(n)系统,当然也不可以。


所以,我们就观察到,虽然这里的 rule-based RL 也能看到 reward 上涨,但涨到一定程度就涨不上去了。比如说,某些题目做 10 遍有 6 遍是对的,但有 4 遍永远是错的,原因就在于在一些 critical decision 处没有充分的依据可以在这么短时间(比如一个 token)内选择正确的路径。


你可以这样想,也许你的数据集中有另一题和他长得非常像,但只有几个数字不一样,对于那道题来说就是这 40% 概率走的分支才是对的。因为这两种数据同时存在,如果全走 60% 概率的这个分支,那另一道题目就做错了,不利于模型最大化正确率的目标,所以永远到不了 100%。


想到这一步,解决方法也就非常显而易见了:如果允许它两条分支都走,不就解决了嘛?其实就是引入反思。o1 范式最了不起的一点就是引入反思。


那为什么 RL 不能自己激发反思呢?其实从实验上看,跑足够久 RL ,即便不人工注入,也会产生反思,但概率低、非常耗时,且效果也不是很好,原因也是因为预训练。预训练对于 o1 范式使用 RL 非常关键,因为大幅压缩了 action space。


但在反思这件事上,其实 action space 是被预训练过度压缩的。因为人类语料中反思类数据非常少,比如对于解题来说,人类绝大多数都只会给出正确的解题过程,而不会写下来错误或者走过弯路的过程,那么充分压缩后,模型就认为所有题目都应该顺畅到底。动作空间虽然有反思这样一个 token,但概率很低,因为预训练常常把它压缩掉了,这就解释了为什么之前那些 rule-based RL 效果没有那么好。


o1 范式告诉我们,可以用其他的一些方式(比如冷启动)等方式将反思 pattern 重新注入回扩展的 action space,在这个扩展的 action space 来搜索就可以解决刚刚提到的问题。模型在 critical token 的地方可尝试不同分支,选择一个分支走到底,意识到不对可以反悔,有一条反向边连回来,接着之前的那个 critical token 继续搜索,从而解决问题。


o1 范式某种程度上本质是一种 Meta CoT。早期语言模型的用法就是输入问题直接输出答案,但后来 CoT 出来以后,大家发现 CoT 对复杂问题可以大幅提升正确率,背后的主要依据就是很多问题复杂度超过了模型单步推理能力的最大复杂度。所以就要把步骤拆开,保证拆开的每一单步都不超过模型的复杂度上限,才能更好的回答问题。


Meta CoT(Meta Reasoning with Chain-of-Thought)是一种通过训练模型在推理过程中生成和利用 CoT 步骤的元学习方法,目的是提升模型解决复杂任务时的推理能力和泛化性能。


但接着又有了 CoT 选择的问题。对于更复杂的问题,根本无法一眼看出来接下来 CoT 路径怎么走。所以 o1 范式本质是一种 Meta CoT(CoT 的 CoT),能让模型在多种 CoT pattern 之间自由切换,进行排列组合,解决更复杂的网状问题。


06.

为什么

生成理解一体化很难做


祥雨:我想明白所有 o1 范式成功的原因后,再回到最初的视觉生成理解一体化这个问题上,生成可控性差的根本原因还是复杂度问题,因为生成要考虑的因素太多了。


不管是 Autoregressive 还是 Diffusion,在我看来都处于语言模型的最原始的形态:给定一个问题,要求一步之内直接生成图像,当然生成结果是非常差的,因为模型复杂度上限根本达不到任务要求。所以生成的问题最大的还是缺少类似语言模型的 CoT,甚至于被语言模型已经甩了两代,不仅没有 Meta CoT,连 CoT 都还没有。


2024 年年中我就认为,简单地把生成和理解做到一起难度很大,中间缺失的一环就是 CoT,并且直接在生成上做 CoT 还是比较困难的。我们还是借鉴语言模型先在理解上做通 CoT,再稍加扩展,可能就能做到生成上。


所以在 2024 年年中,我们就启动了另一个项目,叫做视觉理解,核心在视觉空间做 CoT。


现有 o1 范式地思维链基本都是文本,即便在 Prompt 中加入图像,可以用和文本模型完全相同的方法把 o1-like 的 long CoT 给激发出来,但是所有这些推理都还是在文本空间。那么对于许多必须要在视觉空间中做的问题,比如数数、走迷宫、连线、阅读图表等,对于人类是非常简单的,因为人类通过简单的视线和注意力转移,以及各种圈点批注来解决。这些问题虽然简单,但也没有简单到可以一口报答案,还是需要在视觉空间推理解决。我去年年中 set up 这个项目,就是想研究视觉空间慢思考,或者叫视觉空间中的 long CoT 应该怎么做。


受到语言模型启发,我们当时的做法是,既然缺失了一些 action space,比如反思,那么我们把它补回来就好,在视觉空间我们可以做同样的处理:


• 模型在视觉里面数数不容易,那参考人类,人类其实是在图像上圈点,数一个数就打一个点;


• 人类是怎么走迷宫的,其实是在图像上圈点,从入口开始连,连到死胡同就回来,把线擦掉,再重新从入口开始连,直到能连到终点,这样 action space 就有了。


有了 action space 以后,我们通过训练把这些动作放到模型里面,用 rule-based RL 算法鼓励通向正确答案的路径,并且允许反悔,即取消做过的标记,也就有了反思。


当时做了半年,实际效果不是完全没有,但十分有限:确实可以解决数数和走迷宫等一些问题,但是造什么数据只能解什么问题,没有在语言模型上那么强大的泛化能力。


这就涉及到对 o1 范式的另一个理解,o1 范式更吸引人的一点在于它有无与伦比的可推广性和泛化性。但我们也发现 o1 范式纯数学数据训练以后无法泛化的领域,就是博弈领域。


比如对于一个纯数学数据训练的模型,我给模型一个斗地主的问题:双方明牌,我问一方要怎么出牌才能赢?这个范式他是完全掌握不到的要领的,做了很多无效思考、而且还有很多低级错误,比如把扑克牌的张数都能数错。


因为博弈问题的思考范式和大多数数学题是不同的,博弈是一套 Min-Max 的思路,即尽可能要降低对手最优解的收益,模型没有掌握这类思维 pattern。当然我们也发现,如果训练中包含这类合成的博弈题数据,模型也能激发相应的思维 pattern。


回过来再想,在图像上做圈点批注,看起来也是非常多的视觉推理问题都可以用到,那为什么我们做的一系列方法就没有这么强的推广性?我们发现其实 o1 激发出来的这些经验证比较 work 的 pattern(比如 wait、alternative、recheck、validation)在预训练预料中其实都有。


国内外论坛差异是比较大的。像 MySQL flow 论坛高赞答主,经常展现完整思考过程,一步步把问题解出来,比如,有时在解题过程中觉得不对劲,会写“我少考虑了一个因素”,然后把这个因素加上去,发现之前想的方法完全不 work,陷入 struggle,最后使用另一种方法解出来,模型学习这些 pattern 后泛化性就很强。


国内论坛高赞答主,经常使用“注意到”这种词,把解体的“脚手架”都拆掉,用神奇的构造把问题解出来,显得自己很牛。但是这种语料如果模型学习多了简直是灾难,相当于把思考过程隐藏起来,把模型的思维变得特别跳跃。


我们觉得 OpenAI 很有可能也是看到预训练预料中有很多像 MySQL flow 论坛高赞答主这样的数据,才设计出这样的 pattern。所以说这些 pattern 并不是无中生有的,而是与训练中本来就有的。虽然绝对数量很少,但是涵盖了不同的领域,从知识体系和能力体系上来说,于其他数据形成了很好的互补。


这样在 cold start 阶段把这些 pattern 激发出来,再用 RL 来强化这些 pattern,虽然很稀疏但到处都有这些 pattern 的散步,顺带着就把和这些语料相连的广大领域里面的 pattern 都激发出来了,融会贯通,这是我们认为有强泛化性的主要原因。


广密:所以 o3、o4 的多模态推理能力明显强了很多,这也是向你说的预期方向发展。


祥雨:是的,我们反思为什么自己做的方案不行:因为在图上圈点批注的数据全部都是我们拿程序人工合成的,它的 pattern 过于固定。比如走迷宫这个场景,没有人会像我们合成的数据那样,第一张图走一步、第二张图再走一步。这些合成数据处于一个很尴尬的地位,只能代表它自己,而没有能力激发出预训练语料中非常广泛的一大类 pattern。


o3 是支持图像进长思维链的。这个方式看起来比较原始,只是对原图进行简单的编辑操作,比如 crop、re-size 等,但在很多问题上有很强的泛化性,并且效果很好。当然有些问题(比如说走迷宫)如果不让它写程序肯定是解不了的,也就是求解问题的上限并不高,不过它在能力范围内,求解成功率高于我们之前的系统的。


这个发现也可以用刚刚的这套理解来解释:因为图文混排的预训练语料中,大量存在前面一张大图、后面许多该图局部放大和对应的文字解释的数据。比如电子维修网站,经常有咨询问题的人,上传一张图片,问这个收音机哪里坏了,下面就有答主,把这张图片的局部放大,解释你这个电容烧了、你这个原件除了故障。


这种对原图局部 re-size、crop 的方式,虽然看起来很原始,但预训练里面是有的,它严格遵循了预训练语料里面的 pattern,所以效果反而好;我们之前的方式虽然看起来科学,但是预训练语料中没有,所以效果反而差。


这也是许多同行都发现的一个事实:RL 不能无中生有,所有知识和能力在预训练语料中都已经有分布了。这就给我们做多模态推理带来了一个难题:像圈点批注是非常好的多模态数据,但预训练里很遗憾没有。这种情况下我要怎么办呢,总不能整个系统都被预训练限制住了,这块是非常大的难题。


07.

多模态数据

对模型智能的影响


广密:之前有人提到一种说法,预训练加入多模态数据会影响模型的智商,但另一种说法是,加入多模态数据 scaling law 曲线在上抬,这两种说法关系是怎样的?


祥雨:当模型知道要在恰当的地方要把某一个图像生成出来的时候,生成这张图像的控制信号本身是有非常丰富的语义的,它必须要能完全理解前面这一段话的内容,理解上下文中甚至更远处的一张图像的多模态信号,才能非常可控地把这个图像给生成出来。


但很遗憾的是,由于复杂度的原因,生成这张图像的现有所有方法都没有充足的算力和信息把这张图完整生成出来,这就导致生成这张图像产生的 gradient 本身就噪声巨大,也没有什么信息量。


比如,diffusion 如果和文字同时训练,由于 diffusion 单次只能做一个 de-noise(sample 某一个 T),对于大部分的 T 来说,diffusion 的过程都是没有语义的,因为语义已经生成了,它只是在补充细节,补充细节产生的 loss 反传到语言部分,对语言的语义提升没有任何作用,反而有可能破坏。


这也是为什么后来有人说如果用 autoregressive 可能好一些,但也没本质的好。Autoregressive 好一些,是因为训练和推理行为是基本一致的,它在训练的时候不是只做一步,所以它的 gradient 相对更清晰一些、更有语义一些。但也没有好太多,图像过于复杂时还是不行,不太可能有非常清晰的信号。


就像预训练的时候,很多人早期都试过把数学题、公务员考试题灌进去,不给过程只给答案,这时候模型会非常 confuse。比如你告诉它这道选择题选 C,但它在一个 token 内根本就想不到为什么要选 C。这种语料灌多了会出现两个极端:


• 比较强的模型会强行记住这个关系,遇到类似的题目都选 C,也就是表现为 overfit;


比较弱的模型会学到奇怪的 bias 和错误的关联,比如想到选 C 可能是因为这个选项比较长,后面遇到难题一律选最长选项。


如果在语言模型上,大家能理解这种训练是有害的,那么自然就能理解,在多模态模型上,利用图文交错混排数据来训练,不解决 CoT 或 complexity 问题,同样是有害的。即便 autoregressive 把监督信号生成出来,如果一步得不到有效信息,产生的 gradient 是错乱的,最好的就是没有效果,甚至会非常糟糕。


08.

多模态推理的 GPT 时刻最多还有 1 年到来


广密:你理解的多模态推理的 GPT 时刻,还要多久?


祥雨:我接着把刚刚的故事讲完。我给出了一个看起来很美的模式,但受限于预训练的局限性,没有思维链,所以 pattern 的推广性是很存疑的。并且原图上做编辑,不管是圈点、批注还是放大,action space 太有限了。


这里就产生一个很自然的想法,往后的路得分成两条走:


1.第一条路线是得想办法扩充预训练语料,让思维链允许更多 action space。


就是加入视频,大量的教学视频有非常丰富的思考过程,尤其是老师上课的视频,有激光笔指、打草稿、连辅助线等过程,如果把这些丰富的过程引入预训练,肯定大有好处,这是一条比较有确定的路线。


主要难点是视频数据的清洗和挖掘,因为大部分视频数据都是垃圾数据。从预训练的角度,视频长度特别长、不容易与语言模态对齐。图文交错语料的文本是非常丰富的,而视频语料的视觉部分很丰富,但文本部分不是很丰富,很多都是解说、ASR 或字幕,甚至很多无声的,很难应用。目前很多机构都在做,Google 比较超前。


2. 另一条路线是进一步扩展动作空间。


原图编辑是一种方式,最具吸引力的是自由、高可控生成。一旦能自由生成,思维链不再局限于原图了,而是可以把任何文字描述都具象化为图像,再进行推理,这样视觉推理能更上一层。之所以做视觉推理,就是因为视觉生成需要思维链,但现在视觉推理又需要视觉生成来服务,这就锁住了。解开死锁就需要有一边先行一步。


今年我看到非常好的趋势:Gemina 最新版的高可控生成做得不错;更让人震撼的是 4o,4o 的图像生成可控性已经做到非常好了,跟语言模型融合得也非常好。


我后来做了一些相关的研究,发现如果只看重可控生成的质量,不一定要把 long CoT 做好,其实这件事也不是那么无解。只要把问题的 domain 限制在模型能够一口报、数据清洗容易和数据难度可以严格控制的范畴,高可控生成是可以实现的。


• 比如,在一张几何图中连接 a、b 两个点,不需要任何思考,复杂度非常低,模型完全可以一口直接输出;


比如,在图中把某人移除,在绝大多数情况下,是纯感知加生成任务,不需要太多推理。


之前我们没有重视把数据的纯度和难度控制到比较好,更多是把互联网图文语料混在一起进行训练。这里面有些新闻配的是图文无关的图,有些梗图理解难度非常大,不是单次生成能做到的,导致模型非常 struggle,可控性非常差。这也说明海外公司在技术和认知上走在我们前面,他们做出来了,大概也能猜出来做法,基于现有架构有机会,核心还是把数据做好。


我们今年推出了一个模型,虽然还做的非常糙,数据也非常脏,但效果已经不是我们以前做的生成理解一体化模型可以比的了。不过现在还不是一个完全的生成理解一体化模型,仍然是像积木拼起来的。我们接下来很快会出一个利用这个模型合成的大量数据来训练的一体化模型,至少对于简单 task 可以做得不错。


现在我们还不是很在乎美学(比如人脸是否畸变),我们是要走 AGI 的,但光从画面结构和 instruction 的忠实程度是可以做的非常好的,特别是对于指令型问题,即无需推理的问题,比如挪动元素位子。如果目标在推理,那么美学不关键,关键是指令型任务要完成好。下一步就可以进推理思维链了。


如果模型能做到初步的生成理解一体化(不带 CoT),以它为起点,它可以在任何地方产生输出,不一定要一次性生成对,因为后续思维链再对它进行修整。进一步就可以做更广泛意义上的理解,比如解决需要空间想象,或画草图,才能解决的问题,至少可做。


做好了理解部分以后,带 CoT 甚至是 long CoT 的生成也变得可做,无非最后输出的是文字就是理解,最后输出的是图像就是生成,至于中间思维链全部是图文混排,这样就能真正在视觉空间理解+生成,这就是我想象中的多模态的 GPT-4 时刻。


我认为最多一年还有一年我们就会看到多模态领域的 GPT 时刻,虽然我不清楚后面还有多少坑,但是现在看起来,前置技术都是 ready 的,主要看执行,比如数据能洗得多干净、算法能否把多模态稳定的建立出来。


广密:海内外的公司都在强调 long context 特别重要,为什么重要,今天的难点到底在哪?


祥雨:大部分公司和机构说的 long context 重要是只在应用上重要。一是因为现在有很多应用,应用中有海量参考信息,模型要输出符合具体环境的信息;二是因为模型自身的幻觉是一个重要的问题,大家希望把尽可能多的参考资料给模型,现有架构下,容纳这些资料的方式就是放进 context。


但我从智能发展的角度有不同看法。如果将 context 类比成人类的记忆系统,就会发现 transformer 在建模 long context 上是非常有问题的。


首先,对于标准的 transformer 来说,context 大小是随着数据的增长是以同等的比例在增长,也就是说它不会做任何的压缩或裁剪。这和人类非常不一样,比如一场会议开完或电影看完,大部分人会记录下最重要或印象最深的点,但不会记住类似第几分钟桌子上有几个水杯这样的问题。


人类记忆是分层记忆:短期记忆又叫 working memory,还有中期记忆和长期记忆。但反观我们的模型,传统架构只有类似短期记忆的功能,但对比人类的短期记忆,又太长,比如视觉信号 2-4 秒就占三四万 token,现在 long context 动辄十万、百万甚至千万 token,导致了一个问题是:虽然 context 变长,但只解决了将信息装下的问题,大多只是简单检索和 retrieval,复杂推理做不了,没有解决怎么将信息用好的问题。


目前的主流架构,尤其是小模型,随着 context 增长,模型性能会下降,很大一部分原因在于 context 干扰,比如模型做一张数学卷子,如果做好一题就清空 context,再继续做下一题,那得到的效果可能较好,如果是让模型连续做题,刚开始的效果可能差不多,但如果题很多,到了后面,模型的性能是急剧下降,模型遇到了注意力涣散的问题,因为有太多 context 没有清空,在做后续的题的时候,模型会不断回顾前面,模型要花很多精力来避免这种干扰。


还有老生常谈的注意力机制平方产生的 complexity,导致成本高,但成本问题不是我主要关心的,我更关心智能本身的建模,光是这个角度来讲 long context 的方式就是不对的。


而且我们经常说压缩产生智能,信息如果不加工压缩,无法提炼精炼表示,就无法产生智能。而 transformer 的 context 容量随 memory 增加,没有压力或动力去做压缩,尤其是如果关心的 task 里还包括很多 retrieval task,模型就会更学到 bias,即模型必须牢牢记住一切,因为训练的时候总是考模型的 retrieval 问题。但其实这种训练不是一种智能的表现,反而是智能倒退。


很多人都意识到了这个问题,比如用 RNN 替代,最经典的就是各种 linear 变体,实际也取得了一定的效果,但据我所知大家用得还比较少。


我觉得这些架构都很好,但建模 long context 的核心难点不在这里,甚至今年的 Benchmark 还有很多误区,比如把 RNN like 方法和普通 transformer 混用,理由是如果不混用,那么 retrieval 任务就没法做。在今天 function call 的时代,完全可以通过多模型协作解决 retrieval 任务。


比如人看完一本书后,写总结或摘抄金句时,人会忘记很多细节,人不会根据记忆直接输出,这会产生幻觉,而是人会根据印象去翻书。建模翻书动作,就可以理解为 function call 或 RAG,在我看来可能会更复杂一些,涉及到注意力,也就是 context 从全局转移到局部,而局部是通过全局注意力的引导来实现的。


广密:未来模型就会像大脑分区一样,但成本也会巨高。


祥雨:是的,未来完全可以用 multi-agent 的方式来达到节省上下文的目的。如果我现在手里只有一个 128K 左右的基模,上下文要怎么做得这么长?


有一种非常简单的方法就是,做两个模型,一个模型做 plan,另一个模型来做具体的求解。plan 模型每次搜索到一条分支,进入到这条分支以后,后面具体的演算和执行过程由第二个这个模型来做,这个模型只有有限的上下文,它的上下文是经过 plan 模型摘要之后产生的,接下来的结果可能是已经找到答案了,或者是没有找到,但是他反馈了一些思路给 plan 模型,plan 模型根据反馈再 plan 第二条路径,再发给刚刚负责执行任务的模型。


这条路径已经跟刚刚的路径无关了,所以负责执行的模型根本不需要保留刚刚那一步的信息,只需要有 plan 模型发过来的必要信息就可以了。


这跟人类也一样,比如人做第二题的时候就不会对第一题念念不忘。负责执行的模型就相当于人的注意力转移中的情景转移,从一个 context 切换成了另一个 context。人是有很强的情景隔离的,比如我刚在办公室,有很多办公问题,但现在我在和你聊,那些东西就不在我的 context 里了。


搜索层级如果看成是一个二叉树状展开的,原来将整个二叉树每条 path 全部拉直,CoT 可能需要上千万,通过这一方式,从顶层节点到底层节点,现在只需要 log 级别。也就是说 plan 模型只要知道 high level 的信息,哪些路径搜到、得到什么样的结果,而负责执行和演算的模型只需要负责当前关心的信息,历史上计算完全可以不存储,这样思维链长度就可以大幅减少。


很多人看不起这个架构,认为这就是拼 agent,很多人认为在今天这个时代,这肯定永远比不过端到端。但是我现在说,这套系统发展到今天以后,有了 RL - CoT 这个范式,这一套系统也是可以端到端训起来的。


比如现在有一个 retrieval task,我限制这两个模型的上下文长度,但互相之间 communicate,可以不断清空上下文,最终的优化目标是最大化答案的正确率。这时候这两个系统在协作上,不是自己拼 pipeline 拼出来的,可能需要一个简单的冷启动,但模型经过 RL 的训练,它完全会 adapt 到自己的 pattern,所以这也是端到端的,而且比直接塞到一个上下文里要强大的多,而且避免了上下文干扰问题,甚至模型会主动避免了上下文变长。


广密:这不仅解决了上下文的问题,可能也是 multi-agent 的雏形?


祥雨:这要看怎么定义 agent,这更像是人脑不同脑区之间的协作,还没有到真正的 multi-agent。多个人想要为了同一个目标进化,这是一个很困难的事,但对于一个独立的个体,就需要这么做。


广密:如果未来是沿用大脑分区的模式,未来可能有更多个模型,有更多不同的分工,通过 RL 的方式,可以 train 得一体化更好。


祥雨:是的,可能基础都是普通的 LLM 或者 VLM,在训练的过程中,逐渐产生了功能上的分化,这是非常有可能。


广密:有的模型就是为了记忆存在的,有的就是为了做 planning、做 action。


祥雨:是的,可能训练之初是没有这种偏好的,但最后为了让每一个模型上下文不超过上限,就会出现不断裁剪上下文的这种模式。


广密:现在很多人围绕着 attention 架构去改,好像今天没有什么好的解决办法?


祥雨:我一直强调这个观点:架构不重要,架构是服务算法和系统。我认为 linear transformer 一点都不本质的原因在于,今天的算法是 autoregressive 的 NTP。


NTP(Neural Theorem Prover)是一种结合神经网络和符号推理的模型,通过神经模块实现逻辑推理过程,实现可学习的定理证明和知识推理。


如果不用这个算法,比如用 Hinton 的 Forward-forward 无反传算法(FFA),那根本就不需要 linear attention,任何一个普通的 RNN 都可以,因为它不反传历史。甚至这个算法如果最后 work,那么在线学习也就可以直接做了,就不需要有所谓的 training 和 inference 的区分,因为 training 也是一种 inference。


Forward-Forward算法(FFA)是 Hinton 提出的一种新训练方式,它不需要传统的反向传播,而是通过让网络分别“感受”好样本和坏样本的区别,利用正面和负面数据的前向计算结果来调整自己,从而学习到更好的表示。


这就是架构服务于算法。因为有 next token prediction 这件事,这个算法需要并行化,不得不对 RNN 的结构产生了一定的要求,必须表现为一种可分离的形式,所以才有了 linear attention。


09.

模型自主学习与 ASI


广密:刚才你提到了在线学习,或者叫模型的自主学习,为什么这很重要,为什么这可能是实现 ASI 最重要的一个路径?


祥雨:从今天大模型演进的角度来说,真正的核心驱动力是两根轴,横轴是底层算法,或者叫优化方法,纵轴是模态。优化算法的从 0 到 1 的代表性的事件是 next token prediction 的发现,按模态的起点是自然语言。


发展趋势是呈现一个螺旋上升的,正因为 next token prediction 在文本上很 work,所以沿着多模态,有越来越多的人去研究怎么把类似的范式迁移到更多的模态,但迁移的过程中可能会反复碰壁,碰壁多了,人们就会怀疑这个训练范式到底行不行。


还有一群人聚焦在语言本身,在研究语言推理问题,尤其数学问题,也发现了 next token prediction 的问题。大家一致结论是这个压缩方式不行,我们得做 RL,直接面向目标优化,这一下子盘活了很多思路。首先语言模型的推理能力强了一大块,之前无解的很多问题,比如多模态生成理解一体化的问题,有了推理模型后,就想通了,就可以继续走了。


今天我们仍然是处于挖掘 RL 算法上限,但是越来越多的人已经发现这套算法看起来也不是那么完美,比如纯做语言的人觉得这件事最不合理的一点是目前只有 rule-based 以及一些像逆强化学习这样的方案是 work 的。但是这些方法跟人类的学习其实差别还是非常大,局限性也特别大。最典型的就是 rule-based 的算法是无法处理那些没有明确评价标准的东西,这些东西可以通过模型来建模,但这些模型的行为又很容易被 hack。


对于人类来说,关于自我价值的认知、正确性的判断,更多是靠人脑自己,人并不是每一件事都是服务于 KPI 的。人有自我意识和自驱力在,评价不应该来自外界,但现在的 rule-based 都是外界的,训练中的 reward model 也是外界的,就是逆强化学习,蒸馏了外界的偏好来监督自己,缺少一个真正的内生动力。


很多人说这个不重要,现在的方法已经够了。但是在工程实践中会发现,如果一直沿着 rule-based 这套方法走下去,又会重新遇到 scaling 问题,这个 scaling 不再是我们之前说的 model scaling 或 data scaling,而是 environment scaling。比如说要解编程问题,一个 project 就得搭一个环境,将一整套 Docker、输入输出和测试数据都配起来,结果就产生了一条数据,这个效率太低了。


大厂现在很多就是这样干,找了很多工程师一个一个写 project,尤其是主打编程类的大厂,会比较擅长做这件事。但是终究这件事跟人类不一样。人类不是通过外界环境,人类是自驱的,会自己看文章,自己搭环境,从环境反馈中获得学习,这个学习也绝对不是 0-1 的学习。


以一个大闭环里面的非常小的问题为例,也就是如何从人类自然语言中拿到反馈,即便是这么小的一个问题,目前都是很难实现的。比如我写了一篇作文,老师说第一段写的不错,第二段修辞用的有点不好,第三段上下文衔接不太行,第四段有些错别字,整体读起来感觉略显干巴,而且长度太短了。这个老师从非常多不同的维度对这篇作文做出了评价。


但今天的 RL 将每个评价都单独加权,得到一个加权后的评分,完全丢失了评价维度的丰富性。这也是现在做 generative LLM 的一个困境,也就是确实可以从多维度评价一个回答的好坏,但现在还没有什么好方法来利用这些维度,最后都加权成一个干巴巴的数字。


对于模型来说,它根本不知道这个数字是怎么算出来。模型只能通过大量的样本,去猜打分规则,这是很低效的。模型不仅要猜打分规则,还要猜每一块的打分要素,比如是根据第几段打的分,还是整体风格等,这些信息全都丢失了。现在这方面的论文很多,但还没有一个在工业界上大家普遍认可的方案。


这也是我现在重点关注的就一个领域,就是让模型真正实现自主学习,前置技术还需要非常长时间,其中最需要解决的就是如何环境沟通,很多涉及到自然语言,首先要解决如何从自然语言中获得反馈。但这只是众多问题中的一个非常小的技术细节。


当前这一代 rule-based 的 LLM 面临的最大问题就是环境不能 scaling up,需要非常多的人去做标注。这和人类是完全不同的。人类具体在空间里自主探索,在与环境沟通中不断提高自己的一些能力。


这里又涉及两个技术细节:


1. 无限长上下文的建模,就和刚才提到的 long context 建立起来关系了。因为真实的环境是一个无限长序列,而且是个动态的、没有稳态的;


2. 学习算法,尤其是从自然语言或者非结构化反馈中来提升自己,以及如何设计内生奖励模型,驱使模型如何更新自己的权重参数来适应,是下一代自主学习要解决的问题。


自主学习和在线学习经常是绑定在一起的,因为如果可以做好自主,那么为什么不把它放到真实的环境中玩一玩,其实就是一个在线模式。这两件事也是我们下一步要重点投入的。


广密:刚才提到多模态推理的 GPT-4 时刻可能一年以内,关于自主学习和在线学习,你估计这个时间表会是什么样子?


祥雨:时间表会推迟一些,但我认为也不会推迟太久,可能不需要 2-3 年,可以在 2 年以内,现在研究这一块的人已经非常多了,我认为很有可能不用特别久,这一块就会有突破。如果关注学术界,就会发现这块现在是一个研究的大热门。


广密:如果自主学习、在线学习突破了,公有知识和很多领域的专有知识、企业的私有知识,可能会融合得很快。比如一个自主学习的 agent 在公司内,可以把公司的很多 know-how 都学得很强,对吧?


祥雨:对,而且可以高度定制化,这个 agent 就是你公司的员工了,是专为你定制的。当然这里面会有很多系统上的挑战,比如说怎么复制、怎么迁移。上帝造人就留下一个大 bug,一个人的记忆没法很容易的给另外一个人。自主学习实现以后也有这个问题,要怎么融合两个 agent,这也取决于建模的方式。


广密:如果自主学习实现了,你觉得对今天的基础模型这个范式会有多大的影响?因为它的学习效率更高了,有限的数据可以学得很快。那么它是给未来的一个叠加式的技术底座,还是现有的东西在未来就没有那么重要了?


祥雨:这是很难预判的。每一次迭代,可能是颠覆式、渐进式,可能就是小修小改,可能就是改了一个函数。从历史上来看,这里面最关键的点还是在于认知。只有把上一代做得非常完善了,才能充分理解到它的边界在哪里、问题在哪里。


广密:未来两年我们还能再看到至少两个 GPT-4 时刻,一个是多模态的推理,一个是自主学习或在线学习,还会有更多的 GPT-4 时刻吗?


祥雨:剩下的就不好预估了。


广密:现在 Google 称 agent 可能在未来一两年大规模的做有经济价值的任务,可能也是一个里程碑。


祥雨:我想澄清一点,现在的 agent 和 openAI 提的 agent 很可能不是一件事。OpenAI 提出的智能度的五级分类法是非常有逻辑的:第一级是 chatbot,第二级是 reasoning,第三级是 agent,他们讲的 agent 和我们今天说的 agent 应用差别是挺大的。


OpenAI 五级背后的潜台词是每一级都得有一个全新的算法,比如 chatbot 的形态本质就是 next token prediction;reasoning 背后的 o 系列是 RL 思维链主导的时代,而且 RL 往后越来越会 scale up,所以 RL 主导的时代就是 reasoning。


我认为主导 Agent 的算法就是自主在线学习。因为 agent 特别强调自主性,不需要人工设计这么多环境、定义这么多规则。现在的 reasoning 系统还是一个 KPI 驱动的,第一是训练结束不能再继续提高,第二是训练过程完全依赖人工给定目标,但比 NTP 还是要好一些的,因为 NTP 不仅要人来给目标,还要让他达到这个方向的路径背下来,而现在可以做到给模型一个目标,模型自己去实现就好。自主学习是将目标放宽,模型得自己去找目标,自己来学习自己的价值,所以 OpenAI 的 agent 是能够独立工作,自我进化。


今天我们说的 agent 更多的是应用,是把复杂的 pipeline 搭在一起,借由今天的 reasoning 模型的 RL 机制,让 function call 进入 long CoT,其实是让 function call 这件事变得更加智能、按需调用,其实这一代 agent 还是 reasoning 时代的想法,也就是把一系列系统串起来,有一个统一的 KPI,模型可以随便输出,最后要让那个 KPI 最大化。


但这已经比 LangChain 又进一步了,LangChain 时代的 agent 完全是一个 handcrafted pipeline,本质上还是 chatbot,也就是 next token prediction 时代的东西,大家通过 prompt engineering 把几个流程补起来。reasoning 时代讲究的是模型主动调用工具,不是靠 prompt 激发调用的,而是依靠 RL 自主激发。模型以 RL 优化目标最大为原则,认为调用了会更好就会调用,如果发现调用了还不如不调用就不会调用。


广密:李飞飞和 Lecun 提到的世界模型是不是和你说的这一套殊途同归?


祥雨:是的,他们核心想解决的也是自主学习的问题,但是设计方法论还是有很大区别的。他们不提生成理解一体化,也是非常有道理。生成真的不是必须的。我提到生成是因为,从语料获取方便性的角度,生成是最好的一种监督或者自监督的模式。


但是 Lecun 说的是完全正确的,人身上没有视觉生成器官。人可以在脑中想象未来,但未必要画。这件事非常正确,甚至于这个才是再下一步,进行更复杂的空间推理的方向。结合了世界模型的说法,可能更为本质。


但是世界模型要怎么训练,现在来看靠生成式来训练。人类虽然是没有视觉生成器官,但人是有世界模型的,可以从脑中想象未来。但在世界模型怎么学习更为方便这个问题上,对于人来说,可能非生成式更方便,对于现在这一步模型来说,可能走生成式方案更加方便。


广密:你觉得机器人的大脑,和今天的多模态融合之后的模型,甚至自动驾驶的模型,这几个未来会是殊途同归吗?


祥雨:实际上这几个领域目前都是在抢跑。我们目前的智能水平远远没有达到这一块,现在大家还在视觉里面挣扎。它们目前研究的 domain,一般要么是问题比较局限,要么是场景比较局限,比如自动驾驶的控制维度式比较低,相比通用技术来说,自动驾驶的场景也是比较受限。现在是给了它们机会可以提前用一些 rule-based 分拆模块的方法,先把这个系统装起来。现在自动驾驶的趋势都是在走向彻底的端到端,并且还需要整合多模态推理,就会发现与 AGI 的终局形态是一样的。


机器人更是这样了。现在是因为做不好,所以只能叠个被子或者跑马拉松,虽然技术没达到相应水平,但并不妨碍可以做一些应用了。所以这些东西都是在提前抢跑,他们的路线也未必是我刚说的 AGI 主线这一块,但终究会在某一个时刻合并。


文章来自于微信公众号“海外独角兽”,作者是“拾象”。


专访张祥雨:多模态推理和自主学习是未来的 2 个 「GPT-4」 时刻


首页 发现
看过 我的