OpenAI o3就这么 "duang"的一下来了,相关的各种评测和报告资讯一大堆,所展露的"震撼"或简单粗暴的某种工业或工程学"组合堆叠"就不多说了,在这里还是主要还是想跟大家聊聊技术本身。
今天凌晨看到一篇媒体报道里有一种通俗工学上的类比挺有意思,给大家截取一下:
"大模型本质上是向量程序的存储库。当给出提示词时,LLM会提取提示词对应的程序,并在当前输入上「执行」。也就是说,它们是通过被动接触人类生成内容来存储和操作化数百万个有用的小程序的一种方式。
这种「记忆、提取、应用」的模式可以在适当的训练数据下,实现对任意任务的任意技能水平,但它无法适应新任务或即时掌握新技能。而要适应新任务,需要两样东西。
第一,需要知识:一组可重用的函数或程序供调用。LLM在这方面已经绰绰有余。
第二,需要在面对新任务时将这些函数重新组合成一个全新的程序的能力:一个能够建模当前任务的程序,也就是程序合成。
而LLM长期以来缺乏这一特性,o系列模型却带了新的突破。o3模型的核心创新在于,实现了token空间内自研语言程序搜索和执行。它在测试时会搜索可能的CoT空间,寻找描述解决任务所需的步骤,由评估模型引导搜索过程。这种方式可能与AlphaZero的MCTS某种程度上类似。
因此,o3通过生成并执行自己的程序克服了这一问题,其中程序本身(即CoT)成为知识(这里我认为用"泛化"更贴切)重组的产物。
尽管这并不是测试时,知识重组的唯一可行方法(也可以进行测试时训练,或在潜在空间中搜索),但根据这些最新的ARC-AGI数据,它代表了当前的最先进水平。实质上,o3本质上是一种深度学习引导的程序搜索形式。"
上述这种类比我觉得很直观的说明了当前o系模型与传统llm在训练时与推理测试时的这种范式的转换,熟悉我的伙伴应该还记得我今年年初写的那篇关于"融合RL与LLM"(关键词)的篇长文吧,这也不得不也让我再次回忆起hugginface某位prof在讲test time compute scaling时提到的4种潜在的rl方法中最有潜力的一种:SoS~Stream of Search。
关于SoS大家可自行查看原论文,这里我主要跟大家分享一下我的想法和抛出一些引发继续思考的问题:
SoS框架本身模拟或约束于一个内部的形式化"世界模型",而这可能来自于特定的领域任务下的数据流行分布,而在这种特定领域下的任务空间我们发现了其自身所包含的精确的形式化验证本身,那么在通用领域下是否存在这种通用、可精确形式化验证的可能吗?
看似混乱的甚至错误的搜索策略或路径轨迹所呈现的数据分布也许在某种更开放的探索任务下,对于神经网络模型在反向梯度传播时对隐式参数化的知识或泛化的扰动,要优于所谓的最优策略的数据集因此,直觉上SoS+Star可进一步在步骤级策略上优化迭代探索与利用。
这种领域内形式化框架或相对一个封闭系统的内部所呈现的形式化小世界模型,也许对于推理模式的通用性是某种限制,在某种内部的形式化世界模型约束与定义下所采用RL中的步骤解空间探索、奖励反馈、策略优化迭代,势必绕不过去更加广泛和通用的领域的泛化性,我想未来要想实现真正的通用泛化能力必然需将形式化的尺度进一步放大,同时亦需考虑最终结果的verify问题。也许将自然语言作为最终的形式化底层框架并通过强RM去实现这一可能,但奖励机制和形式其实在未来也有很大的考究和潜力空间可探的,比如Day2的RFT。
一种形式化框架与一种符号化表征(如语言)他们之间的关系是怎样的?而与其中的推理与泛化又存在着怎样的本质联系?自然语言是否可以通过某种碎片化的形式化过程来实现完备的verify?