- 团队:tongyi
- 时间:25.10
- 领域:deepsearch的tts(测试时缩放策略)
发现1:
对于deepsearch来说,推理+工具调用token的PPL,发现:探索token(工具调用的token)在一开始达到峰值,此时模型必须在先验知识最少的情况下探索环境。与之相对,推理不确定性稍晚一些达到峰值——仍处于早期阶段——此时智能体开始将新获取的信息整合到其内部推理链中进行处理;随着任务的推进,两种不确定性的水平逐渐下降,因为智能体积累了更多知识,其推理过程变得更加稳固,从而做出越来越自信的决策和动作。
![[Pasted image 20251221091155.png]]
发现2:
近期研究发现,deepsearch这个任务本身可以建模为一个实体发现和关系构建的过程。(deepsearch通过探索发现节点,通过推理发现节点之间的边),构建了一个新的指标冗余度,定义为:\(1-|对最终答案推导有帮助的节点|/|总节点数量|\)。经过实验发现,所有的方法的冗余度都很高,所以为推理压缩提供了可行性的分析
![[Pasted image 20251221091617.png]]
method
第一阶段:功能指定的部分回滚
首先,系统会生成M条(这里假设M=1)初始的探索轨迹。假设这条轨迹如下:
- 思考:需要找到爱因斯坦的诺贝尔奖信息。行动:搜索“爱因斯坦 诺贝尔奖”。
- 思考:搜索结果显示了百科页面。行动:访问百科页面。
- 思考:页面提到他因“光电效应”获奖,但解释复杂。我需要理解什么是光电效应。行动:搜索“光电效应 简单解释”。
- ...(继续推理)
接下来,系统会分析这条轨迹中每一步的“不确定性”。不确定性高的步骤,意味着智能体在这里“犹豫不决”,可能存在多种合理的后续行动方向,是进行并行探索的绝佳分支点。
- 步骤1(搜索“爱因斯坦 诺贝尔奖”):探索不确定性高,因为这是第一步,有无数种可能的搜索关键词。
- 步骤3(思考是否需要理解“光电效应”):推理不确定性高,因为智能体在犹豫是直接给出答案,还是继续深入探索。
基于此,ParallelMuse不会笨拙地从头开始重复生成7条完整的独立轨迹,而是选择在识别出的高不确定性步骤(如步骤1和步骤3)进行“分支”。
- 分支1(从步骤1开始):复用“思考:需要找到爱因斯坦的诺贝尔奖信息。”的上下文,但尝试不同的探索行动。比如,不搜索“爱因斯坦 诺贝尔奖”,而是搜索“1921年诺贝尔物理学奖 获得者”。这条分支可能找到更官方的诺贝尔奖网站信息。
- 分支2(从步骤3开始):复用前两步的上下文,但尝试不同的推理方向。比如,智能体可能决定不立即搜索“光电效应”,而是先思考“为什么是光电效应而不是相对论?”,并据此行动。这条分支可能会探索到关于诺贝尔奖委员会评价标准的历史背景。
这样做的好处是:避免了在低不确定性的、重复的步骤上浪费计算资源,将力量集中用于探索真正有分歧、有潜力的路径,从而用更少的token消耗探索到更多样化的信息。
第二阶段:压缩推理聚合
现在,我们有了多条(比如8条)从不同分支产生的、完整的推理轨迹。每条轨迹都可能很长,包含大量网页内容、重复的思考和无效的点击。如果试图把所有这些原始文本都塞进上下文窗口让模型生成最终答案,要么会超出长度限制,要么会让模型淹没在信息海洋中。
因此,ParallelMuse会对每一条轨迹进行“无损压缩”,提取出核心的推理骨架,生成一份结构化的报告。
- 原始轨迹可能包含:“我搜索了A,看到了B页面,里面有大段关于爱因斯坦生平的文本,我读了之后发现C,然后又搜索了D,结果E不相关,我又尝试了F...最终我得出结论G。”
- 压缩后的报告会变成:
- 解决方案规划:主问题是“爱因斯坦的诺贝尔奖成就及背景”,可分解为两个子问题:1) 获奖的具体成就;2) 该成就的科学意义。
- 求解方法:
- 子问题1:通过搜索“爱因斯坦 诺贝尔奖”并访问百科页面解决,确认获奖原因是“光电效应定律”。
- 子问题2:通过搜索“光电效应 意义”并访问物理学科普网站解决,理解了光电效应揭示了光的粒子性。
- 最终推理:将子答案整合,得出最终答案:爱因斯坦因发现光电效应定律获奖,该发现证明了光由粒子(光子)组成,是量子理论的重要基石。
这个过程去除了原始轨迹中冗余的网页文本、失败的搜索尝试和啰嗦的语句,但完整保留了推导答案所需的所有关键实体(如“光电效应”、“光子”)和关系(如“因...获奖”、“证明了...”)。
最后,聚合模型会收到这8份简洁明了的压缩报告。它通过对比分析这些报告,能够判断哪条推理路径最连贯、证据最充分,从而综合出一份更准确、更全面的最终答案,而不是简单地“投票”给出现次数最多的答案文本。这有效避免了“正确答案是少数派但推理更合理”的情况。
![[Pasted image 20251221090537.png]]
【讨论】:
- 数据驱动的方法设计很漂亮,整体的方法基于最初的两个发现
- 文章中的两个key points:使用PPL衡量不确定性,在不确定性大的地方进行分叉;使用LLM对轨迹进行压缩。
- 分叉过程的讨论:
- 是不是可以迭代的衡量PPL,在PPL大的地方直接进行分叉。但是这又会引申出一个问题:如何确定PPL的值为多少算大(方案:或许可以先在训练集上rollout一些样本出来,计算PPL的均值来衡量)
- 缺少crossover演化(让不同路径之间进行融合,并融合出一个更好的)?
- 如何保证路径的多样性,使得模型的不同的rollout路径不太相似?(是否可以加入一些保证路径多样性的机制来?)
- 压缩的讨论:对于压缩方法来说,是不是存在更加高效的压缩?或者可以引入memory相关的内容,做一些结构化的压缩?