大家都知道图像是大自然创造的,它不管你人类对它怎么理解,它就在那里。但是当时发生了一件事,就让我们就觉得就百思不得其解吧。然后是发现了一些蛛丝马迹,就比如说更大的模型,它在做一些数学题,它更倾向于跳步。它可能直接指向了我们做做那个next token prediction的啊这样的一个本质的缺陷。
Hello,大家好,欢迎收听《张小俊商业访谈录》,我是小俊,这是一档提供一手高密度信息的商业访谈节目。今天这集呢,商业访谈录第一次迎来了一位 co-host,是大家熟悉的李广密。广密邀请了大模型公司阶跃星辰的首席科学家张祥雨来给大家聊聊多模态的前世今生和未来技术的前沿走向。张祥雨在这期节目中详细的阐述了他参与的多模态研究的十年历史,对多模态的全新思考,以及所预见的下一个 GPT 四的时刻。他提到了一个细节,在训练过程中他曾经发现了一件百思不得其解的现象,那就是模型的通用对话能力、情商和知识量都是在随着模型的变大而变得更强,但是模型的推理能力,尤其是数学的能力表现却是先上。上升后平缓,再扩大反而是下降,这点在业界还没有引起广泛的讨论。那关于这个怪现象呢,他也给出了自己的解答。下面就是广密和翔宇的聊天,还是那句,二零二五,期待我们和AI共同进步。
做这个播客的目的呢,还是想推动AGI的生态吧,传递这个AGI的观点,影响社区,影响大企业的管理层,重视基础研究文化,也重视研究员,也投入更多的资源到推动AGI的事业下吧。因为十五年前是移动为先嘛,今天是智能为先,智能为先其实最重要的还是要非常理解和重视研究文化。
今天我们要访谈的张祥雨是我特别崇拜的一位AI科学家,现在也是大模型公司阶跃的首席科学家。其实祥雨非常低调,然后这也是人生第一次公开访谈。祥雨的总论文引用已经超过了三十七万,对吧?然后。然后还有一个特别有意思的就是,在AI圈子口碑非常好。我问过非常多的研究员,就是你们觉得新一代的华人AI科学家谁最牛?翔宇的名字是提的最多的。今天我们不聊同行竞争啊,也不聊阶跃公司具体的,我们就从比较纯粹的技术洞见的角度聊聊AGI,反正也听听那个翔宇从个人研究视角的一些技术洞见吧。反正今天我们重点聊聊,比如说接下来两三年还有哪些。潜在的 GPT 四时刻,多模融合的大一统的架构,比如说多模态有没有 COT 思维链,然后 long context,嗯,希望这一期播客是关于多模态最佳布道播客吧。
李广密
翔宇先给听众朋友打个招呼,hello。呃,我们了解翔宇,你今天的论文引用数已经超过了三十七万,呃,我们之前都从外界听过你的那个代表作 ResNet,叫残差网络,之前在。在微软亚洲研究院的时候,跟啊何凯明、孙剑、任少卿你们几个一起完成的对吧?跟我们展开讲讲你个人的学术经历和你研究的这个主线。
张祥雨
我当时在读博的时候,时间点其实非常好,正好赶上2012年。大家都知道,那时候 AlexNet 出现了。其实它的方法跟之前的深度学习框架没有本质差别,但它最大的差别就是做了 scaling。
1. Scaling Drives Deep Learning
所以你可以看到,整个深度学习、人工智能深度学习,最大的动力其实就是 scaling。AlexNet 当时非常成功,为什么?因为它刚好达到了那个时代的最佳历史契机。
按今天的观点,scaling 要同时扩展模型、数据和算力。刚好在2012年,我们知道,我是从 CV 出身的。做 CV 的话,2009年李飞飞他们团队推出了 ImageNet,也就是一个120多万张图像的数据集。当时能把这个数据集跑完就已经很不容易了,所以 data scaling 在那个时候已经不是问题了。
算力方面,英伟达在前些年提出了 CUDA。一开始 CUDA 都是为科学计算服务的,但到2012年左右,它的性能已经非常好了,也有了算力方面的支持。所以可以认为,算力 scaling 也已经解决了。
到了那个时间点,最重要的一点就是,谁能够最先把 model scale up。AlexNet 就成功了。之前我们做的神经网络也就几兆,它一下子做到了700多兆,正是因为这个契机,所以 AlexNet 成功了。
我当时读博,也是在延续相同的路线。我的整个 PhD 阶段是从2012年到2016年,主要做的事情就是 model scaling,想把模型做得更大。把模型做大,无非就是更大的宽度、更大的深度;对于视觉信号来说,还有更大的分辨率。
这方面凯明老师和孙剑老师给了我非常多的指导,我们也一起提出了很多方法。比如分辨率 scaling;在宽度 scaling 上,会遇到梯度爆炸或者梯度消失的问题,所以我们提出了一种初始化策略,叫 MSRA initialization,比较好地解决了宽度 scaling 的问题。
深度是最困难的。之前的一些模型基本上过了十几层以后,效果就会迅速下降。我们当时主要提出了 ResNet,也是现在影响力比较大的工作,可以把网络从十几层提升到几十层、上百层,甚至你愿意做到上千层也可以。
当我们把这一系列工作做完以后,我认为 model scaling 至少在那个时间点已经基本解决了。所以我毕业以后去了旷视,开始做小模型。因为那时候继续把模型做大,已经没有特别大的收益了,接下来接力棒重新交给了数据和算力。
2. The Small Model Pivot
从2016年、2017年加入旷视以后,我做的反而是小模型。我也发现,把模型从大做小,思路非常不一样,可能跟大家想象的不一样。大家会觉得模型架构、设计细节非常关键,但实际上做过架构的同行可能都知道,很多时候我们会发现架构并没有那么重要。
尤其对于大模型,架构设计更多是针对大方向。只要大方向对了,比如用了 ResNet,至于里面的层间如何连接,差别其实没有那么大,效果差别也不大。关键还是大方向。
但是一旦把计算规模从大变小,放到端侧,这时候模型架构的细节设计就变得非常重要。尤其对于不同的硬件设备,它的执行效果和效率都有很大差异。
所以我在做 Transformer 的时候,也深刻感受到这件事非常困难。你要把一个模型在特定硬件上跑起来,还要针对特定任务,设计出效率最高、性能最好的模型,其实需要大量的经验。
所以一开始做了几个小模型工作以后,我的研究点又转向了:如何通用地、自动化地把这些复杂的小模型设计出来。2017年、2018年的时候,我立了一个项目,做神经网络架构搜索,也就是 NAS。利用自动化的手段,帮助我设计出能够在特定硬件上高效运行的模型。
2019年我们提出了 SPOS 这项工作。它可以用非常小的代价,针对给定的硬件,在目标数据集上搜索出效果最好的模型,很大程度上解放了人工。
3. The Data Scaling Problem
到了2019年底,我们的目标又重新变成了做大模型。但按照2019年的情况,把模型做大,难点已经和2016年很不一样了。2016年之前,主线故事都是怎么把模型做大,也就是 model scaling;但到了2019年,最大的难点在于 data scaling。
大家知道,CV 发展了这么多年,虽然自监督或者 label-free 的方法层出不穷,但一直缺少一个像 NLP 里的 GPT 时刻或者 BERT 时刻一样的东西。
2019年的时候,NLP 进展非常大。很多人说这是因为 Transformer,但其实并不是。前面我也说过,架构在这里面并不起主要作用,起主要作用的是优化方法。
之前 NLP 和 CV 是一样的:来一批数据,需要标一大批标签。但只要依赖人工标注,就永远 scale 不起来。NLP 很幸运,发现了通过一些特定的训练方式,比如 BERT 使用类似完形填空的方法,找到了一个看起来和下游成千上万个任务没有关系的 task。
但通过这样的上游任务,首先不需要标签,可以无限扩展;其次,数据越多,通过这个上游任务,神经网络就可以学到更强的表征,于是在下游任务上表现得更好。
GPT 这种 decoder-only,也就是 next-token prediction 的范式,则更进一步。它不仅不需要标签,而且通过 in-context 建模的方式,可以在某种程度上统一很多下游任务。当然,这里的很多 insight 是 GPT-3 出来以后才有的。至少 NLP 这条路是完全打通了。
但在2019年,CV 还没有经历这个时刻。尤其是2019年上半年,Google 在半监督领域有很多突破,比如 UDA。这些工作指向了一个看起来不错的方法,也就是对比学习,contrastive learning。
李广密
对比学习是不是类似于 NLP 里的 BERT、GPT 时刻?
张祥雨
因为大家看到,它在很多指标上的性能,通过完全自监督的方式学习 feature,已经开始接近当时用 ImageNet 全标注数据训练出来的效果。虽然还有一定差距,但已经在快速逼近,这给了大家很大的鼓舞。
整个业界,包括我们自己,也花了很多精力研究这些方法。结果发现,很多方法其实只在小模型上管用,仍然没有 scale up 的特性。一旦模型规模变得很大,效果就会迅速变差。
到了2020年,CV 领域还有一件大事:有人把 Transformer,也就是纯 Transformer 架构,在 CV 上彻底做通了,就是 ViT 系列,一直用到今天。
当时做学术的人自然会想,这太好了,我可以把 NLP 的方法搬到 CV 里试试。于是产生了很多类似的方法。NLP 里叫 GPT,在 CV 里叫 iGPT,也就是 Image GPT;NLP 里叫 BERT,在 CV 里叫 BEiT。大家把一系列 NLP 方法借鉴到 CV 里。
一开始效果非常好,尤其是凯明提出 MAE 系列以后,我们看到它在自监督方面的性能,特别是在 fine-tune 之后的下游任务上,不输,甚至略微超过带有全监督信号的模型。这再次让 CV 社区兴奋起来。
但我对此一直是谨慎乐观。因为我做了很多事情都在小模型上,很多方法放到大模型上以后,你会发现它完全不像 NLP 那样具有 scale up 的特性。
4. Why Vision Stopped Scaling
到了大概2021年底,我仔细分析了为什么早期的 contrastive learning 在小模型上 work,但放到大模型上不 work。MIM 可能效果好一些,但我依然不看好。当时我大概想明白了原因。
无论是 contrastive learning 还是 MIM,它们本质上都在学习某种不变性。对于 CV,尤其是视觉表征来说,不变性确实非常关键。但问题是,这两种方法所学到的不变性并不是 data-driven,而是完全由人工设计的。
以 contrastive learning 为例,它非常依赖 augmentation,也就是你如何构造样本。它实际上是在鼓励某种不变性。负样本部分可以看作一种 regularizer,鼓励最大熵,防止信息坍缩;而正样本部分是在学习一种不变性。
但这种不变性不是数据赋予的,而是你通过人工设计的 augmentation 赋予的。这又走回了更早的人工设计路线。
NLP 为什么 work?因为它真正做到了 learn from data。有越多高质量的语料,模型就可以学习语料中的关联性,建模联合分布,通过压缩学习到更多知识。
但 CV 不一样。你设计了什么不变性,比如旋转、颜色增强或者 multi-crop,它最后学到的特征就是满足你设计的那几种不变性。它当然没有 scale up 的效果,因为只需要少量数据,模型就可以学会这些不变性,后面就没有信息增量了。
当时很多人还在做 MIM。它其实类似 BERT 的方法,但我很早就看到了它的上限:它学到的是遮挡不变性。
遮挡不变性当然很重要。比如人类认识一瓶水,我把水挡住,只露出一个头,人类仍然可以猜到后面是一瓶水。只要看到一个局部就可以,这就是人类认知中的遮挡不变性。
但拥有遮挡不变性的特征只是必要条件,不是充分条件。你做 MIM 类方法,在数据量很小的时候,通过算法设计可以学出拥有遮挡不变性的特征,这非常好,也非常有用。
但是即使数据量继续扩大,学习的仍然只是这一种不变性,并没有从数据中激发出更多不变性。这就是它不 work 的关键。
所以在2022年初,我发表了一篇观点文章,认为 MIM 没有太大的用处,也没有明显的 scale law。当时受到了圈内不少人的批评,但现在看来,走这条路线的人已经很少了,确实不是特别优秀。
李广密
所以到了2022年,你对单纯依靠视觉,尤其是静态图像,学出智能这件事,已经比较悲观了?
张祥雨
对。到2022年开始,我对单纯依靠视觉,尤其是静态图像,学出 CV 领域 GPT 时刻这件事比较悲观。
当时我看了两篇 Jason Wei 的论文。一篇是关于思维链的发现,另一篇是关于 NLP 里的涌现性。这两篇文章让我非常震撼。
我感觉自己研究了这么多年还停留在表征层面,但做 NLP 的同行已经开始研究推理,研究更高级别的智能特性。我越来越觉得,纯视觉这条道路可能是有问题的。它当然很重要,但可能存在根本性问题。
我们可以从三个角度比较自然语言数据和静态图片。当然,视频是例外,视频可能蕴含更丰富的信息。至少从自然语言角度看,生成、理解和人类对齐这三件事,在 GPT 框架下是合三为一的。
也就是说,我只需要做出一个类似 GPT 的生成模型,建模它的联合概率,就可以同时拥有生成、理解和人类对齐。
为什么?对于 GPT 这样的自回归架构,给定前文,输出后文关于前文的条件概率时,前文一定会影响后文的条件概率,改变后面的分布。它可以输出与前文匹配的文字,这其实就是一种理解。
你可以在中间要求它输出,通过 prompt 约束它;也可以对前文任意提问。它在建模联合概率的过程中,针对后文的条件概率进行采样,就可以回答前文的问题。这可以认为是一种生成和理解。
当然,它本身就是生成模型,所以可以做生成。至于它预训练的语料,都是来自人类的自然语料。既然建模了人类语料的分布,当然也在某种意义上完成了与人类的对齐。
我们再反过来看一张图片,仍然从生成、理解和人类对齐三个维度来看。你会发现,图像,尤其是静态图像,并不是自闭环的。
我给你一张图像,或者给你一个图像数据集,想充分利用这个数据集信息,能做到什么程度?那肯定是做一个生成模型,把这个图像数据集的联合概率分布建模出来。
当我做出这样的模型以后,我认为已经拿到了这个数据的全部信息。这个模型当然可以做生成,但它能够做理解吗?显然不可以。
因为你建模的是所有图像的联合分布,也就是每一个 pixel 之间的联合分布。这个联合分布有无数种建模方式,但没有任何限制要求这种建模方式刚好符合人类理解图像的方式。
图像是客观存在的,来自大自然。它和人类如何理解这件事之间,并没有必然关系。信息并不蕴含在图像本身中。可能有少量图像,比如带文字的图像,可以认为包含了人类对它的理解;但一般来说,图像是大自然创造的,它不管人类怎么理解,它就在那里。
所以一张图像不必然包含人类对它的理解,它缺少这类信息。
为什么 MIM 或者 contrastive learning 能 work 到一定程度?说白了,还是因为注入了人类的理解。
比如我把一张图放在这里,如果不注入“这张图的特征需要具有某种不变性”这个概念,图像本身不可能拥有这样的不变性。对于人类来说,我理解一个杯子,需要遮挡不变性:遮挡住一部分,我仍然知道它是杯子。
但如果是一个动物、外星生物或者机器人,它需要用人类的方式理解这张图吗?当然不一定。遮挡不变性并不蕴含在这张图里。
所以你会发现,至少在静态图像这个维度,理解和生成产生了割裂。很多人会问,视频能不能补偿这些?因为视频可能包含不同角度的拍摄,自然具有遮挡不变性。
我只能说有可能,但视频数据的利用实际上比静态图像难很多,信息密度也低很多。视频可能是下一个方向。
最后一点是人类对齐。语言模型的语料是人类生成的,在上面训练生成模型,模型的分布自然和人类产生的分布对齐。
但图像来自大自然,未必和人类对齐,或者说它一定不是以人类的方式对齐的。这就是静态图像的理解、生成和人类对齐三点之间的割裂。
也就是说,在静态图像上做再多工作,我认为都很难形成人类意义上的智能。
想到这里,2022年我基本停止了静态图像表征方面的研究。我认为视觉对于真正的 AGI 系统或者智能系统肯定是必不可少的模块,但肯定不是通过现在的 contrastive learning、MIM 这些方式,就能真正得到视觉领域的智能。
短期内,我可以利用视觉和语言之间的对齐关系。我们知道,互联网上有大量图文交错的数据:网页、论文、期刊杂志、公众号,往往都组织成图文混排的形式。
图像自己很难表达很多东西,但如果把图像嵌入文字流中,利用文字的自闭环——也就是理解、生成和人类对齐的自闭环——图像是不是也可以借由这种对齐,让智能系统拥有智能能力?这是短期内最容易想到的方法。
但从长期来看,这类语料的 bias 很明显,局限性也很大。比如它很少包含细节丰富的视觉过程,尤其是物理运动过程,而这些数据更多存在于视频中。
从长期来看,我们还是要通过视频,甚至通过更大的系统,从视频里挖掘视觉智能的可能性。
5. The Vision Language Bet
到2022年,这个框架已经很清楚了:短期目标是视觉语言模型,长期目标是通过视频获取真正的视觉智能。
但当时和一些人聊过以后,大家都不太相信这个故事。因为2021年,尤其是国内,在 GPT-3 出来以后,出现过一波大模型热潮。很多人出来说自己做了多少亿参数、千亿参数,甚至万亿参数的大模型,但最后都没有取得特别好的效果。
李广密
为什么当时那些大模型效果都不好?
张祥雨
我认为主要有两个原因。第一个是老生常谈的数据质量。尤其是那些基座模型,在没有 instruction learning 的时候确实不好用,能做的事情很少,效果也不好。
但更重要的一个原因是,大家远远低估了 scaling law 中数据所占的比例。GPT-3 刚出来的时候用了千亿参数,但只配了几百 B 的数据。按今天的观点看,这相当于完全倒置了。
这么大的模型,如果不配十几 T 甚至几十 T 的数据,肯定对不起这些参数。所以当时的模型都处于训练严重不足的状态。
也是因为这两个原因,2021年大家复现 GPT-3 时,没有做出特别好的效果。但到了2022年底,ChatGPT 出来以后,一下子打了很多人的脸。原来这个东西可以这么有用,让人感觉智能时代一下子来了。
李广密
过去主要是视觉类数据,今天更多是文本类数据。大家都希望把它们更好地结合起来。但从我的理解看,很多视觉数据还没有和文本关联起来,这应该很难。你们在做的过程中,会遇到哪些困难?包括数据、架构和实验过程。
张祥雨
做多模态模型的机构和团队,应该都会有类似想法:语言模型,尤其是 GPT 成功以后,大家觉得多模态可以复刻同样的路线。
我创业的时候当然也是这么想的,而且现在回头看,确实大大低估了这件事的难度。
当时的想法非常简单。无论是互联网还是书籍,都有大量图文混排、图文交错的数据。既然语言的 next-token prediction 已经验证是 work 的,那么图像进来以后,只要想办法先把图像对齐到和语言相同的空间,再用和语言相同的方式处理多模态交错数据就可以了。
遇到文字就预测文字,遇到图像就预测图像,这样不就成功了吗?
所以2023年做第一代语言模型 Step 1 的时候,我们完全走了这条路线。我们没有先做一个纯语言模型,而是从预训练一开始,就把手里所有数据组织成图文混排的形式。
遇到图像,就接入图像;遇到文字,就接入文字。文字会 token 化,图像也会 token 化。只有一点和文字略有区别:在生成图像的地方,因为至少在那个时间点,直接用 autoregressive 生成图像效果还比较差,所以我外挂了一个预训练好的 diffusion 模块,负责图像生成。
这就是当时第一版多模态模型 Step 1。
这个模型的文字效果和直接训练的语言模型差不多,效果很好。它的图像理解效果尤其好。
当时学术界比较流行的方法,是先训练完语言模型,再通过后训练对齐的方式,把其他模态对齐到语言模型里。我们的方法从预训练一开始就加入多模态数据,结果发现图像和文字对齐得非常好,主要体现在图像理解上。
而且你会发现,图像和文字的相容性非常好。比如把文字写到图像上,针对这些文字提问,和先用 OCR 把文字识别出来再提问,效果几乎是一样的。
也就是说,对这个模型来说,它已经能够自由地利用文字和图像两个模态的信息进行思考,在它看来没有什么障碍。
但唯独生成效果特别差。虽然我们外挂了一个 diffusion 模块,这个模块本身可以生成图像,但把它简单接到多模态系统后,语言理解部分对视觉生成部分的控制能力非常差。
更有意思的是,我们还做过一个实验:在训练某个阶段把生成部分去掉,后来发现完全没有影响理解部分的性能。说白了,生成部分可能根本没有用。
这对我们是一个很大的打击。本来设计这个系统,就是想做生成和理解一体化:既能生成图像,也能理解图像;既能生成文字,也能理解文字。但最后并没有达到要求。
同时期我们也注意到海外一些比较有名的工作,比如 Gemini、伊恋,也号称是多模态训练,但最后似乎也没有做到图像理解和图像生成的一体化。GPT-4V 好像也没有实现,它也是通过外挂的方式完成生成。
这让我意识到,事情可能没有那么简单。看起来你是强行把图像生成和识别放进了一个系统,但从实际效果看,并没有达到语言模型那种生成和理解完全融合的特性。生成和理解在那个时间点仍然是分开的。
至于为什么图像生成和理解如此难以融合,当时我们一直没有特别好的想法。所以做了很多假设:可能是数据质量的问题,图文高度相关的数据量或者数据密度还太少;从互联网上抓下来的内容看起来相关,但实际上图文无关,这些内容可能干扰了训练。
到了2024年,生成和理解还是分开迭代。因为我们观察到海外大厂也是如此:比如 OpenAI 和 Gemini,理解这条线把语言、声音、视觉理解,甚至视频理解融合到一个模型里;但生成一直单独做,走的是 DALL-E 到 Sora 的路线。
所以2024年我们也在走这条路线,但一直在寻找有没有机会把两者融合起来。
对一个生成模型来说,它需要构造文本和视觉信号之间的配对。我完全可以用最新版的理解模型给生成数据打标,这样就能得到更好的视觉生成模型;再把生成模型外挂到理解模型里,继续训练理解模型。
这样一轮迭代以后,生成模型可以提供梯度,指导理解模型。经过这轮迭代,我认为生成和理解之间的 gap 又缩小了一截。
然后再利用这个生成模型给理解模型、再给生成模型打标,训练下一代生成模型,再反过来训练理解模型。我当时在想,是不是到了某个时刻,两者之间的 gap 会越来越小,最后就可以放在一起训练。
我希望先得到一个已经充分对齐的初始系统,再把它们放到一起,把整个链路跑起来。
但我做了大半年,这件事都没有成功。我得到了越来越强的理解模型和越来越强的生成模型,但把它们放到一起,不是不能放,而是没有出现一加一大于二的效果。
放在一起以后,表现仍然像两个模型。随便摘掉其中一个,另一个的效果都不受影响,既不会变强,也不会变弱。既然如此,把两个模型放在一起就完全没有起到叠加效果。
刚才我说的是生成对理解,实际上理解对生成更糟糕。虽然打了很多数据,也联合训练了很久,但生成分支的可控性仍然非常差。
比如经常生成肢体畸变、违反几何约束的图像;尤其做视频生成时,会大量生成违反物理约束的视频信号。
我把这些信号直接送给理解模型,它能够准确告诉我,这个东西不符合常识。但它自己无法控制自己,不去生成明显违反物理常识或空间透视关系的图像。
所以这件事一直卡在那里。生成理解一体化,做了大半年以后,我处于一个很迷茫的状态。
转机出现在 o 系列语言模型出现以后。回头看,2024年我们的语言模型其实也走了一个很大的弯路。直到 o 系列出现,我才把这些事情想清楚。
6. Bigger Models Lose Reasoning
回到2023年底,我们做完了 Step 1。它是一个通过图文混排数据训练出来的多模态模型,参数大概有100多 B,也就是千亿参数。
很自然地,我当时会想:现在数据量够了,算力可能也够了,是不是可以挑战更大的模型?
所以2024年初,我们又启动了一个更大的模型,也就是 Step 2。它有万亿参数,和今天很多万亿参数模型还不一样,它的激活参数非常大,有200多 B,是一个巨无霸模型。
但这个模型一开训,我们就发现投入简直是无底洞。一开始我们大大低估了训练这么大的模型所需要的数据量。数据不足时,光把模型 scale up 到很大,效果其实很差。
同时还需要巨大的算力。大家都知道,算力需求和卡数大致成正比;随着数据增长,算力也成正比增长。所以模型参数和数据量同时扩大时,算力需求近似是平方关系。
这个模型前后做了9个多月,总算训到了一个我们认为比较满意的状态。
但当时发生了一件让我们百思不得其解的事。通常我们认为,随着数据扩大、模型扩大,模型能力应该全方位增长。
但我们发现 Step 2 的性质非常奇怪:它在文科上非常强,包括写作,表现都非常好;但在理科,尤其是数学上,表现还不如一个 7B 模型,而且很难通过语言模型的方式把数学和逻辑能力训练上去。
这件事当时很反常,因为整个 community 都认为模型越大,能力应该越强。
一开始我们以为是数据质量不够,或者训练时间不够。后来做了一系列非常严谨的测试,在 1B、7B、30B、70B 等规模上一路测,训练了一系列小模型。
结果发现,模型的通用对话能力,尤其是情商和知识量,确实随着规模增大而增强;但模型的推理能力,尤其是数学这种比较局部的推理能力,表现为先上升、然后变平,再扩大规模时反而下降。
Speaker 1
这算不算业界还没有形成共识?很多人还没有意识到这一点?
张祥雨
今天已经有很多人意识到了,但在去年那个时间点,很少有人把模型做到这么大,把增长曲线的后半段画出来。后半段其实是下降的。
这件事让我们很诧异。但仔细分析以后,我们发现,更大的模型在做理科问题时效果变差,是有蛛丝马迹的。
比如更大的模型做数学题时,更倾向于跳步。相对小的模型虽然能力弱,但处理长列算式时,不管题目多简单,它都会老老实实一步一步计算。
而较大的模型会写出三个数相加,然后直接报出最后结果。虽然从总体思维链看,它从前面写到了后面,但中间某些细节步骤总是倾向于跳过。
跳步大部分时候是对的,但总有少量情况是错的。数学题大家都知道,错一步,最终结果就完全错误。
这件事引起了我的注意。我很好奇,训练语料有很多来自互联网,也包括很多合成数据。对于合成数据,我可以保证跳步的情况很少;但互联网数据里,人类的表达经常省略中间过程,所以跳步应该非常多。
这很容易理解为什么大模型会跳步。但问题是,为什么相对较小的模型训练完以后反而不会跳步?
经过分析,我认为这其实是 next-token prediction 的一个本质缺陷。
Next-token prediction 是 GPT 的核心范式,也是支撑这一代大模型起飞的最基础算法。它本质上是条件概率的建模:模型会在优化过程中尽可能调整输出,使输出分布越来越接近输入数据的分布。
它还有另一种理解,就是做压缩。学过信息论的人都知道,对于一个压缩器来说,联合概率估计得越准,对数据做无损压缩时,码率就可以越低。
模型通过压缩数据、通过归纳获得了一定的智能,这其实是贝叶斯方法的主要原理。
但到了数学问题上,这两件事之间存在一个非常本质的矛盾:更高的压缩率,未必对应更高的计算精度。
我们做一个思想实验。假设数据集中有很多“十几个数字相加”的操作。其中50%的数据来自互联网,直接写十几个数字相加,最后一个等号给出结果,不提供计算过程;另外一些数据经过精心清洗,或者专门找到有过程的数据,会一步一步把十几个数字相加,最后得到结果。
现在让一个模型去拟合这样的分布。在达到最优、也就是最大压缩率的情况下,模型应该有50%的概率直接输出结果,另外50%的概率按照一步一步的方式输出。这是理论最优值。
但用一个小模型训练时,你会发现,直接报出结果的那一峰,因为模型参数有限、处理不了这么复杂的函数,几乎拟合不上。最后它学会的只有一步一步计算的那一峰。
这就是生成模型中非常经典的特征坍缩现象。比如用 diffusion model 生成图像,它总是先建模比较简单的图;模型能力增强或者训练时间变长以后,才逐渐把完整分布刻画出来。如果训练不足或者模型能力有限,每次输出基本都一样,这就是特征坍缩。
大模型就不一样。我们测试过一个 Step 2,它有200多 B 的激活参数,真的可以把十几个两位数相加,然后直接报出最后答案,而且大概率是对的,可能有90%以上的概率是对的。当然,它也有概率一步一步输出。
问题在于,如果以压缩率论英雄,大模型的压缩率更高,因为它和原始分布更接近。小模型少了一个峰,当然是压缩率不足。
但数学题首要的要求是算对,不是让输出分布更接近预训练语料。
小模型不管大小,只要一步一步算,因为都是简单的数字运算,几乎不会错。大模型则总有一种倾向:它觉得自己可以,直接一步报出答案。对于比较复杂的数学题,可能有很多步骤,中间任何一步,只要它觉得自己很厉害,不需要一步一步计算,直接报出答案,可能90%的时候是对的,但剩下10%的错误非常致命。
只要错一步,尤其是长链问题,最终错误率就会很高。所以你会发现,长链 CoT 数学题是这样,很多需要推理的问题也是这样:它总是在中间跳过必要步骤,直接输出一个自认为正确的答案。很多时候确实是对的,但逻辑越复杂、步骤越多,小错误累积起来,整体错误率反而大幅增加,很多时候还不如小模型。
这个现象非常糟糕。它可能直接指向了 next-token prediction 的本质缺陷。
业界对 next-token prediction 的批评其实已经很多了。它本质上是 behavior cloning,天生容易 OOD,容易在中间出现分叉,容易陷入没见过的环境。很多幻觉也是这样产生的。
但我发现的这个现象,可能还没有在业界得到充分讨论,是一个比较有趣的问题。
解决方案其实也比较自然。Next-token prediction 本质上是基于信息论、最大化压缩率。如果问题本身和最大化压缩率之间存在 gap,那就不如直接优化真正关心的任务。
所以 O1 出现以后,包括 R1、DeepSeek-R1 这些优秀的工作,本质上都用了 rule-based RL。其实很早,在2024年初就有很多人尝试把 rule-based RL 接进来,很大原因也是为了克服 behavior cloning 或 next-token prediction 范式的缺陷。
因为 rule-based RL 的目标更直接。它相当于跳出了拟合分布的范畴,不管中间怎么做,只要把目标做对就行。
但大家会发现,这种情况下大模型和小模型一视同仁。大模型不是喜欢跳步吗?只要跳步会降低得到正确答案的概率,RL 就会抑制这种行为。所以一旦加入 rule-based RL,大模型容易跳步的缺陷会得到很大程度的缓解。
它会自己找到最可靠、最有可能达到目标的路径。这个方法确实有收益,而且大模型的收益会更大,因为它的 baseline 更低;小模型也有收益,思维链会更稳定。
但总体来说,收益还是比较小。很多问题该做不对还是做不对。
7. The O1 Reasoning Breakthrough
直到 O1 出现以后,情况才有了很大改观。我觉得把 O1 时刻称为某种意义上的 GPT 时刻,一点都不过分。
O1 同样用了 RL。它和之前范式的不同,核心不在 RL 算法或者数据上的演进。算法还是那个算法,还是 rule-based 的算法。真正的差别在于它的思维链 pattern。
很多人说,做 O1 或者做 reasoning model,本质上是 “patterns are all you need”,要找到最佳的思维链组织方式。RL 算法本身选什么并不关键。PPO、GRPO 都可以;如果不想用,也可以用 REINFORCE++,或者更简单、甚至最原始的 policy gradient 方法,本质上没有太大差别。
真正使 O1-like 范式和之前范式产生差别的,还是思维链 pattern。
这里不得不说,虽然用了 RL,但很多人,尤其是做 RL 的人认为,这并不是传统意义上的 RL,只是借用了 RL 的一些名词和方法论,世界观完全不一样。
传统上做游戏或者控制,遇到的问题通常是奖励过于稀疏,而且难以估计。比如打游戏,想打到很高的分数,纯粹让游戏角色随机操作,非常难。你需要写很多规则,或者用各种技巧鼓励探索,让它走到能够达到高分的点。
棋牌类也是一样。假设不是左右互搏,而是让一个模型挑战已经训练好的 AI,想获得正 reward 的难度有多大,基本是不可能的。
而且回报估计也有很多问题。在序列早期,你很难获得精准回报;决策空间也不光滑。可能需要用 MCTS 搜索到后期分支,筛选出有机会获得高分的分支,再把它一路 propagate 到前面,才能拿到高质量训练样本,RL 路径才能继续。
但大家做 O1 时发现,加入 MCTS 似乎完全没有什么用。PRM 不能说完全没用,但至少在目前研究的问题上,可能问题还比较简单,也可能有其他原因。各种现象都表明,传统 RL 里的方法论,在语言模型中是很不一样的。
我认为最核心的原因是,语言模型已经预训练过了。
以解数学题为例,往往需要上千甚至上万个 token。如果从动作序列角度看,相当于有一个上千、上万步的动作序列,每个动作的 action space 都是整个词表。这是一个非常大的搜索空间。
如果没有预训练,目前所有 RL 算法可能都无能为力。但有了预训练以后,情况完全不一样。模型见过很多不同难度的数学题,甚至可能见过全世界大量题目,所以它的特征空间,也就是动作空间,得到了极大压缩。
看起来是一个长度几万的 token 序列,但真正会让解法产生本质区别的分叉点只有几个。我做过一些统计:对于一个四五千长度的输出序列,可能不超过10个关键 decision 会影响最终结果。
一旦进入某个分支,后面的 token 虽然很多,但基本都是自动生成的,形式几乎确定。那些 token 根本不在 RL 要解决的 search space 里。
RL 实际要解决的,就是那些 critical 的分叉,也就是少量 critical token。
语言模型解决困难问题时,决策序列看起来很长,但因为存在预训练,实际动作空间非常小。只要想办法把那几个关键 token 搜对,就结束了。
这也解释了为什么用 rule-based RL 训练语言模型时,一开始还没有训练,对于很难的题目,随机 roll 也有不低的概率能做对。
传统 RL 里不可能出现这种情况。你不可能让游戏角色随机走几步,突然把游戏通关,然后就学会了正确路径。但语言模型不一样。如果把做对一道题看成通关,那么它的通关率太高了。
题目不太难时,甚至一半以上的题目在刚开始训练、什么都没做的时候就能答对。题目很难时,roll 100次,也可能有几次完全正确。整个过程中没有任何过程监督,仅仅是 random sample,它就可能做对。
这说明,在语言模型上做 RL,遇到的问题和传统游戏完全不同。
RL 在这里的作用,本质上是决定关键 token 应该怎么走。模型多次 roll 经常能做对,但不能稳定做对。这时使用 RL,就是让模型聚焦于关键分叉,选择正确路径。已经被预训练压缩掉的部分,不需要再考虑。
但问题又来了:这和“patterns are all you need”有什么关系?如果只是决定几个关键 token,之前做 rule-based RL 为什么不 work?为什么训练了很久,关键 token 还是不能稳定做对?
模型走到中间某一步时,眼前可能有两个分支,它到底应该走左边还是右边?这件事能不能通过一个 token 解决?对于很多问题,我认为不可能。
最简单的例子是乘法。多位数乘法,要求语言模型一口气做对一个大数乘法,几乎不可能。核心原因是复杂度。
大数乘法至少是 O(n²),严格说如果抬杠可以做到 O(n log n),但无论如何都大于 O(n)。而 Transformer 单次点积的复杂度是 O(n)。如果一件事的复杂度超过 O(n),就很难通过一个 token 解决。
现在回到刚刚的问题:搜索空间已经很小,可能只有10个 critical token 需要搜索。但到了某个关键 token,模型要决定走左、走右,还是走中间,才能最大概率通向正确答案。
问题是,当任务足够复杂,尤其是很多数学问题,模型无法根据题目和前面浅显的推导,立刻决定中间某一步应该采用什么构造、什么算法。
也就是说,这个 decision 的复杂度已经远远超过单个 token 能做的事情。
人类处理数学问题,很多时候依赖巧妙构造。比如算到最后一步,刚好把某个未知数消掉,题目就解出来了;否则可能要换一种方法。很多不等式问题也依赖巧妙构造,想不到构造就解不出来,构造错了也解不出来。
但在构造的那一刻,人类只能凭感觉。在算完之前,根本不知道这个方法到底行不行。
如果人类都无法提前判断,因为复杂度太高,需要进行探索,那么单步计算量限制在 O(n) 的 Transformer 凭什么可以?它当然也不可以。
所以在 O1 范式出现以后,虽然我们也做 rule-based RL,也能观察到 reward 上涨,但涨到一定程度就涨不上去了。题目做10遍可能有6遍是对的,但有4遍永远是错的。
在 critical decision 的地方,模型没有足够依据在这么短的时间内、一个 token 之内选择正确路径。你会很生气:题目已经做到这一步,前面都对,到了这里有60%的概率走正确分支,40%的概率走错误分支。为什么不能100%走正确分支?
可以这样想:数据集中还有另一道题,和它长得非常像,只是几个数字不同。对于那道题,刚才60%的分支可能是错的,40%的分支才是对的。
这两类数据同时存在,模型就无法对所有问题都选择同一个分支。如果总走60%的分支,另一类题就会做错,这不利于最大化正确率,所以永远达不到100%。
想到这里,解决方法就很明显了:如果允许模型两条分支都走,不就解决了吗?这就是引入反思最大的动机,也是 O 系列最了不起的地方——它真的把反思补充进了计算过程。
李广密
那为什么 RL 自己不能激发出反思?
张祥雨
从实验上看,跑得足够久,即使不人工注入反思,RL 也会自己产生反思,但概率非常低,特别耗时,效果也不好。
为什么会这样?还是因为预训练。
预训练对于 O1 和 RL 都非常关键,因为它起到了动作空间裁剪的作用,大幅压缩了动作空间。但在反思这件事上,它其实过度压缩了。
人类语料里的反思数据非常少。对于解题,人类通常只会给出正确的解题过程,不会把错误过程和走过的弯路写下来。你看到的永远是一条路走到底。
模型经过充分压缩以后,会认为所有题目都应该从第一步顺畅地 CoT 到底。它虽然有“反思”这个 token,但概率非常低,因为预训练把它压缩掉了,或者说过度压缩掉了。
所以仅靠 RL,不容易把反思激发出来。这也解释了为什么之前 rule-based RL 的效果没有那么好。
O1 范式可以通过冷启动、pattern 注入等方式,把反思 pattern 重新注入进去,相当于扩展动作空间。然后在扩展后的动作空间中搜索,就可以解决刚才的问题。
你不知道一个 token 应该往左走还是往右走,没关系,可以先随便选一个分支走到底;意识到不对以后可以反悔,有一条反向边连回来,再进一步搜索。
所以 O1 范式某种意义上是一个 meta 问题。
语言模型最早的用法,和早期 AI 系统的用法一样,都是输入一个问题,直接输出答案。但 CoT 发现以后,大家发现,对于复杂问题,它可以大幅提升正确率。
背后的主要原因是,很多问题的复杂度超过了模型单步推理的最大复杂度,所以必须把步骤拆开,一步一步地回答,保证每个单步都不超过模型复杂度的上限。
但紧接着又遇到一个问题:为什么用这种 CoT,而不是另一种 CoT?这就涉及 CoT 选择。对于更复杂的问题,无法一眼判断接下来路径应该怎么走。
O1 通过引入反思 token,可以认为是一种 meta-CoT,也就是 CoT 的 CoT。它让模型可以在多种 CoT pattern 之间自由切换、排列组合,解决更复杂的网状问题。
这是我理解 O1 范式为什么成功的因素。
把 O1 复现过程全部想明白以后,再回到最初的视觉生成和理解一体化问题,我觉得生成可控性差的原因也有眉目了。
根本原因还是复杂度问题,因为生成要考虑的因素太多。Autoregressive 最明显的特点是落子无悔:一旦把某个区域画上,就不能再改变。
神经网络需要在单步推理过程中决定那块区域怎么画。这件事的复杂度是否超过 Transformer 单步复杂度上限?不好说,但可以做思想实验。
比如让模型在黑板上画出一个鸡兔同笼问题的完整求解。看起来是画图,但背后隐藏的是一个数学题,包含很多步骤,明显超过 Transformer 的单步推理能力。
这时我不管图画得怎么样,光是把题目解对,就不可能通过一口气输出几个 token 完成。
Diffusion 可能好一些,因为它是多步过程。如果用 flow matching,本质上是一个 ODE,是多步过程。但你说它包含了什么推理,我肯定不信。
尤其是降噪过程,本质上是在构造一个随机过程,更方便系统用已知分布去拟合未知分布。但降噪过程和人类生成图像的过程明显不同。
人类画图,通常先打草稿,再描绘轮廓,描绘关键元素,上色,最后渲染。人类不是用橡皮一点点擦噪声,也不是逐个局部还原。
对比这两个过程会发现,人类画师严格遵守对场景的语义理解,是强语义的。它会从一个 object 到另一个 object,从轮廓到细节,按照这样的过程绘制。
而降噪过程很难说哪一步在做语义、哪一步在做物体。在它看来,都是一堆噪声要生成。
所以我认为,diffusion 和 autoregressive 的差别并没有那么大。基本可以把整个 diffusion 过程看成一个整体,它其实就是一步生成。语义可能在 diffusion 的某一步就已经完全确定,剩下的只是在补细节。
无论 autoregressive 还是 diffusion,在我看来都还处于语言模型最原始的一口气生成的形态:给定一个问题,要求在一步之内直接把图像生成出来。
当然,生成结果会很差,因为复杂度根本达不到完成任务所需要的要求。
生成方面最大的问题,是缺少类似语言模型的 CoT。它甚至已经被语言模型甩开了两代:不仅没有 meta-CoT,连普通 CoT 都没有,仍然处于一口气生成的时代。
所以去年年底,我认为简单地把生成和理解做到一起,难度非常大,中间缺失了非常重要的一环,就是 CoT。
直接在生成上做 CoT 比较困难。借鉴语言模型,我们可以先在理解上做 CoT,把理解上的 CoT 打通,再把方法扩展到生成上。
8. Reasoning In Visual Space
所以去年年底,我开启了另一个项目,做视觉理解。这里的视觉理解,核心是要在真正的视觉空间上做 CoT。
现在 O 系列的思维链基本都是文本。即便 prompt 中加入图像,也可以用和文本模型相同的方法激发 O1-like 的 long CoT,但所有推理仍然发生在文本空间。
然而很多问题必须在图像空间上完成,比如数数、走迷宫、连线、识别图表、阅读图表。这些事情对人类很简单,因为人类可以在图像上圈点、批注,也可以通过视线和注意力转移完成推理。
比如先数左边,再数上面,再数右边;或者问某个字母在表格第几行、第几列;还有坐标图、读钟表。这些事情人类都很容易。
最主要的原因是,这些问题虽然简单,但没有简单到一口气说出答案。它仍然需要推理,而且推理不在语言空间里,必须在视觉空间里完成。
所以去年年底我们设立了这个项目,研究视觉空间里的慢思考,或者说视觉空间里的 long CoT。
语言模型缺失某些动作空间,比如反思,那就把动作空间补回来。视觉上也可以做同样的事。
比如视觉数数不好数,回想一下人类怎么数:在图上圈点,数一个打一个点,再数一个再打一个点,这就解决了。
人怎么走迷宫?从入口开始连线,走到死胡同再回来,把线擦掉,再回到另一个点继续。这就有了动作空间。
通过训练,把这些动作放进模型里,再用 RL 训练。RL 也可以很简单,还是 rule-based:鼓励能够通向正确答案的动作,抑制不能通向正确答案的动作。
甚至可以不允许反悔,做过的标记可以擦掉,这样不就有了反思吗?于是我们当时设想,可以做真正的视觉空间推理,不依赖文本,在图像上做圈点批注。
但实际做了半年,效果是:不是完全没有效果,确实可以把这类问题解出来。问题在于,造什么样的数据,它就只能解这一类数据,完全没有语言模型那样强大的泛化能力。
这件事比较复杂,涉及对 O1 的另一个理解。相比解数学题、代码题,O1 更吸引人的地方是它无与伦比的泛化性。
我做过实验,故意只在纯数学数据上训练了一个 O1-like 模型,然后把它用于诗词,尤其是需要严格满足格律和押韵要求的古诗词。训练数据里完全没有这类诗词。
结果它激发出了和解数学题非常类似的思考 pattern。它会先给一个 draft,逐一检查哪些地方不满足要求,再一个一个替换。替换后可能发现句子不成句,于是推翻前后两句,重新尝试;还不行,就把整首诗推翻重来。
过程中它会反复检查字数、押韵以及是否符合题意。这个过程和它做数学题时几乎一模一样。
反思只是它激发出的众多 pattern 之一,可能是最重要的一个。它还会换一种方法验算,用不同方法验证一遍;会做大循环,也就是推翻前面所有东西,从头再做一遍;还会重新审题,多次比对题目,检查是否符合要求。
同样的过程,可以很好地迁移到文学场景,尽管训练中完全没有这类数据。
张小珺
这说明它泛化的不是某类题,而是整个 pattern,也就是做事的方式。
张祥雨
完全正确。O1 的泛化非常厉害。它当然可以从一些数学题泛化到另一些数学题,但这不是最吸引人的地方。
更吸引人的地方是 pattern 泛化:验算、回退到上一步、重新检查等思考模式,会出现在训练中完全没有出现、但同样适合这种分步解决的问题上。
我还找到了纯数学模型无法泛化的一个领域,就是博弈。
比如在一个只用纯数学数据训练的模型上,我故意问它一个斗地主残局:双方明牌,一方有两个 A、两个 K,另一方有另外一手牌。我问,如果是第二家出牌,应该怎么出才能赢?
我发现这个模型完全掌握不到要领,做了很多无效思考,还有很多低级错误。比如把扑克牌的张数都数错;其中一方已经出完牌了,它还说因为对方的两张 A 已经下去了,所以无法抵挡后续出牌。
它会出现很多低级错误,思考也完全不得要领。
分析以后我们认为,博弈类问题的思考范式和大部分数学题不同。它是一个 minimax 思路,要从对手的最优解出发,尽可能降低对手最优解的收益,是一个最大最小问题。
这种思维判断它没有掌握。当然,如果合成很多这类数据,让它学习这种问题,它也很容易激发出相应思维。所以不是它不会,而是训练时需要有这类问题来激发对应的思考范式。
换句话说,它的推广性非常强,可以一下子推广到很大一类问题。
再回到视觉推理。在图上圈点、批注,看起来也适用于很多视觉推理问题。那为什么我们合成的数据没有这么强的推广性?
后来我们发现,O1 激发出的很多反思 pattern,有一些经验证比较 work 的典型表达,比如 wait、alternative,以及 recheck、validation 等。
我们在 cold start 里人工合成这些数据,但它们并不是无中生有。真正的问题是:为什么这样做有效?
后来发现,这些 pattern 在预训练语料里本来就存在,虽然数量非常少。
比较典型的是 MathOverflow 这样的论坛。一些高赞答主经常会用类似的思考过程,一步一步把问题答出来。
国内外论坛也有很大不同。国内论坛特别喜欢用“注意到”这样的表达,把脚手架全部拆掉,显得自己通过一个神奇构造解决了问题。
如果模型看多了这种语料,其实是灾难。因为它把真实思考过程隐藏起来,让思维变得特别跳跃,不利于模型学习。
而 MathOverflow 上的一些高赞答主,拿到问题以后会尝试求解,解着解着发现不对,就写“等等,我少考虑了一个因素”,然后把因素加进去,发现原来的方法完全不 work,再陷入 struggle,尝试不同方法,最后用完全不同的形式给出结果。
你会发现,这种答题过程和我们构造的 pattern 是一样的。OpenAI 很可能也是看到了预训练语料中有这类数据,所以设计出了这样的 pattern。
也就是说,cold start 的这些 pattern 不是无中生有的,预训练里本来就有。
预训练中的这些 pattern 数量虽然很少,但来自不同的人和机构,涵盖不同领域。虽然绝对数量少,但从知识体系和能力体系来看,它们和其他数据形成犬牙交错的体系。
当 cold start 阶段把这些 pattern 激发出来,再用 RL 强化这些 pattern 时,因为预训练语料中到处都有稀疏分布的相似 pattern,它会顺带激发与这些语料相连的广大领域,融会贯通。
这是 O1 泛化能力很强的主要原因。
O3、O4 的多模态推理能力明显强了很多,也是同样的道理。
我们当时做的那套视觉方案为什么不行?因为图上圈点、批注的数据全部是程序人工合成的,pattern 过于固定。
而预训练语料中,精细到逐帧圈点批注的视觉数据非常少。比如真正有人解迷宫,一步一步从第一张图走到第二张图,这种形式可能在动画或视频中存在,但在图文交错语料里基本没有。
所以我们造的数据处在一个尴尬状态:它只能代表自己,没有能力激发预训练语料中非常广泛的一大类 pattern。这就是效果不好的原因。
再看最新的 O3,它也支持图像输入和长思维链,但对图像进行的操作看起来更原始,只支持对原图做简单编辑,比如 crop、resize。
但我们尝试了很多问题,发现它具有很强的泛化性。它能解决的问题上限可能不高,比如迷宫,如果不让它写程序,肯定解不了;但在它能解的问题上,成功率远高于我们当时做的系统。
因为预训练语料,尤其是图文混排语料里,大图后面跟着局部放大图、各种解释,这种数据大量存在。
比如电子维修网站,有人上传一张收音机的照片,问哪里坏了。答主会把局部放大,说这里的电容烧了,再放大另一个地方,说另一个元件出了故障。
对原图做这种比较原始的编辑,只有 resize 和 crop,看起来很简单,但它严格遵守自然语料中真实存在的模式,所以效果反而好。
我们设计的方式看起来更科学,但预训练语料里没有,所以效果反而差。
这也是很多同行发现的事实:AI 不能无中生有地发现新的东西。所有知识和能力都已经分布在数据里。
这也给我们提出了一个难题。多模态推理里,圈点批注是非常好的材料,但预训练里很遗憾没有这类数据。那应该怎么办?总不能让整个系统被预训练数据锁死。
李广密
之前很多人提到,预训练时加入大量多模态数据,可能会影响文本能力。这个问题现在解决了吗?还有一种说法是,加入多模态数据以后,scaling law 的曲线也在上升。这两种说法应该怎么理解?
张祥雨
当你需要在恰当的位置生成某个图像时,控制信号本身包含非常丰富的语义。它必须完全理解前面这段话的内容,甚至理解上下文中更远处的图像,才能可控地生成图像。
但很遗憾,现有图像生成方法因为种种原因,最主要是复杂度问题,无法提供足够算力和信息把图像完整生成出来。
所以生成的图像本身噪声很大,信息量也不高。
以 diffusion 为例,如果和文字同时训练,diffusion 一次只能生成一个 denoise step,需要采样某个 t。对于大部分 t,diffusion 过程其实没有语义,因为语义已经生成了,剩下是在补细节。
补细节产生的 loss 反传到前面语言部分,对于提升语言语义没有作用,反而有可能把它搞坏。
这也是为什么有人说用 autoregressive 可能好一些,但它没有本质改善。好一些的原因是,至少 autoregressive 训练时的行为和推理时基本一致。训练时不是只做一次 denoise,而是生成一个 patch,patch 就出来了,不是只生成一次图像的 denoise 结果,所以监督信号相对更清晰、更有语义。
但也没有好太多,因为图像过于复杂。Autoregressive 仍然是落子无悔的模式,不可能得到非常清晰的信号。
就像预训练时,有人把数学题、各种考试题灌进去,但只给答案,不给过程。模型遇到这种题会非常困惑:告诉它选 C,但它在一个 token 内根本想不到为什么选 C。
这类语料灌多了以后,模型会出现两个极端。比较强的模型会强行记住关联关系,下次遇到这道题,不管三七二十一就选 C,这是一种 overfit。
比较弱的模型会想,C 好像和其他答案一样比较长,于是找到错误关联,认为答案选 C 是因为它比较长。
早期一些很小的模型,一口气输出的数据做多以后,就会学到奇怪的 bias。比如遇到难题一律选最长的答案。
如果语言这一块可以理解为有害训练,那么图像上的图文交错训练也是一样。如果不解决 CoT 或复杂度问题,训练可能有害。
即使 autoregressive 的监督信号是生成出来的,但因为单步实际上无法传递到真正需要的信息,产生的梯度会很混乱。最好的结果是没有效果,稍微差一点甚至会把模型训练得很糟糕。
李广密
那我们回到主线。你理解的多模态推理 GPT-4 时刻,估计还有多久?架构上还会发生什么变化?
张祥雨
我把刚才的故事讲完。刚才那个方案卡在一个很重要的点上:受限于预训练的局限性,没有对应思维链,所以它的推广性很存疑。
而且在原图上编辑,不管是圈点、批注还是移动,动作空间都太有限。很多问题不是编辑,而是需要重新打草稿、重新生成。
所以接下来的路要分成两条。
第一,要扩充预训练语料,让更多表示和思维链进入训练,让动作空间扩大。
这时候最显然的一条路就是视频。视频里有大量教学内容,包含丰富的、一步一步的思考过程。老师上课时会用激光笔指向不同位置,在黑板上打草稿、画辅助线,有非常丰富的过程。
如果把这些过程引入训练,肯定会对视觉推理有很大帮助。这是一条比较确定的路线。
但难点是视频数据清洗。绝大多数视频从模型训练角度看都是垃圾。视频长度很长,而且视觉模态和语言模态不容易对齐。
图文交错语料通常文本部分比较丰富;视频语料视觉部分很丰富,但文本部分不丰富,一般只有解说、ASR 或字幕,有些甚至没有声音。这类数据很难直接应用。
所以关键还是如何有效挖掘这类数据。我相信很多机构都在做,尤其 Google 在这方面很强。
第二条路径是继续扩展动作空间。对原图进行编辑只是第一步,最有吸引力的还是自由且高可控的生成。
一旦能够自由生成,思维链就不再局限于原图,可以把想象出来或者文字描述的东西用图像具象化,再进行推理,视觉推理就能更进一步。
李广密
但你刚才说,视觉推理需要生成来辅助;现在又说生成需要视觉推理,这不是形成死锁了吗?
张祥雨
对。解开死锁通常需要一边先行一步。
今年我看到两个很好的趋势。一个是 Gemini,它的高层生成已经做得不错;更让人震撼的是 Sora 最新版本,它的图像生成可控性非常好,看起来和语言模型融合得也非常好。
虽然我不清楚它具体怎么做,但既然结果在那里,我也做了一些相关研究。
后来发现,如果只看重可控生成质量,这件事不一定无解,也不一定要先把 CoT 甚至 long CoT 解决。
只要限制问题 domain,把 domain 限制在可以一口气解决的范畴内,就可以。
比如给一张几何图,要求连接 A、B,这不需要思考,复杂度很低,完全处在模型可以一次输出答案的范围内。
再比如移除某个人。这要看背景复杂度,但绝大多数情况下,这是纯感知加生成的任务,不需要太多推理。
过去我们没有特别重视数据难度控制,更多是把互联网里各种乱七八糟的图文交错数据混在一起训练。
其中很多新闻配图和文字无关,有些梗图难度非常高,不是单步或单次生成能够完成的。把这些都混在一起,模型就会非常 struggle,导致可控性很差。
海外公司在这方面可能走在前面。看了它们的效果,大概能猜到,基于现有架构,这件事还是有机会的。核心就是把数据做好。
今年我们做了一个编辑模型,但数据仍然比较粗糙,也很脏。不过它的效果已经不是当时生成理解一体化模型能做到的。
当然,现在还不是完全的生成一体化,还是有点像搭积木,但我们很快会基于这个模型合成大量相关数据,再训练一个一体化模型。
至少对于一些简单任务,它可以做得非常不错。这是一个很鼓舞人的信号。
我们公司也不是特别在乎美学,我们的目标是 AGI。单从画面结构和 instruction 的忠实程度来说,我觉得现在已经可以做得非常好。
至少对于简单的指令性问题,也就是不需要推理的问题,它可以做得很好。比如把东西挪到某个位置,或者生成“左边是什么、中间是什么、上面是什么”。
再比如在柱状图上画一条水平线,让右边的柱子指向左边的坐标轴,这类指令都可以执行。
很多人比较在乎美学,比如人脸是否畸变。但如果目标是推理,这些并不关键。关键是指令性任务该完成的要完成,至少在语义上完成。画面质量不必特别高,有一个大概方向就够了。
一旦这一步解决,下一步最吸引人的问题就是:这样的模型能不能进入推理思维链?
有了一个初级的深层理解,也就是不带 CoT 的理解,再有一个能够执行指令的生成和理解模型,就可以让它在需要的地方产生输出。
输出不一定要一次性生成,后面的思维链还可以继续修正。
这样,空间想象或者需要画草图才能解决的问题,至少就变得可做。再进一步,带 CoT 的生成,甚至 long CoT 的生成也会变得可做。
最后输出文字,就是理解;最后一步输出图像,就是生成。中间思维链可以全部是图文混排。
如果做到这一步,就能一次性实现真正视觉空间中的生成和理解一体化。这就是我想象中的下一个多模态 GPT-4 时刻。
李广密
你觉得这个 GPT-4 时刻还要多久?
张祥雨
最多一年。
李广密
很乐观。
张祥雨
因为它的前置技术我觉得已经 ready 了。当然我不清楚后面还有多少坑,但看起来前置技术都已经具备。关键就是数据能洗得多干净,以及算法能不能稳定地把系统搭起来。
李广密
比如数据清洗有现成的 pipeline,那算力消耗会比语言模型大很多吗?
张祥雨
不好说,要看具体算法和任务。总体来说,涉及视频的都少不了更大算力;不涉及视频的任务,和语言模型差不多。
李广密
架构上,现有架构基本就可以支撑吗?
张祥雨
对。这件事暂时不涉及更下一步的进展,和 long CoT 也是独立的。
如果真要做 long CoT,尤其是自主学习、在线学习,我认为现有架构肯定不够。但我刚才说的这个维度,现有架构应该可以支撑。
李广密
现在海内外公司都在强调 long context 很重要。为什么重要?今天的难点到底在哪里?
张祥雨
9. Why Long Context Fails
Long context 的重要性,大部分公司或者机构指的是应用层面。现在有海量应用,也有海量参考信息。模型自身不知道具体环境和应用场景中的 domain-specific 信息,另一方面,模型自身的幻觉又是今天的一大问题。
所以大家希望把尽可能多的参考资料放进去。在现有架构下,容纳这些资料的主要方式就是放进 context,因此大家都说 long context 很重要。
但从智能发展的角度,我有不同看法。现在 Transformer 建模 long context,其实存在很大问题。
如果把 context 类比成人类的记忆系统,就会发现很不合理。标准 Transformer 的 context 大小随着数据增长同步增长,不会做任何压缩,也不会对信息进行裁剪。
人类完全不一样。一场会议结束以后,大部分人会记录最重要、印象最深的细节;看电影也会记住重要情节,但不会记住第几分钟桌上有几个水杯。
人类的记忆机制是分层的。
短期记忆,也就是 working memory,一般认为持续时间只有2到4秒,非常短。比如抄写一个电话号码,它可以保证无损或者精确,但维持时间很短。抄完以后,如果这个电话不重要,就不会记住。
人真正厉害的是中期记忆,可能从几秒钟到几星期、几年不等,也可以叫海马体记忆。这是人类记忆和学习非常重要的机制。
它有延续性,也会遗忘,抓重点的能力非常强。它会根据未来最可能用到的信息来记忆,而且这种记忆会通过反复刺激增强。
比如写代码时,人不需要把整个代码仓库都记住,只要知道大概结构,就可以开始工作。第二天上班时,他仍然可以和前一天的工作接续起来,不需要像语言模型一样,每个 task 都把前面所有代码重新读一遍。
但这也和时间有关。出去休假几星期再回来,可能什么都忘了,又要重新梳理、重新看代码。
最后人还有长期记忆。有些信息经过反复刺激、印象深刻以后,会形成一辈子忘不掉的记忆。用神经网络的话说,可能就固化到参数里了。
人是有分层记忆机制的。
反观传统 Transformer,它似乎只有短期记忆。但它的短期记忆又太长。
我之前算过,按照一定码率估计,光是视觉信号,2到4秒也就占三四万个 token。但今天说的 large context 动不动就是10万、百万,甚至千万级别。
这产生了一个问题:context 变长,只解决了信息能不能装下,却没有解决能从这些信息中获得什么。它似乎只能做最简单的 retrieval,稍微复杂一点的推理就做不了,也没有解决如何把信息用好的问题。
更麻烦的是,目前主流架构,尤其是相对较小的模型,随着 context 增长,性能会下降。
一个很明显的例子是,让模型做一张数学卷子。如果一题做完就清空,再做下一题,可以得到一个性能;但如果让它从第一题连续做到最后一题,开始时可能差不多,题目一多,比如100题、200题,越往后性能越急剧下降。
分析 attention 可以看出来,后面遇到了注意力涣散。上下文中有太多相似内容没有清空,模型做后面的题时不断 attention 到前面,要花大量精力避免干扰。
这会让效率随着 context 延长急剧下降。
大家常说 attention 的复杂度是平方的,这是从 complexity 角度看问题。但 complexity 不是我最关心的,我更关心智能本身的建模问题。
而且我们经常说,压缩才能产生质变。信息如果不经过加工和压缩,不管是无损压缩还是有损压缩,都没有办法形成更精炼的表示。
要从信息中提炼出精炼表示,才可能产生质变。
但用 Transformer 的 context 建模上下文时,memory 容量随着信息增加同步增加,没有压力、动力,也没有 loss 让它做压缩。
尤其是训练任务里包括很多 retrieval,模型会学到一个 bias:什么都不能忘,必须牢牢记住。比如训练总考它“大海捞针”,它就一点都不能忘。
但这不是智能的表现,反而可能是智能倒退。本来可能存在智能的东西,正因为追求不遗忘、追求无损检索,阻碍了智能发展。
很多人也意识到这一点,所以尝试用 RNN 替代现有 Transformer,或者使用各种 linear attention 的变体。Linear attention 可以看成某种 RNN,实践中也取得了一些效果,但据我所知用得还比较少。
这些架构都很好,但建模 long context 的核心难点并不在架构本身,甚至今年很多 benchmark 都存在误区。
比如很多人把 RNN-like 方法和普通 Transformer 混用,理由是如果不混用,retrieval 任务就做不了,大海捞针过不了。
但问题是,这个 benchmark 真的重要吗?
在今天这个“外挂式”的时代,long context 完全可以用多模型协作解决。Retrieval 任务可以交给另一个模型。
想想人类怎么找一本书里的内容。人看完一本书以后,如果要写总结,但需要摘抄某个具体句子,通常已经忘了原文,不会直接从记忆里背出来,因为很容易产生幻觉。
人会翻书,逐章去看。根据印象,某个情节可能在某个位置,再从那里找到需要的内容。
如何建模“翻书”这个动作?可以理解成一种 RAG,但在我看来,它更复杂,涉及 context 的转移:从全局注意力转移到局部注意力,而局部是由全局注意力引导出来的。
具体可以建模成两个语言模型。每个模型都只使用相对较短的上下文。一个模型建模短期记忆,另一个用无限长序列的 linear attention 或其他方法建模全局信息。
全局模型把整本书过一遍,形成整体感知。然后我触发一个动作,打开我印象中可能有重要内容的某一页。
另一个模型只看这一小段,比如书的20%附近,检查有没有我想要的东西。如果有,就反馈给主模型;如果没有,就换一个位置继续找。
这样就不用把整本书完整存下来,而是通过扩充思维链来解决。这个思维链还可以带工具,工具不只是 RAG,也包括调用另一个 LLM。
我认为,这也是为什么人类的大脑会形成精细分工,而不是一个脑区解决所有模态和所有任务。这可能是节省上下文的一种方式。
未来完全可以采用类似大脑分区的 multi-agent 方式,达到节省上下文的目的。
李广密
那 OpenAI 当时说 O3 可以连续推理六天六夜,使用上千万 token。如果只有28K上下文,应该怎么实现?
张祥雨
最简单粗暴的方法,是设计一个架构硬扛几千万 token,但这很难、很慢,成本也非常高。
如果我手里只有18K或者28K上下文,怎么做这么长的推理?一个简单方法是用两个模型:一个做 plan,另一个做具体求解。
Plan 模型每次搜索到一条分支,进入这条分支以后,具体演算和执行交给第二个模型。第二个模型的上下文是经过 plan 模型摘要后的上下文。
它计算出一个结果,可能找到答案,也可能没有找到,但会反馈一些思路。然后主模型根据反馈,再 plan 第二条路径。
第二条路径和刚才的路径没有关系,负责计算和推导的模型不需要保留第一条路径的上下文,只需要主模型发给它的必要信息。
这和人类一样。做第二题时,为什么还要对第一题念念不忘?第一题已经探索过一条路,此路不通,再算第二题时不需要保留第一题的全部内容。
第二个模型相当于注意力转移中的情景切换,已经从一个 context 切换成另一个 context。人有很强的情景隔离,比如我现在和你说话,办公室里还有很多问题,但这一刻不会想它们,它们不在我的 context 里。
如果搜索层级是一棵二叉树,原来需要把每条 path 全部拉直,CoT 可能要上千万 token;现在只需要 log 级别。
主模型只需要知道高层信息:哪些路径搜过,得到了什么结果。执行和演算模块只负责当前关心的部分,历史计算完全可以不保存。
这样思维链长度就大幅减少了。
很多人会说,这不就是拼 AI 吗?在今天,很多人认为拼 AI 永远比不过端到端。
但有了 RL-CoT 以后,这套系统也可以端到端训练。比如给它一个 retrieval task,用 rule-based 的方案训练,限制两个模型的 context 长度不能超过某个范围,但允许它们互相 communication,并不断清空上下文。
最终优化目标仍然是最大化回答正确的概率。
这时两个模型如何协作,并不是人工拼出来的。可能需要一个简单的 cold start,但经过 RL 训练以后,它们会适应自己的 communication pattern。
它仍然是端到端的,而且比把所有内容塞进一个 context 强大得多。它可以避免上下文干扰,甚至会主动避免 context 变长,因为 context 变长一定会产生干扰。
李广密
这也像是 multi-agent 的未来雏形?
张祥雨
要看怎么定义 agent。我觉得这更像人脑不同脑区之间的协作机制,还没有到真正的 multi-agent,也就是多个个体之间的协作。
多个人为了同一个目标协同,本身是很困难的;但对于一个人的内部,或者一个独立个体,未来设计系统可能就应该这样做。
如果沿着大脑分区的方向,未来可能有更多模型承担不同分工,通过 RL 串成一体。
它们的基础可能都是普通 LM 或 VLM,但训练过程中逐渐发生功能分化。有的模型为了记忆存在,有的模型做 planning,有的模型做 action。
一开始可能没有这种偏好,但为了避免某个 context 爆掉,它们会逐渐选择出不同模式,不断裁剪自己的上下文。
现在很多人围绕 attention 架构做修改,但我一直强调,架构不重要,架构是服务于算法和系统的。
比如我们今天的算法是 autoregressive 的 next-token prediction。如果不用这个算法,而是用 Hinton 的 Forward-Forward 算法,也就是不需要反向传播的方法,可能根本不需要 Transformer,任何普通 RNN 都可以,因为它不需要反传历史。
如果 Forward-Forward 最终 work,在线学习甚至可以直接实现,不需要区分 training 和 inference,training 也就是一种 inference。
所以架构服务于算法。因为有 next-token prediction,需要并行化,才对 RNN 结构提出了一定要求,必须表现为可分离的形式,Transformer 才会产生。
李广密
你刚才也提到了在线学习或者模型自主学习。为什么这很重要?它可能是实现 ASI 最重要的路径吗?
张祥雨
10. The Rise Of Autonomous Learning
从今天大模型的演进看,核心驱动力有两根轴:横轴是底层算法,也就是优化方法;纵轴是模态。
优化算法的起点,或者说从零到一的代表性事件,是 next-token prediction 的发现。模态的起点是自然语言。
我们发展趋势其实是螺旋上升的。因为 next-token prediction 在文本上 work,所以沿着多模态方向,越来越多人研究如何把类似范式迁移到更多模态。
但迁移过程中不断碰壁,碰壁多了以后,人们开始怀疑这个范式到底 work 不 work。
另一批人主要研究语言本身,尤其是数学推理,也发现 next-token prediction 存在问题。于是大家得出结论:基于压缩的方式不够,我们需要 RL,直接面向目标优化,不再走间接优化。
RL 一下子盘活了很多思路。语言模型的推理能力变强了,多模态之前无解的深层理解和生成理解一体化问题,也突然变得可以理解。
今天我们仍然在挖掘 RL 的上限,但越来越多人发现,这套算法也不是完美的。
纯语言研究者认为,最不合理的一点是,目前只有 rule-based 和一些逆强化学习方案比较 work。但这和人类学习差别很大,局限性也很大。
最典型的是,rule-based 无法处理没有明确评价标准的任务。没有明确评价标准的东西,可以通过模型建模,但模型行为很容易被 hack。
人类的自我价值认知和正确性判断,更多依靠大脑自身。人不是做每件事都服务于 KPI 的,它有自我意识,有内在驱动力。
评价模块很可能不应该完全来自外界。现在的 rule-based RL,reward model 都来自外界;逆强化学习也是从外界蒸馏偏好,再监督模型。
但我们缺少真正的内生原动力。
很多人可能觉得这不重要,认为现在的方法已经够了。但工程实践中,如果沿着 rule-based 这条路继续走,会重新遇到 scaling 问题。
这个 scaling 不再是 model scaling 或 data scaling,而是 environment scaling。
比如要解决编程问题,需要搭环境。想做 rule-based,就得搭环境:为每个项目配置 Docker、输入输出和测试数据,最后可能只产生一条数据。
效率太低。但现在很多大厂据我所知就是这么做的,找很多工程师一个个写 project。主打编程的公司可能比较擅长这件事,但它终究和人类不一样。
人类不是靠别人搭好无数环境来学习。人类是自驱的,会自己看文档、搭环境,从环境反馈中学习,而且这个学习不是简单的 0 和 1。
我举一个非常小的例子:如何从人类参与中获得反馈。
比如我写一篇作文,老师说第一段写得不错,第二段修辞有点过,第三段和上下文衔接不太好,第四段有一些错别字,整体读起来略显干涩,而且长度太短。
老师从很多不同维度评价这篇作文。但我们今天的 RL 是怎么做的?把每条评价单独加权,这条加0.1分,那条加0.5分,最后说模型得了3分。
这样完全丢失了丰富的评价维度。模型不知道这个分数是怎么算出来的,只能通过大量样本去猜评分规则。
它不仅要猜整体评分规则,还要猜每一项的评分要素:是第一段的分数,还是第二段的分数?是整体风格,还是整体叙事逻辑?
这些信息在一个数字里完全丢失了,模型无法从这个数字中获得有效反馈。
这也是现在 general reward modeling 的困境。确实可以从多维度评价一个回答,但如何利用这些维度,目前没有特别完美的方法。最后往往都被加权成一个干巴巴的数字。
论文很多,但工业界还没有普遍认可、效果特别好的解法。
自然语言反馈是我现在重点研究的领域。自主学习要真正实现,前置技术链还很长,其中最需要解决的是和环境沟通。
环境反馈很多是自然语言。模型需要从自然语言中获得反馈。比如领导批评你做错了,你要知道应该往哪个方向改,这才是基础。
当然,这只是自主学习众多问题中的一个小技术细节。
当前这一代 rule-based RL 面临的最大问题,还是环境不可 scale。需要很多人做标注,和人类完全不同。
真正的人类,应该能够在环境中自主探索,在和环境沟通的过程中不断改进自己。
这里面有两个技术细节。第一个是无限长上下文的建模,这和刚才的 long context 有关。真实环境是无限长序列,而且是动态的,没有一个稳定界面。
第二个是学习算法,尤其是如何从自然语言或非结构化反馈中提升自己,以及如何设计内生奖励,驱使模型更新权重参数来适应世界。
这就是下一代自主学习要解决的问题。
我们经常把自主学习和在线学习绑定在一起。因为如果能实现自主学习,为什么不把它放进真实环境中运行?那自然就是在线模式。所以这两件事是绑定的,也是我们下一步重点投入的方向。
李广密
你提到多模态推理的 GPT-4 时刻可能在一年以内。自主学习和在线学习的时间表会更晚吗?
张祥雨
会晚一些,但我认为不会晚太多。两到三年,甚至可能不需要两年,我认为两年以内就会出现突破。
现在研究这方面的人已经很多了。如果关注学术界,会发现自主学习和在线学习也是研究热点。
李广密
如果自主学习和在线学习突破,公有知识、行业知识和企业私有知识,有可能很快融合。比如一个 Agent 在公司内部学习,掌握公司的 know-how,成为高度定制化的公司员工。
张祥雨
对。它可以专门为一家公司定制。
当然这里有很多系统挑战,比如怎么复制、怎么迁移。上帝造人类时留下一个 bug,就是一个人的记忆没法很容易地转移给另一个人。
自主学习实现以后,也会有类似问题:怎么融合两个个体的知识。这也取决于具体建模方式。
李广密
如果自主学习实现了,对今天基础模型的范式会有多大影响?它学习效率更高,少量数据就能学得很快。今天这些基础模型,是未来的技术底座,还是重要性会下降?
张祥雨
很难预判。基本上每次迭代,你都会发现最难的是认知。它可能是颠覆式的,也可能是渐进式的;可能只是一个小修小改,甚至只是一个损失函数的问题,也可能非常复杂。
但从历史上看,最关键的还是认知。只有把上一代做得比较完善,才能充分理解它的边界和问题。
所以无论如何,上一代都必须做。这也是未来两年我们还可能看到至少两个 GPT-4 时刻的原因:一个是多模态推理,一个是自主学习或在线学习。
李广密
你觉得还会有更多 GPT-4 时刻吗?
张祥雨
剩下的不好预估。Google 还有 Agent 方向,未来一两年可能会大规模完成有经济价值的任务。
但我想澄清一下,现在的 Agent 和 OpenAI 提的 Agent,很可能不是一回事。
OpenAI 提过五级智能分类。第一级是 Chatbot,第二级是 Reason,第三级是 Agent。它的 Agent 和今天大家说的 Agent 应用差别很大。
这五级分类背后的潜台词是,每一代都应该有全新的算法产生。
Chatbot 时代,本质是 next-token prediction。之所以进入 Reason 时代,是因为需要启动 O 系列,把长思维链和 RL 做起来,而且 RL 会继续 scaling。
以 RL 为主导的 Reason 时代之后,Agent 的算法可能是什么?我认为是自主在线学习。
因为 OpenAI 定义的 Agent 特别强调自主性:不需要人工设计那么多环境,也不需要人工定义那么多规则。
今天很多 Agent 应用,尤其是 RAG 系统,仍然是 KPI 驱动的。第一,训练结束以后不能继续自我改进;第二,训练过程完全依赖人工设定目标。
当然,它比 next-token prediction 好一点。Next-token prediction 不仅要给目标,还要把达到目标的路径一起背下来;现在是给你一个目标,你去实现。
而自主学习要把“目标”这一块也返还给模型。模型需要自己寻找目标、探索、学习自己的价值。
这就是 A+ 时代。因为要能够独立工作、自我进化,就必须有这样一套机制,所以它需要新的算法。
今天大家说的 Agent 更多是应用层,它把一个复杂的 pipeline 串起来,或者借助当前 reasoning 模型的机制,把工具调用放进 long CoT。
现在大家普遍推动把 Function Call 放进 long CoT,意思是让 Function Call 变得更加智能,按需调用。
这一代 Agent 更多还是 Reason 时代的思路:把一系列系统串起来,设定一个统一 KPI,模型尽可能输出,最后让 KPI 最大化。
李广密
这和 LangChain 时代的 Agent 不一样?
张祥雨
LangChain 那个时代讲的 Agent,本质上还是 next-token prediction 时代的 chatbot。大家通过 prompt engineering 把几个流程糊起来,那是 handcraft 的 pipeline。
现在这个时代讲究的是模型主动调用工具。但不是调用就结束了,也不是靠 prompt 激发调用,而是扩展了动作空间,通过 RL 自主激发。
如果模型认为调用工具会更好,就调用;如果发现调用还不如不调用,就不调用。模型学会的是这种策略。
李广密
你关注过李飞飞提的世界模型吗?包括 LeCun 也在提,还有很多人也在提。我感觉最后可能会殊途同归。
张祥雨
核心想解决的也是自主学习和自主在线学习,但设计方法论有很大区别。
比如它不强调生成一体化,这其实也很有道理。生成不是必须的。只是从语料获取的方便性来说,生成是非常好的监督或自监督模式。
人身上没有视觉生成器官。人可以想象未来,但不一定要画出来,可以在脑中想象。
这件事我认为是正确的。甚至这可能是下一步进行更复杂空间推理时更本质的方向:结合世界模型。
但世界模型怎么训练?目前看仍然可能需要生成式训练。
人虽然没有生成器官,但有世界模型,能够在脑中想象未来。对于人来说,世界模型可能有更方便的非生成式学习方式;但对于我们现在这一步,生成式方案可能更方便。
李广密
未来机器人的大脑、今天多模态模型进一步融合后的模型,以及自动驾驶模型,最终会殊途同归吗?
张祥雨
实际上,这几个领域现在都有一些抢跑。我们的智能水平还远远没有到最终阶段。
机器控制是提前抢跑,因为它研究的 domain 通常比较局限,控制场景也比较受限。
比如自动驾驶,控制维度相对较低,运行场景也有限。相比通用机器人,它的场景受限,所以有机会先用 rule-based 方法和模块拆分把系统装起来。
现在自动驾驶也在走向端到端。当所有事情都走向彻底端到端,而且还需要整合视觉推理或多模态推理时,就会发现它和 AGI 的终局形态是一样的。
机器人更是如此。现在因为做不好,只能叠被子、跑步、跑马拉松,或者做一个小脑系统。这是因为技术还没到,但不妨碍这些系统已经可以做一些应用。
它们属于提前抢跑,路线未必完全按照自主学习这条主线发展,但终究会在某个时刻合并。
嗯嗯。
Look out on a summer's day with eyes that know the darkness in my soul. Shadows on the hills.Sketch the trees and daffodils.Catch the breeze and winter chills.
好啦,这期节目就是这样。如果你喜欢我的节目,欢迎前往小宇宙、苹果 Podcasts、腾讯新闻、喜马拉雅、QQ 音乐订阅《张小俊商业访谈录》。如果你有其他想邀请的嘉宾、想听的内容,或者你有任何想探讨的话题,都欢迎各位听众朋友们在评论区里留言。那我们下期再见,拜拜。
Perhaps they'll listen now.