【AI学习】关于大模型发展的一些话语
从发展来看,简单说,从对话模型开始,推理模型就是在对话模型基础上将CoT的推理能力内化到模型中,而智能体模型就是在推理模型基础上将工具调用能力内化到模型中。为什么需要发展Code Agent,理论上说,编码智能体就相当于一个万能工具,可以调用现有工具,当然可以通过模型直接产生工具,编码智能体就是当前智能体发展的一个子任务。那接下来,通用智能体发展到一定阶段,就需要发展面向不同功能的专用智能体,类似人脑有不同的脑区,或者类似社会有不同的专家,然后形成以通用智能体为中枢、大量专业智能体为分支的多智能体协作。另外,为了满足各种应用的交互需求,必须需要多模态的发展。这是模型厂家必然要做的事情。
那对于应用厂家,能做什么?可以基于自身的Context,发展专业领域的应用,可以探索新的信息交互方式。
Agent就是模型:
在强化学习的设定下,需要为Agent建立了一个虚拟的环境,让它像一个真正的“科研”新手一样,通过海量的自主探索、试错、并从“做对了”的成功经验中学习,最终“进化”出强大的研究能力。
不像业界的修改Prompt或Workflow的方式,而是将这类问题加入到训练数据中,通过增加“训练题量”和算力,让模型自己学会如何解决。
Agent进入到了一个“有些奇怪”的方向,在一段时间内,做Agent的人和做模型的人分道扬镳,似乎模型层和应用层被划开了,Agent变成了针对模型层面的Prompt Engineering和工程侧外接不同模块,做Agent的工作逐渐趋同,工作差异性小,无外乎写Prompt调用工具,定Workflow等等,看不到特别让人兴奋的论文 or 工作。和同行的一些研究员们聊的时候,我们也会感到这个方向越来越没意思了,有点加速衰亡的感觉。
大概在去年下半年开始,我开始认为Agent应该是一个模型本身,而不只是Model + Workflow。在我看来,Workflow虽然扩充了模型的边界,但是随着任务的复杂程度提高,要定义的workflow的复杂程度指数上升,而在Workflow Agent运行过程中,这种Workflow Agent很难产生泛化,也比较难对没有处理的任务产生通用性,这会使得Workflow Agent变成打补丁,遇到一个问题,解决一个问题。
因此我们面临了两个选择,第一,等基础模型变得更强,基于API搭Workflow,稳定得拿搭Workflow的增益,第二,让Agent的能力进入到模型本身,从Reasoner(具备推理能力的语言模型)走到Agent,Agent自己本身就是模型。
压缩即是预测,无法压缩过去,也就无法预测未来。过去无法压缩,意味着信息熵最大,完全无序,全是噪声,当然就没什么可预测。
next token prediction
大语言模型的训练方式是,预测next token。
预测next token,理论上是基于过去的token建模未来的条件概率,预测的越准,这个条件概率也就越准。从信息论的角度,条件概率越准,信息压缩也就越逼近极致。这样,语言模型就通过预测next token实现了对语言在语义空间的建模。
RL 不能无中生有,所有知识和能力在预训练语料中都已经有分布了。
图像过于复杂时还是不行,不太可能有非常清晰的信号。
就像预训练的时候,很多人早期都试过把数学题、公务员考试题灌进去,不给过程只给答案,这时候模型会非常 confuse。比如你告诉它这道选择题选 C,但它在一个 token 内根本就想不到为什么要选 C。这种语料灌多了会出现两个极端:
• 比较强的模型会强行记住这个关系,遇到类似的题目都选 C,也就是表现为 overfit;
• 比较弱的模型会学到奇怪的 bias 和错误的关联,比如想到选 C 可能是因为这个选项比较长,后面遇到难题一律选最长选项。
如果在语言模型上,大家能理解这种训练是有害的,那么自然就能理解,在多模态模型上,利用图文交错混排数据来训练,不解决 CoT 或 complexity 问题,同样是有害的。即便autoregressive 把监督信号生成出来,如果一步得不到有效信息,产生的 gradient 是错乱的,最好的就是没有效果,甚至会非常糟糕。
针对多模态推理的发展:
原图编辑是一种方式,最具吸引力的是自由、高可控生成。一旦能自由生成,思维链不再局限于原图了,而是可以把任何文字描述都具象化为图像,再进行推理,这样视觉推理能更上一层。之所以做视觉推理,就是因为视觉生成需要思维链,但现在视觉推理又需要视觉生成来服务,这就锁住了。解开死锁就需要有一边先行一步。
我们今年推出了一个模型,虽然还做的非常糙,数据也非常脏,但效果已经不是我们以前做的生成理解一体化模型可以比的了。不过现在还不是一个完全的生成理解一体化模型,仍然是像积木拼起来的。我们接下来很快会出一个利用这个模型合成的大量数据来训练的一体化模型,至少对于简单 task 可以做得不错。
“如果将 context 类比成人类的记忆系统,就会发现transformer 在建模 long context 上是非常有问题的。”
现在已经有说法,记忆是架构,不是长上下文,“这和人类非常不一样,比如一场会议开完或电影看完,大部分人会记录下最重要或印象最深的点,但不会记住类似第几分钟桌子上有几个水杯这样的问题。”——现在对于长上下文的一些测试,比如大海捞针,其实是强迫模型记住一些无关紧要的细节,这个方向本来就是错误的。
完全可以用 multi-agent 的方式来达到节省上下文的目的。有一种非常简单的方法就是,做两个模型,一个模型做 plan,另一个模型来做具体的求解。这套系统发展到今天以后,有了 RL - CoT 这个范式,这一套系统也是可以端到端训起来的。比 如 现 在 有 一 个 retrieval task ,限 制 这 两 个 模 型 的 上 下 文 长 度 , 但 互 相 之 间communicate,可以不断清空上下文,最终的优化目标是最大化答案的正确率。这时候这两个系统在协作上,不是自己拼 pipeline 拼出来的,可能需要一个简单的冷启动,但模型经过RL 的训练,它完全会 adapt 到自己的 pattern,所以这也是端到端的,而且比直接塞到一个上下文里要强大的多,而且避免了上下文干扰问题,甚至模型会主动避免了上下文变长。
什么是多智能体?这更像是人脑不同脑区之间的协作,还没有到真正的 multi-agent。多个人想要为了同一个目标进化,这是一个很困难的事,但对于一个独立的个体,就需要这么做。
今天我们仍然是处于挖掘 RL 算法上限,但是越来越多的人已经发现这套算法看起来也不是那么完美,比如纯做语言的人觉得这件事最不合理的一点是目前只有 rule-based 以及一些像逆强化学习这样的方案是 work 的。但是这些方法跟人类的学习其实差别还是非常大,局限性也特别大。最典型的就是 rule-based 的算法是无法处理那些没有明确评价标准的东西,这些东西可以通过模型来建模,但这些模型的行为又很容易被 hack。
人有自我意识和自驱力在,评价不应该来自外界,但现在的 rule-based都是外界的,训练中的 reward model 也是外界的,就是逆强化学习,蒸馏了外界的偏好来监督自己,缺少一个真正的内生动力。
在工程实践中会发现,如果一直沿着 rulebased 这套方法走下去,又会重新遇到 scaling 问题,这个 scaling 不再是之前说的model scaling 或 data scaling,而是 environment scaling。比如说要解编程问题,一个 project 就得搭一个环境,将一整套 Docker、输入输出和测试数据都配起来,结果就产生了一条数据,这个效率太低了。
让模型真正实现自主学习,前置技术还需要非常长时间,其中最需要解决的就是如何环境沟通,很多涉及到自然语言,首先要解决如何从自然语言中获得反馈。但这只是众多问题中的一个非常小的技术细节。当前这一代 rule-based 的 LLM 面临的最大问题就是环境不能 scaling up,需要非常多的人去做标注。这和人类是完全不同的。人类具体在空间里自主探索,在与环境沟通中不断提高自己的一些能力。
如何设计内生奖励模型,驱使模型如何更新自己的权重参数来适应,是下一代自主学习要解决的问题。
张祥雨:“我想澄清一点,现在的 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 优化目标最大为原则,认为调用了会更好就会调用,如果发现调用了还不如不调用就不会调用。
