#reasoning

「Agent, RAG, Reasoning」论文 ReSearch: Learning to Reason with Search for LLMs via Reinforcement Learning ReSearch,充满了 ReAct 的影子。它教会模型“何时求助于世界”;但局限在于,ReSearch 只能依赖一种工具。 作者提出了一种创新的框架,名为 ReSearch,旨在通过强化学习(RL)训练 LLM 在推理过程中有效地反复利用 search API 完成任务。 从任务形式上,它解决的是增强LLM+ RAG的问题,但并不同于基于 embedding 的单轮相似度检索方法。 它关注的是多次 query、反复调用 search API 来完成信息查询任务。 并不同于基于embedding去单次算相似度的方法,它解决的是多次query,反复调用search API完成外部信息查询的问题。 而反复调用 API,涉及推理能力去决策调用的时机,以及生成调用的参数 —— 这是一个典型的 agent + function calling 场景。 ReSearch目标将这种search的reasoning能力通过RL学到。 具体来说,ReSearch 采用了专门为搜索功能设计的训练模版: <think>...</think>:表示模型的思考过程; <search>...</search>:表示模型发起的搜索查询; <result>...</result>:表示搜索引擎返回的结果; <answer>...</answer>:表示模型给出的最终答案。 特别地,ReSearch 的奖励函数不是仅仅基于答案对错,而是采用 rule-based 的组合机制:基于答案的 F1 相似度 + 输出格式是否符合模板,以此优化 policy,微调语言模型参数。 此时不免再次提及 ReAct:ReSearch 充满了 ReAct 的循环影子——: Reasoning:模型的思考过程; Action:模型发起的调用; Observation:工具返回的反馈。 ReAct 是神作,它以 verbal reasoning (人话)的方式,将原本充满数学公式的 RL 概念转化为语言链式推理,让 LLM 学会如何使用工具,优雅而简洁。 一些思考: ReSearch 以及前几天分享的 ReTool 是非常类似的工作,它们都通过强化学习微调,将使用工具的能力内化于语言模型中,增强工具调用的鲁棒性。 但它们的局限性也非常明显:ReSearch 和 ReTool 都只支持一种工具 —— search API 和 code interpreter。 而 ReAct,通过 Prompt Engineering,就可以灵活调用多个外部工具。 ReSearch 和 ReTool 的 RL 框架是为“单工具、二选一调度”设计的。如果强行扩展为多工具,训练信号将更加稀疏、credit assignment 更加困难,其策略网络、reward assignment、以及 rollout 表达能力都需要重新设计。 我们距离真正原生具备多轮、多工具能力的通用 Agent,还有一段距离。
「LLM, Reasoning」论文: (How) Do reasoning models reason? “真正的智能,是让模型在生成时就做出正确选择,而不是事后去验证哪个选项是对的。” 作者Subbarao Kambhampati,我不完全同意他,但我很喜欢他。2024年ACL Keynote,他批评当前对 Chain of Thought 的信仰如同宗教。——我们喜欢看到推理的样子,但并未真正验证推理的实质。 这篇论文,简直就是把当前 LLM 推理潮流一锅端,按住OpenAI o1 和 DeepSeek R1 提出了两个灵魂拷问: 1: Large Reasoning Model 是在推理还是在检索? 作者认为,LRM 并非真正“推理”,它们的行为更像经过训练强化的“近似检索”系统。 所谓“推理”,往往只是模型通过被筛选过的训练样本“生成看起来像推理的输出”。 如果模型生成的候选解中压根就没有一个是对的,也就无法进行强化训练。 这意味着 LRM 的“推理”质量依赖于它是否能撞上一个正确答案。 2: Chain of Thought 是否跟“思考相关”? 作者认为,CoT,(如step-by-step 的文字、公式、甚至“wait...”、“aha moment”这类表述)并不能证明模型真的在“思考”,它们很可能只是模仿人类风格的产物——大型模仿模型(Large Mumbling Models, LMMs)。😂 例如,CoT可以胡说八道但仍“撞对”答案, 模型通过 RL 训练输出的CoT只要能让最终答案更准确,哪怕是乱码也无所吊谓。 最后,此片论文同样是对test time scaling的犀利审视,test time scaling本质是把原本在“测试时”才能验证的东西,提前“编译”进了模型的生成过程中。 换句话说,模型不是学会了推理,而是学会了如何在多次尝试中更容易猜对答案。这跟真正的智能背道而驰。 按照作者的思路,当下post training的套路如下: - 测试阶段:拼命尝试多个答案 - 筛选阶段:用外部验证器选出对的那个 - 训练阶段:把这套套路“硬塞回生成器”,形成“像在思考的样子” 所以它不是真的学会了推理,而是学会了:如何让自己看起来像在推理,并增加猜中率。 Intelligence is the ability to shift the test part of generate-and-test into the generate part. inspriing!
「LLM, Agent, RL的关系」 在LLM的语境下,Agent是能理解问题,自主进行推理(Reasoning),并采取行动的系统。你可以把它想象成一个非常聪明的助手,当你提出复杂问题时,它不会立即给出答案,而是会在内心进行推理和规划(Planning),再给出最终决定。 如果我们回顾prompt engineering中提高LLM Reasoning能力的方法,如Self-Consistency、Tree of Thoughts 和 ReAct,本质上都体现了强化学习(RL)中常见的规划思想: Tree of Thoughts:如同下棋时,你脑海中会形成一个思考树,一步步推演未来可能的局面,从而找到最优解。这与RL中的树搜索(Tree Search)方法完全对应,体现了明显的模型化规划(Model-based Planning)特征。 ReAct(Reasoning+Acting,推理加行动):类似于你边思考边行动,不断尝试,再根据反馈调整下一步的计划。这种推理与行动的交替模式与RL中Agent持续地感知状态(Observing)、制定策略(Policy)、采取行动(Acting)并从环境中获得反馈(Feedback)非常类似。 为什么增强LLM的Reasoning通常要使用RL方法? 尽管LLM本身已经具备强大的知识和生成能力,但它们本质上是基于“下一个词预测”的机制(Next-Word Prediction),缺乏深度的Planning能力和对未来结果的有效预测。这就像一个聪明但缺乏系统训练的人,虽然懂得很多知识,但在面对复杂决策时容易陷入短视和错误。 RL方法的加入,就像给LLM提供了一种“内心世界模型”(Internal World Model),帮助模型进行更好的内部规划: RL能帮助LLM学会评估和预测不同推理路径的可能结果,从而选择更优的路径,恰如DeepSeek R1, Kimi, o1的方法。 立一个FLAG, 把这些RL方法一个个用人话讲明白。