如果这个思考过程是可读的,我相信模型应该会展示更多内容,不只是下一步要做什么的推理模式,而是包括为什么要选择某个步骤、进行自我反思,或者为什么要将问题分解成特定的子问题等这些更深层次的思考。
Monica:
有哪些觉得做得不是很好的地方?
Eric Li:
确实我自己尝试了一些测试,比如说计算 strawberry 里面有多少个字母这个经典例子。我发现在这方面 o1 还不能达到非常高的准确率。但我觉得这个是可以接受的,如果它只是一个大语言模型而不是一个系统的话。有些事情确实不需要让语言模型去做,比如做一些计算器的计算等等。
我更关注它内部的 reasoning pattern 能不能有一些很有意思的表现。
Monica:
Eric 提到测试 strawberry 里有多少个 r,有些听众也许会好奇,为什么大家总喜欢用这个问题来测试语言模型?
Eric Li:
我个人认为这个问题并不需要强求让语言模型去做到,因为这涉及到模型内部实现原理,包括怎么做 tokenizer 等技术细节。这些任务 by nature 可能用一些 tool use 去做会更自然。
对于人类来说,给一两个例子就能做得很好,但给语言模型两三个例子,它也不一定能做好。这是一个比较简单的测试方法,用来检验模型能否理解输入到输出的映射关系。
从更 scientific 的角度来说,在数学、编程或者一些更难的领域,比如量子物理等方面的测试,可能更能体现出模型的 reasoning performance。
Monica:
那 Kimi 呢?
Kimi Kong:
最后我想引用 UCLA 的数学教授 Terence Tao 说的一句话, 他说使用 o1 的体验大概就像「在指导一个平庸但并非完全无能的研究生」。
我觉得在某些方面,o1 对我来说确实非常惊艳。比如说我之前用 Cursor 做 Claude 3.5 Sonnet 的时候,它经常会写出有 bug 的代码,我跑一遍后把错误信息贴回去,它就会说「oh I'm sorry」,然后帮我修正之前的错误,最终能让代码正常运行。
而用 o1 的时候,它能非常流畅地帮我写出代码。这涉及到了 behind the scenes 的问题,就是当代码出错后,它们如何进行 self-correct。这让我想到关于 reasoning token 的问题:它到底是显式的还是隐式的?
在看 o1 preview 时,最让我感兴趣的是数学问题的例子。我觉得数学和编程整体上还是比较相似的。在解决数学问题时,它会不断思考:让我们考虑这个方案,实际上,让我们考虑另一种方案,展现出持续 self-refine 思维过程的能力。这样就不需要我在中间去纠正很多错误了,这是 o1 好的方面。
至于不好的方面,就像 Terence Tao 说的某种程度上平庸的研究生。网上有人让它回答如何安装 CUDA 的问题,结果它想了 27 小时后说「I don't know」。这说明它在某些擅长的领域表现确实很惊艳,但在其他方面还有很多局限,我很期待他们未来的工作能解决这些问题。
Monica:
你觉得还有哪些局限是希望在可能下一个版本里面看到提升的?
Kimi Kong:
几个方面吧,首先是怎么样让数据的 coverage 更多,其次是怎么让数据的 evaluation 方式可以更 scalable。
OpenAI 有一个让我非常 fascinating 的工作,就是很多年前的 PRM(Process Reward Model)。我觉得 OpenAI 应该是花了非常多时间去研究怎么来做数据这个方面。
不论是对 Google 还是其他公司来说, 最基础的问题就是怎么创建大量高质量数据,以及如何用一个 scalable 的方式来筛选高质量数据。
在筛选高质量数据的时候,你给它标 reward signal 时需要一个 scalable way,而不是仅仅给出 sparse reward。比如说不是像数学问题那样,最终只看对错。
对于很多问题,其实是没有一个 closed solution 的,你非常难去 evaluate 这个东西是好还是坏, 所以怎么定义一个系统化的方式来规模化标注高质量数据,我觉得这是个非常 fascinating 的问题。如果这个问题可以被解决,我期待这些 reasoning 的 task 可以有再往上一个质的飞跃。
Monica:
你提到 OpenAI 发布了很多与数据相关的工作。那么要训练出 o1 这样的模型,需要什么样的数据获取和处理方法?与传统 LM 训练有什么不同?
Kimi Kong:
这是个很好的问题。当 OpenAI 首次发布 InstructGPT 时,Google 还在专注于制作高质量的 SFT 数据(在监督微调过程中使用的标注数据集)。而 InstructGPT 剑走偏锋,选择做 preference 数据(尤指在强化学习阶段如 RLHF 中,用于表达用户或标注者偏好的一类数据)。
不论是做 SFT 还是 RLHF 的 preference data,都需要非常好的数据。但有趣的是,preference 数据的高质量数据实际比 SFT 的更容易获取。这是他们第一个让我觉得非常惊艳的地方。
这种 preference 数据是 sparse 的,意思是你只能在对话结束后对整个 conversation 进行好坏评价。如果中间有很多 intermediate step reasoning(中间推理步骤),你没法对中间的每一步进行打分。
为了解决这个问题,他们发布了 PRM800K 数据集,这是一个 verify step by step(逐步验证)的数据集。这种研究思路一直延续到今天 o1 的开发过程。从根本上说,我们要解决的是如何用 scalable 的方式来标注 high quality 的数据。
这些 high quality 的数据不一定要是 SFT 数据,可以是 preference 数据,也可能某一天我们会发现比标注 preference 数据更容易的方式。 如果在数据方面的 scaling law 能再做一个 10X 或 100X 的提升,那模型可能会在知识方面达到新的飞跃。
Cage:
刚刚 Kimi 提到 scalable,这让我想讨论一下 InstructGPT。关于 Anthropic 的 Constitutional AI 论文和 Reinforcement Learning from AI feedback(RLAIF,通过人工智能反馈的强化学习)的方法,我在思考一个问题: 如果我们要准备高质量的 reasoning tokens 数据,人类高质量标注和未来可以通过 AI 协助完成的标注应该各占多少比例?
Kimi Kong:
人类标注有几种使用方式。最直接的方式是 Direct Preference Optimization(DPO)。很多人发现在做 RLHF 时,training reward model 太复杂了,而且在训练时需要用 PPO(Proximal Policy Optimization),不仅要在 memory 里保存现在的模型,还要保存之前的模型。
这种复杂性促使我们转向 DPO。 DPO 的好处是不需要机器生成的数据,人类标注的数据可以直接用于训练。这是最直接的使用方式。
但这里存在一个典型的「chicken and egg」问题:你需要好的模型来创建高质量数据,但在此之前又需要训练一个高质量模型。因此,通常的做法是先用人工标注部分数据来训练 reward model,然后用这个 reward model 来像人类一样标注其他没有 preference 的数据。
这种 RLAIF 方式存在潜在的 reward hacking 问题(当以 reward model 的评分作为奖励进行优化时,如果 reward model 不能完全代表人类的偏好,就可能出现奖励黑客)。作为人类,我们可以很系统地分析不同 response 的好坏,但在实际应用中可能出现问题。
比如,面对 unsafe question 时,模型可能直接选择不回应,reward model 反而认为这是好的——这是非常糟糕的情况。模型应该做出回应,但 language model 可能会因此出现异常,这成为了模型的一个 back door。
总的来说,这是个非常有趣但棘手的话题。我们需要投入更多时间研究如何训练 reward model,这是扩展 RLHF 或 RLAIF training 的基础性工作。
苏辉:
我分享一下使用 o1 的测试体验。除了测试 LeetCode 周赛题目外,我特别关注复杂场景下的旅游问题。
我所说的复杂场景,指的是家庭跨国旅行这种场景,我会在 prompt 中提供机票时间和景点等信息。之前测试 GPT-4 时,它给出的方案表面看起来不错,但仔细看行程细节就会发现问题,比如没有合理考虑路程时间,导致某天大量时间耗在交通上,实际游览时间非常少。
这次测试 o1 的效果非常 impressive,特别是它考虑到了时差问题。因为我经常选择北京和纽约作为测试地点,这两个城市是模型学习得最多的城市。它会把时差换算好,判断到达时间,建议应该先休息再安排行程。而且像一个贴心的当地导游一样,会考虑不同地区的特点,比如中美两国博物馆的开闭馆时间差异。
如果只说 LeetCode 周赛题目,那主要反映的是模型在代码和数学推理方面的能力,这在强化学习中比较容易定义 reward。但泛化到旅游规划这样的场景,如果不是因为泛化能力,我觉得是很难做到的。
我认为可能有两种解释: 一种是找到了定义通用任务 reward 的好方法,使得 reasoning 效果有良好的反馈;另一种是在代码和数学这类强 reasoning 方向上的训练,也能泛化到这类场景。从结果来看,确实达到了很好的泛化程度。
Monica:
像你所说的旅行规划这种在日常生活中需要做一些相对复杂的工作的场景,所需要做的 reasoning 与 coding、数学题做的 reasoning 有什么不一样?
比如说一个特别好的私人秘书、特别好的 travel agency,或者说特别好的 EA(Executive Assistant)去做这个工作,他不需要是 IOI 金牌得主,也不需要懂 coding,那该怎么理解这两种能力之间的转化关系呢?
苏辉:
我觉得这是对 reasoning 的一个定义问题。比如说你做 coding 或数学题这种 reasoning,是在解一个明确的问题,中间有推理过程,这个往往是逻辑严谨并且是基于符号学去做的。但还有大量的 reasoning 其实是基于你对这个世界的常识认知去做的推导。
我举个例子,比如说现在在下雨,那你可能去卖伞可能是一个很好的生意。这其实是一个 reasoning 的过程,你需要对这个世界有一些通用的认知,并且能够泛化出一些新的场景。如果以前没有人在下雨天卖过伞,你可能通过其他的商业场景方法,泛化到这个场景,推断出在下雨天卖伞会卖得更好。
旅游场景更贴近我刚才说的这种基于常识的场景。因为它要考虑到的事情是有逻辑顺序关系的,比如说在一个大家族里面,如果老人体力不行,就应该考虑什么样的行程安排。
以前往往需要用一个比较复杂的 agent pipeline 去做这个事情,而且需要大量对业务的理解,需要自己去定制规则,在 prompt 里面去设计。但现在它能够很好地理解,我要舒适就意味着不应该花大量时间在舟车劳顿上,这个就是基于 common sense 的 reasoning。
03
OpenAI o1 的能力提升来源于什么?
Monica:
我想请教一下,o1 在 reasoning 这方面的能力提升,主要来源是哪几个方向?如果要拆解的话,你觉得在传统 LLM 训练范式中加入了哪些重要组件让它有了这样的能力?
Kimi Kong:
我班门弄斧说几句吧,我并不知道他们具体怎么训练的。如果要猜的话, 我觉得最关键的是数据(It's all about data)。Reasoning 其实是大语言模型做得非常好的基础能力。
为什么呢?因为这些数据非常容易获取。比如 Stack Overflow 就是问题到代码的映射,Wikipedia 是 Q&A 形式的数据。
这些数据不仅容易获取,质量还很高。你可以看 Wikipedia 页面被点击多少次,Stack Overflow 的回答被 upvote 多少次,很容易就能判断数据质量。所以模型在这方面表现好是很自然的事。
说到 reasoning,首先要考虑如何定义 reasoning,更关键的是如何获得 reasoning 的数据。如果我问 Monica,你觉得什么是好的 reasoning 数据集,你会去哪里找这些数据?
我们知道 Wikipedia 是非常好的 Q&A 来源,Stack Overflow 对写代码的人来说也是很好的问答平台。但说实话,我并不确定什么才是真正好的 reasoning 数据,也不知道从哪里可以找到这样的数据。
Monica:
还有论文以及其他来源啊,比如 Reddit 和知乎的问答内容。
Kimi Kong:
对,但这些内容都比较 noisy,知乎上确实有一些比较不错的 AI/ML 科普内容,这些可能是好的 reasoning 数据。 但从根本上来说,那些包含非常长逻辑链的 reasoning 数据集基本上都不是公开的。
苏辉:
是 valuable 的对吧?
Kimi Kong:
所以,OpenAI 其实是换了一个思路来产生这些数据。我个人 bet 的是,很多这些都是通过各种不同的合成方式 generated 出来的,通过不同的 filter 方式把好的 filter 留下来。
比如说写一个数学题:3X 加 5 等于 100,求 X 等于多少?当你知道 X 等于 50 是正确结果时,你可以问 LLM 说:help me reasoning through step by step,这样就是强迫它把 reasoning 过程完整地告诉你。如果它最后推理的结果不是正确答案,就说 OK,this is the bad reason I don't want it。你可以跑个一百次,然后通过 heuristic 或者 reward model 的方式把高质量的推理过程 filter 出来。如果完全不知道什么是对的什么是错的,那就可以通过 self consistent 的方式来 filter。
我觉得 reasoning 的能力是能不断地被提纯出来的。就像我现在写 PhD 论文,你先读了很多人的 paper,然后想想 reason through 这些 paper 我都读了,我大概有什么 idea,最后你得出自己的想法。
我觉得它是一个不断吸收消化的过程,只是对 LLM 来说,我们要 force 它说:No,you must reason. Then tell me what you're thinking step by step。要让它告诉我们它消化这些知识的过程,然后把这些数据再返回来 train 给 LLM,让它有更好的 reasoning 能力,而不是简单地吐出一个答案。
这是我个人的一些看法,我也非常希望听一听别的嘉宾的想法。
Monica:
这类数据的形态与传统 One-shot Learning(一次学习)的形态不一样,你觉得在训练方法上会有什么难点?
Kimi Kong:
现在 language model 就是两种训练方法,单纯 SFT 和 RLHF。我觉得 DPO(Direct Preference Optimization)其实越来越泛化得跟 RLHF 没有特别大的区别了。如果你能非常确定所有的 data 都是非常好的,我觉得用 SFT 的方法也完全没问题,但就像我刚开始说的,你很难 generate 出来非常 high 的 SFT 的 data。
你有可能这个东西说,我有这两个结果,这两个可能都不是我特别想要,但我觉得 A 比 B 稍微好一点,然后可以用这个 A 的 trajectory,通过强化学习的方式把这模型往好的地方推一点点。就是说 OK,我更 prefer A,你看到 A 这种结果你更倾向做 A 一点,虽然 A 可能不是最好的,但请你不要倾向于做 B。
通过这个 step,模型知道了一个 better solution,基于之前的 base 模型,你就有一个 step better 的模型了。你用这个模型再把同样的 query 问一遍,说 OK,我知道你 do one step better now,基于这个问题,请你再给我 racing 一遍。你会拿到两个新的 preference 数据。哦,这次 B 比 A 好一点,而且这次的 B 不但比 A 好,还比上一次的 A 也好,这样你就可以把模型的 frontier 再往前推一下。通过不断的 iteration 和 reasoning 的方式,让这个模型慢慢具有更强的 reasoning 能力。
从根本上来说,这是一个强化学习的方式。这让我想到接下来要讨论的 self-play(自我博弈技术) 这个话题。
Monica:
最近大家看到 DeepMind 做的 Alpha Geometry 在特定的数学测试上表现很好。我在想,让它来解各种数学题产生数据,是不是也可以用于 o1 这样的模型训练?
Kimi Kong:
我并不了解 Alpha Geometry 的基础模型具体是什么。不过就像刚刚前面嘉宾说的,你必须要有非常强大的基础模型,才能在特定领域获得更好的表现。如果基础模型不够好,解决 domain 的问题基本上很难做到。
对于你刚才提到的,如果在特定领域解决问题,其实相对更简单,因为你可以用更具体的 reward model 来训练。如果能训练出 domain specific(特定领域)的模型,而且这些数据质量好的话,完全可以用这些数据来反哺更通用的模型。这是我的一些个人想法。
Monica:
很有启发,Eric 你有什么补充吗?
Eric Li:
我自己认为主要有两点,是数据和强化学习这两块。从 o1 的 reasoning 这么好的表现来看,我觉得我们需要很多关于 reasoning preference 的数据,这跟 Kimi 刚才讲的流程中的 reward model 很相似。
如果要训练出一个很好的 o1 model, 我觉得在数据层面应该让它的 reasoning step 更加 make sense,更高效,甚至更 optimal。所以设计 reward model 去评判 reasoning step 的好坏是最重要的。
有了 reward model 后,合成数据这块就会比较好解决。包括我们刚才讲到的 MCTS,就可以基于 reward model 来产生更好的合成数据。这些方法结合起来可以产生更高质量的 reasoning 数据。我相信模型产生的 reasoning 数据远好于人类的,因为从实践看,人类生成的大多数内容都比较缺乏逻辑性,而模型反而会遵循一定的逻辑, 所以合成数据很可能是训练出 o1 的一个主要因素。
另外,我觉得强化学习的重要性更加明显了。我看到最近 OpenAI 的一个研究员分享了 don't teach incentive 的 presentation。这跟两年前 Google 强调 SFT(Supervised Fine-tuning)和 insertion tuning 的思路不同。因为现在 LM 太强大了,直接教它怎么做 reasoning 反而很难,而且可能不是最优解,因为人类的 reasoning 也未必最优。
我觉得应该用强化学习的思路,让模型自己去探索怎么推理,我们只需要告诉它结果好坏并给予奖惩。这样模型可能能找到比人类更好的 reasoning 方式。o1 给我的感觉是强化学习的重要性被强化了,不再只是传统 InstructGPT 里用于 alignment 或 safety 的工具。
Monica:
这个是不是有点像 AlphaGo?它在下棋过程中,自己能够创造出一些连顶尖棋手都没有想到的下法。
Eric Li:
我觉得现在的 LLM 确实有这种能力。比如说,我们在做 RLHF 时就经常遇到一个很头疼的问题,就是 reward hacking。这个问题的本质是模型的能力特别强,它能够找到 reward model 中的一些不完美之处并加以利用,从而提高自己的 reward 分数。
但这并不意味着它真的找到了更好的解决方案,只是利用了 reward model 的漏洞。如果我们能有一个很好的 reasoning 相关的 reward model,我相信 LLM 就能自己找到更好的 reasoning 路径,实现自主优化。这也反映了 AI 行业一个很普遍的现象,就是 AI 能够代替很多人类设计的模型架构或工作流程,并自动进行优化。
Monica:
那我想最后追问一句,如果我不需要模型去学习 step 之间的关系,是不是说有个特别好的 reward model 的话,其实就并不需要这么多的 multi-step data?
Eric Li:
对,这里面是相互关联的,multi-step data 能起作用的前提是你对每个 reasoning step 的判断、你给它的 reward 打分判断都非常可靠。如果你有这一步,那这种比较 dense 的 reward 对 training 是非常有用的。
但从 o1 给我的感觉来看,在做 reasoning 的时候我们不需要用 SFT 去告诉模型该怎么做。比如说刚才有位嘉宾提到的 3X 加 5 等于 100 这样的题目,你不需要先算 100 减 5 等于 3X,模型可能直接用公式或其他更好的方法来解决。 关键是不需要用人类自己的 reasoning step 去教它如何做推理,而是更多地对它的每个 reasoning step 或整体 reasoning path 做评判,只是对它的推理做奖励激励。
Monica:
那听听你的想法。
苏辉:
其实我觉得有一个比较重要的方法,它解决了我们之前很多人在做 MCTS 和强化学习与 LM 结合时遇到的问题。 就是关于强化学习的粒度问题,你到底是以 token 为粒度去做,还是以 sentence 或者 step 为单位来做反馈。
我看过不少例子,特别是在 OpenAI 官网给出的完整例子中,发现了一些很有意思的特点。有些没有明显的分割符,但会出现一些语气词,很像我们人类在聊天时的停顿。就像我们在解题时会想,我是不是可以在这里画根线?好像也不太行,然后停顿一下,加个嗯, 这些思维过程的特征都被保留在了完整的 Chain-of-Thought 里面。
我觉得这里可能包含了一些人类标注的痕迹。他们很可能获取了一批高质量的 Chain-of-Thought 数据,并且以 step 为单位进行切分,让模型学习这种思维方式。在每个 step 后,reward model 会给出反馈,决定是否需要进行回收或 reflection 这样的动作。这种方法已经被证明是可行的,给了很多人信心,相信沿着这个方向继续探索是有价值的。
04
模型推理能力只是 Agent 的基础,
构建一套 Agent 系统面临更多的挑战
Monica:
我们前面提到不需要用大模型来解决特别简单的数学问题。当问它简单的数学问题时,模型会用非常复杂的方式来解答,使用最高级别的 inference。既然模型有很强的能力,知道这只是一个简单的比大小或加减的数学题,或者简单推理,为什么不会自己选择用计算器这样的方式来解决呢?这是模型能力的问题,还是 tool use 方面的工程问题?
苏辉:
当看到 o1 发布时,我第一反应是疑惑它为什么以这种形式出现。OpenAI 自己也展示了,在某些任务如文本写作上,o1 可能略逊于 GPT-4o 的表现,但在强推理场景中是完胜的。很多人会尝试用 o1 解决一些在我看来比较基础的问题,这其实没有必要。
如果要提供好的产品,应该实现一个 root LLM 的策略:需要强推理的任务走 o1,不需要强推理的用 GPT-4o 或 GPT-4o-mini 就能解决,这对于用户界面来说会更合理。
我并不需要去关心调用的是哪个模型,我只要解决问题就好。强的问题就让 o1 去解决,弱的问题让 4o-mini 去解决。
这对 OpenAI 来说是很简单的事情,但他们没这么做。 因为 OpenAI 跟别的做 pipeline 的或者做产品的逻辑不一样,它就是纯 model service,每次 deliver 一个产品就是 deliver 一个新 model。所以不管 query 适不适合用 o1 解决,都用一套逻辑处理。
而 o1 是在强推理环境下训练出来的,即使遇到很简单的问题,还是要走很复杂的 Chain-of-Thought。虽然 o1 也是个多模态模型,但并没有特别强调这点,用户界面上也没有很好地体现出来。其实这些包括 tool use 在内都是可以被集成进去的,whole 发布后完整版的 4o 的表现其实跟 o1 差不多,但这个阶段他只是想秀一下 o1 这个强 reasoning 模型到底是个什么样的模型。
Cage:
我特别同意苏辉说的,因为我自己用它回答一些很简单的问题,但它会想了 42 秒才给我一个非常简单的回答。 所以我感觉 OpenAI 的 research 和产品有点分离了。
我们一开始还聊到 Cursor,感觉如果是 Cursor 做这个事情,可能就是先把问题打好之后 @,@ 的时候它会自动判断是 @o1 还是 @4o,找到更准确的模型来负责这个问题。 我觉得这种 model routing 应该是 OpenAI 接下来一定会做的方向,这样对我们的使用体验会更好一些。
Monica:
从去年大家开始讲 agent 这个概念的时候就提到 tool use,但到现在我们还没有看到通用的 agent 能做得很好。大家认为核心是 Foundation model 的推理能力问题。第二步是它需要理解能用哪些 tool,以及这些 tool 的功能和局限。
你们觉得,如果像 o1 展示出来的 reasoning 能力足够强,后续实现执行任务的功能是相对来说比较容易的,还是说这个过程中可能还有什么我们看不到的 gap?
苏辉:
我觉得 OpenAI 在整合 tool 时比较纠结,因为 tool 需要有足够广的覆盖面才有意义。如果只是 Calculator 或查天气这样的 API,工作量很大但产品覆盖面不够全面。 他们的重点是提升对 prompt 里面 tool 的 function 理解和调用能力。
研究验证表明,在真实生产环境中这个事情做得很好,只要有非常强的 prompt 理解和 reasoning 能力,提供完善的说明文档,模型就能在适当时候正确调用这些 tool 并返回好的结果。
Eric Li:
我觉得一个单一的 LLM 有很强大的 reasoning 能力,这是构建 agent 的一个很基础的 Foundation。OpenAI 在定义不同 level 的 AGI 时,level 1 是 chatbot,level 2 是 reasoning,「To figure chat bot level 2 to figure reason then go so here」。
关于行动决策,我认为它能够决定如何处理复杂的 task。reasoning 更像是 OpenAI 还在基础的 foundation model 层面努力推进的边界。我相信 agents 会是 next level 的技术,但这并不是说每个 foundation 的模型做得足够好后,agents 就能自然而然做得很好。
agents 涉及到多个 LLM、多个 AI agents 之间的相互协作,包括竞争关系,以及如何合作分工去解决复杂的系统和 task。LLMs 只是其中一个组件,而系统架构设计、分工方式,这些都是从 reasoning 发展到 agent system 过程中我们接下来要面对的挑战。
Monica:
的确,我们看到从创业投资的角度来看,今年以来 agent 领域出现了很大的变化。特别是在 Agent Ops 和 Agent Info 这个领域,出现了很多新公司。
这些公司主要专注于工程实现和 tooling 方向。这说明 agent 技术已经开始逐步进入实际的生产环境, 大家正在思考如何将其作为产品来管理,就像 Eric 刚才说的那样,建立起系统化的管理方法论。我觉得这是今年看到的一个重要趋势。
Kimi,你前面提到你在做 agent 相关的工作,o1 这个提升会对你的工作有什么影响?
Kimi Kong:
我想说两点。第一点是关于 OpenAI 为什么不做 router 这件事。我觉得 OpenAI 的 foundational belief 是「search and learning will solve everything, any over engineer problem will actually get washed in the way」。所以对他们来说,不是不愿意做这件事,而是这根本不符合他们的基本理念。
关于 agent 开发,我非常认同前面苏辉和 Eric 的观点。 如果要开发具有更强 agent 能力的模型,我认为需要四点:
第一点需要 有非常强的 base model 和 reason 能力,提升 base model 是个非常好的方式。
第二是需要 非常好的 tool,你不能给我 noisy and bad 的结果,必须简洁准确。
第三是需要 非常好的 prompt,目前 agent 仍然是个 over prompting 的过程。我在使用一些开源的 agent 工具时,比如 AutoGen、HuggingGPT、LangChain,发现一个很 tricky 的问题:随便运行一个 agent workflow,使用 GPT-4o(现在大约是 15 美元/百万 tokens)可能就会消耗掉一百万 tokens,而你可能都不知道发生了什么。
最后是 learning,包括如何 incentivize 模型更好地使用 tool,什么时候使用 tool,为什么应该用 tool A 而不是 tool B,这需要我们 curate 很多 agent 的数据集,通过二维的方式来解决这些问题。
Monica:
这个 agent 的数据集比前面讨论的更难获取。如果没有这些数据,是不是可以先通过一些 engineering 方式实现 agent,然后收集数据,再看哪些部分可以被 automate 或者直接由 AI 来做。
Kimi Kong:
我觉得有两点。第一点还是跟之前一样,是关于怎么通过这个方式来使用工具。Meta 发的那篇 Tool Former paper 讨论的就是怎么创建数据来告诉模型如何使用 tool。另一种方式,说难听点,其实我每天在 Google 工作就是在帮 Google 标数据。比如同事让我写个 feature,我给他们写 code,相当于我在帮他们做 question to code 的数据集。
这些可以用来 train 他们内部的模型。当我在写 code 时用 prompt、调用 tool,其实也是在帮他们做 agent 的数据集。 这已经不是个科学问题了,而是个产品问题。比如 Tesla 就是个非常棒的例子,更棒的是我们每天都在帮它标数据,而你开车的时候都感觉不到这点。
但你不能让用户不开心地去标数据,因为这样数据质量会很差,除非给很多钱。我听说 OpenAI 雇了一堆数学 PhD,一小时给几百刀来标 reasoning 数据集——这只是个传闻,别引用我说的。 关键是怎么把标数据这个工作嵌入到工作流程中,让用户自然而然地完成,这才是个完美的产品。
05
强化学习的三个核心要素:
Agent、Environment、Reward
Monica:
大家来聊聊 Chain-of-Thought。对于只是听说过或者不太了解的同学,能否解释一下 Chain-of-Thought 究竟是什么?这个方法并不新,前两年就提出来了。我想请教一下,o1 在使用 Chain-of-Thought 时,与之前的应用相比有什么不同?苏辉,不如你来聊聊。
苏辉:
Chain-of-Thought 大约是在 2022 年首次被提出,最早来自现在在 OpenAI 的 Jason Wei 的论文。他的研究发现, 在解决问题时,如果在答案中给出更详细的步骤,而不是直接给出结果,模型的表现会更好。
在同期或两三个月后,另一篇论文提出了 「let's think step by step」的概念,在生成过程中,模型就会自然而然地以 Chain-of-Thought 的方式去生成。这两篇论文可以说奠定了 Chain-of-Thought 的基础。
之后很多工作都在这个基础上进行改进,Chain-of-Thought 很快就在 mass reasoning、常识推理、逻辑推理等多个任务中得到了应用。
我发现在使用这个技术后开始去刷榜,效果提升非常明显。这个领域产生了很多论文,研究人员也将 Chain-of-Thought 应用到 reasoning 和 visual language model 等领域。
目前主要分两大流派: 第一个是显式流派,使用显式 token 表现出思维过程。这里面有很多可以发挥的空间,比如你的 Chain-of-Thought 本身可以是串式结构、树结构,甚至可以用图片结构。生成的不仅是 linear 的 Chain-of-Thought,还可以做 verification 和 refine。我们可以引入 critic model 或 reward model 来完善 Chain-of-Thought 的生成。有些工作会对问题本身做 decomposition,让 Chain-of-Thought 变得更结构化,这样都能提升效果。这些显式方法需要更多的 inference token,呼应了现在大家讨论的 scaling inference 和 compute 这个话题。
另一个流派是做隐式的,最近有 researcher 在尝试把 system two 整合到 system one 里面。虽然这个任务很难,但我们认为 transformer 的潜力很强大。这其实很像人类思考过程, 我们思考时并不是所有过程都需要显式的文字表达。在 reasoning 这个过程中,即使你在思考,有时答案会在某个瞬间突然出现,这个过程更类似于直觉,是难以用逻辑解释的。
最近我发现一些有趣的现象,如果我们把 reasoning 看作与传统任务相关的过程,泽源在 Physical RM 中提到,虽然我们在做 scaling 工作时发现总参数量会与 loss 和模型表现相关,但在 reasoning 任务上,深度(即模型的层数)比宽度(即每层的神经元数)更重要,模型越深效果越好。感兴趣的 researcher 可以做实验验证这一点。
我们也看到很多工作印证这一点,比如最近的 MiniCPM-V3,虽然是小模型,但使用了六十多层的深度。业界正在收敛到这样一个结论: 即使在参数量固定的情况下,我们宁愿牺牲 inference 的成本。
因为模型越深,inference 成本就越高,比如在做优化时,宽的模型要比深的模型容易优化,但我们宁愿增加层数来提升 reasoning 能力,因为在生成每个 token 时都需要经过所有层的计算,如果把生成的总 token 数与总层数的关系考虑进来,token 数量越多,每个 token 经过的层数越多,都可能提升 reasoning 的效果。 这意味着不仅是增加生成的 token 数,模型的深度增加后,两者相乘会显著增加 inference 时的计算量。
其实当层数和 token 都增加了以后,每个 token 经过更多的层数,并且每个 token 的数量也变多了,这些相乘之后计算成本就会更高。
在这个层面上,我们确实发现这样做能提升 reasoning 的表现。包括加入一些 reflection 这样的操作,这其实在之前的 LLM 里就有很多人在做。
因为 传统 LM 最大的问题是不能回撤,如果生成了错误的 token 就没办法纠正自己之前的错,只能顺着错误继续生成,这会导致很多 Hallucination(模型的幻觉)的问题。但如果显式地学习这个 pattern,允许模型去反思之前的问题,承认自己可能有问题,然后给一个回撤的机会,把这种数据 pattern 加到训练里面去,在 reasoning 任务上的表现就提升了很多。某种意义上这也是增加了生成 token 的数量,毕竟在反思过程中引入了额外的 token。但最终我们看到一个结论: 无论是通过增加层数,还是直接增加生成 token 的数量,都能在 reasoning 的表现上得到提升。
Cage:
我想请教一个问题,前面我们讨论了 CoT,也聊过 MCTS,能否请几位嘉宾介绍一下在 o1 框架中它们的关系?因为 CoT 后续的演化也有层数的深度,也发展出了 Tree-of-Thought,听起来和 MCTS 的思想已经比较接近了,所以想请教大家觉得这两者的耦合程度如何?
苏辉:
技术的发展是相互影响的,你会发现在不同方向的工作最终会呈现出一些相似性。这些工作最初其实是独立开展的,一方面在研究如何通过参数来提升模型的表现,另一方面在从算法层面提升模型表现。但最终都殊途同归,都采用了类似 MCTS 这样的方式。
Monica:
你觉得 o1 它使用 training source 方式跟之前我们训练 LM 时的使用方式可能会有哪些不一样的地方?
苏辉:
其实有一个很大的改变。之前发生过一个乌龙事件,就是那个 reflection model,可能两个月前在推特上,跟 Llama 3 V1 差不多,就是有点道具的感觉。它其实只是用了一小部分 reflection 数据做 SFT,然后就说自己是个很强的模型,但最后大家发现并没有那么好,某种意义上是不太诚实的行为。
但是这种 pattern 其实是值得验证的。我们在 SFT 过程中,如果用一些质量比较高的 reflection 数据,它跟传统 Chain-of-Thought 是不一样的。传统方法是一步步解决问题,没有回溯的过程,我不会去反思之前的问题出在哪里,完全是顺序执行,下一步的结论一定是基于上一步得出来的。但有了 reflection 这个操作,就有很多回撤的空间。
模型在生成 Chain-of-Thought 之前,很可能已经知道怎么做了,但在生成过程中如果犯错就没机会返回。这确实很痛苦,但如果给它 reflect 的机会,只要它最早确定能解决问题,最终就能做对。这是 o1 展现出来的例子和我们之前做的最大区别。当然,之前 Chain-of-Thought 的工作里也有一些这种朴素的思想。
但是如果只通过 SFT 方式学习,或者只是通过外部的 verify 模型来实现回撤,因为没有那么强的 reward model 提供策略学习,效果会弱很多。模型可能只是学到了一个表象的行为,就是我可以去回撤,也许到后面正确的时候也会去回撤,它只是学到了一个 pattern,并没有真正理解自己在做什么。
Monica:
就刚才开始的那个问题,我想听听 Eric 的想法。
Eric Li:
我觉得这两个是有相关性的,就像刚才另外一位嘉宾讲的,有点殊途同归的感觉。
在 Chain-of-Thought 这边,我们看到有很多衍生的研究,比如 Chain-of-Thought 是 chain,那可能有 Tree-of-Thought、Graph-of-Thought 这一系列的文章。这些都是在探索当你的推理结构有多个不同选择时,应该选哪一个最好。
而 MCTS 作为一个比较传统的 planning 或者搜索方法,它是在估计传统强化学习中,当我有多个可能的 action 时,哪一个 action 可以获得更大的 reward、更大的 value。
MCTS 的发展路线更多是从 AlphaZero 那边,就是比较特定领域下的围棋发展起来的。但是 Chain-of-Thought 或 Tree-of-Thought、Graph-of-Thought 这一系列,更多的是基于自然语言处理的情况,在语言模型中自身演化出来的思路。
本质上,我觉得这两个都是在探索如何规划推理,从这点来说,其实两个都是比较高度相关的。
Monica:
大家其实都在猜测 o1 里边有没有用 MCTS,我很好奇你的猜测是怎样的?
Eric Li:
我自己其实也不确定,但是我觉得如果要用 MCTS,应该有两种方式。
第一种是在 inference time 使用,这需要一个非常好的 reward model。在思考过程中,系统会不断尝试各种路线,就像下围棋一样。比如当我们下到一半时要决定下一步,假设有五个不同的选择,我会估计每个选择可能带来的潜在 reward,然后选择能最大化 reward 的方向。之前读了你分享的知乎文章,从 reverse engineer 的角度来看,如果现在看到它的 token cost 是线性的,那么 MCTS 可能并不在 inference 阶段。
我认为更可能的是第二种方式: 在数据处理阶段使用 MCTS。比如在处理训练数据时,用 MCTS 策略找到最佳的推理数据来训练模型,或者在强化学习过程中将搜索策略整合进来,帮助 policy model 找到最佳的推理方式。所以如果让我猜测的话,我觉得 MCTS 在数据层面或强化学习过程中使用的可能性要大于在 inference time 使用。
Monica:
让我们回到 Kimi 这边,我们刚才讨论了很多关于 o1 使用强化学习的可能性,你觉得还有什么我们没有 cover 到的角度吗?
Kimi Kong:
让我往回撤一步,跟大家讲讲强化学习到底是什么。这样可以帮助大家更好理解为什么强化学习能在不同行业中发挥作用。 强化学习需要几个基本 component。
首先你需要一个 agent,也就是一个模型。在 language 领域,它就是一个 LM。在 robotic 领域,比如 physical robots、simulation、Atari game,或者是 Google 的 AlphaGo,都需要 agent。
有了 agent 之后,你需要一个 environment 来让 agent 进行交互。比如 physical robot 需要与周围的物理世界交互,但物理世界很难 model,这也是为什么我们还没有看到真正的机器人被广泛应用。不过我相信这个领域未来非常有前景,maybe very soon 就会出现 robotic domain 的 GPT-3.5 时刻。
更 generalize 的 environment 包括 Atari game 和 Go。强化学习在这些领域发展更快是因为它们是 well-controlled 的 environment。在这些环境中,sample data 是 free 的。你 run 一个 LM 来 sample 是很 expensive 的,但在 simulation 中,你可以进行 infinite sampling,用任何 speed 和 frequency,甚至可以比实际时间快两倍来 sample,这使得 simulation 成为 perfect 的 reinforcement environment。
最后你需要一个 reward,用于告诉模型它每一步 action 的好坏。比如在 Atari game 中,输赢是一个很 deterministic 的 reward;在 AlphaGo 中,最终的胜负也是个 deterministic 的 reward。这些 well-controlled 的 environment 为早期的强化学习研究论文创造了良好的条件。
在强化学习上见到了长足的进步,第一个是 DQN 这篇论文,然后往后 DQN 有了各种演化,比如 Double DQN、Dueling DQN。大家不只是在做 value function,还开始做 policy network 这些方面,比如 REINFORCE。然后大家发现不只需要一个 policy network,还需要一个 value network,要把两个结合在一起,形成 actor-critic 的方式。
这又可以演化成 on-policy、off-policy,或是 deterministic、stochastic 这些方向。比如说 DeepMind 的 DDPG,还有就是原来在 OpenAI、后来去了 Anthropic 的我非常仰慕的强化学习 researcher 做的 TRPO 和 PPO 这些工作。
说到底,强化学习已经很多年没有在算法层面有发展了,最 SOTA 的应该是 Sergey Levine 他们实验室的那篇 SAC 的论文,大概是 2018 或 2019 年的 work。从那之后,在强化学习的算法层面就没有更多的长足进步了。
现在大家主要关注强化学习在 specific domain 的应用,尤其在 LM 领域很火。
如果你往回看这个问题,其实 AlphaGo 跟 LM 非常像。AlphaGo 也有两个步骤,有一个 pre-training step,当时叫 pre-training phase,也就是 imitation learning,从专家下棋中学习。有了这个好的 base model 后,就想怎么能做到 better than human。这就回到之前 Eric Li 说的,我们可以让模型通过 self-play 来提升自己。
在做了 AlphaGo 之后,他们想能不能把 pre-training 这个 step 去掉,完全用强化学习来训练,就做了 AlphaGo Zero。然后他们又想能不能让它不止会下一种棋,就做了 AlphaZero,可以下日本将棋、围棋和国际象棋。
最后他们的 ultimate solution 是 MuZero,不仅能学会怎么赢得游戏,还能学习 simulation network,就是说给定 environment state 和要采取的 action,模型就能预测下一个 state 会是什么。
那你可能会想,LM 是不是也可以完全不要 pre-training,用强化学习的方式来训练,就像 AlphaZero 那样纯靠 self-play。
但这其实是非常难的, 原因在于强化学习需要一个 deterministic reward function(确定性的奖励函数),而 LM 很难有这样的 reward function。
第二,你需要一个 control environment。对 Atari game 或者围棋来说,我有个 perfect control environment,但对 LM 来说,人是 environment,我不可能一直陪着 LM 问答。虽然可以用一些 trick 来做 self-play,比如两个 LM 互相问答,但因为缺少这两个条件,强化学习目前只能做 LM 的 alignment 工作,而不能完全靠 self-play 强化学习来解决 LM 的问题。
这就是强化学习的演化过程,以及它在 LM 上的应用。
06
Reward Model 可扩展的模式也许是
「Human in the loop 配合 AI feedback」
Monica:
可以展开讲讲 Robotics 在强化学习里面的应用吗?结合你之前做 LLM robotics 的工作经验,有什么启发可以借鉴的地方?
Kimi Kong:
这是个好问题。我认为强化学习本质上就是一种通用技术(general technic),不仅仅局限于 robotic 强化学习。 它就是在你定义好的环境中,通过 agent、environment 和 reward function 来实现目标。
说实话,我非常怀念当年做强化学习研究的时光,那时候环境非常纯粹。就是很简单,你只需要赢得游戏,reward 是完全确定的,都不需要考虑 reward function 的设计。现在反而变得更复杂了,但这种复杂性也带来了更大的潜力,因为 reward model 不再是确定性的,不只是局限于玩游戏,而是可能泛化到其他领域。
在 robotics 强化学习领域,主要有两个研究方向。
第一个是 locomotion,比如斯坦福的 Tony 他们的工作。这个方向其实跟 language model 关系不大,主要是通过 imitation learning 加上强化学习 approach,需要人类示范来教会 robot 如何操作和移动。
另一个方向是 planning,比如 Google DeepMind 早期的 SayCan 项目,这类工作需要明确描述任务而不是示范。在 planning 任务中,LLM 是一个非常 popular 的 approach,从早期的 SayCan、Code as Policies,到后面的 PaLM-E,再到 RT-1、RT-2、RT-X 等系列工作。
实际应用中,因为 robot data 量有限,我们不想纯用 robot data 导致 model performance 下降,所以会把 robot data 和 vision data 以及 VQA task 一起做 co-fine tuning,然后收集强化学习数据来 refine 模型。
从根本上讲,其实没有特别大的区别,主要是应用场景和数据形式不同。这些数据可能不是传统的 token,而是 robot motor 的 force、torque,或者是 sensor 的数据。但 backbone 都是用 transformer 架构,都是用强化学习的 training technique 来让模型在 specific domain 更好地收敛。
Monica:
刚才你也提到了 self-play,它在强化学习领域的研究历史和行业应用情况是怎样的?你觉得 o1 有没有用到 self-play 技术?
Kimi Kong:
这个不好确定。但如果让我做这个事,我一定会使用 self-play,因为它可以让你不断地 scale 和 refine 这个过程。 强化学习最大的优势在于可以让你每一步都实现增量改进。这与 SFT 不同,SFT 是训练完一个 epoch 就结束了。不一步到位,我们可以完成得更好,数据和 query 还在那里,你可以通过这个 query 再运行一遍模型,再做一次标注,可以把这个 query 做无数遍的 self-play。
我认为 self-play 是一个可以 scale 的强化学习训练技术,在语言模型领域是一个非常好的 technique。
Monica:
那它与我们之前讨论的 CoT 和 reflection 之间是什么关系呢?
Kimi Kong:
这是个好问题。 我认为在讨论 CoT 时,更多是作为一个 prompting technique,就是说我希望 prompt 这个模型帮我做某件事。你可以用 CoT 的方式来解决问题,也可以用 CoT 的方式来产生 synthetic data 来训练模型。
但 self-play 更多是一个 training technique,是在训练 reinforcement learning 模型时,用来持续推进强化学习步骤的技术。我觉得这是两个相对独立的 topic。Feel free to correct if I'm wrong。
Monica:
关于 self-play,想听听你对它和 CoT 之间的关系,以及它在 o1 或未来提升模型能力方面的作用的看法。就是 DeepMind Danny 最近的那篇《Train of Thought empowers Transformers to solve inherently serial problems》,在 Twitter 上写得非常抓眼球,说 Performance limit when scaling our inference sky is the limit。这篇文章本质上在讲 CoT 是如何让 transformer 的能力得到提升的,它跟刚才 Kimi 提到的 self-play 又是什么关系?
Eric Li:
我觉得 CoT 和 self-play 是两个相对独立的方法。 CoT 更多是通过思维链,通过增加 inference time 的计算,让模型能够解决一些本身比较难解决的问题。self-play 更像之前 AlphaZero 那样,通过自我博弈的方式能够不断地 incrementally 提升自己,比如下围棋的水平。
关于 o1,我不确定他们有没有用 self-play,但从 MCTS 这个脉络来看,在 LM 加强化学习这个方向上,大家还是会倾向于借鉴上一代强化学习的那些成功经验。MCTS 是之前 DeepMind 做 AlphaZero 时变得非常 popular 的方法。我相信 self-play 即使现在没有被 OpenAI 在 o1 上使用,也是一个很 promising 的方式。说不定已经有很多人在研究,我对它的未来比较看好,它可以作为一种模型 self improvement 的策略。
我自己没有完全读这篇论文,只是看了一下 abstract,但我觉得这是一篇理论分析很有意思的文章。它能够告诉我们现在整个 AI 学术界需要的东西——一些理论文章来揭示我们现有模型 capability 的上限在哪里。对我来说,这是一篇非常 insightful 的文章,它至少能够回答一件事情:transformer 加 CoT 的架构,它的表达能力是非常强的。
当然,我也看到有人在说这可能和当年 deep neural network 的时候情况类似。不过我觉得这篇论文是从数学上告诉我们上限在哪里,这等于是可以激励我们下一步去设计更好的 CoT,设计更好的 transformer 架构。这样就把问题从能不能解决转变成了应该如何更好地解决。
从计算不可约性的角度来看,很多问题如果想要获得答案,可能都有一个 minimal 的 computation cost 要求。比如说,你想要模拟一个流体力学状态,在保证一定精度的情况下,至少需要的计算成本是有一个非零的下限。这在 CoT 这块也有相应的体现:对于复杂的问题,你确实需要有一些 additional computation 才能得到相对准确的解。这就是我对为什么 CoT 被认为是一种 adaptive computation 的理解。
苏辉:
我先来讨论一下 Sky 这篇论文。这篇 paper 在推特上引起了很多讨论,包括田园东老师等研究者都表示反对。他们认为这个论文的 claim 本质上和「两层神经网络能够拟合任何函数」的说法类似,都只是在构造一个位置来拟合特定的 target 函数。
但理论上能否达到这个 solution,或者找到更好的路径都是无法保证的。虽然通过穷举方法可以解出答案,但这种方法并不现实,我们真正需要的是能够准确、直接给出答案的能力。 我比较认同这个观点,即存在答案和能否通过现有方法正确求解是两回事,不能说随机出现某个概率就等于能实现这个功能。
关于 play 的使用情况,我注意到在 OpenAI 官网上搜索「play」的内容,可以追溯到 2017-2018 年,一直持续到 2022 年。虽然后来 OpenAI 并未官方承认使用 play,但这与新一代研究者如 Noam Brown 的背景有关。他们之前主要做 Deep AI 相关的零和博弈研究,这些研究者的研究品味和研究路径短期内不会有大的改变。
Noam Brown 最近在 YouTube 上的演讲中,结尾提到了关于 LLM 的重要结论: 他认为需要保证 generator 和 verifier 都足够强大才能实现目标。从时间顺序来看,现在已经达到了他之前提出的先决条件,所以这种方法用在 LLM 中是完全合理的。
Cage:
Raw Model(指预训练后未经任何特定领域微调或优化的原始模型)确实会是未来很大的一个研究方向。正好前面 Monica 提问说大家觉得 GPT-4o 表现怎么样?两位嘉宾的回答都是和数学推理、coding 有关的。
reasoning 和 math 的 raw 都比较好定义,它本身有 verify 可以直接给一个结果说它是对的还是错的。但其实别的领域就很难有这么明确的 reward model。不知道几位嘉宾对未来 reward model 能不能泛化并在领域上做到 scalable 这件事情怎么想?
苏辉:
像这种 process 的 reward model 肯定是已经被大规模实践过的,从数学上来说,包括后面的 critic GPT 这些工作,都是一脉相承的。我们的基座模型,比如说 GPT-4 就已经是一个强 generator 的 model 了,然后 verify model 也是基于 GPT-4 level 的模型去训练的。它的 reward model 虽然给出的还是离散的信号,但是过程是更加可置信的,因为它可能通过嵌入式推理去给出更强有力的 confidence,然后最终给出信号。
这某种意义上摆脱了之前 RLHF 那种训练模式,以前 RLHF 是建立在二元的 Bradley-Terry 统计模型上,你一定要收集一些偏好数据,至少要有两个选项的排序。但如果走这种模式,就是强模型重复去 reasoning,然后给出结果,它可能就不需要这种训练 pattern 了。
我用的是通用模型,主要用来目的是打分,这个打分很可能是基于我自己的一套比较强的规则,而且我应该是通过自己生成的这个思维链去给出结果。我觉得这可能是一个不太一样的地方。
Eric Li:
我很赞同,reward model 是一个被低估的问题,特别是相比那些有可检查的数学题或 coding 这种比较容易 verify 的情况。
现在很多人在研究 AI feedback 这块,因为我们希望在某些领域中,AI 确实能够给出比人类更 effective 的反馈。比如说考虑一个场景,如果我要写两个科幻小说,写了两个版本要判断哪个更好,对人类来说要读上几百万字是比较难的,也很耗时。
但对 LLM 来说,它可以帮助你快速做数据 processing,理解文本内容,然后做 summarize。 我觉得未来一个可扩展的方式是「Human in the loop 配合 AI feedback」,在面对那些人类需要花很长时间,或者普通人不容易看出 preference 的情况下,借助 AI 把难度降低到人类可以探测可以理解的程度,然后由人类给出自己的 preference。我觉得这个对一些领域会是一个更加 scalable 的方式。
07
Multi-Agent 是超级模型出现前的过渡状态
Cage:
几位帮我们把几个单点的技术慢慢拼凑成了一个比较有全景的感觉。基于这个想再问一下,最近还有一个大家讨论比较多,推特上也有人在争论的问题,就是大家觉得 o1 是一个单一的模型,还是它可能是一个 Multi-Agents 的多系统?
因为其实一方面我们看到 OpenAI 的 AMA hour,他们会说我们只是 one model,但是与此同时,Noam Brown,正好前面苏辉提到了这个年轻学者,他最近在招聘的一个岗位就是做 Multi-Agent 研究。
提到 AlphaGo 和 AlphaZero 那套系统,其实它一个 network 也不是单目标的,它同时有 policy network 和 value network,那么它同时在做执行任务和评估两件事。
那么我想请教几位嘉宾,o1 如果要去复现的话,它是可能是一个多模型组合起来的系统,还是它可能就是一个神经网络解决了所有的问题?
Monica:
纯猜测,我不用为猜测结果负责。我在知乎看到一篇类似的猜测文章,作者说我这纯猜测,要按这个训练把公司训倒闭了我也不负责。大家只是想听听彼此思考这个问题的思路。
Kimi Kong:
我比较同意 Eric 之前说的五个不同 level 的 AI 发展路径。第一个 conversation 已经完成了,现在属于第二个 level,也就是 reasoner 阶段。根据 roadmap,我个人观点是它更可能是一个单一的大模型,而 next one 那个历史可能会是 Multi-Agent,至少是单一 agent 的模型。
Monica:
你这是更多从效果和 open 的技术审美路径角度来猜测的?
Kimi Kong:
对,更多是从 strategic 的角度考虑。我觉得要 one thing at a time,先做个非常好的基础 chatbot 模型,然后用它 prompt 出 reasoning 的数据。有了强大的 reasoning 后,就能做更好的 tool use 和 function call,这可能就是下一版模型要做的。
我认为 open 的 research direction 不是一个 over engineer solution。现在业界还没找到一个最好的方式来 train Multi-Agent 的 LLM。我更倾向于先解决 low hanging fruit,先有个强大的 reasoning 模型作为基础,然后一步步实现 roadmap,最终达到 level 5。
Monica:
我 Google 了一下, AI 发展分为 Level 2 Reasoners、Level 3 Agents、Level 4 Innovators、Level 5 Organizations。所以现在我们还在 reasoner 和 agents 的阶段。
Kimi Kong:
对, 可能处于 2.1 到 2.5 的状态。
Monica:
其实在应用层面,我们用 Multi-Agent 这种架构时会遇到一些反对的声音。 他们说用 Multi-Agent 就是增加了系统的复杂性,而且 agent 之间的通信可能造成很多浪费。本质原因其实就是你的 agent 自己本身不够牛逼,如果你有一个很牛逼的 agent 的话,在很多场景下其实你并不需要 Multi-Agent。就像 Tanu Robotics 的自动驾驶汽车,在 model 替换时就需要考虑这些系统架构选择上的 trade-off。
Kimi Kong:
我觉得大概有这么几个问题需要回答。首先我们可以 go through 一下 Multi-Agent 这个领域的历史。
Multi-Agent 是经典强化学习中的一个重要主题,最著名的论文应该是 David Silver 的,我非常喜爱的一篇论文 MADDPG(Multi-Agent Deep Deterministic Policy Gradient)。相比于 DDPG(Deterministic Policy Gradient)只在单一环境中训练一个 agent 做一件事,MADDPG 可以训练很多 agent 来完成一个非零和博弈的协作任务。为了让这个问题可行,它做了很多简化处理,否则这将是一个非常 computation-wise infeasible 的问题。
关于 Multi-Agent,我知道一些 background。在 MADDPG 之后出现了很多 Multi-Agent 的 research,但我之后就没有继续 follow 这个方向了。说到 Multi-Agent 在 language model 中的应用,其实就是你可以 prompt 一个模型让它做一件事情,对吧?
首先你让它做 Step 1,putting your generative model hat on 去生成内容。完成第一步后,通过 CoT 进入第二步,告诉它 now put your critic hat on 去评判结果。这个版本的模型需要仔细思考,如果认为一切正确就给出 final result,否则就回到 step one 重来。
其实在这个过程中,模型在做很多事情,对吧? 与其说是 Multi-Agent,不如说是 Multi-Task。问题是模型在 Multi-Task 时,可能没有办法很容易地把 attention 从 generation 转到 critic。 现在大家在 language model 领域做 Multi-Agent,主要是通过 prompt 不同的 persona,把 generator 和 critic 分开:generator 的任务就是生成内容,critic 则专注于评判结果。我觉得这是个很有趣的方向,尤其是在开发下一代 agent 方面,虽然我可能没有完全 follow 最新的 Multi-Agent research on language model。
译者按:非常有意思的观点,把写作和编辑分开,凯文·凯利说过几乎一模一样的观点。
我其实更倾向于,短期内我们更可能看到 Single-Agent 的 breakthrough,就跟传统意义上的 o1 一样。因为 o1 首先的 breakthrough 都是在 Single-Agent 领域出现的。当你有了一个非常强的 agent,就有可能很容易用类似的训练方法泛化出 Multi-Agent 系统。
Monica:
OpenAI o1 是 end to end 还是 Multi-Agent?
Eric Li:
我的猜想比较保守,我认为它可能是 single 或 two agents 的情况,但不太可能是更复杂的 Multi-Agent system。
OpenAI 之前做了很多关于 reasoning and verification 的工作,比如两个 agent 在解决数学或 coding 题目时的 framework setup。我认为 o1 很可能只是一个 single agent,但在 inference 阶段可能会 incorporate its critic 或 light supervision 来 verify。关于为什么大家对 Multi-Agent 形成挑战,这取决于 single agent 的能力水平。
我相信在现在以及可预见的未来,Multi-Agent 都会 outperform Single-Agent 的能力。即使是人类,也需要通过合作分工才能做出更好的成果。比如爱因斯坦那种 level 的人也会 make mistake。我因为是读物理的 PhD,所以知道上个世纪做 quantum physics 需要一堆人合作分工,才能真正 build up 完整的物理理论。所以在我们的 Single-Agent 达到爱因斯坦那个智商水平之前, 我相信 Multi-Agent 的 performance 一定会更好,因为它能提供不同的 perspective 和思路。
当然,如果未来出现了 superhuman 级别的 Single-Agent,最终的演化形态可能会回归到 Single-Agent,这是一个偏哲学层面的思考。
苏辉:
在我看来,没有必要怀疑这个事情,他们本质上都是一个 model。包括之前的端对端 model,现在越来越多的证据也能够呼应这一点。我个人倾向于相信他们一定是一个模型,虽然多模型在现在这个阶段确实能够提升很多任务的表现。在正式工作流中设定各种 role 一起配合解决问题, 我认为这是过渡阶段的产物。
如果大家的目标是星辰大海、是 AGI 的话,最终的模型应该不是多个 AGI 模型一起工作,而是一个 single model 去处理所有事情,是全知全能的。
目前大家使用 Multi-Agent 或其他方法,主要是为了解决 corner case 或中间推理过程不稳定的情况,但这些都是过渡时期的做法。
比如在 tool use 时,模型可能无法很好地理解和调用功能,因为它只理解 function call 或 tool use 的基本功能描述。很多 agent 优化工作会根据人类使用模式,通过持续总结用户使用情况和反馈,将这些信息添加到 prompt 中,完善功能说明和调用可能性。
但在 o1 发布后,很多这样的 case 都会被取代,因为模型能力够强,它能够百分百正确地进行调用。
07
为什么玩游戏的能力
对 LLM 来说很值得关注?
Monica:
最近有个 project 是用 o1-preview 来玩黑神话,虽然游戏和 LLM 的结合并不是新鲜事。最近有些具备更强 reasoning 能力的 LLM 用来玩游戏,有没有让你觉得特别 impressive 的地方?另外,用游戏来做 training 生成数据,在有了 o1-preview 这种新范式后,对进一步提升会有什么帮助?
苏辉:
我看到这个新闻后去查了相关论文,发现它用的是 GPT-4o。它的实现原理是把游戏截图作为输入,通过 vision model 进行场景理解,然后生成 Python 代码形式的动作来操作游戏。如果用 GPT-4o 来做这个,成本确实会很高。
AI 玩游戏其实一直都很厉害,最早是打 Dota,后来还有星际争霸。以前大家都认为需要通过大量对局来进行强化学习,但现在不一样了。之前的方法都不是用 language model,而是要自己定义游戏的各种状态空间,用纯强化学习的方法。
这次玩黑神话是个非常特殊的 case,因为它直接用了训练好的 vision model 和 language model,没有额外训练。最让人惊讶的是现在模型的视觉和文本理解能力已经如此强大。我觉得下一步用更强的模型去玩那些人类喜欢的游戏,很可能都能超过人类水平。而且关键是不需要在特定游戏上专门训练,这已经达到了一个新的分水岭。
Monica:
我知道前面大家提到要使用更多新类型的 multi-step 数据,所以我很好奇在游戏中完全模拟的场景里是不是相对来说更更容易收集这种 step by step 的数据?
苏辉:
对,数据收集肯定是会更容易一些。这让我想到了 AlphaGo 的演进过程,早期的 AlphaGo 是离不开人类棋谱的,但到了 AlphaZero 时代就完全不需要人类棋谱了。对于开放世界游戏来说也是类似的,如果你采用 AlphaGo 的路线,就需要人类的操作记录来学习。
但如果采用 AlphaZero 的方式,你只需要定义动作空间,让 AI 在开放世界中从零开始自主探索。这是两种完全不同的方式。
Eric Li:
用大模型玩游戏这个话题,我认为有两个非常 impressive 的点。第一点,像苏辉刚才提到的,它没有专门训练一个模型用强化学习去玩游戏,这和 Google DeepMind 打 Dota 时的思路完全不同。它完全靠 in-context learning 的能力去做 sequential decision making 的问题。
这体现了 Foundation model 非常 impressive 的能力,展示了它的 planning 能力。它能规划在打怪兽时应该先做哪个 action,再做哪个 action,最终才能打得过。这不仅展现了 image understanding,更重要的是展示了很好的决策能力。
关于用 gameplay data 获取更多数据,这个 Jason Wei 之前做过一篇文章,研究如何学习真实世界中的物理知识。他们用物理 simulator engine 来获取 signal。从更广阔的角度来说,对于一个仿真 AI system 或单一 agent,当它和开放世界 interact 时,收集到的数据特别有意思。 这些 feedback 能很好地产生 reasoning data,因为不管是 gameplay 还是开放世界中的问题,都比较容易检测最终结果的正确性。这和 human feedback 只告诉你 pairwise 哪个更好不同,像打游戏、coding 和 math 一样,你能知道最后是赢了还是输了。这种清晰的 signal 可以帮助我们更好地 synthetic 产生 reasoning 和 planning 的数据。
Monica:
现在在这个大模型的训练中,gameplay 数据用得多吗?
Eric Li:
目前我没有看到很多人在使用这一块。我不知道 OpenAI 或者别的公司是怎么样的情况。感觉 Google 因为比较看重现有的产品线,在那些产品线上做提升可能优先级更高一些。但我觉得这是一个比较有意思的方向,可以去尝试。
Monica:
大家都提到大模型公司都开始用 data,我以为会有相当一部分是从 gameplay data 里面出来的。
Eric Li:
目前 synthetic data 更多是用于激活模型生成(how to activate image generation model generated AI model)。虽然 simulation 的数据还比较少见,但像我们之前提到的 Multi-Agents 和斯坦福小镇这些项目,展示了未来可以通过模拟社会来生成数据。这些都可以通过 Multi-Agent 做 simulation,用 simulator 和 game engine 来模拟,再配合 physics engine 来实现。
08
OpenAI o1 带来的强化学习新范式,
拉高了追赶者的难度
Monica:
我们今天邀请 DeepMind 的嘉宾在 io 和 ncts 这些领域都有很深的研究。前段时间大家讨论到,Google 其实比较早就开始了与 o1 路径类似的研究。比如 Google DeepMind 发布的论文《Compute optimally can be more efficient than scaling model parameters inference time》。我很好奇在座几位 researcher 怎么看这个关系,似乎这个研究路径 Google 早就开始了,为什么是 OpenAI 先把 o1 给 deliver 出来了呢?
Kimi Kong:
(略显迟疑)我用一句话简单概括,然后剩下的留给大家脑补吧:transformer 是 Google 发明的,但 GPT 是 OpenAI 第一个 train 出来的。大家可以自行脑补为什么他们先发布了 o1 而不是我们。
Monica:
这个工作在 o1 出来之前的关注度和评价怎么样?听起来并没有怎么受到关注。
Kimi Kong:
哈,一时语塞。我可能听到过类似的 research,就是大家做的这种小的 research。比如说这些 Google 的 paper,都是在 specific domain 数据集上做出来,证明 reasoning helps。
但我没有看到一个非常 large scale 的尝试。fundamentally 这是关于你是想发布 paper 在 clean 数据集上证明它 work,还是真正要解决 nasty problem 并做 10X、100X 的 scale up,我觉得这需要不同的心态。
Eric Li:
我之前在 Google 内部看到过一些关于降低 inference cost 的相关研究,但都是比较零散的、独立的分析。不过在 o1 出来之前,我确实没有关注到这篇 paper。这篇 paper 给出了一个更系统的分析,总结得非常好。
从研究方向看,既然 o1 的 PR 做得这么好,Google 肯定会提升自己模型的 reasoning 能力,争取和 o1 差不多或更好。但是对于 scaling inference cost 的策略,在一些商业化场景,特别是对 latency 要求很高的场景并不适用。 相比之下,大家可能更关注的是 Gemini 或在自己领域内性能的提升。
Monica:
那是否可以理解为 o1 的出现让这个方向成为了业界的共识?苏辉有什么补充吗?
苏辉:
延迟确实是一个很致命的问题。如果能找到一种应用方式,让用户接受等待 10 分钟、20 分钟或更长时间,并且最终能完成很好的任务,或者在产品设计上做一些离线操作,这可能会带来新的产品机会。
但对于现有的一些产品形态,比如角色扮演或通用的 chatbot,这种方式会比较难实现。
不过,如果能够把这套训练的逻辑框架迁移到提升 Pareto 边界上会很有价值,比如在安全性和推理能力之间做 trade-off,通过这种训练方式提升上限。在特定应用场景下,比如需要平衡安全性和角色扮演能力的场景,这种方式是可行的。
Cage:
前面大家讨论的 latency(延迟)问题,我很认同。我自己用 Cursor 接入 o1 后就有这种体验,跟之前相比差别很大。之前的 auto completion 包括 composer 都很快,现在要想很久, 所以需要很大的性能提升才能弥补这个时间上的 trade-off。
从大厂和商业化的角度来看,之前追赶 GPT-3.5 和 GPT-4 可能需要半年到一年时间,那么 o1 这套用强化学习提升 reasoning 能力的技术,整个 AI 社区追赶的速度会不会比之前更快?
Monica:
这种新范式对追赶者意味着什么?
苏辉:
我倾向于认为是更难了。
首先,你需要站在更强的基座模型基础上做这件事,如果是弱模型,你就不会有很强的 reward model,那么做这件事的收益极低,泛化可能性也很小。
其次,如果使用 MCTS 这样的策略,这是一个非常 GPU-bound 的 inference time 训练方式,你的 MFU 或 GPU 利用率是极低的。相比现在训练 Dense 或 MoE 时已经达到相对较好的 GPU 状态,这带来的 compute 消耗不会比 pre-train 低,甚至可能更高。对很多公司来说这是更大的挑战,因为你可能就是 double 了你 pre-train 的算力成本。
Cage:
关于 GPU 利用率低却反而消耗更多资源这个问题,能解释一下为什么 o1 这一套训练方法会带来这样的变化吗?
苏辉:
因为在 sample 和 decode 过程中,GPU 利用率会比训练阶段低很多。这个过程需要结合到训练中,会产生很多等待时间。
Monica:
对算力的要求很高,但那时候需要的是非常强的训练芯片,同时要非常大的集群。你看像 OpenAI、Meta 都要做十万级的集群。那在 post-training 阶段,如果它更像是 inference 的算力,是不是对 GPU 性能和集群规模的要求就相对较低?
苏辉:
这是一个很大的工程挑战。我们说的不是训练完后的推理部署,而是训推一体的过程。纯推理时可以用性能较低的 GPU,主要需要在通信上做些处理。但在规模化训练时,因为这个过程嵌在训练中,不是说推理出来文本后再拿到另外机器上去处理,这种方式工程实现不太现实。所以还是需要用最好的 GPU 来做强化学习训练。
Kimi Kong:
我觉得任何一个 task 都离不开几个大的步骤:数据、模型和训练框架。就像苏辉刚才说的训练上的算力挑战,他也 touch 到了 base 模型很难 access 到最新的开源 SOTA 模型。我在想现在开源最 SOTA 的是不是 Llama 405B?
如果你在 Google 或 OpenAI,你 train 出来就那么一个最大的模型,你根本不用考虑用哪个 base model。但是现在没有好的 open source 的 base model,这就意味着你在选择 base model 时可能已经走了很多弯路。
在数据这方面,你能看到 OpenAI purposely 把它的 reasoning 的内容 hide 掉了,只是把 reasoning 的 summary 给你。我觉得他这么做是因为如果你有这些 reasoning 的数据,训练会比较容易,但因为没有这些数据,你就要自己从头研究这个问题。
整体来说这是一个非常 challenging 的事情。 如果这三点都很 challenging 的话,作为一个追赶者可能会更难。说到苏辉他们是追赶者,对我们来说,其实我们现在何尝不是个追赶者呢?
Monica:
Eric 怎么看?
Eric Li:
我觉得 o1 的难度和之前 GPT-4 出来时的难度都很高,但难度点不太一样。当时 GPT-4 出来时只有 OpenAI 一家做出了 multimodal 模型,要实现 multimodal 这个能力,不管是 pre-training、post-training,还是 SFT 和强化学习,每个训练阶段都需要去做。
主要难度在于数据问题,因为怎样获得最好的 reasoning 数据,比起 outcome 的 human feedback 来说更加耗费资源。另外就是它的实现方法,不像去年从 text-only 变成 multimodal 模型那么清晰。那时候大家已经知道怎么做 modality fusion,知道怎么处理这些数据集,但现在大家还在猜测它到底是怎么实现的,以及背后的原理。
所以我认为难点主要在于: 第一,要建立这样的数据集;第二,因为有很多可能的实现路线,需要更多 research 投入去确定最优路线。
对于中小公司来说还有个 challenge,就是强化学习的重要性。之前很多创业公司或资源不够丰富的公司都不会去做强化学习,而是用 DPO 等比较偏 off-policy 的方法。如果强化学习现在已经被强调得这么重要,我们是否必须做 RLHF 而不是用 RL-free 的方法,这对小公司来说是个很大的挑战。
Monica:
在追赶 o1 的过程中,你觉得最容易被大家高估和低估的方面是什么?
Eric Li:
我认为最容易被低估的是数据层面,特别是如何判断 reasoning 好坏的数据。以前做 RLHF 时,一些场景或创业公司还能获取 human feedback,但要获得高质量的 reasoning feedback 数据,难度会高得多。至于高估的点…没有什么高估的,难就是难。
苏辉:
我之前也讲过, 我觉得大家是偏低估工程上的挑战。现在从一些观点来看,训练工程的挑战其实很大。你需要站在一个 GPT-4 水平的模型基础上,并且要掌握训练这件事情才能继续往前发展。
Kimi Kong:
我非常同意 Eric 和苏辉的观点。这既是一个 science 非常难的问题,也是个 engineering 非常难的问题。
science 的难点在于如何筛选高质量数据,而 engineering 的难点在于 training 中需要引入 inference,相当于说你必须是六边形战士,没有短板才能把这件事做出来。
09
未来 1-3 年,
最期望在领域内看到的发展
Monica:
我们已经讨论了很多解读和猜想,现在让我们来谈谈对未来的期待。在看到 o1 展现出这些能力之后,大家对近期一年以及未来三年,最期望在这个领域看到什么样的发展?还有哪些难题是你们最希望能够被解决的?
Kimi Kong:
我觉得在一年之内,coding 很可能会变成一种 commodity,变成人人都可以拥有写代码的技能。我之前和组里的 PM 聊天时,他就说:我可以用 Cursor 自己写代码,不需要你们帮我做 prototype。虽然他只是在谈论自己的个人项目时开的玩笑,但我觉得这种情况在一年内可能真的会实现,也许吧。
其实我是一个 robotics by training 的研究者,我非常期待大语言模型和 robotics 结合的这个领域能有更长足的进步,特别是在 embodiment 这个方向。 但是在一到三年内,我觉得最难解决的还是 domain 数据的问题。其实你知道,大多数的配方都已经摆在桌面上了,无论是大公司还是开源界都在用差不多的配方。
你可以选择配方,但你知道,配方需要原材料来烹饪,而这里的原材料就是数据。当一个 domain 没有很好的数据,或者数据很难采集,或者数据还没有被数字化,这就是最大的挑战。具体到 Embodied Robotics,这个问题虽然有挑战,但也不是特别难。 对于 robots 来说,它的数据还没有被很好地数字化,但这个过程已经开始了。
这让我想到了 GPT-1、2、3 的发展阶段,当时大家也在不断扩展数据的质量和数量。所以我非常期待看到我的 robotics 同事们能够开发出一个令人惊艳的 emergent 的具身智能模型。
Monica:
最近我投资了一个机器人公司。看到机器人的数据已经在逐渐被数字化,我感到非常欣慰,因为我们天天都在聊机器人的数据有多难。
Kimi Kong:
RTX 确实是一个 good step forward。RTX 团队的一些人后来出去创业做 Physical Intelligence。在 Facebook Todens team 里,让我印象深刻的是一位越南裔成员,他是 RTX 的发起者。
Monica:
你能用一句话解释一下 RTX 具体是做什么的?
Kimi Kong:
RTX 是开源的。传统上,robotist scientist 需要自己收集数据集,比如 Tony 搞了一堆烧饭、开桌子、刮胡子的数据集,然后训练 imitate 模型。
就像 hugging face 在 NLP 领域做 summarize、semantic understanding 一样,他们联合了世界上 17 个实验室,把几十个 robot 的数据集整合在一起,建立了统一标准的 robot dataset,总共有两个 million 的 robotic trajectory demonstration。
相比之下,PaLM-E 花了 18 个月收集了约 150K 的 human demonstration。但是跟 LM 比,比如说 Chinchilla 的 scaling law,几万亿的 token,机器人这边还是差得很远。但正因为难,才让人 excited,因为这是个 not fair game,everybody can win。
Monica:
这有点像机器人领域的 ImageNet。
Kimi Kong:
没错,所有人都是在一个起跑线上的。大厂跟你而言是在一个起跑线上,这就是为什么我非常 excited,期待在未来三到五年看到 robot 的落地和应用,期待我的同事们有更加惊艳的作品。
Monica:
我很期待看到你什么时候能回归机器人研究这个老本行。
Kimi Kong:
我一直在关注这个领域。从 technology wise 的角度来看,我觉得并没有太大的区别,都是 AI 在不同行业的应用。机器人的模态本质上就是个多模态问题,我觉得 robot 的模型与 VQA 或者 VLM 没有那么多的区别。 讲白了就是用同样的技术来解决不同 data set 的问题。
对我而言,虽然 robot 是我的 passion,但我更 excited 的是把 robot 抽离之后的问题——我的 passion 是在强化学习上的,就是如何用强化学习来解决 foundational 的 state action 的 World State Topological Agent Problem。
苏辉:
在未来一年内,我很希望看到多模态在 reasoning 方向的突破性进展。之前很多 research 工作表明,引入多模态 token 并没有让语言模型的能力得到提升,这让很多人略感失望,因为混合模态后 compute 增加了,但单个模态的能力并未提升。
一年内,我们的训练数据资源量会有较大的 scale。不过我们应该注意到,人类学习根本不需要那么多 data。现在模型训练中充斥着大量无意义的数据,比如新闻稿或一些无意义的字符串,这些都被模型学习进去了,浪费了大量资源。
我很希望在这一年内能看到 data 工作方面的重大突破,找到真正有代表性的 data,用很小的数据量就能达到现在大规模数据的效果。如果展望三年以后,我比较乐观,希望能看到接近 AGI 状态的模型出现,解决所有问题,让我们也不用上班了。
Monica:
这是三年吗?小心你老板把这个给你设成 KPI 啊。
Kimi Kong:
我非常好奇,关于多模态这个问题,其实现在训练里面多模态数据的占比还是非常少的。另外我很好奇的是,现在多模态的 vision encoder size 比 text encoder 相比要小很多,为什么没有人去做 vision encoder 方面的 scaling 研究?这是我个人的好奇。
苏辉:
我其实也不太清楚具体原因,但我觉得这是一个很 promising 的方向,我很看好 encoder scaling 上去。
Kimi Kong:
对,因为现在都是零点几 B,我对 Gemini 可能不是特别了解,但那些开源的基本都是几十 B 的模型,它的 vision encoder 也就基本零点几 B 到 1B 的规模。
苏辉:
这确实是一件很 surprising 的事情。我觉得一个比较大的原因是 vision encoder 对工程来说是比较大的挑战。
Kimi Kong:
Interesting,good to know。
Monica:
Eric。
Eric Li:
我自己觉得一年之内我比较看好的是多模态的 reasoning。我看了很多 paper,发现模型在 text 的 reasoning 非常好,但有了多模态之后反而都没有那么好。这里面同时涉及两个问题:一个是模态之间的 alignment,另一个是 reasoning,这两个混合在一起问题就更加复杂。但是有了 o1 这个模型珠玉在前,我相信很多人可能会考虑怎么去把这些相关技术更多地用在多模态的 RLHF 上面。
另外一个看好的方向是 Multi-Agents。之前的很多 agents 效果没有那么好,主要是因为 foundational 的一些能力,比如说 reasoning 的能力还不够强。我估计这一年内,其他的竞争者应该也会有 o1 level 的模型会出来。 这对于创业公司或其他团队来说,作为一个更强大的 Multi-Agent 的基础,应该会更有希望。我期待这一块能够解锁一些新的应用场景,或者在一些对准确性要求比较高但之前没有做到的任务上取得突破。
未来三年,我希望能看到 AGI 作为 innovator 发挥更大作用,比如自主发现新事物或进行前沿研究。我最近注意到已经有一些相关的 paper 发表,让 AI 帮助我们进行 research,但目前还处于比较初级阶段。当 reasoning 和 Multi-Agents 的系统架构更加成熟后,AI scientist 可能会给我们带来意想不到的结果。
Monica:
你觉得 AI scientist 是通过提升 reasoning 的能力就可以实现吗?作为一个能够定义问题、解决问题的 scientist,还需要什么别的能力?
Eric Li:
现在的 AI scientist 写出的 paper 更多是一些偏炒作式的科研,比如简单地把 A 和 B 结合起来。 要解决更加棘手的 open question,我们需要 AI 具备更深度的思考能力,以及推翻重来的能力。还有就是能够提出更好的问题,而不是仅仅解决问题。有了更好的 reasoning 能力后,AI 就能进行更长远和深入的思考,这会让它在提出问题和解决方案方面有质的飞跃。
Monica:
一到三年内你觉得会有哪些比较难解决的问题?
Eric Li:
我觉得 innovator 这个问题本身就是非常具有挑战性的问题。其中比较难解决的一个问题是让 AI 不要只是去 retrieve 它自己 pre-training 中的数据,而是要更多地去质疑自己曾经学到的知识是否正确或已经过时。 我觉得这可能是 AI 要达到 innovator 水平的一个非常难的点,就是让 AI 能够去质疑,很 challenge 地去挑战自己已经通过 SFT 和 pre-training 学到的知识。如果能做到这一点,应该会有很大的进步。
Monica:
Echo 之前提到的很对。作为投资人,我跟很多创业者讨论时发现,o1 更像是一个 GPT 时刻,而不是 ChatGPT 时刻。它能解决要求更高层次 reasoning 的场景,这与 ChatGPT 展现的 chatbot 场景有很大区别。对这些场景来说,产品设计就不能像 chatbot 那样只用一个 search bar 就能解决问题。 我们需要考虑如何在很长的 inference reasoning 链路中加入人的 feedback。
这些都是从 GPT 到 ChatGPT 过程中的产品问题,值得整个行业 ecosystem 一起探讨。我认为这更适合创业公司,而不是大厂,因为大厂现在都在全力去做 GPT 模型本身。产品层面还有很多机会。Cage 一直在这个领域做了很多研究,想请你也跟大家分享下对未来的期待。
Cage:
我会把这个话题分为 coding 和其他领域来看。就 coding 来说,我非常认为 coding 能力会持续提升。 世界上会 coding 的人可能只有 1%不到,但实际上有产品需求的人远远大于这个比例。这里会不会有一些新的技术突破和产品来弥补这个差距呢?比如说 Cursor 这个产品,现在小白用户还用不上,不太会用。那么可能会有更低门槛、更民主化的产品出现,就像 Canva 那样。
其次我最期待的是 reward model 能否在 mass code 之外的问题上实现泛化。
这个泛化可能通过两种方式实现:一是依靠 OpenAI、Anthropic、Google 等公司在模型层面的提升,二是通过开放 API 或其他形式,让企业用户共同参与提供高质量的 reasoning 数据,从而在金融、法律等领域获得提升。我希望能在一年之内看到一些 signal 出现突破。
这并不是很明确强推力领域想看到的一个进展。在三年的时间尺度上,我最期待的是 AI 真的能够帮我完成高价值的研究任务,可能持续一天、一周或一个月。在这个过程中,如果 AI 遇到什么问题,它可以主动发邮件给我,我给个 comment 后它就能继续完成任务。这正好 Echo 到前面几位嘉宾提到的问题:现在还没有产品能让用户愿意接受那么高的 latency,但如果 AI 真的能做很高价值的任务,可能在 industry research 甚至人类科学问题上都有突破。
我期待看到技术和产品层面的突破,让人与 AI 能够实现异步协作。这样可能会呈现一个新的 AI Agent 操作系统或 UI/UX 设计模式,这是我三年内最期待的。
Monica:
大家都从不同角度分享了对未来的期待。今天本来说两个小时,聊了三个多小时,非常感谢大家。我觉得有非常非常多的启发,也希望给听众带来一些收获。